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

#include "settings.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_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AccountSettingsConfig_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomEyeColor_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Jdoc_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_NamedJdoc_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_response_5fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ResponseStatus_response_5fstatus_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RobotSettingsConfig_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_UserEntitlementsConfig_settings_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class CustomEyeColorDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CustomEyeColor> _instance;
} _CustomEyeColor_default_instance_;
class RobotSettingsConfigDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotSettingsConfig> _instance;
  bool clock_24_hour_;
  int eye_color_;
  const ::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr default_location_;
  bool dist_is_metric_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr locale_;
  int master_volume_;
  bool temp_is_fahrenheit_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr time_zone_;
  int button_wakeword_;
} _RobotSettingsConfig_default_instance_;
class AccountSettingsConfigDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AccountSettingsConfig> _instance;
  bool data_collection_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr app_locale_;
} _AccountSettingsConfig_default_instance_;
class UserEntitlementsConfigDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UserEntitlementsConfig> _instance;
  bool kickstarter_eyes_;
} _UserEntitlementsConfig_default_instance_;
class JdocDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Jdoc> _instance;
} _Jdoc_default_instance_;
class NamedJdocDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NamedJdoc> _instance;
} _NamedJdoc_default_instance_;
class PullJdocsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PullJdocsRequest> _instance;
} _PullJdocsRequest_default_instance_;
class PullJdocsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PullJdocsResponse> _instance;
} _PullJdocsResponse_default_instance_;
class UpdateSettingsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateSettingsRequest> _instance;
} _UpdateSettingsRequest_default_instance_;
class UpdateSettingsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateSettingsResponse> _instance;
} _UpdateSettingsResponse_default_instance_;
class UpdateAccountSettingsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateAccountSettingsRequest> _instance;
} _UpdateAccountSettingsRequest_default_instance_;
class UpdateAccountSettingsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateAccountSettingsResponse> _instance;
} _UpdateAccountSettingsResponse_default_instance_;
class UpdateUserEntitlementsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateUserEntitlementsRequest> _instance;
} _UpdateUserEntitlementsRequest_default_instance_;
class UpdateUserEntitlementsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateUserEntitlementsResponse> _instance;
} _UpdateUserEntitlementsResponse_default_instance_;
class JdocsChangedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<JdocsChanged> _instance;
} _JdocsChanged_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
static void InitDefaultsscc_info_AccountSettingsConfig_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_CustomEyeColor_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_Jdoc_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_JdocsChanged_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_NamedJdoc_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_NamedJdoc_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_NamedJdoc_settings_2eproto}, {
      &scc_info_Jdoc_settings_2eproto.base,}};

static void InitDefaultsscc_info_PullJdocsRequest_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_PullJdocsResponse_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PullJdocsResponse_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PullJdocsResponse_settings_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_NamedJdoc_settings_2eproto.base,}};

static void InitDefaultsscc_info_RobotSettingsConfig_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RobotSettingsConfig_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RobotSettingsConfig_settings_2eproto}, {
      &scc_info_CustomEyeColor_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateAccountSettingsRequest_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateAccountSettingsRequest_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UpdateAccountSettingsRequest_settings_2eproto}, {
      &scc_info_AccountSettingsConfig_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateAccountSettingsResponse_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateAccountSettingsResponse_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_UpdateAccountSettingsResponse_settings_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Jdoc_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateSettingsRequest_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateSettingsRequest_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UpdateSettingsRequest_settings_2eproto}, {
      &scc_info_RobotSettingsConfig_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateSettingsResponse_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateSettingsResponse_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_UpdateSettingsResponse_settings_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Jdoc_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateUserEntitlementsRequest_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateUserEntitlementsRequest_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UpdateUserEntitlementsRequest_settings_2eproto}, {
      &scc_info_UserEntitlementsConfig_settings_2eproto.base,}};

static void InitDefaultsscc_info_UpdateUserEntitlementsResponse_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateUserEntitlementsResponse_settings_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_UpdateUserEntitlementsResponse_settings_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Jdoc_settings_2eproto.base,}};

static void InitDefaultsscc_info_UserEntitlementsConfig_settings_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_settings_2eproto[15];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_settings_2eproto[10];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_settings_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_settings_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomEyeColor, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomEyeColor, hue_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomEyeColor, saturation_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomEyeColor, enabled_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, clock_24_hour_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, eye_color_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, custom_eye_color_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, default_location_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, dist_is_metric_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, locale_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, master_volume_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, temp_is_fahrenheit_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, time_zone_),
  offsetof(::Anki::Vector::external_interface::RobotSettingsConfigDefaultTypeInternal, button_wakeword_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_clock_24_hour_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_eye_color_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_custom_eye_color_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_default_location_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_dist_is_metric_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_locale_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_master_volume_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_temp_is_fahrenheit_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_time_zone_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotSettingsConfig, oneof_button_wakeword_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccountSettingsConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccountSettingsConfig, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::AccountSettingsConfigDefaultTypeInternal, data_collection_),
  offsetof(::Anki::Vector::external_interface::AccountSettingsConfigDefaultTypeInternal, app_locale_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccountSettingsConfig, oneof_data_collection_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccountSettingsConfig, oneof_app_locale_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserEntitlementsConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserEntitlementsConfig, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::UserEntitlementsConfigDefaultTypeInternal, kickstarter_eyes_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserEntitlementsConfig, oneof_kickstarter_eyes_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Jdoc, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Jdoc, doc_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Jdoc, fmt_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Jdoc, client_metadata_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Jdoc, json_doc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::NamedJdoc, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::NamedJdoc, jdoc_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::NamedJdoc, doc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PullJdocsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PullJdocsRequest, jdoc_types_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PullJdocsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PullJdocsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PullJdocsResponse, named_jdocs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsRequest, settings_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsResponse, code_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateSettingsResponse, doc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsRequest, account_settings_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsResponse, code_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAccountSettingsResponse, doc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest, user_entitlements_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse, code_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse, doc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::JdocsChanged, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::JdocsChanged, jdoc_types_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Anki::Vector::external_interface::CustomEyeColor)},
  { 8, -1, sizeof(::Anki::Vector::external_interface::RobotSettingsConfig)},
  { 33, -1, sizeof(::Anki::Vector::external_interface::AccountSettingsConfig)},
  { 42, -1, sizeof(::Anki::Vector::external_interface::UserEntitlementsConfig)},
  { 49, -1, sizeof(::Anki::Vector::external_interface::Jdoc)},
  { 58, -1, sizeof(::Anki::Vector::external_interface::NamedJdoc)},
  { 65, -1, sizeof(::Anki::Vector::external_interface::PullJdocsRequest)},
  { 71, -1, sizeof(::Anki::Vector::external_interface::PullJdocsResponse)},
  { 78, -1, sizeof(::Anki::Vector::external_interface::UpdateSettingsRequest)},
  { 84, -1, sizeof(::Anki::Vector::external_interface::UpdateSettingsResponse)},
  { 92, -1, sizeof(::Anki::Vector::external_interface::UpdateAccountSettingsRequest)},
  { 98, -1, sizeof(::Anki::Vector::external_interface::UpdateAccountSettingsResponse)},
  { 106, -1, sizeof(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest)},
  { 112, -1, sizeof(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse)},
  { 120, -1, sizeof(::Anki::Vector::external_interface::JdocsChanged)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CustomEyeColor_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AccountSettingsConfig_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UserEntitlementsConfig_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Jdoc_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_NamedJdoc_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PullJdocsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PullJdocsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateSettingsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateSettingsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateAccountSettingsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateAccountSettingsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateUserEntitlementsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateUserEntitlementsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_JdocsChanged_default_instance_),
};

