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

#include "RAMessages.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace RAMessages {
class InitialMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<InitialMessage>
      _instance;
} _InitialMessage_default_instance_;
class SecretMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<SecretMessage>
      _instance;
} _SecretMessage_default_instance_;
class MessageMsg0DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMsg0>
      _instance;
} _MessageMsg0_default_instance_;
class MessageMSG1DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMSG1>
      _instance;
} _MessageMSG1_default_instance_;
class MessageMSG2DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMSG2>
      _instance;
} _MessageMSG2_default_instance_;
class MessageMSG3DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMSG3>
      _instance;
} _MessageMSG3_default_instance_;
class AttestationMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<AttestationMessage>
      _instance;
} _AttestationMessage_default_instance_;
}  // namespace RAMessages
namespace protobuf_RAMessages_2eproto {
static void InitDefaultsInitialMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_InitialMessage_default_instance_;
    new (ptr) ::RAMessages::InitialMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::InitialMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_InitialMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsInitialMessage}, {}};

static void InitDefaultsSecretMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_SecretMessage_default_instance_;
    new (ptr) ::RAMessages::SecretMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::SecretMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_SecretMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSecretMessage}, {}};

static void InitDefaultsMessageMsg0() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_MessageMsg0_default_instance_;
    new (ptr) ::RAMessages::MessageMsg0();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::MessageMsg0::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MessageMsg0 =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMessageMsg0}, {}};

static void InitDefaultsMessageMSG1() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_MessageMSG1_default_instance_;
    new (ptr) ::RAMessages::MessageMSG1();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::MessageMSG1::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MessageMSG1 =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMessageMSG1}, {}};

static void InitDefaultsMessageMSG2() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_MessageMSG2_default_instance_;
    new (ptr) ::RAMessages::MessageMSG2();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::MessageMSG2::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MessageMSG2 =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMessageMSG2}, {}};

static void InitDefaultsMessageMSG3() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_MessageMSG3_default_instance_;
    new (ptr) ::RAMessages::MessageMSG3();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::MessageMSG3::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MessageMSG3 =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMessageMSG3}, {}};

static void InitDefaultsAttestationMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::RAMessages::_AttestationMessage_default_instance_;
    new (ptr) ::RAMessages::AttestationMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::RAMessages::AttestationMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_AttestationMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsAttestationMessage}, {}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_InitialMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_SecretMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMsg0.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMSG1.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMSG2.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMSG3.base);
  ::google::protobuf::internal::InitSCC(&scc_info_AttestationMessage.base);
}

