text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: google/rpc/error_details.proto
  
  #include "google/rpc/error_details.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/stubs/common.h>
  #include <google/protobuf/stubs/port.h>
  #include <google/protobuf/stubs/once.h>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/wire_format_lite_inl.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/generated_message_reflection.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // This is a temporary google only hack
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  #include "third_party/protobuf/version.h"
  #endif
  // @@protoc_insertion_point(includes)
  namespace google {
  namespace rpc {
  class RetryInfoDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<RetryInfo>
        _instance;
  } _RetryInfo_default_instance_;
  class DebugInfoDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<DebugInfo>
        _instance;
  } _DebugInfo_default_instance_;
  class QuotaFailure_ViolationDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<QuotaFailure_Violation>
        _instance;
  } _QuotaFailure_Violation_default_instance_;
  class QuotaFailureDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<QuotaFailure>
        _instance;
  } _QuotaFailure_default_instance_;
  class PreconditionFailure_ViolationDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<PreconditionFailure_Violation>
        _instance;
  } _PreconditionFailure_Violation_default_instance_;
  class PreconditionFailureDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<PreconditionFailure>
        _instance;
  } _PreconditionFailure_default_instance_;
  class BadRequest_FieldViolationDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<BadRequest_FieldViolation>
        _instance;
  } _BadRequest_FieldViolation_default_instance_;
  class BadRequestDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<BadRequest>
        _instance;
  } _BadRequest_default_instance_;
  class RequestInfoDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<RequestInfo>
        _instance;
  } _RequestInfo_default_instance_;
  class ResourceInfoDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<ResourceInfo>
        _instance;
  } _ResourceInfo_default_instance_;
  class Help_LinkDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<Help_Link>
        _instance;
  } _Help_Link_default_instance_;
  class HelpDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<Help>
        _instance;
  } _Help_default_instance_;
  class LocalizedMessageDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<LocalizedMessage>
        _instance;
  } _LocalizedMessage_default_instance_;
  }  // namespace rpc
  }  // namespace google
  namespace protobuf_google_2frpc_2ferror_5fdetails_2eproto {
  void InitDefaultsRetryInfoImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    protobuf_google_2fprotobuf_2fduration_2eproto::InitDefaultsDuration();
    {
      void* ptr = &::google::rpc::_RetryInfo_default_instance_;
      new (ptr) ::google::rpc::RetryInfo();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::RetryInfo::InitAsDefaultInstance();
  }
  
  void InitDefaultsRetryInfo() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRetryInfoImpl);
  }
  
  void InitDefaultsDebugInfoImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_DebugInfo_default_instance_;
      new (ptr) ::google::rpc::DebugInfo();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::DebugInfo::InitAsDefaultInstance();
  }
  
  void InitDefaultsDebugInfo() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsDebugInfoImpl);
  }
  
  void InitDefaultsQuotaFailure_ViolationImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_QuotaFailure_Violation_default_instance_;
      new (ptr) ::google::rpc::QuotaFailure_Violation();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::QuotaFailure_Violation::InitAsDefaultInstance();
  }
  
  void InitDefaultsQuotaFailure_Violation() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsQuotaFailure_ViolationImpl);
  }
  
  void InitDefaultsQuotaFailureImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsQuotaFailure_Violation();
    {
      void* ptr = &::google::rpc::_QuotaFailure_default_instance_;
      new (ptr) ::google::rpc::QuotaFailure();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::QuotaFailure::InitAsDefaultInstance();
  }
  
  void InitDefaultsQuotaFailure() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsQuotaFailureImpl);
  }
  
  void InitDefaultsPreconditionFailure_ViolationImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_PreconditionFailure_Violation_default_instance_;
      new (ptr) ::google::rpc::PreconditionFailure_Violation();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::PreconditionFailure_Violation::InitAsDefaultInstance();
  }
  
  void InitDefaultsPreconditionFailure_Violation() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPreconditionFailure_ViolationImpl);
  }
  
  void InitDefaultsPreconditionFailureImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsPreconditionFailure_Violation();
    {
      void* ptr = &::google::rpc::_PreconditionFailure_default_instance_;
      new (ptr) ::google::rpc::PreconditionFailure();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::PreconditionFailure::InitAsDefaultInstance();
  }
  
  void InitDefaultsPreconditionFailure() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPreconditionFailureImpl);
  }
  
  void InitDefaultsBadRequest_FieldViolationImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_BadRequest_FieldViolation_default_instance_;
      new (ptr) ::google::rpc::BadRequest_FieldViolation();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::BadRequest_FieldViolation::InitAsDefaultInstance();
  }
  
  void InitDefaultsBadRequest_FieldViolation() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBadRequest_FieldViolationImpl);
  }
  
  void InitDefaultsBadRequestImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsBadRequest_FieldViolation();
    {
      void* ptr = &::google::rpc::_BadRequest_default_instance_;
      new (ptr) ::google::rpc::BadRequest();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::BadRequest::InitAsDefaultInstance();
  }
  
  void InitDefaultsBadRequest() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBadRequestImpl);
  }
  
  void InitDefaultsRequestInfoImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_RequestInfo_default_instance_;
      new (ptr) ::google::rpc::RequestInfo();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::RequestInfo::InitAsDefaultInstance();
  }
  
  void InitDefaultsRequestInfo() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRequestInfoImpl);
  }
  
  void InitDefaultsResourceInfoImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_ResourceInfo_default_instance_;
      new (ptr) ::google::rpc::ResourceInfo();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::ResourceInfo::InitAsDefaultInstance();
  }
  
  void InitDefaultsResourceInfo() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsResourceInfoImpl);
  }
  
  void InitDefaultsHelp_LinkImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_Help_Link_default_instance_;
      new (ptr) ::google::rpc::Help_Link();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::Help_Link::InitAsDefaultInstance();
  }
  
  void InitDefaultsHelp_Link() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsHelp_LinkImpl);
  }
  
  void InitDefaultsHelpImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsHelp_Link();
    {
      void* ptr = &::google::rpc::_Help_default_instance_;
      new (ptr) ::google::rpc::Help();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::Help::InitAsDefaultInstance();
  }
  
  void InitDefaultsHelp() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsHelpImpl);
  }
  
  void InitDefaultsLocalizedMessageImpl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
  #ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
  #else
    ::google::protobuf::internal::InitProtobufDefaults();
  #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
    {
      void* ptr = &::google::rpc::_LocalizedMessage_default_instance_;
      new (ptr) ::google::rpc::LocalizedMessage();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::google::rpc::LocalizedMessage::InitAsDefaultInstance();
  }
  
  void InitDefaultsLocalizedMessage() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLocalizedMessageImpl);
  }
  
  ::google::protobuf::Metadata file_level_metadata[13];
  
  const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::RetryInfo, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::RetryInfo, retry_delay_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::DebugInfo, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::DebugInfo, stack_entries_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::DebugInfo, detail_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::QuotaFailure_Violation, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::QuotaFailure_Violation, subject_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::QuotaFailure_Violation, description_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::QuotaFailure, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::QuotaFailure, violations_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure_Violation, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure_Violation, type_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure_Violation, subject_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure_Violation, description_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::PreconditionFailure, violations_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::BadRequest_FieldViolation, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::BadRequest_FieldViolation, field_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::BadRequest_FieldViolation, description_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::BadRequest, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::BadRequest, field_violations_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::RequestInfo, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::RequestInfo, request_id_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::RequestInfo, serving_data_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::ResourceInfo, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::ResourceInfo, resource_type_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::ResourceInfo, resource_name_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::ResourceInfo, owner_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::ResourceInfo, description_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::Help_Link, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::Help_Link, description_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::Help_Link, url_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::Help, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::Help, links_),
    ~0u,  // no _has_bits_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::LocalizedMessage, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::LocalizedMessage, locale_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::rpc::LocalizedMessage, message_),
  };
  static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
    { 0, -1, sizeof(::google::rpc::RetryInfo)},
    { 6, -1, sizeof(::google::rpc::DebugInfo)},
    { 13, -1, sizeof(::google::rpc::QuotaFailure_Violation)},
    { 20, -1, sizeof(::google::rpc::QuotaFailure)},
    { 26, -1, sizeof(::google::rpc::PreconditionFailure_Violation)},
    { 34, -1, sizeof(::google::rpc::PreconditionFailure)},
    { 40, -1, sizeof(::google::rpc::BadRequest_FieldViolation)},
    { 47, -1, sizeof(::google::rpc::BadRequest)},
    { 53, -1, sizeof(::google::rpc::RequestInfo)},
    { 60, -1, sizeof(::google::rpc::ResourceInfo)},
    { 69, -1, sizeof(::google::rpc::Help_Link)},
    { 76, -1, sizeof(::google::rpc::Help)},
    { 82, -1, sizeof(::google::rpc::LocalizedMessage)},
  };
  
  static ::google::protobuf::Message const * const file_default_instances[] = {
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_RetryInfo_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_DebugInfo_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_QuotaFailure_Violation_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_QuotaFailure_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_PreconditionFailure_Violation_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_PreconditionFailure_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_BadRequest_FieldViolation_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_BadRequest_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_RequestInfo_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_ResourceInfo_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_Help_Link_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_Help_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::google::rpc::_LocalizedMessage_default_instance_),
  };
  
  void protobuf_AssignDescriptors() {
    AddDescriptors();
    ::google::protobuf::MessageFactory* factory = NULL;
    AssignDescriptors(
        "google/rpc/error_details.proto", schemas, file_default_instances, TableStruct::offsets, factory,
        file_level_metadata, NULL, NULL);
  }
  
  void protobuf_AssignDescriptorsOnce() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
  }
  
  void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
  void protobuf_RegisterTypes(const ::std::string&) {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 13);
  }
  
  void AddDescriptorsImpl() {
    InitDefaults();
    static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        "\n\036google/rpc/error_details.proto\022\ngoogle"
        ".rpc\032\036google/protobuf/duration.proto\";\n\t"
        "RetryInfo\022.\n\013retry_delay\030\001 \001(\0132\031.google."
        "protobuf.Duration\"2\n\tDebugInfo\022\025\n\rstack_"
        "entries\030\001 \003(\t\022\016\n\006detail\030\002 \001(\t\"y\n\014QuotaFa"
        "ilure\0226\n\nviolations\030\001 \003(\0132\".google.rpc.Q"
        "uotaFailure.Violation\0321\n\tViolation\022\017\n\007su"
        "bject\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\"\225\001\n\023Pre"
        "conditionFailure\022=\n\nviolations\030\001 \003(\0132).g"
        "oogle.rpc.PreconditionFailure.Violation\032"
        "\?\n\tViolation\022\014\n\004type\030\001 \001(\t\022\017\n\007subject\030\002 "
        "\001(\t\022\023\n\013description\030\003 \001(\t\"\203\001\n\nBadRequest\022"
        "\?\n\020field_violations\030\001 \003(\0132%.google.rpc.B"
        "adRequest.FieldViolation\0324\n\016FieldViolati"
        "on\022\r\n\005field\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\"7"
        "\n\013RequestInfo\022\022\n\nrequest_id\030\001 \001(\t\022\024\n\014ser"
        "ving_data\030\002 \001(\t\"`\n\014ResourceInfo\022\025\n\rresou"
        "rce_type\030\001 \001(\t\022\025\n\rresource_name\030\002 \001(\t\022\r\n"
        "\005owner\030\003 \001(\t\022\023\n\013description\030\004 \001(\t\"V\n\004Hel"
        "p\022$\n\005links\030\001 \003(\0132\025.google.rpc.Help.Link\032"
        "(\n\004Link\022\023\n\013description\030\001 \001(\t\022\013\n\003url\030\002 \001("
        "\t\"3\n\020LocalizedMessage\022\016\n\006locale\030\001 \001(\t\022\017\n"
        "\007message\030\002 \001(\tBl\n\016com.google.rpcB\021ErrorD"
        "etailsProtoP\001Z\?google.golang.org/genprot"
        "o/googleapis/rpc/errdetails;errdetails\242\002"
        "\003RPCb\006proto3"
    };
    ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
        descriptor, 1012);
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
      "google/rpc/error_details.proto", &protobuf_RegisterTypes);
    ::protobuf_google_2fprotobuf_2fduration_2eproto::AddDescriptors();
  }
  
  void AddDescriptors() {
    static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
    ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
  }
  // Force AddDescriptors() to be called at dynamic initialization time.
  struct StaticDescriptorInitializer {
    StaticDescriptorInitializer() {
      AddDescriptors();
    }
  } static_descriptor_initializer;
  }  // namespace protobuf_google_2frpc_2ferror_5fdetails_2eproto
  namespace google {
  namespace rpc {
  
  // ===================================================================
  
  void RetryInfo::InitAsDefaultInstance() {
    ::google::rpc::_RetryInfo_default_instance_._instance.get_mutable()->retry_delay_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
  }
  void RetryInfo::clear_retry_delay() {
    if (GetArenaNoVirtual() == NULL && retry_delay_ != NULL) {
      delete retry_delay_;
    }
    retry_delay_ = NULL;
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int RetryInfo::kRetryDelayFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  RetryInfo::RetryInfo()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsRetryInfo();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.RetryInfo)
  }
  RetryInfo::RetryInfo(const RetryInfo& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from.has_retry_delay()) {
      retry_delay_ = new ::google::protobuf::Duration(*from.retry_delay_);
    } else {
      retry_delay_ = NULL;
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.RetryInfo)
  }
  
  void RetryInfo::SharedCtor() {
    retry_delay_ = NULL;
    _cached_size_ = 0;
  }
  
  RetryInfo::~RetryInfo() {
    // @@protoc_insertion_point(destructor:google.rpc.RetryInfo)
    SharedDtor();
  }
  
  void RetryInfo::SharedDtor() {
    if (this != internal_default_instance()) delete retry_delay_;
  }
  
  void RetryInfo::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* RetryInfo::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const RetryInfo& RetryInfo::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsRetryInfo();
    return *internal_default_instance();
  }
  
  RetryInfo* RetryInfo::New(::google::protobuf::Arena* arena) const {
    RetryInfo* n = new RetryInfo;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void RetryInfo::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.RetryInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    if (GetArenaNoVirtual() == NULL && retry_delay_ != NULL) {
      delete retry_delay_;
    }
    retry_delay_ = NULL;
    _internal_metadata_.Clear();
  }
  
  bool RetryInfo::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:google.rpc.RetryInfo)
    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)) {
        // .google.protobuf.Duration retry_delay = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, mutable_retry_delay()));
          } 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:google.rpc.RetryInfo)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.RetryInfo)
    return false;
  #undef DO_
  }
  
  void RetryInfo::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.RetryInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .google.protobuf.Duration retry_delay = 1;
    if (this->has_retry_delay()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, *this->retry_delay_, output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.RetryInfo)
  }
  
  ::google::protobuf::uint8* RetryInfo::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.RetryInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .google.protobuf.Duration retry_delay = 1;
    if (this->has_retry_delay()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, *this->retry_delay_, deterministic, target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.RetryInfo)
    return target;
  }
  
  size_t RetryInfo::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.RetryInfo)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // .google.protobuf.Duration retry_delay = 1;
    if (this->has_retry_delay()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->retry_delay_);
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void RetryInfo::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.RetryInfo)
    GOOGLE_DCHECK_NE(&from, this);
    const RetryInfo* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const RetryInfo>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.RetryInfo)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.RetryInfo)
      MergeFrom(*source);
    }
  }
  
  void RetryInfo::MergeFrom(const RetryInfo& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.RetryInfo)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.has_retry_delay()) {
      mutable_retry_delay()->::google::protobuf::Duration::MergeFrom(from.retry_delay());
    }
  }
  
  void RetryInfo::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.RetryInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void RetryInfo::CopyFrom(const RetryInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.RetryInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool RetryInfo::IsInitialized() const {
    return true;
  }
  
  void RetryInfo::Swap(RetryInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void RetryInfo::InternalSwap(RetryInfo* other) {
    using std::swap;
    swap(retry_delay_, other->retry_delay_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata RetryInfo::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void DebugInfo::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int DebugInfo::kStackEntriesFieldNumber;
  const int DebugInfo::kDetailFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  DebugInfo::DebugInfo()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsDebugInfo();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.DebugInfo)
  }
  DebugInfo::DebugInfo(const DebugInfo& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        stack_entries_(from.stack_entries_),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    detail_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.detail().size() > 0) {
      detail_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.detail_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.DebugInfo)
  }
  
  void DebugInfo::SharedCtor() {
    detail_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  DebugInfo::~DebugInfo() {
    // @@protoc_insertion_point(destructor:google.rpc.DebugInfo)
    SharedDtor();
  }
  
  void DebugInfo::SharedDtor() {
    detail_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void DebugInfo::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* DebugInfo::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const DebugInfo& DebugInfo::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsDebugInfo();
    return *internal_default_instance();
  }
  
  DebugInfo* DebugInfo::New(::google::protobuf::Arena* arena) const {
    DebugInfo* n = new DebugInfo;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void DebugInfo::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.DebugInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    stack_entries_.Clear();
    detail_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool DebugInfo::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:google.rpc.DebugInfo)
    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)) {
        // repeated string stack_entries = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->add_stack_entries()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->stack_entries(this->stack_entries_size() - 1).data(),
              static_cast<int>(this->stack_entries(this->stack_entries_size() - 1).length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.DebugInfo.stack_entries"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string detail = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_detail()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->detail().data(), static_cast<int>(this->detail().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.DebugInfo.detail"));
          } 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:google.rpc.DebugInfo)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.DebugInfo)
    return false;
  #undef DO_
  }
  
  void DebugInfo::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.DebugInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated string stack_entries = 1;
    for (int i = 0, n = this->stack_entries_size(); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->stack_entries(i).data(), static_cast<int>(this->stack_entries(i).length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.DebugInfo.stack_entries");
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->stack_entries(i), output);
    }
  
    // string detail = 2;
    if (this->detail().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->detail().data(), static_cast<int>(this->detail().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.DebugInfo.detail");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->detail(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.DebugInfo)
  }
  
  ::google::protobuf::uint8* DebugInfo::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.DebugInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated string stack_entries = 1;
    for (int i = 0, n = this->stack_entries_size(); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->stack_entries(i).data(), static_cast<int>(this->stack_entries(i).length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.DebugInfo.stack_entries");
      target = ::google::protobuf::internal::WireFormatLite::
        WriteStringToArray(1, this->stack_entries(i), target);
    }
  
    // string detail = 2;
    if (this->detail().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->detail().data(), static_cast<int>(this->detail().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.DebugInfo.detail");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->detail(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.DebugInfo)
    return target;
  }
  
  size_t DebugInfo::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.DebugInfo)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // repeated string stack_entries = 1;
    total_size += 1 *
        ::google::protobuf::internal::FromIntSize(this->stack_entries_size());
    for (int i = 0, n = this->stack_entries_size(); i < n; i++) {
      total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
        this->stack_entries(i));
    }
  
    // string detail = 2;
    if (this->detail().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->detail());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void DebugInfo::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.DebugInfo)
    GOOGLE_DCHECK_NE(&from, this);
    const DebugInfo* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const DebugInfo>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.DebugInfo)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.DebugInfo)
      MergeFrom(*source);
    }
  }
  
  void DebugInfo::MergeFrom(const DebugInfo& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.DebugInfo)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    stack_entries_.MergeFrom(from.stack_entries_);
    if (from.detail().size() > 0) {
  
      detail_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.detail_);
    }
  }
  
  void DebugInfo::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.DebugInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void DebugInfo::CopyFrom(const DebugInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.DebugInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool DebugInfo::IsInitialized() const {
    return true;
  }
  
  void DebugInfo::Swap(DebugInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void DebugInfo::InternalSwap(DebugInfo* other) {
    using std::swap;
    stack_entries_.InternalSwap(&other->stack_entries_);
    detail_.Swap(&other->detail_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata DebugInfo::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void QuotaFailure_Violation::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int QuotaFailure_Violation::kSubjectFieldNumber;
  const int QuotaFailure_Violation::kDescriptionFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  QuotaFailure_Violation::QuotaFailure_Violation()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsQuotaFailure_Violation();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.QuotaFailure.Violation)
  }
  QuotaFailure_Violation::QuotaFailure_Violation(const QuotaFailure_Violation& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    subject_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.subject().size() > 0) {
      subject_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subject_);
    }
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.QuotaFailure.Violation)
  }
  
  void QuotaFailure_Violation::SharedCtor() {
    subject_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  QuotaFailure_Violation::~QuotaFailure_Violation() {
    // @@protoc_insertion_point(destructor:google.rpc.QuotaFailure.Violation)
    SharedDtor();
  }
  
  void QuotaFailure_Violation::SharedDtor() {
    subject_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void QuotaFailure_Violation::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* QuotaFailure_Violation::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const QuotaFailure_Violation& QuotaFailure_Violation::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsQuotaFailure_Violation();
    return *internal_default_instance();
  }
  
  QuotaFailure_Violation* QuotaFailure_Violation::New(::google::protobuf::Arena* arena) const {
    QuotaFailure_Violation* n = new QuotaFailure_Violation;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void QuotaFailure_Violation::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.QuotaFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    subject_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool QuotaFailure_Violation::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:google.rpc.QuotaFailure.Violation)
    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)) {
        // string subject = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_subject()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->subject().data(), static_cast<int>(this->subject().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.QuotaFailure.Violation.subject"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string description = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.QuotaFailure.Violation.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.rpc.QuotaFailure.Violation)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.QuotaFailure.Violation)
    return false;
  #undef DO_
  }
  
  void QuotaFailure_Violation::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.QuotaFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string subject = 1;
    if (this->subject().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->subject().data(), static_cast<int>(this->subject().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.QuotaFailure.Violation.subject");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->subject(), output);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.QuotaFailure.Violation.description");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->description(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.QuotaFailure.Violation)
  }
  
  ::google::protobuf::uint8* QuotaFailure_Violation::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.QuotaFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string subject = 1;
    if (this->subject().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->subject().data(), static_cast<int>(this->subject().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.QuotaFailure.Violation.subject");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->subject(), target);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.QuotaFailure.Violation.description");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->description(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.QuotaFailure.Violation)
    return target;
  }
  
  size_t QuotaFailure_Violation::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.QuotaFailure.Violation)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string subject = 1;
    if (this->subject().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->subject());
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void QuotaFailure_Violation::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.QuotaFailure.Violation)
    GOOGLE_DCHECK_NE(&from, this);
    const QuotaFailure_Violation* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const QuotaFailure_Violation>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.QuotaFailure.Violation)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.QuotaFailure.Violation)
      MergeFrom(*source);
    }
  }
  
  void QuotaFailure_Violation::MergeFrom(const QuotaFailure_Violation& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.QuotaFailure.Violation)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.subject().size() > 0) {
  
      subject_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subject_);
    }
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
  }
  
  void QuotaFailure_Violation::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.QuotaFailure.Violation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void QuotaFailure_Violation::CopyFrom(const QuotaFailure_Violation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.QuotaFailure.Violation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool QuotaFailure_Violation::IsInitialized() const {
    return true;
  }
  
  void QuotaFailure_Violation::Swap(QuotaFailure_Violation* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void QuotaFailure_Violation::InternalSwap(QuotaFailure_Violation* other) {
    using std::swap;
    subject_.Swap(&other->subject_);
    description_.Swap(&other->description_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata QuotaFailure_Violation::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void QuotaFailure::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int QuotaFailure::kViolationsFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  QuotaFailure::QuotaFailure()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsQuotaFailure();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.QuotaFailure)
  }
  QuotaFailure::QuotaFailure(const QuotaFailure& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        violations_(from.violations_),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    // @@protoc_insertion_point(copy_constructor:google.rpc.QuotaFailure)
  }
  
  void QuotaFailure::SharedCtor() {
    _cached_size_ = 0;
  }
  
  QuotaFailure::~QuotaFailure() {
    // @@protoc_insertion_point(destructor:google.rpc.QuotaFailure)
    SharedDtor();
  }
  
  void QuotaFailure::SharedDtor() {
  }
  
  void QuotaFailure::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* QuotaFailure::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const QuotaFailure& QuotaFailure::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsQuotaFailure();
    return *internal_default_instance();
  }
  
  QuotaFailure* QuotaFailure::New(::google::protobuf::Arena* arena) const {
    QuotaFailure* n = new QuotaFailure;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void QuotaFailure::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.QuotaFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    violations_.Clear();
    _internal_metadata_.Clear();
  }
  
  bool QuotaFailure::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:google.rpc.QuotaFailure)
    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)) {
        // repeated .google.rpc.QuotaFailure.Violation violations = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_violations()));
          } 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:google.rpc.QuotaFailure)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.QuotaFailure)
    return false;
  #undef DO_
  }
  
  void QuotaFailure::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.QuotaFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.QuotaFailure.Violation violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->violations_size()); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->violations(static_cast<int>(i)), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.QuotaFailure)
  }
  
  ::google::protobuf::uint8* QuotaFailure::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.QuotaFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.QuotaFailure.Violation violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->violations_size()); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, this->violations(static_cast<int>(i)), deterministic, target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.QuotaFailure)
    return target;
  }
  
  size_t QuotaFailure::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.QuotaFailure)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // repeated .google.rpc.QuotaFailure.Violation violations = 1;
    {
      unsigned int count = static_cast<unsigned int>(this->violations_size());
      total_size += 1UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSize(
            this->violations(static_cast<int>(i)));
      }
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void QuotaFailure::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.QuotaFailure)
    GOOGLE_DCHECK_NE(&from, this);
    const QuotaFailure* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const QuotaFailure>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.QuotaFailure)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.QuotaFailure)
      MergeFrom(*source);
    }
  }
  
  void QuotaFailure::MergeFrom(const QuotaFailure& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.QuotaFailure)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    violations_.MergeFrom(from.violations_);
  }
  
  void QuotaFailure::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.QuotaFailure)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void QuotaFailure::CopyFrom(const QuotaFailure& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.QuotaFailure)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool QuotaFailure::IsInitialized() const {
    return true;
  }
  
  void QuotaFailure::Swap(QuotaFailure* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void QuotaFailure::InternalSwap(QuotaFailure* other) {
    using std::swap;
    violations_.InternalSwap(&other->violations_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata QuotaFailure::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void PreconditionFailure_Violation::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int PreconditionFailure_Violation::kTypeFieldNumber;
  const int PreconditionFailure_Violation::kSubjectFieldNumber;
  const int PreconditionFailure_Violation::kDescriptionFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  PreconditionFailure_Violation::PreconditionFailure_Violation()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsPreconditionFailure_Violation();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.PreconditionFailure.Violation)
  }
  PreconditionFailure_Violation::PreconditionFailure_Violation(const PreconditionFailure_Violation& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.type().size() > 0) {
      type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
    }
    subject_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.subject().size() > 0) {
      subject_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subject_);
    }
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.PreconditionFailure.Violation)
  }
  
  void PreconditionFailure_Violation::SharedCtor() {
    type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    subject_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  PreconditionFailure_Violation::~PreconditionFailure_Violation() {
    // @@protoc_insertion_point(destructor:google.rpc.PreconditionFailure.Violation)
    SharedDtor();
  }
  
  void PreconditionFailure_Violation::SharedDtor() {
    type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    subject_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void PreconditionFailure_Violation::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PreconditionFailure_Violation::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const PreconditionFailure_Violation& PreconditionFailure_Violation::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsPreconditionFailure_Violation();
    return *internal_default_instance();
  }
  
  PreconditionFailure_Violation* PreconditionFailure_Violation::New(::google::protobuf::Arena* arena) const {
    PreconditionFailure_Violation* n = new PreconditionFailure_Violation;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void PreconditionFailure_Violation::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.PreconditionFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    subject_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool PreconditionFailure_Violation::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:google.rpc.PreconditionFailure.Violation)
    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)) {
        // string type = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_type()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->type().data(), static_cast<int>(this->type().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.PreconditionFailure.Violation.type"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string subject = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_subject()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->subject().data(), static_cast<int>(this->subject().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.PreconditionFailure.Violation.subject"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string description = 3;
        case 3: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.PreconditionFailure.Violation.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.rpc.PreconditionFailure.Violation)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.PreconditionFailure.Violation)
    return false;
  #undef DO_
  }
  
  void PreconditionFailure_Violation::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.PreconditionFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string type = 1;
    if (this->type().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->type().data(), static_cast<int>(this->type().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.type");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->type(), output);
    }
  
    // string subject = 2;
    if (this->subject().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->subject().data(), static_cast<int>(this->subject().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.subject");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->subject(), output);
    }
  
    // string description = 3;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.description");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        3, this->description(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.PreconditionFailure.Violation)
  }
  
  ::google::protobuf::uint8* PreconditionFailure_Violation::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.PreconditionFailure.Violation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string type = 1;
    if (this->type().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->type().data(), static_cast<int>(this->type().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.type");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->type(), target);
    }
  
    // string subject = 2;
    if (this->subject().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->subject().data(), static_cast<int>(this->subject().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.subject");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->subject(), target);
    }
  
    // string description = 3;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.PreconditionFailure.Violation.description");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          3, this->description(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.PreconditionFailure.Violation)
    return target;
  }
  
  size_t PreconditionFailure_Violation::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.PreconditionFailure.Violation)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string type = 1;
    if (this->type().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->type());
    }
  
    // string subject = 2;
    if (this->subject().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->subject());
    }
  
    // string description = 3;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PreconditionFailure_Violation::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.PreconditionFailure.Violation)
    GOOGLE_DCHECK_NE(&from, this);
    const PreconditionFailure_Violation* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const PreconditionFailure_Violation>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.PreconditionFailure.Violation)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.PreconditionFailure.Violation)
      MergeFrom(*source);
    }
  }
  
  void PreconditionFailure_Violation::MergeFrom(const PreconditionFailure_Violation& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.PreconditionFailure.Violation)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.type().size() > 0) {
  
      type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
    }
    if (from.subject().size() > 0) {
  
      subject_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subject_);
    }
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
  }
  
  void PreconditionFailure_Violation::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.PreconditionFailure.Violation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PreconditionFailure_Violation::CopyFrom(const PreconditionFailure_Violation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.PreconditionFailure.Violation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PreconditionFailure_Violation::IsInitialized() const {
    return true;
  }
  
  void PreconditionFailure_Violation::Swap(PreconditionFailure_Violation* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void PreconditionFailure_Violation::InternalSwap(PreconditionFailure_Violation* other) {
    using std::swap;
    type_.Swap(&other->type_);
    subject_.Swap(&other->subject_);
    description_.Swap(&other->description_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata PreconditionFailure_Violation::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void PreconditionFailure::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int PreconditionFailure::kViolationsFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  PreconditionFailure::PreconditionFailure()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsPreconditionFailure();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.PreconditionFailure)
  }
  PreconditionFailure::PreconditionFailure(const PreconditionFailure& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        violations_(from.violations_),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    // @@protoc_insertion_point(copy_constructor:google.rpc.PreconditionFailure)
  }
  
  void PreconditionFailure::SharedCtor() {
    _cached_size_ = 0;
  }
  
  PreconditionFailure::~PreconditionFailure() {
    // @@protoc_insertion_point(destructor:google.rpc.PreconditionFailure)
    SharedDtor();
  }
  
  void PreconditionFailure::SharedDtor() {
  }
  
  void PreconditionFailure::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PreconditionFailure::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const PreconditionFailure& PreconditionFailure::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsPreconditionFailure();
    return *internal_default_instance();
  }
  
  PreconditionFailure* PreconditionFailure::New(::google::protobuf::Arena* arena) const {
    PreconditionFailure* n = new PreconditionFailure;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void PreconditionFailure::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.PreconditionFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    violations_.Clear();
    _internal_metadata_.Clear();
  }
  
  bool PreconditionFailure::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:google.rpc.PreconditionFailure)
    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)) {
        // repeated .google.rpc.PreconditionFailure.Violation violations = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_violations()));
          } 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:google.rpc.PreconditionFailure)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.PreconditionFailure)
    return false;
  #undef DO_
  }
  
  void PreconditionFailure::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.PreconditionFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.PreconditionFailure.Violation violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->violations_size()); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->violations(static_cast<int>(i)), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.PreconditionFailure)
  }
  
  ::google::protobuf::uint8* PreconditionFailure::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.PreconditionFailure)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.PreconditionFailure.Violation violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->violations_size()); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, this->violations(static_cast<int>(i)), deterministic, target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.PreconditionFailure)
    return target;
  }
  
  size_t PreconditionFailure::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.PreconditionFailure)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // repeated .google.rpc.PreconditionFailure.Violation violations = 1;
    {
      unsigned int count = static_cast<unsigned int>(this->violations_size());
      total_size += 1UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSize(
            this->violations(static_cast<int>(i)));
      }
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PreconditionFailure::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.PreconditionFailure)
    GOOGLE_DCHECK_NE(&from, this);
    const PreconditionFailure* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const PreconditionFailure>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.PreconditionFailure)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.PreconditionFailure)
      MergeFrom(*source);
    }
  }
  
  void PreconditionFailure::MergeFrom(const PreconditionFailure& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.PreconditionFailure)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    violations_.MergeFrom(from.violations_);
  }
  
  void PreconditionFailure::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.PreconditionFailure)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PreconditionFailure::CopyFrom(const PreconditionFailure& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.PreconditionFailure)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PreconditionFailure::IsInitialized() const {
    return true;
  }
  
  void PreconditionFailure::Swap(PreconditionFailure* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void PreconditionFailure::InternalSwap(PreconditionFailure* other) {
    using std::swap;
    violations_.InternalSwap(&other->violations_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata PreconditionFailure::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void BadRequest_FieldViolation::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int BadRequest_FieldViolation::kFieldFieldNumber;
  const int BadRequest_FieldViolation::kDescriptionFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  BadRequest_FieldViolation::BadRequest_FieldViolation()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsBadRequest_FieldViolation();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.BadRequest.FieldViolation)
  }
  BadRequest_FieldViolation::BadRequest_FieldViolation(const BadRequest_FieldViolation& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    field_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.field().size() > 0) {
      field_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.field_);
    }
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.BadRequest.FieldViolation)
  }
  
  void BadRequest_FieldViolation::SharedCtor() {
    field_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  BadRequest_FieldViolation::~BadRequest_FieldViolation() {
    // @@protoc_insertion_point(destructor:google.rpc.BadRequest.FieldViolation)
    SharedDtor();
  }
  
  void BadRequest_FieldViolation::SharedDtor() {
    field_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void BadRequest_FieldViolation::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* BadRequest_FieldViolation::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const BadRequest_FieldViolation& BadRequest_FieldViolation::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsBadRequest_FieldViolation();
    return *internal_default_instance();
  }
  
  BadRequest_FieldViolation* BadRequest_FieldViolation::New(::google::protobuf::Arena* arena) const {
    BadRequest_FieldViolation* n = new BadRequest_FieldViolation;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void BadRequest_FieldViolation::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.BadRequest.FieldViolation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    field_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool BadRequest_FieldViolation::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:google.rpc.BadRequest.FieldViolation)
    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)) {
        // string field = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_field()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->field().data(), static_cast<int>(this->field().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.BadRequest.FieldViolation.field"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string description = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.BadRequest.FieldViolation.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.rpc.BadRequest.FieldViolation)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.BadRequest.FieldViolation)
    return false;
  #undef DO_
  }
  
  void BadRequest_FieldViolation::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.BadRequest.FieldViolation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string field = 1;
    if (this->field().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->field().data(), static_cast<int>(this->field().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.BadRequest.FieldViolation.field");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->field(), output);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.BadRequest.FieldViolation.description");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->description(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.BadRequest.FieldViolation)
  }
  
  ::google::protobuf::uint8* BadRequest_FieldViolation::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.BadRequest.FieldViolation)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string field = 1;
    if (this->field().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->field().data(), static_cast<int>(this->field().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.BadRequest.FieldViolation.field");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->field(), target);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.BadRequest.FieldViolation.description");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->description(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.BadRequest.FieldViolation)
    return target;
  }
  
  size_t BadRequest_FieldViolation::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.BadRequest.FieldViolation)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string field = 1;
    if (this->field().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->field());
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void BadRequest_FieldViolation::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.BadRequest.FieldViolation)
    GOOGLE_DCHECK_NE(&from, this);
    const BadRequest_FieldViolation* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const BadRequest_FieldViolation>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.BadRequest.FieldViolation)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.BadRequest.FieldViolation)
      MergeFrom(*source);
    }
  }
  
  void BadRequest_FieldViolation::MergeFrom(const BadRequest_FieldViolation& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.BadRequest.FieldViolation)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.field().size() > 0) {
  
      field_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.field_);
    }
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
  }
  
  void BadRequest_FieldViolation::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.BadRequest.FieldViolation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void BadRequest_FieldViolation::CopyFrom(const BadRequest_FieldViolation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.BadRequest.FieldViolation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool BadRequest_FieldViolation::IsInitialized() const {
    return true;
  }
  
  void BadRequest_FieldViolation::Swap(BadRequest_FieldViolation* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void BadRequest_FieldViolation::InternalSwap(BadRequest_FieldViolation* other) {
    using std::swap;
    field_.Swap(&other->field_);
    description_.Swap(&other->description_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata BadRequest_FieldViolation::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void BadRequest::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int BadRequest::kFieldViolationsFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  BadRequest::BadRequest()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsBadRequest();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.BadRequest)
  }
  BadRequest::BadRequest(const BadRequest& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        field_violations_(from.field_violations_),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    // @@protoc_insertion_point(copy_constructor:google.rpc.BadRequest)
  }
  
  void BadRequest::SharedCtor() {
    _cached_size_ = 0;
  }
  
  BadRequest::~BadRequest() {
    // @@protoc_insertion_point(destructor:google.rpc.BadRequest)
    SharedDtor();
  }
  
  void BadRequest::SharedDtor() {
  }
  
  void BadRequest::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* BadRequest::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const BadRequest& BadRequest::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsBadRequest();
    return *internal_default_instance();
  }
  
  BadRequest* BadRequest::New(::google::protobuf::Arena* arena) const {
    BadRequest* n = new BadRequest;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void BadRequest::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.BadRequest)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    field_violations_.Clear();
    _internal_metadata_.Clear();
  }
  
  bool BadRequest::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:google.rpc.BadRequest)
    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)) {
        // repeated .google.rpc.BadRequest.FieldViolation field_violations = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_field_violations()));
          } 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:google.rpc.BadRequest)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.BadRequest)
    return false;
  #undef DO_
  }
  
  void BadRequest::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.BadRequest)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.BadRequest.FieldViolation field_violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->field_violations_size()); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->field_violations(static_cast<int>(i)), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.BadRequest)
  }
  
  ::google::protobuf::uint8* BadRequest::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.BadRequest)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.BadRequest.FieldViolation field_violations = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->field_violations_size()); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, this->field_violations(static_cast<int>(i)), deterministic, target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.BadRequest)
    return target;
  }
  
  size_t BadRequest::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.BadRequest)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // repeated .google.rpc.BadRequest.FieldViolation field_violations = 1;
    {
      unsigned int count = static_cast<unsigned int>(this->field_violations_size());
      total_size += 1UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSize(
            this->field_violations(static_cast<int>(i)));
      }
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void BadRequest::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.BadRequest)
    GOOGLE_DCHECK_NE(&from, this);
    const BadRequest* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const BadRequest>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.BadRequest)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.BadRequest)
      MergeFrom(*source);
    }
  }
  
  void BadRequest::MergeFrom(const BadRequest& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.BadRequest)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    field_violations_.MergeFrom(from.field_violations_);
  }
  
  void BadRequest::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.BadRequest)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void BadRequest::CopyFrom(const BadRequest& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.BadRequest)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool BadRequest::IsInitialized() const {
    return true;
  }
  
  void BadRequest::Swap(BadRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void BadRequest::InternalSwap(BadRequest* other) {
    using std::swap;
    field_violations_.InternalSwap(&other->field_violations_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata BadRequest::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void RequestInfo::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int RequestInfo::kRequestIdFieldNumber;
  const int RequestInfo::kServingDataFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  RequestInfo::RequestInfo()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsRequestInfo();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.RequestInfo)
  }
  RequestInfo::RequestInfo(const RequestInfo& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    request_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.request_id().size() > 0) {
      request_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.request_id_);
    }
    serving_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.serving_data().size() > 0) {
      serving_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.serving_data_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.RequestInfo)
  }
  
  void RequestInfo::SharedCtor() {
    request_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    serving_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  RequestInfo::~RequestInfo() {
    // @@protoc_insertion_point(destructor:google.rpc.RequestInfo)
    SharedDtor();
  }
  
  void RequestInfo::SharedDtor() {
    request_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    serving_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void RequestInfo::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* RequestInfo::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const RequestInfo& RequestInfo::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsRequestInfo();
    return *internal_default_instance();
  }
  
  RequestInfo* RequestInfo::New(::google::protobuf::Arena* arena) const {
    RequestInfo* n = new RequestInfo;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void RequestInfo::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.RequestInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    request_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    serving_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool RequestInfo::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:google.rpc.RequestInfo)
    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)) {
        // string request_id = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_request_id()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->request_id().data(), static_cast<int>(this->request_id().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.RequestInfo.request_id"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string serving_data = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_serving_data()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->serving_data().data(), static_cast<int>(this->serving_data().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.RequestInfo.serving_data"));
          } 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:google.rpc.RequestInfo)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.RequestInfo)
    return false;
  #undef DO_
  }
  
  void RequestInfo::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.RequestInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string request_id = 1;
    if (this->request_id().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->request_id().data(), static_cast<int>(this->request_id().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.RequestInfo.request_id");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->request_id(), output);
    }
  
    // string serving_data = 2;
    if (this->serving_data().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->serving_data().data(), static_cast<int>(this->serving_data().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.RequestInfo.serving_data");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->serving_data(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.RequestInfo)
  }
  
  ::google::protobuf::uint8* RequestInfo::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.RequestInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string request_id = 1;
    if (this->request_id().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->request_id().data(), static_cast<int>(this->request_id().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.RequestInfo.request_id");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->request_id(), target);
    }
  
    // string serving_data = 2;
    if (this->serving_data().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->serving_data().data(), static_cast<int>(this->serving_data().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.RequestInfo.serving_data");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->serving_data(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.RequestInfo)
    return target;
  }
  
  size_t RequestInfo::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.RequestInfo)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string request_id = 1;
    if (this->request_id().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->request_id());
    }
  
    // string serving_data = 2;
    if (this->serving_data().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->serving_data());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void RequestInfo::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.RequestInfo)
    GOOGLE_DCHECK_NE(&from, this);
    const RequestInfo* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const RequestInfo>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.RequestInfo)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.RequestInfo)
      MergeFrom(*source);
    }
  }
  
  void RequestInfo::MergeFrom(const RequestInfo& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.RequestInfo)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.request_id().size() > 0) {
  
      request_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.request_id_);
    }
    if (from.serving_data().size() > 0) {
  
      serving_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.serving_data_);
    }
  }
  
  void RequestInfo::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.RequestInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void RequestInfo::CopyFrom(const RequestInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.RequestInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool RequestInfo::IsInitialized() const {
    return true;
  }
  
  void RequestInfo::Swap(RequestInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void RequestInfo::InternalSwap(RequestInfo* other) {
    using std::swap;
    request_id_.Swap(&other->request_id_);
    serving_data_.Swap(&other->serving_data_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata RequestInfo::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void ResourceInfo::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int ResourceInfo::kResourceTypeFieldNumber;
  const int ResourceInfo::kResourceNameFieldNumber;
  const int ResourceInfo::kOwnerFieldNumber;
  const int ResourceInfo::kDescriptionFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  ResourceInfo::ResourceInfo()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsResourceInfo();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.ResourceInfo)
  }
  ResourceInfo::ResourceInfo(const ResourceInfo& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    resource_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.resource_type().size() > 0) {
      resource_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_type_);
    }
    resource_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.resource_name().size() > 0) {
      resource_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_name_);
    }
    owner_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.owner().size() > 0) {
      owner_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.owner_);
    }
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.ResourceInfo)
  }
  
  void ResourceInfo::SharedCtor() {
    resource_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    resource_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    owner_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  ResourceInfo::~ResourceInfo() {
    // @@protoc_insertion_point(destructor:google.rpc.ResourceInfo)
    SharedDtor();
  }
  
  void ResourceInfo::SharedDtor() {
    resource_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    resource_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    owner_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void ResourceInfo::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* ResourceInfo::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const ResourceInfo& ResourceInfo::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsResourceInfo();
    return *internal_default_instance();
  }
  
  ResourceInfo* ResourceInfo::New(::google::protobuf::Arena* arena) const {
    ResourceInfo* n = new ResourceInfo;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void ResourceInfo::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.ResourceInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    resource_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    resource_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    owner_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool ResourceInfo::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:google.rpc.ResourceInfo)
    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)) {
        // string resource_type = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_resource_type()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->resource_type().data(), static_cast<int>(this->resource_type().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.ResourceInfo.resource_type"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string resource_name = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_resource_name()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->resource_name().data(), static_cast<int>(this->resource_name().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.ResourceInfo.resource_name"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string owner = 3;
        case 3: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_owner()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->owner().data(), static_cast<int>(this->owner().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.ResourceInfo.owner"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string description = 4;
        case 4: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.ResourceInfo.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.rpc.ResourceInfo)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.ResourceInfo)
    return false;
  #undef DO_
  }
  
  void ResourceInfo::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.ResourceInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string resource_type = 1;
    if (this->resource_type().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->resource_type().data(), static_cast<int>(this->resource_type().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.resource_type");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->resource_type(), output);
    }
  
    // string resource_name = 2;
    if (this->resource_name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->resource_name().data(), static_cast<int>(this->resource_name().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.resource_name");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->resource_name(), output);
    }
  
    // string owner = 3;
    if (this->owner().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->owner().data(), static_cast<int>(this->owner().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.owner");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        3, this->owner(), output);
    }
  
    // string description = 4;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.description");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        4, this->description(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.ResourceInfo)
  }
  
  ::google::protobuf::uint8* ResourceInfo::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.ResourceInfo)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string resource_type = 1;
    if (this->resource_type().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->resource_type().data(), static_cast<int>(this->resource_type().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.resource_type");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->resource_type(), target);
    }
  
    // string resource_name = 2;
    if (this->resource_name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->resource_name().data(), static_cast<int>(this->resource_name().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.resource_name");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->resource_name(), target);
    }
  
    // string owner = 3;
    if (this->owner().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->owner().data(), static_cast<int>(this->owner().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.owner");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          3, this->owner(), target);
    }
  
    // string description = 4;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.ResourceInfo.description");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          4, this->description(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.ResourceInfo)
    return target;
  }
  
  size_t ResourceInfo::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.ResourceInfo)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string resource_type = 1;
    if (this->resource_type().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->resource_type());
    }
  
    // string resource_name = 2;
    if (this->resource_name().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->resource_name());
    }
  
    // string owner = 3;
    if (this->owner().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->owner());
    }
  
    // string description = 4;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void ResourceInfo::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.ResourceInfo)
    GOOGLE_DCHECK_NE(&from, this);
    const ResourceInfo* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const ResourceInfo>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.ResourceInfo)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.ResourceInfo)
      MergeFrom(*source);
    }
  }
  
  void ResourceInfo::MergeFrom(const ResourceInfo& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.ResourceInfo)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.resource_type().size() > 0) {
  
      resource_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_type_);
    }
    if (from.resource_name().size() > 0) {
  
      resource_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_name_);
    }
    if (from.owner().size() > 0) {
  
      owner_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.owner_);
    }
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
  }
  
  void ResourceInfo::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.ResourceInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void ResourceInfo::CopyFrom(const ResourceInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.ResourceInfo)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool ResourceInfo::IsInitialized() const {
    return true;
  }
  
  void ResourceInfo::Swap(ResourceInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void ResourceInfo::InternalSwap(ResourceInfo* other) {
    using std::swap;
    resource_type_.Swap(&other->resource_type_);
    resource_name_.Swap(&other->resource_name_);
    owner_.Swap(&other->owner_);
    description_.Swap(&other->description_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata ResourceInfo::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void Help_Link::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Help_Link::kDescriptionFieldNumber;
  const int Help_Link::kUrlFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Help_Link::Help_Link()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsHelp_Link();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.Help.Link)
  }
  Help_Link::Help_Link(const Help_Link& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.url().size() > 0) {
      url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.url_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.Help.Link)
  }
  
  void Help_Link::SharedCtor() {
    description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  Help_Link::~Help_Link() {
    // @@protoc_insertion_point(destructor:google.rpc.Help.Link)
    SharedDtor();
  }
  
  void Help_Link::SharedDtor() {
    description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void Help_Link::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* Help_Link::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const Help_Link& Help_Link::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsHelp_Link();
    return *internal_default_instance();
  }
  
  Help_Link* Help_Link::New(::google::protobuf::Arena* arena) const {
    Help_Link* n = new Help_Link;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void Help_Link::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.Help.Link)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool Help_Link::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:google.rpc.Help.Link)
    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)) {
        // string description = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.Help.Link.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string url = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_url()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->url().data(), static_cast<int>(this->url().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.Help.Link.url"));
          } 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:google.rpc.Help.Link)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.Help.Link)
    return false;
  #undef DO_
  }
  
  void Help_Link::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.Help.Link)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string description = 1;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.Help.Link.description");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->description(), output);
    }
  
    // string url = 2;
    if (this->url().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->url().data(), static_cast<int>(this->url().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.Help.Link.url");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->url(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.Help.Link)
  }
  
  ::google::protobuf::uint8* Help_Link::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.Help.Link)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string description = 1;
    if (this->description().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.Help.Link.description");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->description(), target);
    }
  
    // string url = 2;
    if (this->url().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->url().data(), static_cast<int>(this->url().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.Help.Link.url");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->url(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.Help.Link)
    return target;
  }
  
  size_t Help_Link::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.Help.Link)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string description = 1;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    // string url = 2;
    if (this->url().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void Help_Link::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.Help.Link)
    GOOGLE_DCHECK_NE(&from, this);
    const Help_Link* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const Help_Link>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.Help.Link)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.Help.Link)
      MergeFrom(*source);
    }
  }
  
  void Help_Link::MergeFrom(const Help_Link& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.Help.Link)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    if (from.url().size() > 0) {
  
      url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.url_);
    }
  }
  
  void Help_Link::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.Help.Link)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Help_Link::CopyFrom(const Help_Link& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.Help.Link)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool Help_Link::IsInitialized() const {
    return true;
  }
  
  void Help_Link::Swap(Help_Link* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Help_Link::InternalSwap(Help_Link* other) {
    using std::swap;
    description_.Swap(&other->description_);
    url_.Swap(&other->url_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata Help_Link::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void Help::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Help::kLinksFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Help::Help()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsHelp();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.Help)
  }
  Help::Help(const Help& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        links_(from.links_),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    // @@protoc_insertion_point(copy_constructor:google.rpc.Help)
  }
  
  void Help::SharedCtor() {
    _cached_size_ = 0;
  }
  
  Help::~Help() {
    // @@protoc_insertion_point(destructor:google.rpc.Help)
    SharedDtor();
  }
  
  void Help::SharedDtor() {
  }
  
  void Help::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* Help::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const Help& Help::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsHelp();
    return *internal_default_instance();
  }
  
  Help* Help::New(::google::protobuf::Arena* arena) const {
    Help* n = new Help;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void Help::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.Help)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    links_.Clear();
    _internal_metadata_.Clear();
  }
  
  bool Help::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:google.rpc.Help)
    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)) {
        // repeated .google.rpc.Help.Link links = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_links()));
          } 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:google.rpc.Help)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.Help)
    return false;
  #undef DO_
  }
  
  void Help::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.Help)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.Help.Link links = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->links_size()); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->links(static_cast<int>(i)), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.Help)
  }
  
  ::google::protobuf::uint8* Help::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.Help)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // repeated .google.rpc.Help.Link links = 1;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->links_size()); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, this->links(static_cast<int>(i)), deterministic, target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.Help)
    return target;
  }
  
  size_t Help::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.Help)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // repeated .google.rpc.Help.Link links = 1;
    {
      unsigned int count = static_cast<unsigned int>(this->links_size());
      total_size += 1UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSize(
            this->links(static_cast<int>(i)));
      }
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void Help::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.Help)
    GOOGLE_DCHECK_NE(&from, this);
    const Help* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const Help>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.Help)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.Help)
      MergeFrom(*source);
    }
  }
  
  void Help::MergeFrom(const Help& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.Help)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    links_.MergeFrom(from.links_);
  }
  
  void Help::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.Help)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Help::CopyFrom(const Help& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.Help)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool Help::IsInitialized() const {
    return true;
  }
  
  void Help::Swap(Help* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Help::InternalSwap(Help* other) {
    using std::swap;
    links_.InternalSwap(&other->links_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata Help::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void LocalizedMessage::InitAsDefaultInstance() {
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int LocalizedMessage::kLocaleFieldNumber;
  const int LocalizedMessage::kMessageFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  LocalizedMessage::LocalizedMessage()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
      ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsLocalizedMessage();
    }
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.rpc.LocalizedMessage)
  }
  LocalizedMessage::LocalizedMessage(const LocalizedMessage& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(NULL),
        _cached_size_(0) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    locale_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.locale().size() > 0) {
      locale_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.locale_);
    }
    message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.message().size() > 0) {
      message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
    }
    // @@protoc_insertion_point(copy_constructor:google.rpc.LocalizedMessage)
  }
  
  void LocalizedMessage::SharedCtor() {
    locale_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  LocalizedMessage::~LocalizedMessage() {
    // @@protoc_insertion_point(destructor:google.rpc.LocalizedMessage)
    SharedDtor();
  }
  
  void LocalizedMessage::SharedDtor() {
    locale_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void LocalizedMessage::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* LocalizedMessage::descriptor() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
  }
  
  const LocalizedMessage& LocalizedMessage::default_instance() {
    ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::InitDefaultsLocalizedMessage();
    return *internal_default_instance();
  }
  
  LocalizedMessage* LocalizedMessage::New(::google::protobuf::Arena* arena) const {
    LocalizedMessage* n = new LocalizedMessage;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void LocalizedMessage::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.rpc.LocalizedMessage)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    locale_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  bool LocalizedMessage::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:google.rpc.LocalizedMessage)
    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)) {
        // string locale = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_locale()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->locale().data(), static_cast<int>(this->locale().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.LocalizedMessage.locale"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string message = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) ==
              static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_message()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->message().data(), static_cast<int>(this->message().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.rpc.LocalizedMessage.message"));
          } 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:google.rpc.LocalizedMessage)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.rpc.LocalizedMessage)
    return false;
  #undef DO_
  }
  
  void LocalizedMessage::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.rpc.LocalizedMessage)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string locale = 1;
    if (this->locale().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->locale().data(), static_cast<int>(this->locale().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.LocalizedMessage.locale");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->locale(), output);
    }
  
    // string message = 2;
    if (this->message().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->message().data(), static_cast<int>(this->message().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.LocalizedMessage.message");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->message(), output);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
    }
    // @@protoc_insertion_point(serialize_end:google.rpc.LocalizedMessage)
  }
  
  ::google::protobuf::uint8* LocalizedMessage::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.rpc.LocalizedMessage)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string locale = 1;
    if (this->locale().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->locale().data(), static_cast<int>(this->locale().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.LocalizedMessage.locale");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->locale(), target);
    }
  
    // string message = 2;
    if (this->message().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->message().data(), static_cast<int>(this->message().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.rpc.LocalizedMessage.message");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->message(), target);
    }
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:google.rpc.LocalizedMessage)
    return target;
  }
  
  size_t LocalizedMessage::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.rpc.LocalizedMessage)
    size_t total_size = 0;
  
    if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
    }
    // string locale = 1;
    if (this->locale().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->locale());
    }
  
    // string message = 2;
    if (this->message().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->message());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void LocalizedMessage::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.rpc.LocalizedMessage)
    GOOGLE_DCHECK_NE(&from, this);
    const LocalizedMessage* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const LocalizedMessage>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.LocalizedMessage)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.LocalizedMessage)
      MergeFrom(*source);
    }
  }
  
  void LocalizedMessage::MergeFrom(const LocalizedMessage& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.LocalizedMessage)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.locale().size() > 0) {
  
      locale_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.locale_);
    }
    if (from.message().size() > 0) {
  
      message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
    }
  }
  
  void LocalizedMessage::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.rpc.LocalizedMessage)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void LocalizedMessage::CopyFrom(const LocalizedMessage& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.rpc.LocalizedMessage)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool LocalizedMessage::IsInitialized() const {
    return true;
  }
  
  void LocalizedMessage::Swap(LocalizedMessage* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void LocalizedMessage::InternalSwap(LocalizedMessage* other) {
    using std::swap;
    locale_.Swap(&other->locale_);
    message_.Swap(&other->message_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata LocalizedMessage::GetMetadata() const {
    protobuf_google_2frpc_2ferror_5fdetails_2eproto::protobuf_AssignDescriptorsOnce();
    return ::protobuf_google_2frpc_2ferror_5fdetails_2eproto::file_level_metadata[kIndexInFileMessages];
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  }  // namespace rpc
  }  // namespace google
  
  // @@protoc_insertion_point(global_scope)
  