const char descriptor_table_protodef_settings_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\016settings.proto\022\036Anki.Vector.external_i"
  "nterface\032\025response_status.proto\"B\n\016Custo"
  "mEyeColor\022\013\n\003hue\030\001 \001(\002\022\022\n\nsaturation\030\002 \001"
  "(\002\022\017\n\007enabled\030\003 \001(\010\"\245\005\n\023RobotSettingsCon"
  "fig\022\027\n\rclock_24_hour\030\001 \001(\010H\000\022=\n\teye_colo"
  "r\030\002 \001(\0162(.Anki.Vector.external_interface"
  ".EyeColorH\001\022J\n\020custom_eye_color\030\003 \001(\0132.."
  "Anki.Vector.external_interface.CustomEye"
  "ColorH\002\022\032\n\020default_location\030\004 \001(\tH\003\022\030\n\016d"
  "ist_is_metric\030\005 \001(\010H\004\022\020\n\006locale\030\006 \001(\tH\005\022"
  "\?\n\rmaster_volume\030\007 \001(\0162&.Anki.Vector.ext"
  "ernal_interface.VolumeH\006\022\034\n\022temp_is_fahr"
  "enheit\030\010 \001(\010H\007\022\023\n\ttime_zone\030\t \001(\tH\010\022I\n\017b"
  "utton_wakeword\030\n \001(\0162..Anki.Vector.exter"
  "nal_interface.ButtonWakeWordH\tB\025\n\023oneof_"
  "clock_24_hourB\021\n\017oneof_eye_colorB\030\n\026oneo"
  "f_custom_eye_colorB\030\n\026oneof_default_loca"
  "tionB\026\n\024oneof_dist_is_metricB\016\n\014oneof_lo"
  "caleB\025\n\023oneof_master_volumeB\032\n\030oneof_tem"
  "p_is_fahrenheitB\021\n\017oneof_time_zoneB\027\n\025on"
  "eof_button_wakeword\"u\n\025AccountSettingsCo"
  "nfig\022\031\n\017data_collection\030\001 \001(\010H\000\022\024\n\napp_l"
  "ocale\030\002 \001(\tH\001B\027\n\025oneof_data_collectionB\022"
  "\n\020oneof_app_locale\"N\n\026UserEntitlementsCo"
  "nfig\022\032\n\020kickstarter_eyes\030\001 \001(\010H\000B\030\n\026oneo"
  "f_kickstarter_eyes\"[\n\004Jdoc\022\023\n\013doc_versio"
  "n\030\001 \001(\004\022\023\n\013fmt_version\030\002 \001(\004\022\027\n\017client_m"
  "etadata\030\003 \001(\t\022\020\n\010json_doc\030\004 \001(\t\"{\n\tNamed"
  "Jdoc\022;\n\tjdoc_type\030\001 \001(\0162(.Anki.Vector.ex"
  "ternal_interface.JdocType\0221\n\003doc\030\002 \001(\0132$"
  ".Anki.Vector.external_interface.Jdoc\"P\n\020"
  "PullJdocsRequest\022<\n\njdoc_types\030\001 \003(\0162(.A"
  "nki.Vector.external_interface.JdocType\"\223"
  "\001\n\021PullJdocsResponse\022>\n\006status\030\001 \001(\0132..A"
  "nki.Vector.external_interface.ResponseSt"
  "atus\022>\n\013named_jdocs\030\002 \003(\0132).Anki.Vector."
  "external_interface.NamedJdoc\"^\n\025UpdateSe"
  "ttingsRequest\022E\n\010settings\030\001 \001(\01323.Anki.V"
  "ector.external_interface.RobotSettingsCo"
  "nfig\"\305\001\n\026UpdateSettingsResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\0228\n\004code\030\002 \001(\0162*.Anki.Vec"
  "tor.external_interface.ResultCode\0221\n\003doc"
  "\030\003 \001(\0132$.Anki.Vector.external_interface."
  "Jdoc\"o\n\034UpdateAccountSettingsRequest\022O\n\020"
  "account_settings\030\001 \001(\01325.Anki.Vector.ext"
  "ernal_interface.AccountSettingsConfig\"\314\001"
  "\n\035UpdateAccountSettingsResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\0228\n\004code\030\002 \001(\0162*.Anki.Vec"
  "tor.external_interface.ResultCode\0221\n\003doc"
  "\030\003 \001(\0132$.Anki.Vector.external_interface."
  "Jdoc\"r\n\035UpdateUserEntitlementsRequest\022Q\n"
  "\021user_entitlements\030\001 \001(\01326.Anki.Vector.e"
  "xternal_interface.UserEntitlementsConfig"
  "\"\315\001\n\036UpdateUserEntitlementsResponse\022>\n\006s"
  "tatus\030\001 \001(\0132..Anki.Vector.external_inter"
  "face.ResponseStatus\0228\n\004code\030\002 \001(\0162*.Anki"
  ".Vector.external_interface.ResultCode\0221\n"
  "\003doc\030\003 \001(\0132$.Anki.Vector.external_interf"
  "ace.Jdoc\"L\n\014JdocsChanged\022<\n\njdoc_types\030\001"
  " \003(\0162(.Anki.Vector.external_interface.Jd"
  "ocType*%\n\nApiVersion\022\013\n\007INVALID\020\000\022\n\n\006LAT"
  "EST\020\001*R\n\006Volume\022\010\n\004MUTE\020\000\022\007\n\003LOW\020\001\022\016\n\nME"
  "DIUM_LOW\020\002\022\n\n\006MEDIUM\020\003\022\017\n\013MEDIUM_HIGH\020\004\022"
  "\010\n\004HIGH\020\005*e\n\010JdocType\022\022\n\016ROBOT_SETTINGS\020"
  "\000\022\030\n\024ROBOT_LIFETIME_STATS\020\001\022\024\n\020ACCOUNT_S"
  "ETTINGS\020\002\022\025\n\021USER_ENTITLEMENTS\020\003*;\n\021Jdoc"
  "ResolveMethod\022\021\n\rPUSH_TO_CLOUD\020\000\022\023\n\017PULL"
  "_FROM_CLOUD\020\001*\313\001\n\014RobotSetting\022\021\n\rclock_"
  "24_hour\020\000\022\r\n\teye_color\020\001\022\024\n\020custom_eye_c"
  "olor\020\002\022\024\n\020default_location\020\003\022\022\n\016dist_is_"
  "metric\020\004\022\n\n\006locale\020\005\022\021\n\rmaster_volume\020\006\022"
  "\026\n\022temp_is_fahrenheit\020\007\022\r\n\ttime_zone\020\010\022\023"
  "\n\017button_wakeword\020\t*\314\001\n\010EyeColor\022\021\n\rTIP_"
  "OVER_TEAL\020\000\022\022\n\016OVERFIT_ORANGE\020\001\022\022\n\016UNCAN"
  "NY_YELLOW\020\002\022\023\n\017NON_LINEAR_LIME\020\003\022\030\n\024SING"
  "ULARITY_SAPPHIRE\020\004\022\031\n\025FALSE_POSITIVE_PUR"
  "PLE\020\005\022\032\n\026CONFUSION_MATRIX_GREEN\020\006\022\020\n\014RAI"
  "NBOW_EYES\020\007\022\r\n\tROBOT_RED\020\010*K\n\016ButtonWake"
  "Word\022\036\n\032BUTTON_WAKEWORD_HEY_VECTOR\020\000\022\031\n\025"
  "BUTTON_WAKEWORD_ALEXA\020\001*5\n\016AccountSettin"
  "g\022\023\n\017DATA_COLLECTION\020\000\022\016\n\nAPP_LOCALE\020\001*\'"
  "\n\017UserEntitlement\022\024\n\020KICKSTARTER_EYES\020\000*"
  "A\n\nResultCode\022\025\n\021SETTINGS_ACCEPTED\020\000\022\034\n\030"
  "ERROR_UPDATE_IN_PROGRESS\020\001B Z\036Anki.Vecto"
  "r.external_interfaceb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_settings_2eproto_deps[1] = {
  &::descriptor_table_response_5fstatus_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_settings_2eproto_sccs[15] = {
  &scc_info_AccountSettingsConfig_settings_2eproto.base,
  &scc_info_CustomEyeColor_settings_2eproto.base,
  &scc_info_Jdoc_settings_2eproto.base,
  &scc_info_JdocsChanged_settings_2eproto.base,
  &scc_info_NamedJdoc_settings_2eproto.base,
  &scc_info_PullJdocsRequest_settings_2eproto.base,
  &scc_info_PullJdocsResponse_settings_2eproto.base,
  &scc_info_RobotSettingsConfig_settings_2eproto.base,
  &scc_info_UpdateAccountSettingsRequest_settings_2eproto.base,
  &scc_info_UpdateAccountSettingsResponse_settings_2eproto.base,
  &scc_info_UpdateSettingsRequest_settings_2eproto.base,
  &scc_info_UpdateSettingsResponse_settings_2eproto.base,
  &scc_info_UpdateUserEntitlementsRequest_settings_2eproto.base,
  &scc_info_UpdateUserEntitlementsResponse_settings_2eproto.base,
  &scc_info_UserEntitlementsConfig_settings_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_settings_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_settings_2eproto = {
  false, false, descriptor_table_protodef_settings_2eproto, "settings.proto", 3468,
  &descriptor_table_settings_2eproto_once, descriptor_table_settings_2eproto_sccs, descriptor_table_settings_2eproto_deps, 15, 1,
  schemas, file_default_instances, TableStruct_settings_2eproto::offsets,
  file_level_metadata_settings_2eproto, 15, file_level_enum_descriptors_settings_2eproto, file_level_service_descriptors_settings_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_settings_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_settings_2eproto)), true);