::google::protobuf::Metadata file_level_metadata[7];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::InitialMessage, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::InitialMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::InitialMessage, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::InitialMessage, size_),
  0,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::SecretMessage, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::SecretMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::SecretMessage, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::SecretMessage, size_),
  0,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMsg0, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMsg0, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMsg0, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMsg0, epid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMsg0, status_),
  0,
  1,
  2,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, gax_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, gay_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG1, gid_),
  0,
  ~0u,
  ~0u,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, public_key_gx_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, public_key_gy_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, quote_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, spid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, cmac_kdf_id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, signature_x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, signature_y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, smac_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, size_sigrl_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG2, sigrl_),
  0,
  1,
  ~0u,
  ~0u,
  2,
  ~0u,
  3,
  ~0u,
  ~0u,
  ~0u,
  4,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, sgx_mac_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, gax_msg3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, gay_msg3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, sec_property_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::MessageMSG3, quote_),
  0,
  1,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, epid_group_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, tcb_evaluation_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, pse_evaluation_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, latest_equivalent_tcb_psvn_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, latest_pse_isvsvn_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, latest_psda_svn_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, performance_rekey_gid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, ec_sign256_x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, ec_sign256_y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, mac_smk_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, result_size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, reserved_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, payload_tag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::RAMessages::AttestationMessage, payload_),
  0,
  1,
  2,
  3,
  4,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  ~0u,
  5,
  ~0u,
  ~0u,
  ~0u,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 7, sizeof(::RAMessages::InitialMessage)},
  { 9, 16, sizeof(::RAMessages::SecretMessage)},
  { 18, 26, sizeof(::RAMessages::MessageMsg0)},
  { 29, 38, sizeof(::RAMessages::MessageMSG1)},
  { 42, 59, sizeof(::RAMessages::MessageMSG2)},
  { 71, 83, sizeof(::RAMessages::MessageMSG3)},
  { 90, 111, sizeof(::RAMessages::AttestationMessage)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_InitialMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_SecretMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_MessageMsg0_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_MessageMSG1_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_MessageMSG2_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_MessageMSG3_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::RAMessages::_AttestationMessage_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "RAMessages.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

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

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\020RAMessages.proto\022\nRAMessages\",\n\016Initia"
      "lMessage\022\014\n\004type\030\001 \002(\r\022\014\n\004size\030\002 \001(\r\"+\n\r"
      "SecretMessage\022\014\n\004type\030\001 \002(\r\022\014\n\004size\030\002 \001("
      "\r\"9\n\013MessageMsg0\022\014\n\004type\030\001 \002(\r\022\014\n\004epid\030\002"
      " \002(\r\022\016\n\006status\030\003 \001(\r\"N\n\013MessageMSG1\022\014\n\004t"
      "ype\030\001 \002(\r\022\017\n\003GaX\030\002 \003(\rB\002\020\001\022\017\n\003GaY\030\003 \003(\rB"
      "\002\020\001\022\017\n\003GID\030\004 \003(\rB\002\020\001\"\205\002\n\013MessageMSG2\022\014\n\004"
      "type\030\001 \002(\r\022\014\n\004size\030\002 \001(\r\022\031\n\rpublic_key_g"
      "x\030\003 \003(\rB\002\020\001\022\031\n\rpublic_key_gy\030\004 \003(\rB\002\020\001\022\022"
      "\n\nquote_type\030\005 \001(\r\022\020\n\004spid\030\006 \003(\rB\002\020\001\022\023\n\013"
      "cmac_kdf_id\030\007 \001(\r\022\027\n\013signature_x\030\010 \003(\rB\002"
      "\020\001\022\027\n\013signature_y\030\t \003(\rB\002\020\001\022\020\n\004smac\030\n \003("
      "\rB\002\020\001\022\022\n\nsize_sigrl\030\013 \001(\r\022\021\n\005sigrl\030\014 \003(\r"
      "B\002\020\001\"\227\001\n\013MessageMSG3\022\014\n\004type\030\001 \002(\r\022\014\n\004si"
      "ze\030\002 \001(\r\022\023\n\007sgx_mac\030\003 \003(\rB\002\020\001\022\024\n\010gax_msg"
      "3\030\004 \003(\rB\002\020\001\022\024\n\010gay_msg3\030\005 \003(\rB\002\020\001\022\030\n\014sec"
      "_property\030\006 \003(\rB\002\020\001\022\021\n\005quote\030\007 \003(\rB\002\020\001\"\262"
      "\003\n\022AttestationMessage\022\014\n\004type\030\001 \002(\r\022\014\n\004s"
      "ize\030\002 \002(\r\022\031\n\021epid_group_status\030\003 \001(\r\022\035\n\025"
      "tcb_evaluation_status\030\004 \001(\r\022\035\n\025pse_evalu"
      "ation_status\030\005 \001(\r\022&\n\032latest_equivalent_"
      "tcb_psvn\030\006 \003(\rB\002\020\001\022\035\n\021latest_pse_isvsvn\030"
      "\007 \003(\rB\002\020\001\022\033\n\017latest_psda_svn\030\010 \003(\rB\002\020\001\022!"
      "\n\025performance_rekey_gid\030\t \003(\rB\002\020\001\022\030\n\014ec_"
      "sign256_x\030\n \003(\rB\002\020\001\022\030\n\014ec_sign256_y\030\013 \003("
      "\rB\002\020\001\022\023\n\007mac_smk\030\014 \003(\rB\002\020\001\022\023\n\013result_siz"
      "e\030\r \001(\r\022\024\n\010reserved\030\016 \003(\rB\002\020\001\022\027\n\013payload"
      "_tag\030\017 \003(\rB\002\020\001\022\023\n\007payload\030\020 \003(\rB\002\020\001"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1115);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "RAMessages.proto", &protobuf_RegisterTypes);
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_RAMessages_2eproto
namespace RAMessages {

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

void InitialMessage::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int InitialMessage::kTypeFieldNumber;
const int InitialMessage::kSizeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

InitialMessage::InitialMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_InitialMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.InitialMessage)
}
InitialMessage::InitialMessage(const InitialMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&size_) -
    reinterpret_cast<char*>(&type_)) + sizeof(size_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.InitialMessage)
}

void InitialMessage::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&size_) -
      reinterpret_cast<char*>(&type_)) + sizeof(size_));
}

InitialMessage::~InitialMessage() {
  // @@protoc_insertion_point(destructor:RAMessages.InitialMessage)
  SharedDtor();
}

void InitialMessage::SharedDtor() {
}

void InitialMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* InitialMessage::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const InitialMessage& InitialMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_InitialMessage.base);
  return *internal_default_instance();
}


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

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

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

      // optional uint32 size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

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

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

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

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

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required uint32 type = 1;
  if (has_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }
  // optional uint32 size = 2;
  if (has_size()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->size());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      size_ = from.size_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

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

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


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

void SecretMessage::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SecretMessage::kTypeFieldNumber;
const int SecretMessage::kSizeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SecretMessage::SecretMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_SecretMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.SecretMessage)
}
SecretMessage::SecretMessage(const SecretMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&size_) -
    reinterpret_cast<char*>(&type_)) + sizeof(size_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.SecretMessage)
}

void SecretMessage::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&size_) -
      reinterpret_cast<char*>(&type_)) + sizeof(size_));
}

SecretMessage::~SecretMessage() {
  // @@protoc_insertion_point(destructor:RAMessages.SecretMessage)
  SharedDtor();
}

void SecretMessage::SharedDtor() {
}

void SecretMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* SecretMessage::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SecretMessage& SecretMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_SecretMessage.base);
  return *internal_default_instance();
}


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

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

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

      // optional uint32 size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

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

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

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

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

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required uint32 type = 1;
  if (has_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }
  // optional uint32 size = 2;
  if (has_size()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->size());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      size_ = from.size_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

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

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


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

void MessageMsg0::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMsg0::kTypeFieldNumber;
const int MessageMsg0::kEpidFieldNumber;
const int MessageMsg0::kStatusFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMsg0::MessageMsg0()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_MessageMsg0.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.MessageMsg0)
}
MessageMsg0::MessageMsg0(const MessageMsg0& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&status_) -
    reinterpret_cast<char*>(&type_)) + sizeof(status_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.MessageMsg0)
}

void MessageMsg0::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&status_) -
      reinterpret_cast<char*>(&type_)) + sizeof(status_));
}

MessageMsg0::~MessageMsg0() {
  // @@protoc_insertion_point(destructor:RAMessages.MessageMsg0)
  SharedDtor();
}

void MessageMsg0::SharedDtor() {
}