namespace Anki {
namespace Vector {
namespace external_interface {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ApiVersion_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[0];
}
bool ApiVersion_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Volume_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[1];
}
bool Volume_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* JdocType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[2];
}
bool JdocType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* JdocResolveMethod_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[3];
}
bool JdocResolveMethod_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RobotSetting_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[4];
}
bool RobotSetting_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:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* EyeColor_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[5];
}
bool EyeColor_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ButtonWakeWord_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[6];
}
bool ButtonWakeWord_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AccountSetting_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[7];
}
bool AccountSetting_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UserEntitlement_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[8];
}
bool UserEntitlement_IsValid(int value) {
  switch (value) {
    case 0:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ResultCode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_settings_2eproto);
  return file_level_enum_descriptors_settings_2eproto[9];
}
bool ResultCode_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}


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

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

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

void CustomEyeColor::SharedCtor() {
  ::memset(&hue_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enabled_) -
      reinterpret_cast<char*>(&hue_)) + sizeof(enabled_));
}

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

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

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


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

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

const char* CustomEyeColor::_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) {
      // float hue = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          hue_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float saturation = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          saturation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool enabled = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          enabled_ = ::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* CustomEyeColor::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CustomEyeColor)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  // bool enabled = 3;
  if (this->enabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_enabled(), 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.CustomEyeColor)
  return target;
}

size_t CustomEyeColor::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CustomEyeColor)
  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;

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

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

  // bool enabled = 3;
  if (this->enabled() != 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 CustomEyeColor::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CustomEyeColor)
  GOOGLE_DCHECK_NE(&from, this);
  const CustomEyeColor* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CustomEyeColor>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CustomEyeColor)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CustomEyeColor)
    MergeFrom(*source);
  }
}

void CustomEyeColor::MergeFrom(const CustomEyeColor& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CustomEyeColor)
  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.hue() <= 0 && from.hue() >= 0)) {
    _internal_set_hue(from._internal_hue());
  }
  if (!(from.saturation() <= 0 && from.saturation() >= 0)) {
    _internal_set_saturation(from._internal_saturation());
  }
  if (from.enabled() != 0) {
    _internal_set_enabled(from._internal_enabled());
  }
}

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

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

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

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

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


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

void RobotSettingsConfig::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.clock_24_hour_ = false;
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.eye_color_ = 0;
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.custom_eye_color_ = const_cast< ::Anki::Vector::external_interface::CustomEyeColor*>(
      ::Anki::Vector::external_interface::CustomEyeColor::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.default_location_.UnsafeSetDefault(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.dist_is_metric_ = false;
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.locale_.UnsafeSetDefault(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.master_volume_ = 0;
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.temp_is_fahrenheit_ = false;
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.time_zone_.UnsafeSetDefault(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_.button_wakeword_ = 0;
}
class RobotSettingsConfig::_Internal {
 public:
  static const ::Anki::Vector::external_interface::CustomEyeColor& custom_eye_color(const RobotSettingsConfig* msg);
};

const ::Anki::Vector::external_interface::CustomEyeColor&
RobotSettingsConfig::_Internal::custom_eye_color(const RobotSettingsConfig* msg) {
  return *msg->oneof_custom_eye_color_.custom_eye_color_;
}
void RobotSettingsConfig::set_allocated_custom_eye_color(::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_custom_eye_color();
  if (custom_eye_color) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(custom_eye_color);
    if (message_arena != submessage_arena) {
      custom_eye_color = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, custom_eye_color, submessage_arena);
    }
    set_has_custom_eye_color();
    oneof_custom_eye_color_.custom_eye_color_ = custom_eye_color;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
}
RobotSettingsConfig::RobotSettingsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotSettingsConfig)
}
RobotSettingsConfig::RobotSettingsConfig(const RobotSettingsConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_oneof_clock_24_hour();
  switch (from.oneof_clock_24_hour_case()) {
    case kClock24Hour: {
      _internal_set_clock_24_hour(from._internal_clock_24_hour());
      break;
    }
    case ONEOF_CLOCK_24_HOUR_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_eye_color();
  switch (from.oneof_eye_color_case()) {
    case kEyeColor: {
      _internal_set_eye_color(from._internal_eye_color());
      break;
    }
    case ONEOF_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_custom_eye_color();
  switch (from.oneof_custom_eye_color_case()) {
    case kCustomEyeColor: {
      _internal_mutable_custom_eye_color()->::Anki::Vector::external_interface::CustomEyeColor::MergeFrom(from._internal_custom_eye_color());
      break;
    }
    case ONEOF_CUSTOM_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_default_location();
  switch (from.oneof_default_location_case()) {
    case kDefaultLocation: {
      _internal_set_default_location(from._internal_default_location());
      break;
    }
    case ONEOF_DEFAULT_LOCATION_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_dist_is_metric();
  switch (from.oneof_dist_is_metric_case()) {
    case kDistIsMetric: {
      _internal_set_dist_is_metric(from._internal_dist_is_metric());
      break;
    }
    case ONEOF_DIST_IS_METRIC_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_locale();
  switch (from.oneof_locale_case()) {
    case kLocale: {
      _internal_set_locale(from._internal_locale());
      break;
    }
    case ONEOF_LOCALE_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_master_volume();
  switch (from.oneof_master_volume_case()) {
    case kMasterVolume: {
      _internal_set_master_volume(from._internal_master_volume());
      break;
    }
    case ONEOF_MASTER_VOLUME_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_temp_is_fahrenheit();
  switch (from.oneof_temp_is_fahrenheit_case()) {
    case kTempIsFahrenheit: {
      _internal_set_temp_is_fahrenheit(from._internal_temp_is_fahrenheit());
      break;
    }
    case ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_time_zone();
  switch (from.oneof_time_zone_case()) {
    case kTimeZone: {
      _internal_set_time_zone(from._internal_time_zone());
      break;
    }
    case ONEOF_TIME_ZONE_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_button_wakeword();
  switch (from.oneof_button_wakeword_case()) {
    case kButtonWakeword: {
      _internal_set_button_wakeword(from._internal_button_wakeword());
      break;
    }
    case ONEOF_BUTTON_WAKEWORD_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotSettingsConfig)
}

void RobotSettingsConfig::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotSettingsConfig_settings_2eproto.base);
  clear_has_oneof_clock_24_hour();
  clear_has_oneof_eye_color();
  clear_has_oneof_custom_eye_color();
  clear_has_oneof_default_location();
  clear_has_oneof_dist_is_metric();
  clear_has_oneof_locale();
  clear_has_oneof_master_volume();
  clear_has_oneof_temp_is_fahrenheit();
  clear_has_oneof_time_zone();
  clear_has_oneof_button_wakeword();
}

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

void RobotSettingsConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_clock_24_hour()) {
    clear_oneof_clock_24_hour();
  }
  if (has_oneof_eye_color()) {
    clear_oneof_eye_color();
  }
  if (has_oneof_custom_eye_color()) {
    clear_oneof_custom_eye_color();
  }
  if (has_oneof_default_location()) {
    clear_oneof_default_location();
  }
  if (has_oneof_dist_is_metric()) {
    clear_oneof_dist_is_metric();
  }
  if (has_oneof_locale()) {
    clear_oneof_locale();
  }
  if (has_oneof_master_volume()) {
    clear_oneof_master_volume();
  }
  if (has_oneof_temp_is_fahrenheit()) {
    clear_oneof_temp_is_fahrenheit();
  }
  if (has_oneof_time_zone()) {
    clear_oneof_time_zone();
  }
  if (has_oneof_button_wakeword()) {
    clear_oneof_button_wakeword();
  }
}

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


void RobotSettingsConfig::clear_oneof_clock_24_hour() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_clock_24_hour_case()) {
    case kClock24Hour: {
      // No need to clear
      break;
    }
    case ONEOF_CLOCK_24_HOUR_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_CLOCK_24_HOUR_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_eye_color() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_eye_color_case()) {
    case kEyeColor: {
      // No need to clear
      break;
    }
    case ONEOF_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  _oneof_case_[1] = ONEOF_EYE_COLOR_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_custom_eye_color() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_custom_eye_color_case()) {
    case kCustomEyeColor: {
      if (GetArena() == nullptr) {
        delete oneof_custom_eye_color_.custom_eye_color_;
      }
      break;
    }
    case ONEOF_CUSTOM_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  _oneof_case_[2] = ONEOF_CUSTOM_EYE_COLOR_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_default_location() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_default_location_case()) {
    case kDefaultLocation: {
      oneof_default_location_.default_location_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
      break;
    }
    case ONEOF_DEFAULT_LOCATION_NOT_SET: {
      break;
    }
  }
  _oneof_case_[3] = ONEOF_DEFAULT_LOCATION_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_dist_is_metric() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_dist_is_metric_case()) {
    case kDistIsMetric: {
      // No need to clear
      break;
    }
    case ONEOF_DIST_IS_METRIC_NOT_SET: {
      break;
    }
  }
  _oneof_case_[4] = ONEOF_DIST_IS_METRIC_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_locale() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_locale_case()) {
    case kLocale: {
      oneof_locale_.locale_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
      break;
    }
    case ONEOF_LOCALE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[5] = ONEOF_LOCALE_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_master_volume() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_master_volume_case()) {
    case kMasterVolume: {
      // No need to clear
      break;
    }
    case ONEOF_MASTER_VOLUME_NOT_SET: {
      break;
    }
  }
  _oneof_case_[6] = ONEOF_MASTER_VOLUME_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_temp_is_fahrenheit() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_temp_is_fahrenheit_case()) {
    case kTempIsFahrenheit: {
      // No need to clear
      break;
    }
    case ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET: {
      break;
    }
  }
  _oneof_case_[7] = ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_time_zone() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_time_zone_case()) {
    case kTimeZone: {
      oneof_time_zone_.time_zone_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
      break;
    }
    case ONEOF_TIME_ZONE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[8] = ONEOF_TIME_ZONE_NOT_SET;
}