void MessageMsg0::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMsg0::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMsg0& MessageMsg0::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_MessageMsg0.base);
  return *internal_default_instance();
}


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

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

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

      // required uint32 epid = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_epid();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &epid_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 status = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_status();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &status_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

  // required uint32 epid = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->epid(), output);
  }

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

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

  // required uint32 epid = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->epid(), target);
  }

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

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

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

  if (has_type()) {
    // required uint32 type = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }

  if (has_epid()) {
    // required uint32 epid = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->epid());
  }

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

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

    // required uint32 epid = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->epid());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // optional uint32 status = 3;
  if (has_status()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->status());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      epid_ = from.epid_;
    }
    if (cached_has_bits & 0x00000004u) {
      status_ = from.status_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

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

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


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

void MessageMSG1::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMSG1::kTypeFieldNumber;
const int MessageMSG1::kGaXFieldNumber;
const int MessageMSG1::kGaYFieldNumber;
const int MessageMSG1::kGIDFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMSG1::MessageMSG1()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_MessageMSG1.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.MessageMSG1)
}
MessageMSG1::MessageMSG1(const MessageMSG1& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      gax_(from.gax_),
      gay_(from.gay_),
      gid_(from.gid_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:RAMessages.MessageMSG1)
}

void MessageMSG1::SharedCtor() {
  type_ = 0u;
}

MessageMSG1::~MessageMSG1() {
  // @@protoc_insertion_point(destructor:RAMessages.MessageMSG1)
  SharedDtor();
}

void MessageMSG1::SharedDtor() {
}

void MessageMSG1::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMSG1::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMSG1& MessageMSG1::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_MessageMSG1.base);
  return *internal_default_instance();
}


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

  gax_.Clear();
  gay_.Clear();
  gid_.Clear();
  type_ = 0u;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

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

      // repeated uint32 GaX = 2 [packed = true];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gax())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18u, input, this->mutable_gax())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 GaY = 3 [packed = true];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gay())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26u, input, this->mutable_gay())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 GID = 4 [packed = true];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gid())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 34u, input, this->mutable_gid())));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

  // repeated uint32 GaX = 2 [packed = true];
  if (this->gax_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _gax_cached_byte_size_));
  }
  for (int i = 0, n = this->gax_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gax(i), output);
  }

  // repeated uint32 GaY = 3 [packed = true];
  if (this->gay_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _gay_cached_byte_size_));
  }
  for (int i = 0, n = this->gay_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gay(i), output);
  }

  // repeated uint32 GID = 4 [packed = true];
  if (this->gid_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _gid_cached_byte_size_));
  }
  for (int i = 0, n = this->gid_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gid(i), output);
  }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

  // repeated uint32 GaX = 2 [packed = true];
  if (this->gax_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      2,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _gax_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->gax_, target);
  }

  // repeated uint32 GaY = 3 [packed = true];
  if (this->gay_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      3,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _gay_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->gay_, target);
  }

  // repeated uint32 GID = 4 [packed = true];
  if (this->gid_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      4,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _gid_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->gid_, target);
  }

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

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required uint32 type = 1;
  if (has_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }
  // repeated uint32 GaX = 2 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->gax_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gax_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 GaY = 3 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->gay_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gay_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 GID = 4 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->gid_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gid_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  gax_.MergeFrom(from.gax_);
  gay_.MergeFrom(from.gay_);
  gid_.MergeFrom(from.gid_);
  if (from.has_type()) {
    set_type(from.type());
  }
}

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

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

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

void MessageMSG1::Swap(MessageMSG1* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MessageMSG1::InternalSwap(MessageMSG1* other) {
  using std::swap;
  gax_.InternalSwap(&other->gax_);
  gay_.InternalSwap(&other->gay_);
  gid_.InternalSwap(&other->gid_);
  swap(type_, other->type_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void MessageMSG2::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMSG2::kTypeFieldNumber;
const int MessageMSG2::kSizeFieldNumber;
const int MessageMSG2::kPublicKeyGxFieldNumber;
const int MessageMSG2::kPublicKeyGyFieldNumber;
const int MessageMSG2::kQuoteTypeFieldNumber;
const int MessageMSG2::kSpidFieldNumber;
const int MessageMSG2::kCmacKdfIdFieldNumber;
const int MessageMSG2::kSignatureXFieldNumber;
const int MessageMSG2::kSignatureYFieldNumber;
const int MessageMSG2::kSmacFieldNumber;
const int MessageMSG2::kSizeSigrlFieldNumber;
const int MessageMSG2::kSigrlFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMSG2::MessageMSG2()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_MessageMSG2.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.MessageMSG2)
}
MessageMSG2::MessageMSG2(const MessageMSG2& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      public_key_gx_(from.public_key_gx_),
      public_key_gy_(from.public_key_gy_),
      spid_(from.spid_),
      signature_x_(from.signature_x_),
      signature_y_(from.signature_y_),
      smac_(from.smac_),
      sigrl_(from.sigrl_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&size_sigrl_) -
    reinterpret_cast<char*>(&type_)) + sizeof(size_sigrl_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.MessageMSG2)
}

void MessageMSG2::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&size_sigrl_) -
      reinterpret_cast<char*>(&type_)) + sizeof(size_sigrl_));
}

MessageMSG2::~MessageMSG2() {
  // @@protoc_insertion_point(destructor:RAMessages.MessageMSG2)
  SharedDtor();
}

void MessageMSG2::SharedDtor() {
}