void RobotSettingsConfig::clear_oneof_button_wakeword() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.RobotSettingsConfig)
  switch (oneof_button_wakeword_case()) {
    case kButtonWakeword: {
      // No need to clear
      break;
    }
    case ONEOF_BUTTON_WAKEWORD_NOT_SET: {
      break;
    }
  }
  _oneof_case_[9] = ONEOF_BUTTON_WAKEWORD_NOT_SET;
}


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

  clear_oneof_clock_24_hour();
  clear_oneof_eye_color();
  clear_oneof_custom_eye_color();
  clear_oneof_default_location();
  clear_oneof_dist_is_metric();
  clear_oneof_locale();
  clear_oneof_master_volume();
  clear_oneof_temp_is_fahrenheit();
  clear_oneof_time_zone();
  clear_oneof_button_wakeword();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotSettingsConfig::_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) {
      // bool clock_24_hour = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _internal_set_clock_24_hour(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EyeColor eye_color = 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_eye_color(static_cast<::Anki::Vector::external_interface::EyeColor>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomEyeColor custom_eye_color = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_custom_eye_color(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string default_location = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_default_location();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.RobotSettingsConfig.default_location"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool dist_is_metric = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          _internal_set_dist_is_metric(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string locale = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          auto str = _internal_mutable_locale();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.RobotSettingsConfig.locale"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Volume master_volume = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_master_volume(static_cast<::Anki::Vector::external_interface::Volume>(val));
        } else goto handle_unusual;
        continue;
      // bool temp_is_fahrenheit = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          _internal_set_temp_is_fahrenheit(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string time_zone = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          auto str = _internal_mutable_time_zone();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.RobotSettingsConfig.time_zone"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ButtonWakeWord button_wakeword = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_button_wakeword(static_cast<::Anki::Vector::external_interface::ButtonWakeWord>(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* RobotSettingsConfig::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotSettingsConfig)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool clock_24_hour = 1;
  if (_internal_has_clock_24_hour()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_clock_24_hour(), target);
  }

  // .Anki.Vector.external_interface.EyeColor eye_color = 2;
  if (_internal_has_eye_color()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_eye_color(), target);
  }

  // .Anki.Vector.external_interface.CustomEyeColor custom_eye_color = 3;
  if (_internal_has_custom_eye_color()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::custom_eye_color(this), target, stream);
  }

  // string default_location = 4;
  if (_internal_has_default_location()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_default_location().data(), static_cast<int>(this->_internal_default_location().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.RobotSettingsConfig.default_location");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_default_location(), target);
  }

  // bool dist_is_metric = 5;
  if (_internal_has_dist_is_metric()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_dist_is_metric(), target);
  }

  // string locale = 6;
  if (_internal_has_locale()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_locale().data(), static_cast<int>(this->_internal_locale().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.RobotSettingsConfig.locale");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_locale(), target);
  }

  // .Anki.Vector.external_interface.Volume master_volume = 7;
  if (_internal_has_master_volume()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      7, this->_internal_master_volume(), target);
  }

  // bool temp_is_fahrenheit = 8;
  if (_internal_has_temp_is_fahrenheit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(8, this->_internal_temp_is_fahrenheit(), target);
  }

  // string time_zone = 9;
  if (_internal_has_time_zone()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_time_zone().data(), static_cast<int>(this->_internal_time_zone().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.RobotSettingsConfig.time_zone");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_time_zone(), target);
  }

  // .Anki.Vector.external_interface.ButtonWakeWord button_wakeword = 10;
  if (_internal_has_button_wakeword()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_button_wakeword(), 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.RobotSettingsConfig)
  return target;
}

size_t RobotSettingsConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotSettingsConfig)
  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 (oneof_clock_24_hour_case()) {
    // bool clock_24_hour = 1;
    case kClock24Hour: {
      total_size += 1 + 1;
      break;
    }
    case ONEOF_CLOCK_24_HOUR_NOT_SET: {
      break;
    }
  }
  switch (oneof_eye_color_case()) {
    // .Anki.Vector.external_interface.EyeColor eye_color = 2;
    case kEyeColor: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_eye_color());
      break;
    }
    case ONEOF_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  switch (oneof_custom_eye_color_case()) {
    // .Anki.Vector.external_interface.CustomEyeColor custom_eye_color = 3;
    case kCustomEyeColor: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_custom_eye_color_.custom_eye_color_);
      break;
    }
    case ONEOF_CUSTOM_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  switch (oneof_default_location_case()) {
    // string default_location = 4;
    case kDefaultLocation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_default_location());
      break;
    }
    case ONEOF_DEFAULT_LOCATION_NOT_SET: {
      break;
    }
  }
  switch (oneof_dist_is_metric_case()) {
    // bool dist_is_metric = 5;
    case kDistIsMetric: {
      total_size += 1 + 1;
      break;
    }
    case ONEOF_DIST_IS_METRIC_NOT_SET: {
      break;
    }
  }
  switch (oneof_locale_case()) {
    // string locale = 6;
    case kLocale: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_locale());
      break;
    }
    case ONEOF_LOCALE_NOT_SET: {
      break;
    }
  }
  switch (oneof_master_volume_case()) {
    // .Anki.Vector.external_interface.Volume master_volume = 7;
    case kMasterVolume: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_master_volume());
      break;
    }
    case ONEOF_MASTER_VOLUME_NOT_SET: {
      break;
    }
  }
  switch (oneof_temp_is_fahrenheit_case()) {
    // bool temp_is_fahrenheit = 8;
    case kTempIsFahrenheit: {
      total_size += 1 + 1;
      break;
    }
    case ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET: {
      break;
    }
  }
  switch (oneof_time_zone_case()) {
    // string time_zone = 9;
    case kTimeZone: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_time_zone());
      break;
    }
    case ONEOF_TIME_ZONE_NOT_SET: {
      break;
    }
  }
  switch (oneof_button_wakeword_case()) {
    // .Anki.Vector.external_interface.ButtonWakeWord button_wakeword = 10;
    case kButtonWakeword: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_button_wakeword());
      break;
    }
    case ONEOF_BUTTON_WAKEWORD_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 RobotSettingsConfig::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotSettingsConfig)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotSettingsConfig* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotSettingsConfig>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotSettingsConfig)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotSettingsConfig)
    MergeFrom(*source);
  }
}

void RobotSettingsConfig::MergeFrom(const RobotSettingsConfig& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotSettingsConfig)
  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.oneof_clock_24_hour_case()) {
    case kClock24Hour: {
      _internal_set_clock_24_hour(from._internal_clock_24_hour());
      break;
    }
    case ONEOF_CLOCK_24_HOUR_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_eye_color_case()) {
    case kEyeColor: {
      _internal_set_eye_color(from._internal_eye_color());
      break;
    }
    case ONEOF_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_custom_eye_color_case()) {
    case kCustomEyeColor: {
      _internal_mutable_custom_eye_color()->::Anki::Vector::external_interface::CustomEyeColor::MergeFrom(from._internal_custom_eye_color());
      break;
    }
    case ONEOF_CUSTOM_EYE_COLOR_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_default_location_case()) {
    case kDefaultLocation: {
      _internal_set_default_location(from._internal_default_location());
      break;
    }
    case ONEOF_DEFAULT_LOCATION_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_dist_is_metric_case()) {
    case kDistIsMetric: {
      _internal_set_dist_is_metric(from._internal_dist_is_metric());
      break;
    }
    case ONEOF_DIST_IS_METRIC_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_locale_case()) {
    case kLocale: {
      _internal_set_locale(from._internal_locale());
      break;
    }
    case ONEOF_LOCALE_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_master_volume_case()) {
    case kMasterVolume: {
      _internal_set_master_volume(from._internal_master_volume());
      break;
    }
    case ONEOF_MASTER_VOLUME_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_temp_is_fahrenheit_case()) {
    case kTempIsFahrenheit: {
      _internal_set_temp_is_fahrenheit(from._internal_temp_is_fahrenheit());
      break;
    }
    case ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_time_zone_case()) {
    case kTimeZone: {
      _internal_set_time_zone(from._internal_time_zone());
      break;
    }
    case ONEOF_TIME_ZONE_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_button_wakeword_case()) {
    case kButtonWakeword: {
      _internal_set_button_wakeword(from._internal_button_wakeword());
      break;
    }
    case ONEOF_BUTTON_WAKEWORD_NOT_SET: {
      break;
    }
  }
}

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

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

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

void RobotSettingsConfig::InternalSwap(RobotSettingsConfig* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(oneof_clock_24_hour_, other->oneof_clock_24_hour_);
  swap(oneof_eye_color_, other->oneof_eye_color_);
  swap(oneof_custom_eye_color_, other->oneof_custom_eye_color_);
  swap(oneof_default_location_, other->oneof_default_location_);
  swap(oneof_dist_is_metric_, other->oneof_dist_is_metric_);
  swap(oneof_locale_, other->oneof_locale_);
  swap(oneof_master_volume_, other->oneof_master_volume_);
  swap(oneof_temp_is_fahrenheit_, other->oneof_temp_is_fahrenheit_);
  swap(oneof_time_zone_, other->oneof_time_zone_);
  swap(oneof_button_wakeword_, other->oneof_button_wakeword_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
  swap(_oneof_case_[1], other->_oneof_case_[1]);
  swap(_oneof_case_[2], other->_oneof_case_[2]);
  swap(_oneof_case_[3], other->_oneof_case_[3]);
  swap(_oneof_case_[4], other->_oneof_case_[4]);
  swap(_oneof_case_[5], other->_oneof_case_[5]);
  swap(_oneof_case_[6], other->_oneof_case_[6]);
  swap(_oneof_case_[7], other->_oneof_case_[7]);
  swap(_oneof_case_[8], other->_oneof_case_[8]);
  swap(_oneof_case_[9], other->_oneof_case_[9]);
}

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


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

void AccountSettingsConfig::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_AccountSettingsConfig_default_instance_.data_collection_ = false;
  ::Anki::Vector::external_interface::_AccountSettingsConfig_default_instance_.app_locale_.UnsafeSetDefault(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
class AccountSettingsConfig::_Internal {
 public:
};

AccountSettingsConfig::AccountSettingsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AccountSettingsConfig)
}
AccountSettingsConfig::AccountSettingsConfig(const AccountSettingsConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_oneof_data_collection();
  switch (from.oneof_data_collection_case()) {
    case kDataCollection: {
      _internal_set_data_collection(from._internal_data_collection());
      break;
    }
    case ONEOF_DATA_COLLECTION_NOT_SET: {
      break;
    }
  }
  clear_has_oneof_app_locale();
  switch (from.oneof_app_locale_case()) {
    case kAppLocale: {
      _internal_set_app_locale(from._internal_app_locale());
      break;
    }
    case ONEOF_APP_LOCALE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AccountSettingsConfig)
}

void AccountSettingsConfig::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AccountSettingsConfig_settings_2eproto.base);
  clear_has_oneof_data_collection();
  clear_has_oneof_app_locale();
}

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

void AccountSettingsConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_data_collection()) {
    clear_oneof_data_collection();
  }
  if (has_oneof_app_locale()) {
    clear_oneof_app_locale();
  }
}

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


void AccountSettingsConfig::clear_oneof_data_collection() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.AccountSettingsConfig)
  switch (oneof_data_collection_case()) {
    case kDataCollection: {
      // No need to clear
      break;
    }
    case ONEOF_DATA_COLLECTION_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_DATA_COLLECTION_NOT_SET;
}

void AccountSettingsConfig::clear_oneof_app_locale() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.AccountSettingsConfig)
  switch (oneof_app_locale_case()) {
    case kAppLocale: {
      oneof_app_locale_.app_locale_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
      break;
    }
    case ONEOF_APP_LOCALE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[1] = ONEOF_APP_LOCALE_NOT_SET;
}


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

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

const char* AccountSettingsConfig::_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) {
      // bool data_collection = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _internal_set_data_collection(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string app_locale = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_app_locale();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.AccountSettingsConfig.app_locale"));
          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* AccountSettingsConfig::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AccountSettingsConfig)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool data_collection = 1;
  if (_internal_has_data_collection()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_data_collection(), target);
  }

  // string app_locale = 2;
  if (_internal_has_app_locale()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_app_locale().data(), static_cast<int>(this->_internal_app_locale().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.AccountSettingsConfig.app_locale");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_app_locale(), 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.AccountSettingsConfig)
  return target;
}

size_t AccountSettingsConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AccountSettingsConfig)
  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 (oneof_data_collection_case()) {
    // bool data_collection = 1;
    case kDataCollection: {
      total_size += 1 + 1;
      break;
    }
    case ONEOF_DATA_COLLECTION_NOT_SET: {
      break;
    }
  }
  switch (oneof_app_locale_case()) {
    // string app_locale = 2;
    case kAppLocale: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_app_locale());
      break;
    }
    case ONEOF_APP_LOCALE_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 AccountSettingsConfig::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AccountSettingsConfig)
  GOOGLE_DCHECK_NE(&from, this);
  const AccountSettingsConfig* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AccountSettingsConfig>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AccountSettingsConfig)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AccountSettingsConfig)
    MergeFrom(*source);
  }
}