void MessageMSG2::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMSG2::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMSG2& MessageMSG2::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_MessageMSG2.base);
  return *internal_default_instance();
}


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

  public_key_gx_.Clear();
  public_key_gy_.Clear();
  spid_.Clear();
  signature_x_.Clear();
  signature_y_.Clear();
  smac_.Clear();
  sigrl_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 31u) {
    ::memset(&type_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&size_sigrl_) -
        reinterpret_cast<char*>(&type_)) + sizeof(size_sigrl_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

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

      // optional uint32 size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 public_key_gx = 3 [packed = true];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_public_key_gx())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26u, input, this->mutable_public_key_gx())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 public_key_gy = 4 [packed = true];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_public_key_gy())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 34u, input, this->mutable_public_key_gy())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 quote_type = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_quote_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &quote_type_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 spid = 6 [packed = true];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_spid())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 50u, input, this->mutable_spid())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 cmac_kdf_id = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          set_has_cmac_kdf_id();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &cmac_kdf_id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 signature_x = 8 [packed = true];
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_signature_x())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 66u, input, this->mutable_signature_x())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 signature_y = 9 [packed = true];
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_signature_y())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 74u, input, this->mutable_signature_y())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 smac = 10 [packed = true];
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_smac())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u /* 80 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 82u, input, this->mutable_smac())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 size_sigrl = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(88u /* 88 & 0xFF */)) {
          set_has_size_sigrl();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_sigrl_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 sigrl = 12 [packed = true];
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_sigrl())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 98u, input, this->mutable_sigrl())));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

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

  // repeated uint32 public_key_gx = 3 [packed = true];
  if (this->public_key_gx_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _public_key_gx_cached_byte_size_));
  }
  for (int i = 0, n = this->public_key_gx_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->public_key_gx(i), output);
  }

  // repeated uint32 public_key_gy = 4 [packed = true];
  if (this->public_key_gy_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _public_key_gy_cached_byte_size_));
  }
  for (int i = 0, n = this->public_key_gy_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->public_key_gy(i), output);
  }

  // optional uint32 quote_type = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->quote_type(), output);
  }

  // repeated uint32 spid = 6 [packed = true];
  if (this->spid_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _spid_cached_byte_size_));
  }
  for (int i = 0, n = this->spid_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->spid(i), output);
  }

  // optional uint32 cmac_kdf_id = 7;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(7, this->cmac_kdf_id(), output);
  }

  // repeated uint32 signature_x = 8 [packed = true];
  if (this->signature_x_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _signature_x_cached_byte_size_));
  }
  for (int i = 0, n = this->signature_x_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->signature_x(i), output);
  }

  // repeated uint32 signature_y = 9 [packed = true];
  if (this->signature_y_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(9, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _signature_y_cached_byte_size_));
  }
  for (int i = 0, n = this->signature_y_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->signature_y(i), output);
  }

  // repeated uint32 smac = 10 [packed = true];
  if (this->smac_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(10, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _smac_cached_byte_size_));
  }
  for (int i = 0, n = this->smac_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->smac(i), output);
  }

  // optional uint32 size_sigrl = 11;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(11, this->size_sigrl(), output);
  }

  // repeated uint32 sigrl = 12 [packed = true];
  if (this->sigrl_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(12, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _sigrl_cached_byte_size_));
  }
  for (int i = 0, n = this->sigrl_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->sigrl(i), output);
  }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

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

  // repeated uint32 public_key_gx = 3 [packed = true];
  if (this->public_key_gx_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      3,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _public_key_gx_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->public_key_gx_, target);
  }

  // repeated uint32 public_key_gy = 4 [packed = true];
  if (this->public_key_gy_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      4,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _public_key_gy_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->public_key_gy_, target);
  }

  // optional uint32 quote_type = 5;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(5, this->quote_type(), target);
  }

  // repeated uint32 spid = 6 [packed = true];
  if (this->spid_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      6,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _spid_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->spid_, target);
  }

  // optional uint32 cmac_kdf_id = 7;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(7, this->cmac_kdf_id(), target);
  }

  // repeated uint32 signature_x = 8 [packed = true];
  if (this->signature_x_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      8,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _signature_x_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->signature_x_, target);
  }

  // repeated uint32 signature_y = 9 [packed = true];
  if (this->signature_y_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      9,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _signature_y_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->signature_y_, target);
  }

  // repeated uint32 smac = 10 [packed = true];
  if (this->smac_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      10,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _smac_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->smac_, target);
  }

  // optional uint32 size_sigrl = 11;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(11, this->size_sigrl(), target);
  }

  // repeated uint32 sigrl = 12 [packed = true];
  if (this->sigrl_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      12,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _sigrl_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->sigrl_, target);
  }

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

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required uint32 type = 1;
  if (has_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }
  // repeated uint32 public_key_gx = 3 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->public_key_gx_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _public_key_gx_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 public_key_gy = 4 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->public_key_gy_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _public_key_gy_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 spid = 6 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->spid_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _spid_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 signature_x = 8 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->signature_x_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _signature_x_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 signature_y = 9 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->signature_y_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _signature_y_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 smac = 10 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->smac_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _smac_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 sigrl = 12 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->sigrl_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _sigrl_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  if (_has_bits_[0 / 32] & 30u) {
    // optional uint32 size = 2;
    if (has_size()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->size());
    }

    // optional uint32 quote_type = 5;
    if (has_quote_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->quote_type());
    }

    // optional uint32 cmac_kdf_id = 7;
    if (has_cmac_kdf_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->cmac_kdf_id());
    }

    // optional uint32 size_sigrl = 11;
    if (has_size_sigrl()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->size_sigrl());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  public_key_gx_.MergeFrom(from.public_key_gx_);
  public_key_gy_.MergeFrom(from.public_key_gy_);
  spid_.MergeFrom(from.spid_);
  signature_x_.MergeFrom(from.signature_x_);
  signature_y_.MergeFrom(from.signature_y_);
  smac_.MergeFrom(from.smac_);
  sigrl_.MergeFrom(from.sigrl_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 31u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      size_ = from.size_;
    }
    if (cached_has_bits & 0x00000004u) {
      quote_type_ = from.quote_type_;
    }
    if (cached_has_bits & 0x00000008u) {
      cmac_kdf_id_ = from.cmac_kdf_id_;
    }
    if (cached_has_bits & 0x00000010u) {
      size_sigrl_ = from.size_sigrl_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

void MessageMSG2::Swap(MessageMSG2* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MessageMSG2::InternalSwap(MessageMSG2* other) {
  using std::swap;
  public_key_gx_.InternalSwap(&other->public_key_gx_);
  public_key_gy_.InternalSwap(&other->public_key_gy_);
  spid_.InternalSwap(&other->spid_);
  signature_x_.InternalSwap(&other->signature_x_);
  signature_y_.InternalSwap(&other->signature_y_);
  smac_.InternalSwap(&other->smac_);
  sigrl_.InternalSwap(&other->sigrl_);
  swap(type_, other->type_);
  swap(size_, other->size_);
  swap(quote_type_, other->quote_type_);
  swap(cmac_kdf_id_, other->cmac_kdf_id_);
  swap(size_sigrl_, other->size_sigrl_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void MessageMSG3::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMSG3::kTypeFieldNumber;
const int MessageMSG3::kSizeFieldNumber;
const int MessageMSG3::kSgxMacFieldNumber;
const int MessageMSG3::kGaxMsg3FieldNumber;
const int MessageMSG3::kGayMsg3FieldNumber;
const int MessageMSG3::kSecPropertyFieldNumber;
const int MessageMSG3::kQuoteFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMSG3::MessageMSG3()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_MessageMSG3.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.MessageMSG3)
}
MessageMSG3::MessageMSG3(const MessageMSG3& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      sgx_mac_(from.sgx_mac_),
      gax_msg3_(from.gax_msg3_),
      gay_msg3_(from.gay_msg3_),
      sec_property_(from.sec_property_),
      quote_(from.quote_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&size_) -
    reinterpret_cast<char*>(&type_)) + sizeof(size_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.MessageMSG3)
}

void MessageMSG3::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&size_) -
      reinterpret_cast<char*>(&type_)) + sizeof(size_));
}