void AccountSettingsConfig::MergeFrom(const AccountSettingsConfig& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AccountSettingsConfig)
  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.oneof_data_collection_case()) {
    case kDataCollection: {
      _internal_set_data_collection(from._internal_data_collection());
      break;
    }
    case ONEOF_DATA_COLLECTION_NOT_SET: {
      break;
    }
  }
  switch (from.oneof_app_locale_case()) {
    case kAppLocale: {
      _internal_set_app_locale(from._internal_app_locale());
      break;
    }
    case ONEOF_APP_LOCALE_NOT_SET: {
      break;
    }
  }
}

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

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

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

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

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


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

void UserEntitlementsConfig::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UserEntitlementsConfig_default_instance_.kickstarter_eyes_ = false;
}
class UserEntitlementsConfig::_Internal {
 public:
};

UserEntitlementsConfig::UserEntitlementsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UserEntitlementsConfig)
}
UserEntitlementsConfig::UserEntitlementsConfig(const UserEntitlementsConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_oneof_kickstarter_eyes();
  switch (from.oneof_kickstarter_eyes_case()) {
    case kKickstarterEyes: {
      _internal_set_kickstarter_eyes(from._internal_kickstarter_eyes());
      break;
    }
    case ONEOF_KICKSTARTER_EYES_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UserEntitlementsConfig)
}

void UserEntitlementsConfig::SharedCtor() {
  clear_has_oneof_kickstarter_eyes();
}

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

void UserEntitlementsConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_kickstarter_eyes()) {
    clear_oneof_kickstarter_eyes();
  }
}

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


void UserEntitlementsConfig::clear_oneof_kickstarter_eyes() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.UserEntitlementsConfig)
  switch (oneof_kickstarter_eyes_case()) {
    case kKickstarterEyes: {
      // No need to clear
      break;
    }
    case ONEOF_KICKSTARTER_EYES_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_KICKSTARTER_EYES_NOT_SET;
}


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

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

const char* UserEntitlementsConfig::_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) {
      // bool kickstarter_eyes = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _internal_set_kickstarter_eyes(::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* UserEntitlementsConfig::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UserEntitlementsConfig)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool kickstarter_eyes = 1;
  if (_internal_has_kickstarter_eyes()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_kickstarter_eyes(), 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.UserEntitlementsConfig)
  return target;
}

size_t UserEntitlementsConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UserEntitlementsConfig)
  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 (oneof_kickstarter_eyes_case()) {
    // bool kickstarter_eyes = 1;
    case kKickstarterEyes: {
      total_size += 1 + 1;
      break;
    }
    case ONEOF_KICKSTARTER_EYES_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 UserEntitlementsConfig::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UserEntitlementsConfig)
  GOOGLE_DCHECK_NE(&from, this);
  const UserEntitlementsConfig* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UserEntitlementsConfig>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UserEntitlementsConfig)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UserEntitlementsConfig)
    MergeFrom(*source);
  }
}

void UserEntitlementsConfig::MergeFrom(const UserEntitlementsConfig& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UserEntitlementsConfig)
  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.oneof_kickstarter_eyes_case()) {
    case kKickstarterEyes: {
      _internal_set_kickstarter_eyes(from._internal_kickstarter_eyes());
      break;
    }
    case ONEOF_KICKSTARTER_EYES_NOT_SET: {
      break;
    }
  }
}

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

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

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

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

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


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

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

Jdoc::Jdoc(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Jdoc)
}
Jdoc::Jdoc(const Jdoc& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  client_metadata_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_client_metadata().empty()) {
    client_metadata_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_client_metadata(),
      GetArena());
  }
  json_doc_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_json_doc().empty()) {
    json_doc_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_json_doc(),
      GetArena());
  }
  ::memcpy(&doc_version_, &from.doc_version_,
    static_cast<size_t>(reinterpret_cast<char*>(&fmt_version_) -
    reinterpret_cast<char*>(&doc_version_)) + sizeof(fmt_version_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Jdoc)
}

void Jdoc::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Jdoc_settings_2eproto.base);
  client_metadata_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  json_doc_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&doc_version_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&fmt_version_) -
      reinterpret_cast<char*>(&doc_version_)) + sizeof(fmt_version_));
}

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

void Jdoc::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  client_metadata_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  json_doc_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

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

const char* Jdoc::_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) {
      // uint64 doc_version = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          doc_version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint64 fmt_version = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          fmt_version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string client_metadata = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_client_metadata();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.Jdoc.client_metadata"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string json_doc = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_json_doc();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.Jdoc.json_doc"));
          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* Jdoc::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.Jdoc)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint64 doc_version = 1;
  if (this->doc_version() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_doc_version(), target);
  }

  // uint64 fmt_version = 2;
  if (this->fmt_version() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(2, this->_internal_fmt_version(), target);
  }

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

  // string json_doc = 4;
  if (this->json_doc().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_json_doc().data(), static_cast<int>(this->_internal_json_doc().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.Jdoc.json_doc");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_json_doc(), 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.Jdoc)
  return target;
}

size_t Jdoc::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.Jdoc)
  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 client_metadata = 3;
  if (this->client_metadata().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_client_metadata());
  }

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

  // uint64 doc_version = 1;
  if (this->doc_version() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
        this->_internal_doc_version());
  }

  // uint64 fmt_version = 2;
  if (this->fmt_version() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
        this->_internal_fmt_version());
  }

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

void Jdoc::MergeFrom(const Jdoc& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.Jdoc)
  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.client_metadata().size() > 0) {
    _internal_set_client_metadata(from._internal_client_metadata());
  }
  if (from.json_doc().size() > 0) {
    _internal_set_json_doc(from._internal_json_doc());
  }
  if (from.doc_version() != 0) {
    _internal_set_doc_version(from._internal_doc_version());
  }
  if (from.fmt_version() != 0) {
    _internal_set_fmt_version(from._internal_fmt_version());
  }
}

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

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

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

void Jdoc::InternalSwap(Jdoc* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  client_metadata_.Swap(&other->client_metadata_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  json_doc_.Swap(&other->json_doc_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Jdoc, fmt_version_)
      + sizeof(Jdoc::fmt_version_)
      - PROTOBUF_FIELD_OFFSET(Jdoc, doc_version_)>(
          reinterpret_cast<char*>(&doc_version_),
          reinterpret_cast<char*>(&other->doc_version_));
}

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


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

void NamedJdoc::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_NamedJdoc_default_instance_._instance.get_mutable()->doc_ = const_cast< ::Anki::Vector::external_interface::Jdoc*>(
      ::Anki::Vector::external_interface::Jdoc::internal_default_instance());
}
class NamedJdoc::_Internal {
 public:
  static const ::Anki::Vector::external_interface::Jdoc& doc(const NamedJdoc* msg);
};

const ::Anki::Vector::external_interface::Jdoc&
NamedJdoc::_Internal::doc(const NamedJdoc* msg) {
  return *msg->doc_;
}
NamedJdoc::NamedJdoc(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.NamedJdoc)
}
NamedJdoc::NamedJdoc(const NamedJdoc& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_doc()) {
    doc_ = new ::Anki::Vector::external_interface::Jdoc(*from.doc_);
  } else {
    doc_ = nullptr;
  }
  jdoc_type_ = from.jdoc_type_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.NamedJdoc)
}

void NamedJdoc::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NamedJdoc_settings_2eproto.base);
  ::memset(&doc_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&jdoc_type_) -
      reinterpret_cast<char*>(&doc_)) + sizeof(jdoc_type_));
}

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

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

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


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

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

const char* NamedJdoc::_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.JdocType jdoc_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_jdoc_type(static_cast<::Anki::Vector::external_interface::JdocType>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Jdoc doc = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_doc(), 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* NamedJdoc::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.NamedJdoc)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

  // .Anki.Vector.external_interface.Jdoc doc = 2;
  if (this->has_doc()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::doc(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.NamedJdoc)
  return target;
}

size_t NamedJdoc::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.NamedJdoc)
  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.Jdoc doc = 2;
  if (this->has_doc()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *doc_);
  }

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

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

void NamedJdoc::MergeFrom(const NamedJdoc& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.NamedJdoc)
  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_doc()) {
    _internal_mutable_doc()->::Anki::Vector::external_interface::Jdoc::MergeFrom(from._internal_doc());
  }
  if (from.jdoc_type() != 0) {
    _internal_set_jdoc_type(from._internal_jdoc_type());
  }
}

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

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

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

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

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


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

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

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