MessageMSG3::~MessageMSG3() {
  // @@protoc_insertion_point(destructor:RAMessages.MessageMSG3)
  SharedDtor();
}

void MessageMSG3::SharedDtor() {
}

void MessageMSG3::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMSG3::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMSG3& MessageMSG3::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_MessageMSG3.base);
  return *internal_default_instance();
}


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

  sgx_mac_.Clear();
  gax_msg3_.Clear();
  gay_msg3_.Clear();
  sec_property_.Clear();
  quote_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 3u) {
    ::memset(&type_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&size_) -
        reinterpret_cast<char*>(&type_)) + sizeof(size_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

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

      // optional uint32 size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 sgx_mac = 3 [packed = true];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_sgx_mac())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26u, input, this->mutable_sgx_mac())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 gax_msg3 = 4 [packed = true];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gax_msg3())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 34u, input, this->mutable_gax_msg3())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 gay_msg3 = 5 [packed = true];
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gay_msg3())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 42u, input, this->mutable_gay_msg3())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 sec_property = 6 [packed = true];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_sec_property())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 50u, input, this->mutable_sec_property())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 quote = 7 [packed = true];
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_quote())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 58u, input, this->mutable_quote())));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

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

  // repeated uint32 sgx_mac = 3 [packed = true];
  if (this->sgx_mac_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _sgx_mac_cached_byte_size_));
  }
  for (int i = 0, n = this->sgx_mac_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->sgx_mac(i), output);
  }

  // repeated uint32 gax_msg3 = 4 [packed = true];
  if (this->gax_msg3_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _gax_msg3_cached_byte_size_));
  }
  for (int i = 0, n = this->gax_msg3_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gax_msg3(i), output);
  }

  // repeated uint32 gay_msg3 = 5 [packed = true];
  if (this->gay_msg3_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(5, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _gay_msg3_cached_byte_size_));
  }
  for (int i = 0, n = this->gay_msg3_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gay_msg3(i), output);
  }

  // repeated uint32 sec_property = 6 [packed = true];
  if (this->sec_property_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _sec_property_cached_byte_size_));
  }
  for (int i = 0, n = this->sec_property_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->sec_property(i), output);
  }

  // repeated uint32 quote = 7 [packed = true];
  if (this->quote_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(7, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _quote_cached_byte_size_));
  }
  for (int i = 0, n = this->quote_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->quote(i), output);
  }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

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

  // repeated uint32 sgx_mac = 3 [packed = true];
  if (this->sgx_mac_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      3,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _sgx_mac_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->sgx_mac_, target);
  }

  // repeated uint32 gax_msg3 = 4 [packed = true];
  if (this->gax_msg3_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      4,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _gax_msg3_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->gax_msg3_, target);
  }

  // repeated uint32 gay_msg3 = 5 [packed = true];
  if (this->gay_msg3_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      5,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _gay_msg3_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->gay_msg3_, target);
  }

  // repeated uint32 sec_property = 6 [packed = true];
  if (this->sec_property_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      6,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _sec_property_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->sec_property_, target);
  }

  // repeated uint32 quote = 7 [packed = true];
  if (this->quote_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      7,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _quote_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->quote_, target);
  }

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

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required uint32 type = 1;
  if (has_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }
  // repeated uint32 sgx_mac = 3 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->sgx_mac_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _sgx_mac_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 gax_msg3 = 4 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->gax_msg3_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gax_msg3_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 gay_msg3 = 5 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->gay_msg3_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gay_msg3_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 sec_property = 6 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->sec_property_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _sec_property_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 quote = 7 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->quote_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _quote_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // optional uint32 size = 2;
  if (has_size()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->size());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  sgx_mac_.MergeFrom(from.sgx_mac_);
  gax_msg3_.MergeFrom(from.gax_msg3_);
  gay_msg3_.MergeFrom(from.gay_msg3_);
  sec_property_.MergeFrom(from.sec_property_);
  quote_.MergeFrom(from.quote_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      size_ = from.size_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

void MessageMSG3::Swap(MessageMSG3* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MessageMSG3::InternalSwap(MessageMSG3* other) {
  using std::swap;
  sgx_mac_.InternalSwap(&other->sgx_mac_);
  gax_msg3_.InternalSwap(&other->gax_msg3_);
  gay_msg3_.InternalSwap(&other->gay_msg3_);
  sec_property_.InternalSwap(&other->sec_property_);
  quote_.InternalSwap(&other->quote_);
  swap(type_, other->type_);
  swap(size_, other->size_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void AttestationMessage::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int AttestationMessage::kTypeFieldNumber;
const int AttestationMessage::kSizeFieldNumber;
const int AttestationMessage::kEpidGroupStatusFieldNumber;
const int AttestationMessage::kTcbEvaluationStatusFieldNumber;
const int AttestationMessage::kPseEvaluationStatusFieldNumber;
const int AttestationMessage::kLatestEquivalentTcbPsvnFieldNumber;
const int AttestationMessage::kLatestPseIsvsvnFieldNumber;
const int AttestationMessage::kLatestPsdaSvnFieldNumber;
const int AttestationMessage::kPerformanceRekeyGidFieldNumber;
const int AttestationMessage::kEcSign256XFieldNumber;
const int AttestationMessage::kEcSign256YFieldNumber;
const int AttestationMessage::kMacSmkFieldNumber;
const int AttestationMessage::kResultSizeFieldNumber;
const int AttestationMessage::kReservedFieldNumber;
const int AttestationMessage::kPayloadTagFieldNumber;
const int AttestationMessage::kPayloadFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AttestationMessage::AttestationMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_RAMessages_2eproto::scc_info_AttestationMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:RAMessages.AttestationMessage)
}
AttestationMessage::AttestationMessage(const AttestationMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      latest_equivalent_tcb_psvn_(from.latest_equivalent_tcb_psvn_),
      latest_pse_isvsvn_(from.latest_pse_isvsvn_),
      latest_psda_svn_(from.latest_psda_svn_),
      performance_rekey_gid_(from.performance_rekey_gid_),
      ec_sign256_x_(from.ec_sign256_x_),
      ec_sign256_y_(from.ec_sign256_y_),
      mac_smk_(from.mac_smk_),
      reserved_(from.reserved_),
      payload_tag_(from.payload_tag_),
      payload_(from.payload_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&result_size_) -
    reinterpret_cast<char*>(&type_)) + sizeof(result_size_));
  // @@protoc_insertion_point(copy_constructor:RAMessages.AttestationMessage)
}

void AttestationMessage::SharedCtor() {
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_size_) -
      reinterpret_cast<char*>(&type_)) + sizeof(result_size_));
}

AttestationMessage::~AttestationMessage() {
  // @@protoc_insertion_point(destructor:RAMessages.AttestationMessage)
  SharedDtor();
}

void AttestationMessage::SharedDtor() {
}

void AttestationMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* AttestationMessage::descriptor() {
  ::protobuf_RAMessages_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_RAMessages_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const AttestationMessage& AttestationMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_RAMessages_2eproto::scc_info_AttestationMessage.base);
  return *internal_default_instance();
}


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

  latest_equivalent_tcb_psvn_.Clear();
  latest_pse_isvsvn_.Clear();
  latest_psda_svn_.Clear();
  performance_rekey_gid_.Clear();
  ec_sign256_x_.Clear();
  ec_sign256_y_.Clear();
  mac_smk_.Clear();
  reserved_.Clear();
  payload_tag_.Clear();
  payload_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 63u) {
    ::memset(&type_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&result_size_) -
        reinterpret_cast<char*>(&type_)) + sizeof(result_size_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

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

      // required uint32 size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 epid_group_status = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_epid_group_status();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &epid_group_status_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 tcb_evaluation_status = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_tcb_evaluation_status();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &tcb_evaluation_status_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 pse_evaluation_status = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_pse_evaluation_status();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &pse_evaluation_status_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 latest_equivalent_tcb_psvn = 6 [packed = true];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_latest_equivalent_tcb_psvn())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 50u, input, this->mutable_latest_equivalent_tcb_psvn())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 latest_pse_isvsvn = 7 [packed = true];
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_latest_pse_isvsvn())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 58u, input, this->mutable_latest_pse_isvsvn())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 latest_psda_svn = 8 [packed = true];
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_latest_psda_svn())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 66u, input, this->mutable_latest_psda_svn())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 performance_rekey_gid = 9 [packed = true];
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_performance_rekey_gid())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 74u, input, this->mutable_performance_rekey_gid())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 ec_sign256_x = 10 [packed = true];
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_ec_sign256_x())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u /* 80 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 82u, input, this->mutable_ec_sign256_x())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 ec_sign256_y = 11 [packed = true];
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_ec_sign256_y())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(88u /* 88 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 90u, input, this->mutable_ec_sign256_y())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 mac_smk = 12 [packed = true];
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_mac_smk())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 98u, input, this->mutable_mac_smk())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional uint32 result_size = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(104u /* 104 & 0xFF */)) {
          set_has_result_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &result_size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 reserved = 14 [packed = true];
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u /* 114 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(112u /* 112 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 114u, input, this->mutable_reserved())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 payload_tag = 15 [packed = true];
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u /* 122 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_payload_tag())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(120u /* 120 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 122u, input, this->mutable_payload_tag())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated uint32 payload = 16 [packed = true];
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 130 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_payload())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(128u /* 128 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 2, 130u, input, this->mutable_payload())));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->type(), output);
  }

  // required uint32 size = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->size(), output);
  }

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

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

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

  // repeated uint32 latest_equivalent_tcb_psvn = 6 [packed = true];
  if (this->latest_equivalent_tcb_psvn_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _latest_equivalent_tcb_psvn_cached_byte_size_));
  }
  for (int i = 0, n = this->latest_equivalent_tcb_psvn_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->latest_equivalent_tcb_psvn(i), output);
  }

  // repeated uint32 latest_pse_isvsvn = 7 [packed = true];
  if (this->latest_pse_isvsvn_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(7, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _latest_pse_isvsvn_cached_byte_size_));
  }
  for (int i = 0, n = this->latest_pse_isvsvn_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->latest_pse_isvsvn(i), output);
  }

  // repeated uint32 latest_psda_svn = 8 [packed = true];
  if (this->latest_psda_svn_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _latest_psda_svn_cached_byte_size_));
  }
  for (int i = 0, n = this->latest_psda_svn_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->latest_psda_svn(i), output);
  }

  // repeated uint32 performance_rekey_gid = 9 [packed = true];
  if (this->performance_rekey_gid_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(9, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _performance_rekey_gid_cached_byte_size_));
  }
  for (int i = 0, n = this->performance_rekey_gid_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->performance_rekey_gid(i), output);
  }

  // repeated uint32 ec_sign256_x = 10 [packed = true];
  if (this->ec_sign256_x_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(10, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _ec_sign256_x_cached_byte_size_));
  }
  for (int i = 0, n = this->ec_sign256_x_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->ec_sign256_x(i), output);
  }

  // repeated uint32 ec_sign256_y = 11 [packed = true];
  if (this->ec_sign256_y_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(11, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _ec_sign256_y_cached_byte_size_));
  }
  for (int i = 0, n = this->ec_sign256_y_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->ec_sign256_y(i), output);
  }

  // repeated uint32 mac_smk = 12 [packed = true];
  if (this->mac_smk_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(12, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _mac_smk_cached_byte_size_));
  }
  for (int i = 0, n = this->mac_smk_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->mac_smk(i), output);
  }

  // optional uint32 result_size = 13;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(13, this->result_size(), output);
  }

  // repeated uint32 reserved = 14 [packed = true];
  if (this->reserved_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(14, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _reserved_cached_byte_size_));
  }
  for (int i = 0, n = this->reserved_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved(i), output);
  }

  // repeated uint32 payload_tag = 15 [packed = true];
  if (this->payload_tag_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(15, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _payload_tag_cached_byte_size_));
  }
  for (int i = 0, n = this->payload_tag_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->payload_tag(i), output);
  }

  // repeated uint32 payload = 16 [packed = true];
  if (this->payload_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(16, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _payload_cached_byte_size_));
  }
  for (int i = 0, n = this->payload_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->payload(i), output);
  }

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

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

  cached_has_bits = _has_bits_[0];
  // required uint32 type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->type(), target);
  }

  // required uint32 size = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->size(), target);
  }

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

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

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

  // repeated uint32 latest_equivalent_tcb_psvn = 6 [packed = true];
  if (this->latest_equivalent_tcb_psvn_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      6,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _latest_equivalent_tcb_psvn_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->latest_equivalent_tcb_psvn_, target);
  }

  // repeated uint32 latest_pse_isvsvn = 7 [packed = true];
  if (this->latest_pse_isvsvn_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      7,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _latest_pse_isvsvn_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->latest_pse_isvsvn_, target);
  }

  // repeated uint32 latest_psda_svn = 8 [packed = true];
  if (this->latest_psda_svn_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      8,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _latest_psda_svn_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->latest_psda_svn_, target);
  }

  // repeated uint32 performance_rekey_gid = 9 [packed = true];
  if (this->performance_rekey_gid_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      9,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _performance_rekey_gid_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->performance_rekey_gid_, target);
  }

  // repeated uint32 ec_sign256_x = 10 [packed = true];
  if (this->ec_sign256_x_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      10,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _ec_sign256_x_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->ec_sign256_x_, target);
  }

  // repeated uint32 ec_sign256_y = 11 [packed = true];
  if (this->ec_sign256_y_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      11,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _ec_sign256_y_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->ec_sign256_y_, target);
  }

  // repeated uint32 mac_smk = 12 [packed = true];
  if (this->mac_smk_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      12,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _mac_smk_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->mac_smk_, target);
  }

  // optional uint32 result_size = 13;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(13, this->result_size(), target);
  }

  // repeated uint32 reserved = 14 [packed = true];
  if (this->reserved_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      14,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _reserved_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->reserved_, target);
  }

  // repeated uint32 payload_tag = 15 [packed = true];
  if (this->payload_tag_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      15,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _payload_tag_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->payload_tag_, target);
  }

  // repeated uint32 payload = 16 [packed = true];
  if (this->payload_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      16,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _payload_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteUInt32NoTagToArray(this->payload_, target);
  }

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

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

  if (has_type()) {
    // required uint32 type = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->type());
  }

  if (has_size()) {
    // required uint32 size = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->size());
  }

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

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

    // required uint32 size = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->size());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // repeated uint32 latest_equivalent_tcb_psvn = 6 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->latest_equivalent_tcb_psvn_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _latest_equivalent_tcb_psvn_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 latest_pse_isvsvn = 7 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->latest_pse_isvsvn_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _latest_pse_isvsvn_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 latest_psda_svn = 8 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->latest_psda_svn_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _latest_psda_svn_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 performance_rekey_gid = 9 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->performance_rekey_gid_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _performance_rekey_gid_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 ec_sign256_x = 10 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->ec_sign256_x_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _ec_sign256_x_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 ec_sign256_y = 11 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->ec_sign256_y_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _ec_sign256_y_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 mac_smk = 12 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->mac_smk_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _mac_smk_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved = 14 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->reserved_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 payload_tag = 15 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->payload_tag_);
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _payload_tag_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 payload = 16 [packed = true];
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      UInt32Size(this->payload_);
    if (data_size > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _payload_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  if (_has_bits_[0 / 32] & 60u) {
    // optional uint32 epid_group_status = 3;
    if (has_epid_group_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->epid_group_status());
    }

    // optional uint32 tcb_evaluation_status = 4;
    if (has_tcb_evaluation_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->tcb_evaluation_status());
    }

    // optional uint32 pse_evaluation_status = 5;
    if (has_pse_evaluation_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->pse_evaluation_status());
    }

    // optional uint32 result_size = 13;
    if (has_result_size()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->result_size());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  latest_equivalent_tcb_psvn_.MergeFrom(from.latest_equivalent_tcb_psvn_);
  latest_pse_isvsvn_.MergeFrom(from.latest_pse_isvsvn_);
  latest_psda_svn_.MergeFrom(from.latest_psda_svn_);
  performance_rekey_gid_.MergeFrom(from.performance_rekey_gid_);
  ec_sign256_x_.MergeFrom(from.ec_sign256_x_);
  ec_sign256_y_.MergeFrom(from.ec_sign256_y_);
  mac_smk_.MergeFrom(from.mac_smk_);
  reserved_.MergeFrom(from.reserved_);
  payload_tag_.MergeFrom(from.payload_tag_);
  payload_.MergeFrom(from.payload_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      type_ = from.type_;
    }
    if (cached_has_bits & 0x00000002u) {
      size_ = from.size_;
    }
    if (cached_has_bits & 0x00000004u) {
      epid_group_status_ = from.epid_group_status_;
    }
    if (cached_has_bits & 0x00000008u) {
      tcb_evaluation_status_ = from.tcb_evaluation_status_;
    }
    if (cached_has_bits & 0x00000010u) {
      pse_evaluation_status_ = from.pse_evaluation_status_;
    }
    if (cached_has_bits & 0x00000020u) {
      result_size_ = from.result_size_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

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

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

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

void AttestationMessage::Swap(AttestationMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AttestationMessage::InternalSwap(AttestationMessage* other) {
  using std::swap;
  latest_equivalent_tcb_psvn_.InternalSwap(&other->latest_equivalent_tcb_psvn_);
  latest_pse_isvsvn_.InternalSwap(&other->latest_pse_isvsvn_);
  latest_psda_svn_.InternalSwap(&other->latest_psda_svn_);
  performance_rekey_gid_.InternalSwap(&other->performance_rekey_gid_);
  ec_sign256_x_.InternalSwap(&other->ec_sign256_x_);
  ec_sign256_y_.InternalSwap(&other->ec_sign256_y_);
  mac_smk_.InternalSwap(&other->mac_smk_);
  reserved_.InternalSwap(&other->reserved_);
  payload_tag_.InternalSwap(&other->payload_tag_);
  payload_.InternalSwap(&other->payload_);
  swap(type_, other->type_);
  swap(size_, other->size_);
  swap(epid_group_status_, other->epid_group_status_);
  swap(tcb_evaluation_status_, other->tcb_evaluation_status_);
  swap(pse_evaluation_status_, other->pse_evaluation_status_);
  swap(result_size_, other->result_size_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


// @@protoc_insertion_point(namespace_scope)
}  // namespace RAMessages
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::InitialMessage* Arena::CreateMaybeMessage< ::RAMessages::InitialMessage >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::InitialMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::SecretMessage* Arena::CreateMaybeMessage< ::RAMessages::SecretMessage >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::SecretMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::MessageMsg0* Arena::CreateMaybeMessage< ::RAMessages::MessageMsg0 >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::MessageMsg0 >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::MessageMSG1* Arena::CreateMaybeMessage< ::RAMessages::MessageMSG1 >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::MessageMSG1 >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::MessageMSG2* Arena::CreateMaybeMessage< ::RAMessages::MessageMSG2 >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::MessageMSG2 >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::MessageMSG3* Arena::CreateMaybeMessage< ::RAMessages::MessageMSG3 >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::MessageMSG3 >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::RAMessages::AttestationMessage* Arena::CreateMaybeMessage< ::RAMessages::AttestationMessage >(Arena* arena) {
  return Arena::CreateInternal< ::RAMessages::AttestationMessage >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