void PullJdocsRequest::SharedCtor() {
}

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

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

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


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

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

const char* PullJdocsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_jdoc_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_jdoc_types(static_cast<::Anki::Vector::external_interface::JdocType>(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* PullJdocsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PullJdocsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  {
    int byte_size = _jdoc_types_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          1, jdoc_types_, byte_size, target);
    }
  }

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

size_t PullJdocsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PullJdocsRequest)
  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 .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_jdoc_types_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
        this->_internal_jdoc_types(static_cast<int>(i)));
    }
    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);
    _jdoc_types_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

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

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

void PullJdocsRequest::MergeFrom(const PullJdocsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PullJdocsRequest)
  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;

  jdoc_types_.MergeFrom(from.jdoc_types_);
}

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

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

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

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

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


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

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

const ::Anki::Vector::external_interface::ResponseStatus&
PullJdocsResponse::_Internal::status(const PullJdocsResponse* msg) {
  return *msg->status_;
}
void PullJdocsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PullJdocsResponse::PullJdocsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  named_jdocs_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PullJdocsResponse)
}
PullJdocsResponse::PullJdocsResponse(const PullJdocsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      named_jdocs_(from.named_jdocs_) {
  _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.PullJdocsResponse)
}

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

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

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

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


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

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

const char* PullJdocsResponse::_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 .Anki.Vector.external_interface.NamedJdoc named_jdocs = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_named_jdocs(), ptr);
            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* PullJdocsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PullJdocsResponse)
  ::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 .Anki.Vector.external_interface.NamedJdoc named_jdocs = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_named_jdocs_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_named_jdocs(i), target, stream);
  }

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

size_t PullJdocsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PullJdocsResponse)
  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 .Anki.Vector.external_interface.NamedJdoc named_jdocs = 2;
  total_size += 1UL * this->_internal_named_jdocs_size();
  for (const auto& msg : this->named_jdocs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

void PullJdocsResponse::MergeFrom(const PullJdocsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PullJdocsResponse)
  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;

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

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

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

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

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

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


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

void UpdateSettingsRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UpdateSettingsRequest_default_instance_._instance.get_mutable()->settings_ = const_cast< ::Anki::Vector::external_interface::RobotSettingsConfig*>(
      ::Anki::Vector::external_interface::RobotSettingsConfig::internal_default_instance());
}
class UpdateSettingsRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::RobotSettingsConfig& settings(const UpdateSettingsRequest* msg);
};

const ::Anki::Vector::external_interface::RobotSettingsConfig&
UpdateSettingsRequest::_Internal::settings(const UpdateSettingsRequest* msg) {
  return *msg->settings_;
}
UpdateSettingsRequest::UpdateSettingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateSettingsRequest)
}
UpdateSettingsRequest::UpdateSettingsRequest(const UpdateSettingsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_settings()) {
    settings_ = new ::Anki::Vector::external_interface::RobotSettingsConfig(*from.settings_);
  } else {
    settings_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateSettingsRequest)
}

void UpdateSettingsRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateSettingsRequest_settings_2eproto.base);
  settings_ = nullptr;
}

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

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

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


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

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

const char* UpdateSettingsRequest::_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.RobotSettingsConfig settings = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_settings(), 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* UpdateSettingsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateSettingsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.RobotSettingsConfig settings = 1;
  if (this->has_settings()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::settings(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.UpdateSettingsRequest)
  return target;
}

size_t UpdateSettingsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateSettingsRequest)
  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.RobotSettingsConfig settings = 1;
  if (this->has_settings()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *settings_);
  }

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

void UpdateSettingsRequest::MergeFrom(const UpdateSettingsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateSettingsRequest)
  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_settings()) {
    _internal_mutable_settings()->::Anki::Vector::external_interface::RobotSettingsConfig::MergeFrom(from._internal_settings());
  }
}

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

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

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

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

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


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

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

const ::Anki::Vector::external_interface::ResponseStatus&
UpdateSettingsResponse::_Internal::status(const UpdateSettingsResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::Jdoc&
UpdateSettingsResponse::_Internal::doc(const UpdateSettingsResponse* msg) {
  return *msg->doc_;
}
void UpdateSettingsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UpdateSettingsResponse::UpdateSettingsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateSettingsResponse)
}
UpdateSettingsResponse::UpdateSettingsResponse(const UpdateSettingsResponse& 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;
  }
  if (from._internal_has_doc()) {
    doc_ = new ::Anki::Vector::external_interface::Jdoc(*from.doc_);
  } else {
    doc_ = nullptr;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateSettingsResponse)
}

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

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

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

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


void UpdateSettingsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateSettingsResponse)
  ::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;
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
  code_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateSettingsResponse::_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;
      // .Anki.Vector.external_interface.ResultCode code = 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_code(static_cast<::Anki::Vector::external_interface::ResultCode>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Jdoc doc = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_doc(), 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* UpdateSettingsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateSettingsResponse)
  ::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);
  }

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

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::doc(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.UpdateSettingsResponse)
  return target;
}

size_t UpdateSettingsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateSettingsResponse)
  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_);
  }

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *doc_);
  }

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

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

void UpdateSettingsResponse::MergeFrom(const UpdateSettingsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateSettingsResponse)
  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.has_doc()) {
    _internal_mutable_doc()->::Anki::Vector::external_interface::Jdoc::MergeFrom(from._internal_doc());
  }
  if (from.code() != 0) {
    _internal_set_code(from._internal_code());
  }
}

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

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

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

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

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


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

void UpdateAccountSettingsRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UpdateAccountSettingsRequest_default_instance_._instance.get_mutable()->account_settings_ = const_cast< ::Anki::Vector::external_interface::AccountSettingsConfig*>(
      ::Anki::Vector::external_interface::AccountSettingsConfig::internal_default_instance());
}
class UpdateAccountSettingsRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::AccountSettingsConfig& account_settings(const UpdateAccountSettingsRequest* msg);
};

const ::Anki::Vector::external_interface::AccountSettingsConfig&
UpdateAccountSettingsRequest::_Internal::account_settings(const UpdateAccountSettingsRequest* msg) {
  return *msg->account_settings_;
}
UpdateAccountSettingsRequest::UpdateAccountSettingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
}
UpdateAccountSettingsRequest::UpdateAccountSettingsRequest(const UpdateAccountSettingsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_account_settings()) {
    account_settings_ = new ::Anki::Vector::external_interface::AccountSettingsConfig(*from.account_settings_);
  } else {
    account_settings_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
}

void UpdateAccountSettingsRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateAccountSettingsRequest_settings_2eproto.base);
  account_settings_ = nullptr;
}

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

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

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


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

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

const char* UpdateAccountSettingsRequest::_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.AccountSettingsConfig account_settings = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_account_settings(), 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* UpdateAccountSettingsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AccountSettingsConfig account_settings = 1;
  if (this->has_account_settings()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::account_settings(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.UpdateAccountSettingsRequest)
  return target;
}

size_t UpdateAccountSettingsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
  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.AccountSettingsConfig account_settings = 1;
  if (this->has_account_settings()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *account_settings_);
  }

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

void UpdateAccountSettingsRequest::MergeFrom(const UpdateAccountSettingsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
  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_account_settings()) {
    _internal_mutable_account_settings()->::Anki::Vector::external_interface::AccountSettingsConfig::MergeFrom(from._internal_account_settings());
  }
}

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

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

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

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

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


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

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

const ::Anki::Vector::external_interface::ResponseStatus&
UpdateAccountSettingsResponse::_Internal::status(const UpdateAccountSettingsResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::Jdoc&
UpdateAccountSettingsResponse::_Internal::doc(const UpdateAccountSettingsResponse* msg) {
  return *msg->doc_;
}
void UpdateAccountSettingsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UpdateAccountSettingsResponse::UpdateAccountSettingsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
}
UpdateAccountSettingsResponse::UpdateAccountSettingsResponse(const UpdateAccountSettingsResponse& 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;
  }
  if (from._internal_has_doc()) {
    doc_ = new ::Anki::Vector::external_interface::Jdoc(*from.doc_);
  } else {
    doc_ = nullptr;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
}

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

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

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

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


void UpdateAccountSettingsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
  ::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;
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
  code_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateAccountSettingsResponse::_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;
      // .Anki.Vector.external_interface.ResultCode code = 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_code(static_cast<::Anki::Vector::external_interface::ResultCode>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Jdoc doc = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_doc(), 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* UpdateAccountSettingsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
  ::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);
  }

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

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::doc(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.UpdateAccountSettingsResponse)
  return target;
}

size_t UpdateAccountSettingsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
  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_);
  }

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *doc_);
  }

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

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

void UpdateAccountSettingsResponse::MergeFrom(const UpdateAccountSettingsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
  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.has_doc()) {
    _internal_mutable_doc()->::Anki::Vector::external_interface::Jdoc::MergeFrom(from._internal_doc());
  }
  if (from.code() != 0) {
    _internal_set_code(from._internal_code());
  }
}

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

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

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

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

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


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

void UpdateUserEntitlementsRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UpdateUserEntitlementsRequest_default_instance_._instance.get_mutable()->user_entitlements_ = const_cast< ::Anki::Vector::external_interface::UserEntitlementsConfig*>(
      ::Anki::Vector::external_interface::UserEntitlementsConfig::internal_default_instance());
}
class UpdateUserEntitlementsRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::UserEntitlementsConfig& user_entitlements(const UpdateUserEntitlementsRequest* msg);
};

const ::Anki::Vector::external_interface::UserEntitlementsConfig&
UpdateUserEntitlementsRequest::_Internal::user_entitlements(const UpdateUserEntitlementsRequest* msg) {
  return *msg->user_entitlements_;
}
UpdateUserEntitlementsRequest::UpdateUserEntitlementsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
}
UpdateUserEntitlementsRequest::UpdateUserEntitlementsRequest(const UpdateUserEntitlementsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_user_entitlements()) {
    user_entitlements_ = new ::Anki::Vector::external_interface::UserEntitlementsConfig(*from.user_entitlements_);
  } else {
    user_entitlements_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
}

void UpdateUserEntitlementsRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateUserEntitlementsRequest_settings_2eproto.base);
  user_entitlements_ = nullptr;
}

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

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

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


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

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

const char* UpdateUserEntitlementsRequest::_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.UserEntitlementsConfig user_entitlements = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_entitlements(), 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* UpdateUserEntitlementsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.UserEntitlementsConfig user_entitlements = 1;
  if (this->has_user_entitlements()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::user_entitlements(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.UpdateUserEntitlementsRequest)
  return target;
}

size_t UpdateUserEntitlementsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
  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.UserEntitlementsConfig user_entitlements = 1;
  if (this->has_user_entitlements()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *user_entitlements_);
  }

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

void UpdateUserEntitlementsRequest::MergeFrom(const UpdateUserEntitlementsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
  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_user_entitlements()) {
    _internal_mutable_user_entitlements()->::Anki::Vector::external_interface::UserEntitlementsConfig::MergeFrom(from._internal_user_entitlements());
  }
}

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

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

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

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

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


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

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

const ::Anki::Vector::external_interface::ResponseStatus&
UpdateUserEntitlementsResponse::_Internal::status(const UpdateUserEntitlementsResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::Jdoc&
UpdateUserEntitlementsResponse::_Internal::doc(const UpdateUserEntitlementsResponse* msg) {
  return *msg->doc_;
}
void UpdateUserEntitlementsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UpdateUserEntitlementsResponse::UpdateUserEntitlementsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
}
UpdateUserEntitlementsResponse::UpdateUserEntitlementsResponse(const UpdateUserEntitlementsResponse& 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;
  }
  if (from._internal_has_doc()) {
    doc_ = new ::Anki::Vector::external_interface::Jdoc(*from.doc_);
  } else {
    doc_ = nullptr;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
}

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

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

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

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


void UpdateUserEntitlementsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
  ::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;
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
  code_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateUserEntitlementsResponse::_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;
      // .Anki.Vector.external_interface.ResultCode code = 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_code(static_cast<::Anki::Vector::external_interface::ResultCode>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Jdoc doc = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_doc(), 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* UpdateUserEntitlementsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
  ::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);
  }

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

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::doc(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.UpdateUserEntitlementsResponse)
  return target;
}

size_t UpdateUserEntitlementsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
  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_);
  }

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  if (this->has_doc()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *doc_);
  }

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

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

void UpdateUserEntitlementsResponse::MergeFrom(const UpdateUserEntitlementsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
  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.has_doc()) {
    _internal_mutable_doc()->::Anki::Vector::external_interface::Jdoc::MergeFrom(from._internal_doc());
  }
  if (from.code() != 0) {
    _internal_set_code(from._internal_code());
  }
}

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

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

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

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

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


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

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

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

void JdocsChanged::SharedCtor() {
}

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

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

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


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

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

const char* JdocsChanged::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_jdoc_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_jdoc_types(static_cast<::Anki::Vector::external_interface::JdocType>(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* JdocsChanged::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.JdocsChanged)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  {
    int byte_size = _jdoc_types_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          1, jdoc_types_, byte_size, target);
    }
  }

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

size_t JdocsChanged::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.JdocsChanged)
  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 .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_jdoc_types_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
        this->_internal_jdoc_types(static_cast<int>(i)));
    }
    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);
    _jdoc_types_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

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

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

void JdocsChanged::MergeFrom(const JdocsChanged& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.JdocsChanged)
  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;

  jdoc_types_.MergeFrom(from.jdoc_types_);
}

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

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

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

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

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



// Begin code inserted by Anki plugin.
CustomEyeColor::CustomEyeColor( float hue, float saturation, bool enabled )
  : CustomEyeColor(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_hue( hue );
  set_saturation( saturation );
  set_enabled( enabled );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UserEntitlementsConfig::UserEntitlementsConfig( bool kickstarter_eyes )
  : UserEntitlementsConfig(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_kickstarter_eyes( kickstarter_eyes );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
Jdoc::Jdoc( ::google::protobuf::uint64 doc_version, ::google::protobuf::uint64 fmt_version, const std::string& client_metadata, const std::string& json_doc )
  : Jdoc(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_doc_version( doc_version );
  set_fmt_version( fmt_version );
  set_client_metadata( client_metadata );
  set_json_doc( json_doc );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
NamedJdoc::NamedJdoc( ::Anki::Vector::external_interface::JdocType jdoc_type, Jdoc* doc )
  : NamedJdoc(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_jdoc_type( jdoc_type );
  set_allocated_doc( doc );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateSettingsRequest::UpdateSettingsRequest( RobotSettingsConfig* settings )
  : UpdateSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_settings( settings );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateSettingsResponse::UpdateSettingsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc )
  : UpdateSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_code( code );
  set_allocated_doc( doc );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateAccountSettingsRequest::UpdateAccountSettingsRequest( AccountSettingsConfig* account_settings )
  : UpdateAccountSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_account_settings( account_settings );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateAccountSettingsResponse::UpdateAccountSettingsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc )
  : UpdateAccountSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_code( code );
  set_allocated_doc( doc );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateUserEntitlementsRequest::UpdateUserEntitlementsRequest( UserEntitlementsConfig* user_entitlements )
  : UpdateUserEntitlementsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_user_entitlements( user_entitlements );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateUserEntitlementsResponse::UpdateUserEntitlementsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc )
  : UpdateUserEntitlementsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_code( code );
  set_allocated_doc( doc );
}
// 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::CustomEyeColor* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CustomEyeColor >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CustomEyeColor >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotSettingsConfig* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotSettingsConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotSettingsConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AccountSettingsConfig* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AccountSettingsConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AccountSettingsConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UserEntitlementsConfig* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UserEntitlementsConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UserEntitlementsConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Jdoc* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Jdoc >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Jdoc >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::NamedJdoc* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::NamedJdoc >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::NamedJdoc >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PullJdocsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PullJdocsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PullJdocsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PullJdocsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PullJdocsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PullJdocsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateSettingsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateSettingsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateSettingsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateSettingsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateSettingsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateSettingsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAccountSettingsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateAccountSettingsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAccountSettingsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateAccountSettingsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::JdocsChanged* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::JdocsChanged >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::JdocsChanged >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

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