// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: chromium/chrome/common/safe_browsing/csd.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "chromium/chrome/common/safe_browsing/csd.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.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/io/zero_copy_stream_impl_lite.h>
// @@protoc_insertion_point(includes)

namespace safe_browsing {

void protobuf_ShutdownFile_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto() {
  delete ChromeUserPopulation::default_instance_;
  delete ClientPhishingRequest::default_instance_;
  delete ClientPhishingRequest_Feature::default_instance_;
  delete ClientPhishingResponse::default_instance_;
  delete ClientMalwareRequest::default_instance_;
  delete ClientMalwareRequest_UrlInfo::default_instance_;
  delete ClientMalwareResponse::default_instance_;
  delete ClientDownloadRequest::default_instance_;
  delete ClientDownloadRequest_Digests::default_instance_;
  delete ClientDownloadRequest_Resource::default_instance_;
  delete ClientDownloadRequest_CertificateChain::default_instance_;
  delete ClientDownloadRequest_CertificateChain_Element::default_instance_;
  delete ClientDownloadRequest_ExtendedAttr::default_instance_;
  delete ClientDownloadRequest_SignatureInfo::default_instance_;
  delete ClientDownloadRequest_PEImageHeaders::default_instance_;
  delete ClientDownloadRequest_PEImageHeaders_DebugData::default_instance_;
  delete ClientDownloadRequest_MachOHeaders::default_instance_;
  delete ClientDownloadRequest_MachOHeaders_LoadCommand::default_instance_;
  delete ClientDownloadRequest_ImageHeaders::default_instance_;
  delete ClientDownloadRequest_ArchivedBinary::default_instance_;
  delete ClientDownloadRequest_URLChainEntry::default_instance_;
  delete ClientDownloadResponse::default_instance_;
  delete ClientDownloadResponse_MoreInfo::default_instance_;
  delete ClientDownloadReport::default_instance_;
  delete ClientDownloadReport_UserInformation::default_instance_;
  delete ClientUploadResponse::default_instance_;
  delete ClientIncidentReport::default_instance_;
  delete ClientIncidentReport_IncidentData::default_instance_;
  delete ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance_;
  delete ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance_;
  delete ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::default_instance_;
  delete ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance_;
  delete ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance_;
  delete ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance_;
  delete ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance_;
  delete ClientIncidentReport_DownloadDetails::default_instance_;
  delete ClientIncidentReport_EnvironmentData::default_instance_;
  delete ClientIncidentReport_EnvironmentData_OS::default_instance_;
  delete ClientIncidentReport_EnvironmentData_OS_RegistryValue::default_instance_;
  delete ClientIncidentReport_EnvironmentData_OS_RegistryKey::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Machine::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process_Patch::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process_NetworkProvider::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process_Dll::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process_ModuleState::default_instance_;
  delete ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::default_instance_;
  delete ClientIncidentReport_ExtensionData::default_instance_;
  delete ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance_;
  delete ClientIncidentReport_NonBinaryDownloadDetails::default_instance_;
  delete ClientIncidentResponse::default_instance_;
  delete ClientIncidentResponse_EnvironmentRequest::default_instance_;
  delete DownloadMetadata::default_instance_;
  delete ClientSafeBrowsingReportRequest::default_instance_;
  delete ClientSafeBrowsingReportRequest_HTTPHeader::default_instance_;
  delete ClientSafeBrowsingReportRequest_HTTPRequest::default_instance_;
  delete ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance_;
  delete ClientSafeBrowsingReportRequest_HTTPResponse::default_instance_;
  delete ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance_;
  delete ClientSafeBrowsingReportRequest_Resource::default_instance_;
}

#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
void protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto_impl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#else
void protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#endif
  ChromeUserPopulation::default_instance_ = new ChromeUserPopulation();
  ClientPhishingRequest::default_instance_ = new ClientPhishingRequest();
  ClientPhishingRequest_Feature::default_instance_ = new ClientPhishingRequest_Feature();
  ClientPhishingResponse::default_instance_ = new ClientPhishingResponse();
  ClientMalwareRequest::default_instance_ = new ClientMalwareRequest();
  ClientMalwareRequest_UrlInfo::default_instance_ = new ClientMalwareRequest_UrlInfo();
  ClientMalwareResponse::default_instance_ = new ClientMalwareResponse();
  ClientDownloadRequest::default_instance_ = new ClientDownloadRequest();
  ClientDownloadRequest_Digests::default_instance_ = new ClientDownloadRequest_Digests();
  ClientDownloadRequest_Resource::default_instance_ = new ClientDownloadRequest_Resource();
  ClientDownloadRequest_CertificateChain::default_instance_ = new ClientDownloadRequest_CertificateChain();
  ClientDownloadRequest_CertificateChain_Element::default_instance_ = new ClientDownloadRequest_CertificateChain_Element();
  ClientDownloadRequest_ExtendedAttr::default_instance_ = new ClientDownloadRequest_ExtendedAttr();
  ClientDownloadRequest_SignatureInfo::default_instance_ = new ClientDownloadRequest_SignatureInfo();
  ClientDownloadRequest_PEImageHeaders::default_instance_ = new ClientDownloadRequest_PEImageHeaders();
  ClientDownloadRequest_PEImageHeaders_DebugData::default_instance_ = new ClientDownloadRequest_PEImageHeaders_DebugData();
  ClientDownloadRequest_MachOHeaders::default_instance_ = new ClientDownloadRequest_MachOHeaders();
  ClientDownloadRequest_MachOHeaders_LoadCommand::default_instance_ = new ClientDownloadRequest_MachOHeaders_LoadCommand();
  ClientDownloadRequest_ImageHeaders::default_instance_ = new ClientDownloadRequest_ImageHeaders();
  ClientDownloadRequest_ArchivedBinary::default_instance_ = new ClientDownloadRequest_ArchivedBinary();
  ClientDownloadRequest_URLChainEntry::default_instance_ = new ClientDownloadRequest_URLChainEntry();
  ClientDownloadResponse::default_instance_ = new ClientDownloadResponse();
  ClientDownloadResponse_MoreInfo::default_instance_ = new ClientDownloadResponse_MoreInfo();
  ClientDownloadReport::default_instance_ = new ClientDownloadReport();
  ClientDownloadReport_UserInformation::default_instance_ = new ClientDownloadReport_UserInformation();
  ClientUploadResponse::default_instance_ = new ClientUploadResponse();
  ClientIncidentReport::default_instance_ = new ClientIncidentReport();
  ClientIncidentReport_IncidentData::default_instance_ = new ClientIncidentReport_IncidentData();
  ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance_ = new ClientIncidentReport_IncidentData_TrackedPreferenceIncident();
  ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance_ = new ClientIncidentReport_IncidentData_BinaryIntegrityIncident();
  ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::default_instance_ = new ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile();
  ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance_ = new ClientIncidentReport_IncidentData_BlacklistLoadIncident();
  ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance_ = new ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident();
  ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance_ = new ClientIncidentReport_IncidentData_ResourceRequestIncident();
  ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance_ = new ClientIncidentReport_IncidentData_SuspiciousModuleIncident();
  ClientIncidentReport_DownloadDetails::default_instance_ = new ClientIncidentReport_DownloadDetails();
  ClientIncidentReport_EnvironmentData::default_instance_ = new ClientIncidentReport_EnvironmentData();
  ClientIncidentReport_EnvironmentData_OS::default_instance_ = new ClientIncidentReport_EnvironmentData_OS();
  ClientIncidentReport_EnvironmentData_OS_RegistryValue::default_instance_ = new ClientIncidentReport_EnvironmentData_OS_RegistryValue();
  ClientIncidentReport_EnvironmentData_OS_RegistryKey::default_instance_ = new ClientIncidentReport_EnvironmentData_OS_RegistryKey();
  ClientIncidentReport_EnvironmentData_Machine::default_instance_ = new ClientIncidentReport_EnvironmentData_Machine();
  ClientIncidentReport_EnvironmentData_Process::default_instance_ = new ClientIncidentReport_EnvironmentData_Process();
  ClientIncidentReport_EnvironmentData_Process_Patch::default_instance_ = new ClientIncidentReport_EnvironmentData_Process_Patch();
  ClientIncidentReport_EnvironmentData_Process_NetworkProvider::default_instance_ = new ClientIncidentReport_EnvironmentData_Process_NetworkProvider();
  ClientIncidentReport_EnvironmentData_Process_Dll::default_instance_ = new ClientIncidentReport_EnvironmentData_Process_Dll();
  ClientIncidentReport_EnvironmentData_Process_ModuleState::default_instance_ = new ClientIncidentReport_EnvironmentData_Process_ModuleState();
  ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::default_instance_ = new ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification();
  ClientIncidentReport_ExtensionData::default_instance_ = new ClientIncidentReport_ExtensionData();
  ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance_ = new ClientIncidentReport_ExtensionData_ExtensionInfo();
  ClientIncidentReport_NonBinaryDownloadDetails::default_instance_ = new ClientIncidentReport_NonBinaryDownloadDetails();
  ClientIncidentResponse::default_instance_ = new ClientIncidentResponse();
  ClientIncidentResponse_EnvironmentRequest::default_instance_ = new ClientIncidentResponse_EnvironmentRequest();
  DownloadMetadata::default_instance_ = new DownloadMetadata();
  ClientSafeBrowsingReportRequest::default_instance_ = new ClientSafeBrowsingReportRequest();
  ClientSafeBrowsingReportRequest_HTTPHeader::default_instance_ = new ClientSafeBrowsingReportRequest_HTTPHeader();
  ClientSafeBrowsingReportRequest_HTTPRequest::default_instance_ = new ClientSafeBrowsingReportRequest_HTTPRequest();
  ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance_ = new ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine();
  ClientSafeBrowsingReportRequest_HTTPResponse::default_instance_ = new ClientSafeBrowsingReportRequest_HTTPResponse();
  ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance_ = new ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine();
  ClientSafeBrowsingReportRequest_Resource::default_instance_ = new ClientSafeBrowsingReportRequest_Resource();
  ChromeUserPopulation::default_instance_->InitAsDefaultInstance();
  ClientPhishingRequest::default_instance_->InitAsDefaultInstance();
  ClientPhishingRequest_Feature::default_instance_->InitAsDefaultInstance();
  ClientPhishingResponse::default_instance_->InitAsDefaultInstance();
  ClientMalwareRequest::default_instance_->InitAsDefaultInstance();
  ClientMalwareRequest_UrlInfo::default_instance_->InitAsDefaultInstance();
  ClientMalwareResponse::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_Digests::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_Resource::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_CertificateChain::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_CertificateChain_Element::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_ExtendedAttr::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_SignatureInfo::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_PEImageHeaders::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_PEImageHeaders_DebugData::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_MachOHeaders::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_MachOHeaders_LoadCommand::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_ImageHeaders::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_ArchivedBinary::default_instance_->InitAsDefaultInstance();
  ClientDownloadRequest_URLChainEntry::default_instance_->InitAsDefaultInstance();
  ClientDownloadResponse::default_instance_->InitAsDefaultInstance();
  ClientDownloadResponse_MoreInfo::default_instance_->InitAsDefaultInstance();
  ClientDownloadReport::default_instance_->InitAsDefaultInstance();
  ClientDownloadReport_UserInformation::default_instance_->InitAsDefaultInstance();
  ClientUploadResponse::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_DownloadDetails::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_OS::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_OS_RegistryValue::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_OS_RegistryKey::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Machine::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process_Patch::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process_NetworkProvider::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process_Dll::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process_ModuleState::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_ExtensionData::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance_->InitAsDefaultInstance();
  ClientIncidentReport_NonBinaryDownloadDetails::default_instance_->InitAsDefaultInstance();
  ClientIncidentResponse::default_instance_->InitAsDefaultInstance();
  ClientIncidentResponse_EnvironmentRequest::default_instance_->InitAsDefaultInstance();
  DownloadMetadata::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_HTTPHeader::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_HTTPRequest::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_HTTPResponse::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance_->InitAsDefaultInstance();
  ClientSafeBrowsingReportRequest_Resource::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto);
}

#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto_once_);
void protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto() {
  ::google::protobuf::GoogleOnceInit(&protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto_once_,
                 &protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto_impl);
}
#else
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto {
  StaticDescriptorInitializer_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto() {
    protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
  }
} static_descriptor_initializer_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto_;
#endif

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

bool ChromeUserPopulation_UserPopulation_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ChromeUserPopulation_UserPopulation ChromeUserPopulation::UNKNOWN_USER_POPULATION;
const ChromeUserPopulation_UserPopulation ChromeUserPopulation::SAFE_BROWSING;
const ChromeUserPopulation_UserPopulation ChromeUserPopulation::EXTENDED_REPORTING;
const ChromeUserPopulation_UserPopulation ChromeUserPopulation::UserPopulation_MIN;
const ChromeUserPopulation_UserPopulation ChromeUserPopulation::UserPopulation_MAX;
const int ChromeUserPopulation::UserPopulation_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ChromeUserPopulation::kUserPopulationFieldNumber;
#endif  // !_MSC_VER

ChromeUserPopulation::ChromeUserPopulation()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ChromeUserPopulation)
}

void ChromeUserPopulation::InitAsDefaultInstance() {
}

ChromeUserPopulation::ChromeUserPopulation(const ChromeUserPopulation& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ChromeUserPopulation)
}

void ChromeUserPopulation::SharedCtor() {
  _cached_size_ = 0;
  user_population_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ChromeUserPopulation::~ChromeUserPopulation() {
  // @@protoc_insertion_point(destructor:safe_browsing.ChromeUserPopulation)
  SharedDtor();
}

void ChromeUserPopulation::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ChromeUserPopulation::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ChromeUserPopulation& ChromeUserPopulation::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ChromeUserPopulation* ChromeUserPopulation::default_instance_ = NULL;

ChromeUserPopulation* ChromeUserPopulation::New() const {
  return new ChromeUserPopulation;
}

void ChromeUserPopulation::Clear() {
  user_population_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ChromeUserPopulation::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ChromeUserPopulation)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ChromeUserPopulation.UserPopulation user_population = 1;
      case 1: {
        if (tag == 8) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ChromeUserPopulation_UserPopulation_IsValid(value)) {
            set_user_population(static_cast< ::safe_browsing::ChromeUserPopulation_UserPopulation >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ChromeUserPopulation)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ChromeUserPopulation)
  return false;
#undef DO_
}

void ChromeUserPopulation::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ChromeUserPopulation)
  // optional .safe_browsing.ChromeUserPopulation.UserPopulation user_population = 1;
  if (has_user_population()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->user_population(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ChromeUserPopulation)
}

int ChromeUserPopulation::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ChromeUserPopulation.UserPopulation user_population = 1;
    if (has_user_population()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->user_population());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChromeUserPopulation::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ChromeUserPopulation*>(&from));
}

void ChromeUserPopulation::MergeFrom(const ChromeUserPopulation& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_user_population()) {
      set_user_population(from.user_population());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ChromeUserPopulation::CopyFrom(const ChromeUserPopulation& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChromeUserPopulation::IsInitialized() const {

  return true;
}

void ChromeUserPopulation::Swap(ChromeUserPopulation* other) {
  if (other != this) {
    std::swap(user_population_, other->user_population_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ChromeUserPopulation::GetTypeName() const {
  return "safe_browsing.ChromeUserPopulation";
}


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

#ifndef _MSC_VER
const int ClientPhishingRequest_Feature::kNameFieldNumber;
const int ClientPhishingRequest_Feature::kValueFieldNumber;
#endif  // !_MSC_VER

ClientPhishingRequest_Feature::ClientPhishingRequest_Feature()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientPhishingRequest.Feature)
}

void ClientPhishingRequest_Feature::InitAsDefaultInstance() {
}

ClientPhishingRequest_Feature::ClientPhishingRequest_Feature(const ClientPhishingRequest_Feature& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientPhishingRequest.Feature)
}

void ClientPhishingRequest_Feature::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientPhishingRequest_Feature::~ClientPhishingRequest_Feature() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientPhishingRequest.Feature)
  SharedDtor();
}

void ClientPhishingRequest_Feature::SharedDtor() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientPhishingRequest_Feature::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientPhishingRequest_Feature& ClientPhishingRequest_Feature::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientPhishingRequest_Feature* ClientPhishingRequest_Feature::default_instance_ = NULL;

ClientPhishingRequest_Feature* ClientPhishingRequest_Feature::New() const {
  return new ClientPhishingRequest_Feature;
}

void ClientPhishingRequest_Feature::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_name()) {
      if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        name_->clear();
      }
    }
    value_ = 0;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientPhishingRequest_Feature::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientPhishingRequest.Feature)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(17)) goto parse_value;
        break;
      }

      // required double value = 2;
      case 2: {
        if (tag == 17) {
         parse_value:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &value_)));
          set_has_value();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientPhishingRequest.Feature)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientPhishingRequest.Feature)
  return false;
#undef DO_
}

void ClientPhishingRequest_Feature::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientPhishingRequest.Feature)
  // required string name = 1;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // required double value = 2;
  if (has_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->value(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientPhishingRequest.Feature)
}

int ClientPhishingRequest_Feature::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }

    // required double value = 2;
    if (has_value()) {
      total_size += 1 + 8;
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientPhishingRequest_Feature::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientPhishingRequest_Feature*>(&from));
}

void ClientPhishingRequest_Feature::MergeFrom(const ClientPhishingRequest_Feature& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_name()) {
      set_name(from.name());
    }
    if (from.has_value()) {
      set_value(from.value());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientPhishingRequest_Feature::CopyFrom(const ClientPhishingRequest_Feature& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientPhishingRequest_Feature::Swap(ClientPhishingRequest_Feature* other) {
  if (other != this) {
    std::swap(name_, other->name_);
    std::swap(value_, other->value_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientPhishingRequest_Feature::GetTypeName() const {
  return "safe_browsing.ClientPhishingRequest.Feature";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientPhishingRequest::kUrlFieldNumber;
const int ClientPhishingRequest::kOBSOLETEHashPrefixFieldNumber;
const int ClientPhishingRequest::kClientScoreFieldNumber;
const int ClientPhishingRequest::kIsPhishingFieldNumber;
const int ClientPhishingRequest::kFeatureMapFieldNumber;
const int ClientPhishingRequest::kModelVersionFieldNumber;
const int ClientPhishingRequest::kNonModelFeatureMapFieldNumber;
const int ClientPhishingRequest::kOBSOLETEReferrerUrlFieldNumber;
const int ClientPhishingRequest::kShingleHashesFieldNumber;
const int ClientPhishingRequest::kModelFilenameFieldNumber;
const int ClientPhishingRequest::kPopulationFieldNumber;
#endif  // !_MSC_VER

ClientPhishingRequest::ClientPhishingRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientPhishingRequest)
}

void ClientPhishingRequest::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(
      ::safe_browsing::ChromeUserPopulation::internal_default_instance());
#else
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(&::safe_browsing::ChromeUserPopulation::default_instance());
#endif
}

ClientPhishingRequest::ClientPhishingRequest(const ClientPhishingRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientPhishingRequest)
}

void ClientPhishingRequest::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  obsolete_hash_prefix_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  client_score_ = 0;
  is_phishing_ = false;
  model_version_ = 0;
  obsolete_referrer_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  model_filename_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  population_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientPhishingRequest::~ClientPhishingRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientPhishingRequest)
  SharedDtor();
}

void ClientPhishingRequest::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (obsolete_hash_prefix_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete obsolete_hash_prefix_;
  }
  if (obsolete_referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete obsolete_referrer_url_;
  }
  if (model_filename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete model_filename_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete population_;
  }
}

void ClientPhishingRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientPhishingRequest& ClientPhishingRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientPhishingRequest* ClientPhishingRequest::default_instance_ = NULL;

ClientPhishingRequest* ClientPhishingRequest::New() const {
  return new ClientPhishingRequest;
}

void ClientPhishingRequest::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientPhishingRequest*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 175) {
    ZR_(client_score_, is_phishing_);
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_obsolete_hash_prefix()) {
      if (obsolete_hash_prefix_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        obsolete_hash_prefix_->clear();
      }
    }
    model_version_ = 0;
    if (has_obsolete_referrer_url()) {
      if (obsolete_referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        obsolete_referrer_url_->clear();
      }
    }
  }
  if (_has_bits_[8 / 32] & 1536) {
    if (has_model_filename()) {
      if (model_filename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        model_filename_->clear();
      }
    }
    if (has_population()) {
      if (population_ != NULL) population_->::safe_browsing::ChromeUserPopulation::Clear();
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  feature_map_.Clear();
  non_model_feature_map_.Clear();
  shingle_hashes_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientPhishingRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientPhishingRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(21)) goto parse_client_score;
        break;
      }

      // required float client_score = 2;
      case 2: {
        if (tag == 21) {
         parse_client_score:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &client_score_)));
          set_has_client_score();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_is_phishing;
        break;
      }

      // optional bool is_phishing = 4;
      case 4: {
        if (tag == 32) {
         parse_is_phishing:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_phishing_)));
          set_has_is_phishing();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_feature_map;
        break;
      }

      // repeated .safe_browsing.ClientPhishingRequest.Feature feature_map = 5;
      case 5: {
        if (tag == 42) {
         parse_feature_map:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_feature_map()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_feature_map;
        if (input->ExpectTag(48)) goto parse_model_version;
        break;
      }

      // optional int32 model_version = 6;
      case 6: {
        if (tag == 48) {
         parse_model_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &model_version_)));
          set_has_model_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(66)) goto parse_non_model_feature_map;
        break;
      }

      // repeated .safe_browsing.ClientPhishingRequest.Feature non_model_feature_map = 8;
      case 8: {
        if (tag == 66) {
         parse_non_model_feature_map:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_non_model_feature_map()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(66)) goto parse_non_model_feature_map;
        if (input->ExpectTag(74)) goto parse_OBSOLETE_referrer_url;
        break;
      }

      // optional string OBSOLETE_referrer_url = 9;
      case 9: {
        if (tag == 74) {
         parse_OBSOLETE_referrer_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_obsolete_referrer_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(82)) goto parse_OBSOLETE_hash_prefix;
        break;
      }

      // optional bytes OBSOLETE_hash_prefix = 10;
      case 10: {
        if (tag == 82) {
         parse_OBSOLETE_hash_prefix:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_obsolete_hash_prefix()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(98)) goto parse_shingle_hashes;
        break;
      }

      // repeated uint32 shingle_hashes = 12 [packed = true];
      case 12: {
        if (tag == 98) {
         parse_shingle_hashes:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_shingle_hashes())));
        } else if (tag == 96) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 98, input, this->mutable_shingle_hashes())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(106)) goto parse_model_filename;
        break;
      }

      // optional string model_filename = 13;
      case 13: {
        if (tag == 106) {
         parse_model_filename:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_model_filename()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(114)) goto parse_population;
        break;
      }

      // optional .safe_browsing.ChromeUserPopulation population = 14;
      case 14: {
        if (tag == 114) {
         parse_population:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_population()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientPhishingRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientPhishingRequest)
  return false;
#undef DO_
}

void ClientPhishingRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientPhishingRequest)
  // optional string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // required float client_score = 2;
  if (has_client_score()) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->client_score(), output);
  }

  // optional bool is_phishing = 4;
  if (has_is_phishing()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->is_phishing(), output);
  }

  // repeated .safe_browsing.ClientPhishingRequest.Feature feature_map = 5;
  for (int i = 0; i < this->feature_map_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->feature_map(i), output);
  }

  // optional int32 model_version = 6;
  if (has_model_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->model_version(), output);
  }

  // repeated .safe_browsing.ClientPhishingRequest.Feature non_model_feature_map = 8;
  for (int i = 0; i < this->non_model_feature_map_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      8, this->non_model_feature_map(i), output);
  }

  // optional string OBSOLETE_referrer_url = 9;
  if (has_obsolete_referrer_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->obsolete_referrer_url(), output);
  }

  // optional bytes OBSOLETE_hash_prefix = 10;
  if (has_obsolete_hash_prefix()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      10, this->obsolete_hash_prefix(), output);
  }

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

  // optional string model_filename = 13;
  if (has_model_filename()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      13, this->model_filename(), output);
  }

  // optional .safe_browsing.ChromeUserPopulation population = 14;
  if (has_population()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      14, this->population(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientPhishingRequest)
}

int ClientPhishingRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string url = 1;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // optional bytes OBSOLETE_hash_prefix = 10;
    if (has_obsolete_hash_prefix()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->obsolete_hash_prefix());
    }

    // required float client_score = 2;
    if (has_client_score()) {
      total_size += 1 + 4;
    }

    // optional bool is_phishing = 4;
    if (has_is_phishing()) {
      total_size += 1 + 1;
    }

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

    // optional string OBSOLETE_referrer_url = 9;
    if (has_obsolete_referrer_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->obsolete_referrer_url());
    }

  }
  if (_has_bits_[9 / 32] & (0xffu << (9 % 32))) {
    // optional string model_filename = 13;
    if (has_model_filename()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->model_filename());
    }

    // optional .safe_browsing.ChromeUserPopulation population = 14;
    if (has_population()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->population());
    }

  }
  // repeated .safe_browsing.ClientPhishingRequest.Feature feature_map = 5;
  total_size += 1 * this->feature_map_size();
  for (int i = 0; i < this->feature_map_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->feature_map(i));
  }

  // repeated .safe_browsing.ClientPhishingRequest.Feature non_model_feature_map = 8;
  total_size += 1 * this->non_model_feature_map_size();
  for (int i = 0; i < this->non_model_feature_map_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->non_model_feature_map(i));
  }

  // repeated uint32 shingle_hashes = 12 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->shingle_hashes_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->shingle_hashes(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _shingle_hashes_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientPhishingRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientPhishingRequest*>(&from));
}

void ClientPhishingRequest::MergeFrom(const ClientPhishingRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  feature_map_.MergeFrom(from.feature_map_);
  non_model_feature_map_.MergeFrom(from.non_model_feature_map_);
  shingle_hashes_.MergeFrom(from.shingle_hashes_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_obsolete_hash_prefix()) {
      set_obsolete_hash_prefix(from.obsolete_hash_prefix());
    }
    if (from.has_client_score()) {
      set_client_score(from.client_score());
    }
    if (from.has_is_phishing()) {
      set_is_phishing(from.is_phishing());
    }
    if (from.has_model_version()) {
      set_model_version(from.model_version());
    }
    if (from.has_obsolete_referrer_url()) {
      set_obsolete_referrer_url(from.obsolete_referrer_url());
    }
  }
  if (from._has_bits_[9 / 32] & (0xffu << (9 % 32))) {
    if (from.has_model_filename()) {
      set_model_filename(from.model_filename());
    }
    if (from.has_population()) {
      mutable_population()->::safe_browsing::ChromeUserPopulation::MergeFrom(from.population());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientPhishingRequest::CopyFrom(const ClientPhishingRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientPhishingRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000004) != 0x00000004) return false;

  if (!::google::protobuf::internal::AllAreInitialized(this->feature_map())) return false;
  if (!::google::protobuf::internal::AllAreInitialized(this->non_model_feature_map())) return false;
  return true;
}

void ClientPhishingRequest::Swap(ClientPhishingRequest* other) {
  if (other != this) {
    std::swap(url_, other->url_);
    std::swap(obsolete_hash_prefix_, other->obsolete_hash_prefix_);
    std::swap(client_score_, other->client_score_);
    std::swap(is_phishing_, other->is_phishing_);
    feature_map_.Swap(&other->feature_map_);
    std::swap(model_version_, other->model_version_);
    non_model_feature_map_.Swap(&other->non_model_feature_map_);
    std::swap(obsolete_referrer_url_, other->obsolete_referrer_url_);
    shingle_hashes_.Swap(&other->shingle_hashes_);
    std::swap(model_filename_, other->model_filename_);
    std::swap(population_, other->population_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientPhishingRequest::GetTypeName() const {
  return "safe_browsing.ClientPhishingRequest";
}


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

#ifndef _MSC_VER
const int ClientPhishingResponse::kPhishyFieldNumber;
const int ClientPhishingResponse::kOBSOLETEWhitelistExpressionFieldNumber;
#endif  // !_MSC_VER

ClientPhishingResponse::ClientPhishingResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientPhishingResponse)
}

void ClientPhishingResponse::InitAsDefaultInstance() {
}

ClientPhishingResponse::ClientPhishingResponse(const ClientPhishingResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientPhishingResponse)
}

void ClientPhishingResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  phishy_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientPhishingResponse::~ClientPhishingResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientPhishingResponse)
  SharedDtor();
}

void ClientPhishingResponse::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientPhishingResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientPhishingResponse& ClientPhishingResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientPhishingResponse* ClientPhishingResponse::default_instance_ = NULL;

ClientPhishingResponse* ClientPhishingResponse::New() const {
  return new ClientPhishingResponse;
}

void ClientPhishingResponse::Clear() {
  phishy_ = false;
  obsolete_whitelist_expression_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientPhishingResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientPhishingResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required bool phishy = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &phishy_)));
          set_has_phishy();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_OBSOLETE_whitelist_expression;
        break;
      }

      // repeated string OBSOLETE_whitelist_expression = 2;
      case 2: {
        if (tag == 18) {
         parse_OBSOLETE_whitelist_expression:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_obsolete_whitelist_expression()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_OBSOLETE_whitelist_expression;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientPhishingResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientPhishingResponse)
  return false;
#undef DO_
}

void ClientPhishingResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientPhishingResponse)
  // required bool phishy = 1;
  if (has_phishy()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->phishy(), output);
  }

  // repeated string OBSOLETE_whitelist_expression = 2;
  for (int i = 0; i < this->obsolete_whitelist_expression_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      2, this->obsolete_whitelist_expression(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientPhishingResponse)
}

int ClientPhishingResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required bool phishy = 1;
    if (has_phishy()) {
      total_size += 1 + 1;
    }

  }
  // repeated string OBSOLETE_whitelist_expression = 2;
  total_size += 1 * this->obsolete_whitelist_expression_size();
  for (int i = 0; i < this->obsolete_whitelist_expression_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->obsolete_whitelist_expression(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientPhishingResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientPhishingResponse*>(&from));
}

void ClientPhishingResponse::MergeFrom(const ClientPhishingResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  obsolete_whitelist_expression_.MergeFrom(from.obsolete_whitelist_expression_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_phishy()) {
      set_phishy(from.phishy());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientPhishingResponse::CopyFrom(const ClientPhishingResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientPhishingResponse::Swap(ClientPhishingResponse* other) {
  if (other != this) {
    std::swap(phishy_, other->phishy_);
    obsolete_whitelist_expression_.Swap(&other->obsolete_whitelist_expression_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientPhishingResponse::GetTypeName() const {
  return "safe_browsing.ClientPhishingResponse";
}


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

#ifndef _MSC_VER
const int ClientMalwareRequest_UrlInfo::kIpFieldNumber;
const int ClientMalwareRequest_UrlInfo::kUrlFieldNumber;
const int ClientMalwareRequest_UrlInfo::kMethodFieldNumber;
const int ClientMalwareRequest_UrlInfo::kReferrerFieldNumber;
const int ClientMalwareRequest_UrlInfo::kResourceTypeFieldNumber;
#endif  // !_MSC_VER

ClientMalwareRequest_UrlInfo::ClientMalwareRequest_UrlInfo()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientMalwareRequest.UrlInfo)
}

void ClientMalwareRequest_UrlInfo::InitAsDefaultInstance() {
}

ClientMalwareRequest_UrlInfo::ClientMalwareRequest_UrlInfo(const ClientMalwareRequest_UrlInfo& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientMalwareRequest.UrlInfo)
}

void ClientMalwareRequest_UrlInfo::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  ip_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  method_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  referrer_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_type_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientMalwareRequest_UrlInfo::~ClientMalwareRequest_UrlInfo() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientMalwareRequest.UrlInfo)
  SharedDtor();
}

void ClientMalwareRequest_UrlInfo::SharedDtor() {
  if (ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete ip_;
  }
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (method_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete method_;
  }
  if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete referrer_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientMalwareRequest_UrlInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientMalwareRequest_UrlInfo& ClientMalwareRequest_UrlInfo::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientMalwareRequest_UrlInfo* ClientMalwareRequest_UrlInfo::default_instance_ = NULL;

ClientMalwareRequest_UrlInfo* ClientMalwareRequest_UrlInfo::New() const {
  return new ClientMalwareRequest_UrlInfo;
}

void ClientMalwareRequest_UrlInfo::Clear() {
  if (_has_bits_[0 / 32] & 31) {
    if (has_ip()) {
      if (ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        ip_->clear();
      }
    }
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_method()) {
      if (method_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        method_->clear();
      }
    }
    if (has_referrer()) {
      if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        referrer_->clear();
      }
    }
    resource_type_ = 0;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientMalwareRequest_UrlInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientMalwareRequest.UrlInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string ip = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_ip()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_url;
        break;
      }

      // required string url = 2;
      case 2: {
        if (tag == 18) {
         parse_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_method;
        break;
      }

      // optional string method = 3;
      case 3: {
        if (tag == 26) {
         parse_method:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_method()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_referrer;
        break;
      }

      // optional string referrer = 4;
      case 4: {
        if (tag == 34) {
         parse_referrer:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_referrer()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_resource_type;
        break;
      }

      // optional int32 resource_type = 5;
      case 5: {
        if (tag == 40) {
         parse_resource_type:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &resource_type_)));
          set_has_resource_type();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientMalwareRequest.UrlInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientMalwareRequest.UrlInfo)
  return false;
#undef DO_
}

void ClientMalwareRequest_UrlInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientMalwareRequest.UrlInfo)
  // required string ip = 1;
  if (has_ip()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->ip(), output);
  }

  // required string url = 2;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->url(), output);
  }

  // optional string method = 3;
  if (has_method()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->method(), output);
  }

  // optional string referrer = 4;
  if (has_referrer()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->referrer(), output);
  }

  // optional int32 resource_type = 5;
  if (has_resource_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->resource_type(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientMalwareRequest.UrlInfo)
}

int ClientMalwareRequest_UrlInfo::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string ip = 1;
    if (has_ip()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->ip());
    }

    // required string url = 2;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // optional string method = 3;
    if (has_method()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->method());
    }

    // optional string referrer = 4;
    if (has_referrer()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->referrer());
    }

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

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientMalwareRequest_UrlInfo::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientMalwareRequest_UrlInfo*>(&from));
}

void ClientMalwareRequest_UrlInfo::MergeFrom(const ClientMalwareRequest_UrlInfo& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_ip()) {
      set_ip(from.ip());
    }
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_method()) {
      set_method(from.method());
    }
    if (from.has_referrer()) {
      set_referrer(from.referrer());
    }
    if (from.has_resource_type()) {
      set_resource_type(from.resource_type());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientMalwareRequest_UrlInfo::CopyFrom(const ClientMalwareRequest_UrlInfo& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientMalwareRequest_UrlInfo::Swap(ClientMalwareRequest_UrlInfo* other) {
  if (other != this) {
    std::swap(ip_, other->ip_);
    std::swap(url_, other->url_);
    std::swap(method_, other->method_);
    std::swap(referrer_, other->referrer_);
    std::swap(resource_type_, other->resource_type_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientMalwareRequest_UrlInfo::GetTypeName() const {
  return "safe_browsing.ClientMalwareRequest.UrlInfo";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientMalwareRequest::kUrlFieldNumber;
const int ClientMalwareRequest::kReferrerUrlFieldNumber;
const int ClientMalwareRequest::kBadIpUrlInfoFieldNumber;
const int ClientMalwareRequest::kPopulationFieldNumber;
#endif  // !_MSC_VER

ClientMalwareRequest::ClientMalwareRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientMalwareRequest)
}

void ClientMalwareRequest::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(
      ::safe_browsing::ChromeUserPopulation::internal_default_instance());
#else
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(&::safe_browsing::ChromeUserPopulation::default_instance());
#endif
}

ClientMalwareRequest::ClientMalwareRequest(const ClientMalwareRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientMalwareRequest)
}

void ClientMalwareRequest::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  referrer_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  population_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientMalwareRequest::~ClientMalwareRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientMalwareRequest)
  SharedDtor();
}

void ClientMalwareRequest::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete referrer_url_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete population_;
  }
}

void ClientMalwareRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientMalwareRequest& ClientMalwareRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientMalwareRequest* ClientMalwareRequest::default_instance_ = NULL;

ClientMalwareRequest* ClientMalwareRequest::New() const {
  return new ClientMalwareRequest;
}

void ClientMalwareRequest::Clear() {
  if (_has_bits_[0 / 32] & 11) {
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_referrer_url()) {
      if (referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        referrer_url_->clear();
      }
    }
    if (has_population()) {
      if (population_ != NULL) population_->::safe_browsing::ChromeUserPopulation::Clear();
    }
  }
  bad_ip_url_info_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientMalwareRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientMalwareRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_referrer_url;
        break;
      }

      // optional string referrer_url = 4;
      case 4: {
        if (tag == 34) {
         parse_referrer_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_referrer_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_bad_ip_url_info;
        break;
      }

      // repeated .safe_browsing.ClientMalwareRequest.UrlInfo bad_ip_url_info = 7;
      case 7: {
        if (tag == 58) {
         parse_bad_ip_url_info:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_bad_ip_url_info()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_bad_ip_url_info;
        if (input->ExpectTag(74)) goto parse_population;
        break;
      }

      // optional .safe_browsing.ChromeUserPopulation population = 9;
      case 9: {
        if (tag == 74) {
         parse_population:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_population()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientMalwareRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientMalwareRequest)
  return false;
#undef DO_
}

void ClientMalwareRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientMalwareRequest)
  // required string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // optional string referrer_url = 4;
  if (has_referrer_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->referrer_url(), output);
  }

  // repeated .safe_browsing.ClientMalwareRequest.UrlInfo bad_ip_url_info = 7;
  for (int i = 0; i < this->bad_ip_url_info_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      7, this->bad_ip_url_info(i), output);
  }

  // optional .safe_browsing.ChromeUserPopulation population = 9;
  if (has_population()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      9, this->population(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientMalwareRequest)
}

int ClientMalwareRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string url = 1;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // optional string referrer_url = 4;
    if (has_referrer_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->referrer_url());
    }

    // optional .safe_browsing.ChromeUserPopulation population = 9;
    if (has_population()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->population());
    }

  }
  // repeated .safe_browsing.ClientMalwareRequest.UrlInfo bad_ip_url_info = 7;
  total_size += 1 * this->bad_ip_url_info_size();
  for (int i = 0; i < this->bad_ip_url_info_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->bad_ip_url_info(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientMalwareRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientMalwareRequest*>(&from));
}

void ClientMalwareRequest::MergeFrom(const ClientMalwareRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  bad_ip_url_info_.MergeFrom(from.bad_ip_url_info_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_referrer_url()) {
      set_referrer_url(from.referrer_url());
    }
    if (from.has_population()) {
      mutable_population()->::safe_browsing::ChromeUserPopulation::MergeFrom(from.population());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientMalwareRequest::CopyFrom(const ClientMalwareRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  if (!::google::protobuf::internal::AllAreInitialized(this->bad_ip_url_info())) return false;
  return true;
}

void ClientMalwareRequest::Swap(ClientMalwareRequest* other) {
  if (other != this) {
    std::swap(url_, other->url_);
    std::swap(referrer_url_, other->referrer_url_);
    bad_ip_url_info_.Swap(&other->bad_ip_url_info_);
    std::swap(population_, other->population_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientMalwareRequest::GetTypeName() const {
  return "safe_browsing.ClientMalwareRequest";
}


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

#ifndef _MSC_VER
const int ClientMalwareResponse::kBlacklistFieldNumber;
const int ClientMalwareResponse::kBadIpFieldNumber;
const int ClientMalwareResponse::kBadUrlFieldNumber;
#endif  // !_MSC_VER

ClientMalwareResponse::ClientMalwareResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientMalwareResponse)
}

void ClientMalwareResponse::InitAsDefaultInstance() {
}

ClientMalwareResponse::ClientMalwareResponse(const ClientMalwareResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientMalwareResponse)
}

void ClientMalwareResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  blacklist_ = false;
  bad_ip_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bad_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientMalwareResponse::~ClientMalwareResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientMalwareResponse)
  SharedDtor();
}

void ClientMalwareResponse::SharedDtor() {
  if (bad_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete bad_ip_;
  }
  if (bad_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete bad_url_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientMalwareResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientMalwareResponse& ClientMalwareResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientMalwareResponse* ClientMalwareResponse::default_instance_ = NULL;

ClientMalwareResponse* ClientMalwareResponse::New() const {
  return new ClientMalwareResponse;
}

void ClientMalwareResponse::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    blacklist_ = false;
    if (has_bad_ip()) {
      if (bad_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        bad_ip_->clear();
      }
    }
    if (has_bad_url()) {
      if (bad_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        bad_url_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientMalwareResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientMalwareResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required bool blacklist = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &blacklist_)));
          set_has_blacklist();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_bad_ip;
        break;
      }

      // optional string bad_ip = 2;
      case 2: {
        if (tag == 18) {
         parse_bad_ip:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bad_ip()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_bad_url;
        break;
      }

      // optional string bad_url = 3;
      case 3: {
        if (tag == 26) {
         parse_bad_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bad_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientMalwareResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientMalwareResponse)
  return false;
#undef DO_
}

void ClientMalwareResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientMalwareResponse)
  // required bool blacklist = 1;
  if (has_blacklist()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->blacklist(), output);
  }

  // optional string bad_ip = 2;
  if (has_bad_ip()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->bad_ip(), output);
  }

  // optional string bad_url = 3;
  if (has_bad_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->bad_url(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientMalwareResponse)
}

int ClientMalwareResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required bool blacklist = 1;
    if (has_blacklist()) {
      total_size += 1 + 1;
    }

    // optional string bad_ip = 2;
    if (has_bad_ip()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->bad_ip());
    }

    // optional string bad_url = 3;
    if (has_bad_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->bad_url());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientMalwareResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientMalwareResponse*>(&from));
}

void ClientMalwareResponse::MergeFrom(const ClientMalwareResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_blacklist()) {
      set_blacklist(from.blacklist());
    }
    if (from.has_bad_ip()) {
      set_bad_ip(from.bad_ip());
    }
    if (from.has_bad_url()) {
      set_bad_url(from.bad_url());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientMalwareResponse::CopyFrom(const ClientMalwareResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientMalwareResponse::Swap(ClientMalwareResponse* other) {
  if (other != this) {
    std::swap(blacklist_, other->blacklist_);
    std::swap(bad_ip_, other->bad_ip_);
    std::swap(bad_url_, other->bad_url_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientMalwareResponse::GetTypeName() const {
  return "safe_browsing.ClientMalwareResponse";
}


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

bool ClientDownloadRequest_ResourceType_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientDownloadRequest_ResourceType ClientDownloadRequest::DOWNLOAD_URL;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::DOWNLOAD_REDIRECT;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::TAB_URL;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::TAB_REDIRECT;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::PPAPI_DOCUMENT;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::PPAPI_PLUGIN;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::ResourceType_MIN;
const ClientDownloadRequest_ResourceType ClientDownloadRequest::ResourceType_MAX;
const int ClientDownloadRequest::ResourceType_ARRAYSIZE;
#endif  // _MSC_VER
bool ClientDownloadRequest_DownloadType_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientDownloadRequest_DownloadType ClientDownloadRequest::WIN_EXECUTABLE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::CHROME_EXTENSION;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::ANDROID_APK;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::ZIPPED_EXECUTABLE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::MAC_EXECUTABLE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::ZIPPED_ARCHIVE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::ARCHIVE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::INVALID_ZIP;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::INVALID_MAC_ARCHIVE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::PPAPI_SAVE_REQUEST;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::SAMPLED_UNSUPPORTED_FILE;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::DownloadType_MIN;
const ClientDownloadRequest_DownloadType ClientDownloadRequest::DownloadType_MAX;
const int ClientDownloadRequest::DownloadType_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientDownloadRequest_Digests::kSha256FieldNumber;
const int ClientDownloadRequest_Digests::kSha1FieldNumber;
const int ClientDownloadRequest_Digests::kMd5FieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_Digests::ClientDownloadRequest_Digests()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.Digests)
}

void ClientDownloadRequest_Digests::InitAsDefaultInstance() {
}

ClientDownloadRequest_Digests::ClientDownloadRequest_Digests(const ClientDownloadRequest_Digests& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.Digests)
}

void ClientDownloadRequest_Digests::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  sha256_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sha1_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  md5_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_Digests::~ClientDownloadRequest_Digests() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.Digests)
  SharedDtor();
}

void ClientDownloadRequest_Digests::SharedDtor() {
  if (sha256_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete sha256_;
  }
  if (sha1_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete sha1_;
  }
  if (md5_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete md5_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_Digests::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_Digests& ClientDownloadRequest_Digests::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_Digests* ClientDownloadRequest_Digests::default_instance_ = NULL;

ClientDownloadRequest_Digests* ClientDownloadRequest_Digests::New() const {
  return new ClientDownloadRequest_Digests;
}

void ClientDownloadRequest_Digests::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_sha256()) {
      if (sha256_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        sha256_->clear();
      }
    }
    if (has_sha1()) {
      if (sha1_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        sha1_->clear();
      }
    }
    if (has_md5()) {
      if (md5_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        md5_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_Digests::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.Digests)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes sha256 = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_sha256()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_sha1;
        break;
      }

      // optional bytes sha1 = 2;
      case 2: {
        if (tag == 18) {
         parse_sha1:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_sha1()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_md5;
        break;
      }

      // optional bytes md5 = 3;
      case 3: {
        if (tag == 26) {
         parse_md5:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_md5()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.Digests)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.Digests)
  return false;
#undef DO_
}

void ClientDownloadRequest_Digests::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.Digests)
  // optional bytes sha256 = 1;
  if (has_sha256()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->sha256(), output);
  }

  // optional bytes sha1 = 2;
  if (has_sha1()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->sha1(), output);
  }

  // optional bytes md5 = 3;
  if (has_md5()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->md5(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.Digests)
}

int ClientDownloadRequest_Digests::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes sha256 = 1;
    if (has_sha256()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->sha256());
    }

    // optional bytes sha1 = 2;
    if (has_sha1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->sha1());
    }

    // optional bytes md5 = 3;
    if (has_md5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->md5());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_Digests::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_Digests*>(&from));
}

void ClientDownloadRequest_Digests::MergeFrom(const ClientDownloadRequest_Digests& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_sha256()) {
      set_sha256(from.sha256());
    }
    if (from.has_sha1()) {
      set_sha1(from.sha1());
    }
    if (from.has_md5()) {
      set_md5(from.md5());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_Digests::CopyFrom(const ClientDownloadRequest_Digests& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_Digests::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_Digests::Swap(ClientDownloadRequest_Digests* other) {
  if (other != this) {
    std::swap(sha256_, other->sha256_);
    std::swap(sha1_, other->sha1_);
    std::swap(md5_, other->md5_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_Digests::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.Digests";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_Resource::kUrlFieldNumber;
const int ClientDownloadRequest_Resource::kTypeFieldNumber;
const int ClientDownloadRequest_Resource::kRemoteIpFieldNumber;
const int ClientDownloadRequest_Resource::kReferrerFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_Resource::ClientDownloadRequest_Resource()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.Resource)
}

void ClientDownloadRequest_Resource::InitAsDefaultInstance() {
}

ClientDownloadRequest_Resource::ClientDownloadRequest_Resource(const ClientDownloadRequest_Resource& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.Resource)
}

void ClientDownloadRequest_Resource::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 0;
  remote_ip_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  referrer_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_Resource::~ClientDownloadRequest_Resource() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.Resource)
  SharedDtor();
}

void ClientDownloadRequest_Resource::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (remote_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete remote_ip_;
  }
  if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete referrer_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_Resource::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_Resource& ClientDownloadRequest_Resource::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_Resource* ClientDownloadRequest_Resource::default_instance_ = NULL;

ClientDownloadRequest_Resource* ClientDownloadRequest_Resource::New() const {
  return new ClientDownloadRequest_Resource;
}

void ClientDownloadRequest_Resource::Clear() {
  if (_has_bits_[0 / 32] & 15) {
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    type_ = 0;
    if (has_remote_ip()) {
      if (remote_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        remote_ip_->clear();
      }
    }
    if (has_referrer()) {
      if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        referrer_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_Resource::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.Resource)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_type;
        break;
      }

      // required .safe_browsing.ClientDownloadRequest.ResourceType type = 2;
      case 2: {
        if (tag == 16) {
         parse_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadRequest_ResourceType_IsValid(value)) {
            set_type(static_cast< ::safe_browsing::ClientDownloadRequest_ResourceType >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_remote_ip;
        break;
      }

      // optional bytes remote_ip = 3;
      case 3: {
        if (tag == 26) {
         parse_remote_ip:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_remote_ip()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_referrer;
        break;
      }

      // optional string referrer = 4;
      case 4: {
        if (tag == 34) {
         parse_referrer:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_referrer()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.Resource)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.Resource)
  return false;
#undef DO_
}

void ClientDownloadRequest_Resource::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.Resource)
  // required string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // required .safe_browsing.ClientDownloadRequest.ResourceType type = 2;
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->type(), output);
  }

  // optional bytes remote_ip = 3;
  if (has_remote_ip()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->remote_ip(), output);
  }

  // optional string referrer = 4;
  if (has_referrer()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->referrer(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.Resource)
}

int ClientDownloadRequest_Resource::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string url = 1;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // required .safe_browsing.ClientDownloadRequest.ResourceType type = 2;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
    }

    // optional bytes remote_ip = 3;
    if (has_remote_ip()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->remote_ip());
    }

    // optional string referrer = 4;
    if (has_referrer()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->referrer());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_Resource::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_Resource*>(&from));
}

void ClientDownloadRequest_Resource::MergeFrom(const ClientDownloadRequest_Resource& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_type()) {
      set_type(from.type());
    }
    if (from.has_remote_ip()) {
      set_remote_ip(from.remote_ip());
    }
    if (from.has_referrer()) {
      set_referrer(from.referrer());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_Resource::CopyFrom(const ClientDownloadRequest_Resource& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientDownloadRequest_Resource::Swap(ClientDownloadRequest_Resource* other) {
  if (other != this) {
    std::swap(url_, other->url_);
    std::swap(type_, other->type_);
    std::swap(remote_ip_, other->remote_ip_);
    std::swap(referrer_, other->referrer_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_Resource::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.Resource";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_CertificateChain_Element::kCertificateFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_CertificateChain_Element::ClientDownloadRequest_CertificateChain_Element()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
}

void ClientDownloadRequest_CertificateChain_Element::InitAsDefaultInstance() {
}

ClientDownloadRequest_CertificateChain_Element::ClientDownloadRequest_CertificateChain_Element(const ClientDownloadRequest_CertificateChain_Element& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
}

void ClientDownloadRequest_CertificateChain_Element::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  certificate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_CertificateChain_Element::~ClientDownloadRequest_CertificateChain_Element() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
  SharedDtor();
}

void ClientDownloadRequest_CertificateChain_Element::SharedDtor() {
  if (certificate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete certificate_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_CertificateChain_Element::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_CertificateChain_Element& ClientDownloadRequest_CertificateChain_Element::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_CertificateChain_Element* ClientDownloadRequest_CertificateChain_Element::default_instance_ = NULL;

ClientDownloadRequest_CertificateChain_Element* ClientDownloadRequest_CertificateChain_Element::New() const {
  return new ClientDownloadRequest_CertificateChain_Element;
}

void ClientDownloadRequest_CertificateChain_Element::Clear() {
  if (has_certificate()) {
    if (certificate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      certificate_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_CertificateChain_Element::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes certificate = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_certificate()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
  return false;
#undef DO_
}

void ClientDownloadRequest_CertificateChain_Element::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
  // optional bytes certificate = 1;
  if (has_certificate()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->certificate(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.CertificateChain.Element)
}

int ClientDownloadRequest_CertificateChain_Element::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes certificate = 1;
    if (has_certificate()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->certificate());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_CertificateChain_Element::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_CertificateChain_Element*>(&from));
}

void ClientDownloadRequest_CertificateChain_Element::MergeFrom(const ClientDownloadRequest_CertificateChain_Element& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_certificate()) {
      set_certificate(from.certificate());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_CertificateChain_Element::CopyFrom(const ClientDownloadRequest_CertificateChain_Element& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_CertificateChain_Element::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_CertificateChain_Element::Swap(ClientDownloadRequest_CertificateChain_Element* other) {
  if (other != this) {
    std::swap(certificate_, other->certificate_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_CertificateChain_Element::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.CertificateChain.Element";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_CertificateChain::kElementFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_CertificateChain::ClientDownloadRequest_CertificateChain()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.CertificateChain)
}

void ClientDownloadRequest_CertificateChain::InitAsDefaultInstance() {
}

ClientDownloadRequest_CertificateChain::ClientDownloadRequest_CertificateChain(const ClientDownloadRequest_CertificateChain& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.CertificateChain)
}

void ClientDownloadRequest_CertificateChain::SharedCtor() {
  _cached_size_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_CertificateChain::~ClientDownloadRequest_CertificateChain() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.CertificateChain)
  SharedDtor();
}

void ClientDownloadRequest_CertificateChain::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_CertificateChain::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_CertificateChain& ClientDownloadRequest_CertificateChain::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_CertificateChain* ClientDownloadRequest_CertificateChain::default_instance_ = NULL;

ClientDownloadRequest_CertificateChain* ClientDownloadRequest_CertificateChain::New() const {
  return new ClientDownloadRequest_CertificateChain;
}

void ClientDownloadRequest_CertificateChain::Clear() {
  element_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_CertificateChain::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.CertificateChain)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .safe_browsing.ClientDownloadRequest.CertificateChain.Element element = 1;
      case 1: {
        if (tag == 10) {
         parse_element:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_element()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(10)) goto parse_element;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.CertificateChain)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.CertificateChain)
  return false;
#undef DO_
}

void ClientDownloadRequest_CertificateChain::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.CertificateChain)
  // repeated .safe_browsing.ClientDownloadRequest.CertificateChain.Element element = 1;
  for (int i = 0; i < this->element_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->element(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.CertificateChain)
}

int ClientDownloadRequest_CertificateChain::ByteSize() const {
  int total_size = 0;

  // repeated .safe_browsing.ClientDownloadRequest.CertificateChain.Element element = 1;
  total_size += 1 * this->element_size();
  for (int i = 0; i < this->element_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->element(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_CertificateChain::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_CertificateChain*>(&from));
}

void ClientDownloadRequest_CertificateChain::MergeFrom(const ClientDownloadRequest_CertificateChain& from) {
  GOOGLE_CHECK_NE(&from, this);
  element_.MergeFrom(from.element_);
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_CertificateChain::CopyFrom(const ClientDownloadRequest_CertificateChain& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_CertificateChain::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_CertificateChain::Swap(ClientDownloadRequest_CertificateChain* other) {
  if (other != this) {
    element_.Swap(&other->element_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_CertificateChain::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.CertificateChain";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_ExtendedAttr::kKeyFieldNumber;
const int ClientDownloadRequest_ExtendedAttr::kValueFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_ExtendedAttr::ClientDownloadRequest_ExtendedAttr()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.ExtendedAttr)
}

void ClientDownloadRequest_ExtendedAttr::InitAsDefaultInstance() {
}

ClientDownloadRequest_ExtendedAttr::ClientDownloadRequest_ExtendedAttr(const ClientDownloadRequest_ExtendedAttr& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.ExtendedAttr)
}

void ClientDownloadRequest_ExtendedAttr::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  key_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_ExtendedAttr::~ClientDownloadRequest_ExtendedAttr() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.ExtendedAttr)
  SharedDtor();
}

void ClientDownloadRequest_ExtendedAttr::SharedDtor() {
  if (key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete key_;
  }
  if (value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete value_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_ExtendedAttr::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_ExtendedAttr& ClientDownloadRequest_ExtendedAttr::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_ExtendedAttr* ClientDownloadRequest_ExtendedAttr::default_instance_ = NULL;

ClientDownloadRequest_ExtendedAttr* ClientDownloadRequest_ExtendedAttr::New() const {
  return new ClientDownloadRequest_ExtendedAttr;
}

void ClientDownloadRequest_ExtendedAttr::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_key()) {
      if (key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        key_->clear();
      }
    }
    if (has_value()) {
      if (value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        value_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_ExtendedAttr::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.ExtendedAttr)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string key = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_key()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_value;
        break;
      }

      // optional bytes value = 2;
      case 2: {
        if (tag == 18) {
         parse_value:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_value()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.ExtendedAttr)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.ExtendedAttr)
  return false;
#undef DO_
}

void ClientDownloadRequest_ExtendedAttr::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.ExtendedAttr)
  // required string key = 1;
  if (has_key()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->key(), output);
  }

  // optional bytes value = 2;
  if (has_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->value(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.ExtendedAttr)
}

int ClientDownloadRequest_ExtendedAttr::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string key = 1;
    if (has_key()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->key());
    }

    // optional bytes value = 2;
    if (has_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->value());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_ExtendedAttr::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_ExtendedAttr*>(&from));
}

void ClientDownloadRequest_ExtendedAttr::MergeFrom(const ClientDownloadRequest_ExtendedAttr& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_key()) {
      set_key(from.key());
    }
    if (from.has_value()) {
      set_value(from.value());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_ExtendedAttr::CopyFrom(const ClientDownloadRequest_ExtendedAttr& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientDownloadRequest_ExtendedAttr::Swap(ClientDownloadRequest_ExtendedAttr* other) {
  if (other != this) {
    std::swap(key_, other->key_);
    std::swap(value_, other->value_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_ExtendedAttr::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.ExtendedAttr";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_SignatureInfo::kCertificateChainFieldNumber;
const int ClientDownloadRequest_SignatureInfo::kTrustedFieldNumber;
const int ClientDownloadRequest_SignatureInfo::kSignedDataFieldNumber;
const int ClientDownloadRequest_SignatureInfo::kXattrFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_SignatureInfo::ClientDownloadRequest_SignatureInfo()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.SignatureInfo)
}

void ClientDownloadRequest_SignatureInfo::InitAsDefaultInstance() {
}

ClientDownloadRequest_SignatureInfo::ClientDownloadRequest_SignatureInfo(const ClientDownloadRequest_SignatureInfo& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.SignatureInfo)
}

void ClientDownloadRequest_SignatureInfo::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  trusted_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_SignatureInfo::~ClientDownloadRequest_SignatureInfo() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.SignatureInfo)
  SharedDtor();
}

void ClientDownloadRequest_SignatureInfo::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_SignatureInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_SignatureInfo& ClientDownloadRequest_SignatureInfo::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_SignatureInfo* ClientDownloadRequest_SignatureInfo::default_instance_ = NULL;

ClientDownloadRequest_SignatureInfo* ClientDownloadRequest_SignatureInfo::New() const {
  return new ClientDownloadRequest_SignatureInfo;
}

void ClientDownloadRequest_SignatureInfo::Clear() {
  trusted_ = false;
  certificate_chain_.Clear();
  signed_data_.Clear();
  xattr_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_SignatureInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.SignatureInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .safe_browsing.ClientDownloadRequest.CertificateChain certificate_chain = 1;
      case 1: {
        if (tag == 10) {
         parse_certificate_chain:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_certificate_chain()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(10)) goto parse_certificate_chain;
        if (input->ExpectTag(16)) goto parse_trusted;
        break;
      }

      // optional bool trusted = 2;
      case 2: {
        if (tag == 16) {
         parse_trusted:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &trusted_)));
          set_has_trusted();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_signed_data;
        break;
      }

      // repeated bytes signed_data = 3;
      case 3: {
        if (tag == 26) {
         parse_signed_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->add_signed_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_signed_data;
        if (input->ExpectTag(34)) goto parse_xattr;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.ExtendedAttr xattr = 4;
      case 4: {
        if (tag == 34) {
         parse_xattr:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_xattr()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_xattr;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.SignatureInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.SignatureInfo)
  return false;
#undef DO_
}

void ClientDownloadRequest_SignatureInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.SignatureInfo)
  // repeated .safe_browsing.ClientDownloadRequest.CertificateChain certificate_chain = 1;
  for (int i = 0; i < this->certificate_chain_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->certificate_chain(i), output);
  }

  // optional bool trusted = 2;
  if (has_trusted()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->trusted(), output);
  }

  // repeated bytes signed_data = 3;
  for (int i = 0; i < this->signed_data_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteBytes(
      3, this->signed_data(i), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.ExtendedAttr xattr = 4;
  for (int i = 0; i < this->xattr_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->xattr(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.SignatureInfo)
}

int ClientDownloadRequest_SignatureInfo::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    // optional bool trusted = 2;
    if (has_trusted()) {
      total_size += 1 + 1;
    }

  }
  // repeated .safe_browsing.ClientDownloadRequest.CertificateChain certificate_chain = 1;
  total_size += 1 * this->certificate_chain_size();
  for (int i = 0; i < this->certificate_chain_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->certificate_chain(i));
  }

  // repeated bytes signed_data = 3;
  total_size += 1 * this->signed_data_size();
  for (int i = 0; i < this->signed_data_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
      this->signed_data(i));
  }

  // repeated .safe_browsing.ClientDownloadRequest.ExtendedAttr xattr = 4;
  total_size += 1 * this->xattr_size();
  for (int i = 0; i < this->xattr_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->xattr(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_SignatureInfo::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_SignatureInfo*>(&from));
}

void ClientDownloadRequest_SignatureInfo::MergeFrom(const ClientDownloadRequest_SignatureInfo& from) {
  GOOGLE_CHECK_NE(&from, this);
  certificate_chain_.MergeFrom(from.certificate_chain_);
  signed_data_.MergeFrom(from.signed_data_);
  xattr_.MergeFrom(from.xattr_);
  if (from._has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (from.has_trusted()) {
      set_trusted(from.trusted());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_SignatureInfo::CopyFrom(const ClientDownloadRequest_SignatureInfo& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_SignatureInfo::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->xattr())) return false;
  return true;
}

void ClientDownloadRequest_SignatureInfo::Swap(ClientDownloadRequest_SignatureInfo* other) {
  if (other != this) {
    certificate_chain_.Swap(&other->certificate_chain_);
    std::swap(trusted_, other->trusted_);
    signed_data_.Swap(&other->signed_data_);
    xattr_.Swap(&other->xattr_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_SignatureInfo::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.SignatureInfo";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_PEImageHeaders_DebugData::kDirectoryEntryFieldNumber;
const int ClientDownloadRequest_PEImageHeaders_DebugData::kRawDataFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_PEImageHeaders_DebugData::ClientDownloadRequest_PEImageHeaders_DebugData()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
}

void ClientDownloadRequest_PEImageHeaders_DebugData::InitAsDefaultInstance() {
}

ClientDownloadRequest_PEImageHeaders_DebugData::ClientDownloadRequest_PEImageHeaders_DebugData(const ClientDownloadRequest_PEImageHeaders_DebugData& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
}

void ClientDownloadRequest_PEImageHeaders_DebugData::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  directory_entry_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  raw_data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_PEImageHeaders_DebugData::~ClientDownloadRequest_PEImageHeaders_DebugData() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
  SharedDtor();
}

void ClientDownloadRequest_PEImageHeaders_DebugData::SharedDtor() {
  if (directory_entry_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete directory_entry_;
  }
  if (raw_data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete raw_data_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_PEImageHeaders_DebugData::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_PEImageHeaders_DebugData& ClientDownloadRequest_PEImageHeaders_DebugData::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_PEImageHeaders_DebugData* ClientDownloadRequest_PEImageHeaders_DebugData::default_instance_ = NULL;

ClientDownloadRequest_PEImageHeaders_DebugData* ClientDownloadRequest_PEImageHeaders_DebugData::New() const {
  return new ClientDownloadRequest_PEImageHeaders_DebugData;
}

void ClientDownloadRequest_PEImageHeaders_DebugData::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_directory_entry()) {
      if (directory_entry_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        directory_entry_->clear();
      }
    }
    if (has_raw_data()) {
      if (raw_data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        raw_data_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_PEImageHeaders_DebugData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes directory_entry = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_directory_entry()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_raw_data;
        break;
      }

      // optional bytes raw_data = 2;
      case 2: {
        if (tag == 18) {
         parse_raw_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_raw_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
  return false;
#undef DO_
}

void ClientDownloadRequest_PEImageHeaders_DebugData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
  // optional bytes directory_entry = 1;
  if (has_directory_entry()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->directory_entry(), output);
  }

  // optional bytes raw_data = 2;
  if (has_raw_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->raw_data(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData)
}

int ClientDownloadRequest_PEImageHeaders_DebugData::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes directory_entry = 1;
    if (has_directory_entry()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->directory_entry());
    }

    // optional bytes raw_data = 2;
    if (has_raw_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->raw_data());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_PEImageHeaders_DebugData::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_PEImageHeaders_DebugData*>(&from));
}

void ClientDownloadRequest_PEImageHeaders_DebugData::MergeFrom(const ClientDownloadRequest_PEImageHeaders_DebugData& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_directory_entry()) {
      set_directory_entry(from.directory_entry());
    }
    if (from.has_raw_data()) {
      set_raw_data(from.raw_data());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_PEImageHeaders_DebugData::CopyFrom(const ClientDownloadRequest_PEImageHeaders_DebugData& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_PEImageHeaders_DebugData::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_PEImageHeaders_DebugData::Swap(ClientDownloadRequest_PEImageHeaders_DebugData* other) {
  if (other != this) {
    std::swap(directory_entry_, other->directory_entry_);
    std::swap(raw_data_, other->raw_data_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_PEImageHeaders_DebugData::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_PEImageHeaders::kDosHeaderFieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kFileHeaderFieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kOptionalHeaders32FieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kOptionalHeaders64FieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kSectionHeaderFieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kExportSectionDataFieldNumber;
const int ClientDownloadRequest_PEImageHeaders::kDebugDataFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_PEImageHeaders::ClientDownloadRequest_PEImageHeaders()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.PEImageHeaders)
}

void ClientDownloadRequest_PEImageHeaders::InitAsDefaultInstance() {
}

ClientDownloadRequest_PEImageHeaders::ClientDownloadRequest_PEImageHeaders(const ClientDownloadRequest_PEImageHeaders& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.PEImageHeaders)
}

void ClientDownloadRequest_PEImageHeaders::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  dos_header_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  file_header_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  optional_headers32_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  optional_headers64_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  export_section_data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_PEImageHeaders::~ClientDownloadRequest_PEImageHeaders() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.PEImageHeaders)
  SharedDtor();
}

void ClientDownloadRequest_PEImageHeaders::SharedDtor() {
  if (dos_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete dos_header_;
  }
  if (file_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete file_header_;
  }
  if (optional_headers32_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete optional_headers32_;
  }
  if (optional_headers64_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete optional_headers64_;
  }
  if (export_section_data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete export_section_data_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_PEImageHeaders::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_PEImageHeaders& ClientDownloadRequest_PEImageHeaders::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_PEImageHeaders* ClientDownloadRequest_PEImageHeaders::default_instance_ = NULL;

ClientDownloadRequest_PEImageHeaders* ClientDownloadRequest_PEImageHeaders::New() const {
  return new ClientDownloadRequest_PEImageHeaders;
}

void ClientDownloadRequest_PEImageHeaders::Clear() {
  if (_has_bits_[0 / 32] & 47) {
    if (has_dos_header()) {
      if (dos_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        dos_header_->clear();
      }
    }
    if (has_file_header()) {
      if (file_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        file_header_->clear();
      }
    }
    if (has_optional_headers32()) {
      if (optional_headers32_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        optional_headers32_->clear();
      }
    }
    if (has_optional_headers64()) {
      if (optional_headers64_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        optional_headers64_->clear();
      }
    }
    if (has_export_section_data()) {
      if (export_section_data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        export_section_data_->clear();
      }
    }
  }
  section_header_.Clear();
  debug_data_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_PEImageHeaders::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.PEImageHeaders)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes dos_header = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_dos_header()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_file_header;
        break;
      }

      // optional bytes file_header = 2;
      case 2: {
        if (tag == 18) {
         parse_file_header:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_file_header()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_optional_headers32;
        break;
      }

      // optional bytes optional_headers32 = 3;
      case 3: {
        if (tag == 26) {
         parse_optional_headers32:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_optional_headers32()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_optional_headers64;
        break;
      }

      // optional bytes optional_headers64 = 4;
      case 4: {
        if (tag == 34) {
         parse_optional_headers64:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_optional_headers64()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_section_header;
        break;
      }

      // repeated bytes section_header = 5;
      case 5: {
        if (tag == 42) {
         parse_section_header:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->add_section_header()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_section_header;
        if (input->ExpectTag(50)) goto parse_export_section_data;
        break;
      }

      // optional bytes export_section_data = 6;
      case 6: {
        if (tag == 50) {
         parse_export_section_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_export_section_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_debug_data;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData debug_data = 7;
      case 7: {
        if (tag == 58) {
         parse_debug_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_debug_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_debug_data;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.PEImageHeaders)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.PEImageHeaders)
  return false;
#undef DO_
}

void ClientDownloadRequest_PEImageHeaders::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.PEImageHeaders)
  // optional bytes dos_header = 1;
  if (has_dos_header()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->dos_header(), output);
  }

  // optional bytes file_header = 2;
  if (has_file_header()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->file_header(), output);
  }

  // optional bytes optional_headers32 = 3;
  if (has_optional_headers32()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->optional_headers32(), output);
  }

  // optional bytes optional_headers64 = 4;
  if (has_optional_headers64()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      4, this->optional_headers64(), output);
  }

  // repeated bytes section_header = 5;
  for (int i = 0; i < this->section_header_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteBytes(
      5, this->section_header(i), output);
  }

  // optional bytes export_section_data = 6;
  if (has_export_section_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      6, this->export_section_data(), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData debug_data = 7;
  for (int i = 0; i < this->debug_data_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      7, this->debug_data(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.PEImageHeaders)
}

int ClientDownloadRequest_PEImageHeaders::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes dos_header = 1;
    if (has_dos_header()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->dos_header());
    }

    // optional bytes file_header = 2;
    if (has_file_header()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->file_header());
    }

    // optional bytes optional_headers32 = 3;
    if (has_optional_headers32()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->optional_headers32());
    }

    // optional bytes optional_headers64 = 4;
    if (has_optional_headers64()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->optional_headers64());
    }

    // optional bytes export_section_data = 6;
    if (has_export_section_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->export_section_data());
    }

  }
  // repeated bytes section_header = 5;
  total_size += 1 * this->section_header_size();
  for (int i = 0; i < this->section_header_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
      this->section_header(i));
  }

  // repeated .safe_browsing.ClientDownloadRequest.PEImageHeaders.DebugData debug_data = 7;
  total_size += 1 * this->debug_data_size();
  for (int i = 0; i < this->debug_data_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->debug_data(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_PEImageHeaders::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_PEImageHeaders*>(&from));
}

void ClientDownloadRequest_PEImageHeaders::MergeFrom(const ClientDownloadRequest_PEImageHeaders& from) {
  GOOGLE_CHECK_NE(&from, this);
  section_header_.MergeFrom(from.section_header_);
  debug_data_.MergeFrom(from.debug_data_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_dos_header()) {
      set_dos_header(from.dos_header());
    }
    if (from.has_file_header()) {
      set_file_header(from.file_header());
    }
    if (from.has_optional_headers32()) {
      set_optional_headers32(from.optional_headers32());
    }
    if (from.has_optional_headers64()) {
      set_optional_headers64(from.optional_headers64());
    }
    if (from.has_export_section_data()) {
      set_export_section_data(from.export_section_data());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_PEImageHeaders::CopyFrom(const ClientDownloadRequest_PEImageHeaders& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_PEImageHeaders::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_PEImageHeaders::Swap(ClientDownloadRequest_PEImageHeaders* other) {
  if (other != this) {
    std::swap(dos_header_, other->dos_header_);
    std::swap(file_header_, other->file_header_);
    std::swap(optional_headers32_, other->optional_headers32_);
    std::swap(optional_headers64_, other->optional_headers64_);
    section_header_.Swap(&other->section_header_);
    std::swap(export_section_data_, other->export_section_data_);
    debug_data_.Swap(&other->debug_data_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_PEImageHeaders::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.PEImageHeaders";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_MachOHeaders_LoadCommand::kCommandIdFieldNumber;
const int ClientDownloadRequest_MachOHeaders_LoadCommand::kCommandFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_MachOHeaders_LoadCommand::ClientDownloadRequest_MachOHeaders_LoadCommand()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::InitAsDefaultInstance() {
}

ClientDownloadRequest_MachOHeaders_LoadCommand::ClientDownloadRequest_MachOHeaders_LoadCommand(const ClientDownloadRequest_MachOHeaders_LoadCommand& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  command_id_ = 0u;
  command_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_MachOHeaders_LoadCommand::~ClientDownloadRequest_MachOHeaders_LoadCommand() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
  SharedDtor();
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::SharedDtor() {
  if (command_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete command_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_MachOHeaders_LoadCommand& ClientDownloadRequest_MachOHeaders_LoadCommand::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_MachOHeaders_LoadCommand* ClientDownloadRequest_MachOHeaders_LoadCommand::default_instance_ = NULL;

ClientDownloadRequest_MachOHeaders_LoadCommand* ClientDownloadRequest_MachOHeaders_LoadCommand::New() const {
  return new ClientDownloadRequest_MachOHeaders_LoadCommand;
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    command_id_ = 0u;
    if (has_command()) {
      if (command_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        command_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_MachOHeaders_LoadCommand::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required uint32 command_id = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &command_id_)));
          set_has_command_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_command;
        break;
      }

      // required bytes command = 2;
      case 2: {
        if (tag == 18) {
         parse_command:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_command()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
  return false;
#undef DO_
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
  // required uint32 command_id = 1;
  if (has_command_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->command_id(), output);
  }

  // required bytes command = 2;
  if (has_command()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->command(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand)
}

int ClientDownloadRequest_MachOHeaders_LoadCommand::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required uint32 command_id = 1;
    if (has_command_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->command_id());
    }

    // required bytes command = 2;
    if (has_command()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->command());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_MachOHeaders_LoadCommand*>(&from));
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::MergeFrom(const ClientDownloadRequest_MachOHeaders_LoadCommand& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_command_id()) {
      set_command_id(from.command_id());
    }
    if (from.has_command()) {
      set_command(from.command());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::CopyFrom(const ClientDownloadRequest_MachOHeaders_LoadCommand& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientDownloadRequest_MachOHeaders_LoadCommand::Swap(ClientDownloadRequest_MachOHeaders_LoadCommand* other) {
  if (other != this) {
    std::swap(command_id_, other->command_id_);
    std::swap(command_, other->command_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_MachOHeaders_LoadCommand::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_MachOHeaders::kMachHeaderFieldNumber;
const int ClientDownloadRequest_MachOHeaders::kLoadCommandsFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_MachOHeaders::ClientDownloadRequest_MachOHeaders()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.MachOHeaders)
}

void ClientDownloadRequest_MachOHeaders::InitAsDefaultInstance() {
}

ClientDownloadRequest_MachOHeaders::ClientDownloadRequest_MachOHeaders(const ClientDownloadRequest_MachOHeaders& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.MachOHeaders)
}

void ClientDownloadRequest_MachOHeaders::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  mach_header_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_MachOHeaders::~ClientDownloadRequest_MachOHeaders() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.MachOHeaders)
  SharedDtor();
}

void ClientDownloadRequest_MachOHeaders::SharedDtor() {
  if (mach_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete mach_header_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_MachOHeaders::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_MachOHeaders& ClientDownloadRequest_MachOHeaders::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_MachOHeaders* ClientDownloadRequest_MachOHeaders::default_instance_ = NULL;

ClientDownloadRequest_MachOHeaders* ClientDownloadRequest_MachOHeaders::New() const {
  return new ClientDownloadRequest_MachOHeaders;
}

void ClientDownloadRequest_MachOHeaders::Clear() {
  if (has_mach_header()) {
    if (mach_header_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      mach_header_->clear();
    }
  }
  load_commands_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_MachOHeaders::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.MachOHeaders)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required bytes mach_header = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_mach_header()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_load_commands;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand load_commands = 2;
      case 2: {
        if (tag == 18) {
         parse_load_commands:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_load_commands()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_load_commands;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.MachOHeaders)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.MachOHeaders)
  return false;
#undef DO_
}

void ClientDownloadRequest_MachOHeaders::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.MachOHeaders)
  // required bytes mach_header = 1;
  if (has_mach_header()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->mach_header(), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand load_commands = 2;
  for (int i = 0; i < this->load_commands_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->load_commands(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.MachOHeaders)
}

int ClientDownloadRequest_MachOHeaders::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required bytes mach_header = 1;
    if (has_mach_header()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->mach_header());
    }

  }
  // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders.LoadCommand load_commands = 2;
  total_size += 1 * this->load_commands_size();
  for (int i = 0; i < this->load_commands_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->load_commands(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_MachOHeaders::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_MachOHeaders*>(&from));
}

void ClientDownloadRequest_MachOHeaders::MergeFrom(const ClientDownloadRequest_MachOHeaders& from) {
  GOOGLE_CHECK_NE(&from, this);
  load_commands_.MergeFrom(from.load_commands_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_mach_header()) {
      set_mach_header(from.mach_header());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_MachOHeaders::CopyFrom(const ClientDownloadRequest_MachOHeaders& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  if (!::google::protobuf::internal::AllAreInitialized(this->load_commands())) return false;
  return true;
}

void ClientDownloadRequest_MachOHeaders::Swap(ClientDownloadRequest_MachOHeaders* other) {
  if (other != this) {
    std::swap(mach_header_, other->mach_header_);
    load_commands_.Swap(&other->load_commands_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_MachOHeaders::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.MachOHeaders";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_ImageHeaders::kPeHeadersFieldNumber;
const int ClientDownloadRequest_ImageHeaders::kMachOHeadersFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_ImageHeaders::ClientDownloadRequest_ImageHeaders()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.ImageHeaders)
}

void ClientDownloadRequest_ImageHeaders::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  pe_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_PEImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_PEImageHeaders::internal_default_instance());
#else
  pe_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_PEImageHeaders*>(&::safe_browsing::ClientDownloadRequest_PEImageHeaders::default_instance());
#endif
}

ClientDownloadRequest_ImageHeaders::ClientDownloadRequest_ImageHeaders(const ClientDownloadRequest_ImageHeaders& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.ImageHeaders)
}

void ClientDownloadRequest_ImageHeaders::SharedCtor() {
  _cached_size_ = 0;
  pe_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_ImageHeaders::~ClientDownloadRequest_ImageHeaders() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.ImageHeaders)
  SharedDtor();
}

void ClientDownloadRequest_ImageHeaders::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete pe_headers_;
  }
}

void ClientDownloadRequest_ImageHeaders::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_ImageHeaders& ClientDownloadRequest_ImageHeaders::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_ImageHeaders* ClientDownloadRequest_ImageHeaders::default_instance_ = NULL;

ClientDownloadRequest_ImageHeaders* ClientDownloadRequest_ImageHeaders::New() const {
  return new ClientDownloadRequest_ImageHeaders;
}

void ClientDownloadRequest_ImageHeaders::Clear() {
  if (has_pe_headers()) {
    if (pe_headers_ != NULL) pe_headers_->::safe_browsing::ClientDownloadRequest_PEImageHeaders::Clear();
  }
  mach_o_headers_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_ImageHeaders::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.ImageHeaders)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientDownloadRequest.PEImageHeaders pe_headers = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_pe_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_mach_o_headers;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders mach_o_headers = 2;
      case 2: {
        if (tag == 18) {
         parse_mach_o_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_mach_o_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_mach_o_headers;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.ImageHeaders)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.ImageHeaders)
  return false;
#undef DO_
}

void ClientDownloadRequest_ImageHeaders::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.ImageHeaders)
  // optional .safe_browsing.ClientDownloadRequest.PEImageHeaders pe_headers = 1;
  if (has_pe_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->pe_headers(), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders mach_o_headers = 2;
  for (int i = 0; i < this->mach_o_headers_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->mach_o_headers(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.ImageHeaders)
}

int ClientDownloadRequest_ImageHeaders::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientDownloadRequest.PEImageHeaders pe_headers = 1;
    if (has_pe_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->pe_headers());
    }

  }
  // repeated .safe_browsing.ClientDownloadRequest.MachOHeaders mach_o_headers = 2;
  total_size += 1 * this->mach_o_headers_size();
  for (int i = 0; i < this->mach_o_headers_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->mach_o_headers(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_ImageHeaders::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_ImageHeaders*>(&from));
}

void ClientDownloadRequest_ImageHeaders::MergeFrom(const ClientDownloadRequest_ImageHeaders& from) {
  GOOGLE_CHECK_NE(&from, this);
  mach_o_headers_.MergeFrom(from.mach_o_headers_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_pe_headers()) {
      mutable_pe_headers()->::safe_browsing::ClientDownloadRequest_PEImageHeaders::MergeFrom(from.pe_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_ImageHeaders::CopyFrom(const ClientDownloadRequest_ImageHeaders& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_ImageHeaders::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->mach_o_headers())) return false;
  return true;
}

void ClientDownloadRequest_ImageHeaders::Swap(ClientDownloadRequest_ImageHeaders* other) {
  if (other != this) {
    std::swap(pe_headers_, other->pe_headers_);
    mach_o_headers_.Swap(&other->mach_o_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_ImageHeaders::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.ImageHeaders";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest_ArchivedBinary::kFileBasenameFieldNumber;
const int ClientDownloadRequest_ArchivedBinary::kDownloadTypeFieldNumber;
const int ClientDownloadRequest_ArchivedBinary::kDigestsFieldNumber;
const int ClientDownloadRequest_ArchivedBinary::kLengthFieldNumber;
const int ClientDownloadRequest_ArchivedBinary::kSignatureFieldNumber;
const int ClientDownloadRequest_ArchivedBinary::kImageHeadersFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_ArchivedBinary::ClientDownloadRequest_ArchivedBinary()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.ArchivedBinary)
}

void ClientDownloadRequest_ArchivedBinary::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  digests_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(
      ::safe_browsing::ClientDownloadRequest_Digests::internal_default_instance());
#else
  digests_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(&::safe_browsing::ClientDownloadRequest_Digests::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientDownloadRequest_ArchivedBinary::ClientDownloadRequest_ArchivedBinary(const ClientDownloadRequest_ArchivedBinary& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.ArchivedBinary)
}

void ClientDownloadRequest_ArchivedBinary::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  file_basename_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  download_type_ = 0;
  digests_ = NULL;
  length_ = GOOGLE_LONGLONG(0);
  signature_ = NULL;
  image_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_ArchivedBinary::~ClientDownloadRequest_ArchivedBinary() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.ArchivedBinary)
  SharedDtor();
}

void ClientDownloadRequest_ArchivedBinary::SharedDtor() {
  if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete file_basename_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete digests_;
    delete signature_;
    delete image_headers_;
  }
}

void ClientDownloadRequest_ArchivedBinary::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_ArchivedBinary& ClientDownloadRequest_ArchivedBinary::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_ArchivedBinary* ClientDownloadRequest_ArchivedBinary::default_instance_ = NULL;

ClientDownloadRequest_ArchivedBinary* ClientDownloadRequest_ArchivedBinary::New() const {
  return new ClientDownloadRequest_ArchivedBinary;
}

void ClientDownloadRequest_ArchivedBinary::Clear() {
  if (_has_bits_[0 / 32] & 63) {
    if (has_file_basename()) {
      if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        file_basename_->clear();
      }
    }
    download_type_ = 0;
    if (has_digests()) {
      if (digests_ != NULL) digests_->::safe_browsing::ClientDownloadRequest_Digests::Clear();
    }
    length_ = GOOGLE_LONGLONG(0);
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_ArchivedBinary::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.ArchivedBinary)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string file_basename = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_file_basename()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_download_type;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 2;
      case 2: {
        if (tag == 16) {
         parse_download_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadRequest_DownloadType_IsValid(value)) {
            set_download_type(static_cast< ::safe_browsing::ClientDownloadRequest_DownloadType >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_digests;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.Digests digests = 3;
      case 3: {
        if (tag == 26) {
         parse_digests:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_digests()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_length;
        break;
      }

      // optional int64 length = 4;
      case 4: {
        if (tag == 32) {
         parse_length:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &length_)));
          set_has_length();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
      case 5: {
        if (tag == 42) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
      case 6: {
        if (tag == 50) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.ArchivedBinary)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.ArchivedBinary)
  return false;
#undef DO_
}

void ClientDownloadRequest_ArchivedBinary::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.ArchivedBinary)
  // optional string file_basename = 1;
  if (has_file_basename()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->file_basename(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 2;
  if (has_download_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->download_type(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.Digests digests = 3;
  if (has_digests()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->digests(), output);
  }

  // optional int64 length = 4;
  if (has_length()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->length(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->signature(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      6, this->image_headers(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.ArchivedBinary)
}

int ClientDownloadRequest_ArchivedBinary::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string file_basename = 1;
    if (has_file_basename()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->file_basename());
    }

    // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 2;
    if (has_download_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->download_type());
    }

    // optional .safe_browsing.ClientDownloadRequest.Digests digests = 3;
    if (has_digests()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->digests());
    }

    // optional int64 length = 4;
    if (has_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->length());
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_ArchivedBinary::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_ArchivedBinary*>(&from));
}

void ClientDownloadRequest_ArchivedBinary::MergeFrom(const ClientDownloadRequest_ArchivedBinary& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_file_basename()) {
      set_file_basename(from.file_basename());
    }
    if (from.has_download_type()) {
      set_download_type(from.download_type());
    }
    if (from.has_digests()) {
      mutable_digests()->::safe_browsing::ClientDownloadRequest_Digests::MergeFrom(from.digests());
    }
    if (from.has_length()) {
      set_length(from.length());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_ArchivedBinary::CopyFrom(const ClientDownloadRequest_ArchivedBinary& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_ArchivedBinary::IsInitialized() const {

  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  return true;
}

void ClientDownloadRequest_ArchivedBinary::Swap(ClientDownloadRequest_ArchivedBinary* other) {
  if (other != this) {
    std::swap(file_basename_, other->file_basename_);
    std::swap(download_type_, other->download_type_);
    std::swap(digests_, other->digests_);
    std::swap(length_, other->length_);
    std::swap(signature_, other->signature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_ArchivedBinary::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.ArchivedBinary";
}


// -------------------------------------------------------------------

bool ClientDownloadRequest_URLChainEntry_URLType_IsValid(int value) {
  switch(value) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::DOWNLOAD_URL;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::DOWNLOAD_REFERRER;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::LANDING_PAGE;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::LANDING_REFERRER;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::CLIENT_REDIRECT;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::SERVER_REDIRECT;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::URLType_MIN;
const ClientDownloadRequest_URLChainEntry_URLType ClientDownloadRequest_URLChainEntry::URLType_MAX;
const int ClientDownloadRequest_URLChainEntry::URLType_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientDownloadRequest_URLChainEntry::kUrlFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kTypeFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kIpAddressFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kReferrerFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kMainFrameReferrerFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kIsRetargetingFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kIsUserInitiatedFieldNumber;
const int ClientDownloadRequest_URLChainEntry::kTimestampInMillisecFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest_URLChainEntry::ClientDownloadRequest_URLChainEntry()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest.URLChainEntry)
}

void ClientDownloadRequest_URLChainEntry::InitAsDefaultInstance() {
}

ClientDownloadRequest_URLChainEntry::ClientDownloadRequest_URLChainEntry(const ClientDownloadRequest_URLChainEntry& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest.URLChainEntry)
}

void ClientDownloadRequest_URLChainEntry::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 1;
  ip_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  referrer_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  main_frame_referrer_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  is_retargeting_ = false;
  is_user_initiated_ = false;
  timestamp_in_millisec_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest_URLChainEntry::~ClientDownloadRequest_URLChainEntry() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest.URLChainEntry)
  SharedDtor();
}

void ClientDownloadRequest_URLChainEntry::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (ip_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete ip_address_;
  }
  if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete referrer_;
  }
  if (main_frame_referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete main_frame_referrer_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadRequest_URLChainEntry::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest_URLChainEntry& ClientDownloadRequest_URLChainEntry::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest_URLChainEntry* ClientDownloadRequest_URLChainEntry::default_instance_ = NULL;

ClientDownloadRequest_URLChainEntry* ClientDownloadRequest_URLChainEntry::New() const {
  return new ClientDownloadRequest_URLChainEntry;
}

void ClientDownloadRequest_URLChainEntry::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientDownloadRequest_URLChainEntry*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 255) {
    ZR_(is_retargeting_, timestamp_in_millisec_);
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    type_ = 1;
    if (has_ip_address()) {
      if (ip_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        ip_address_->clear();
      }
    }
    if (has_referrer()) {
      if (referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        referrer_->clear();
      }
    }
    if (has_main_frame_referrer()) {
      if (main_frame_referrer_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        main_frame_referrer_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest_URLChainEntry::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest.URLChainEntry)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_type;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.URLChainEntry.URLType type = 2;
      case 2: {
        if (tag == 16) {
         parse_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadRequest_URLChainEntry_URLType_IsValid(value)) {
            set_type(static_cast< ::safe_browsing::ClientDownloadRequest_URLChainEntry_URLType >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_ip_address;
        break;
      }

      // optional string ip_address = 3;
      case 3: {
        if (tag == 26) {
         parse_ip_address:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_ip_address()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_referrer;
        break;
      }

      // optional string referrer = 4;
      case 4: {
        if (tag == 34) {
         parse_referrer:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_referrer()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_main_frame_referrer;
        break;
      }

      // optional string main_frame_referrer = 5;
      case 5: {
        if (tag == 42) {
         parse_main_frame_referrer:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_main_frame_referrer()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_is_retargeting;
        break;
      }

      // optional bool is_retargeting = 6;
      case 6: {
        if (tag == 48) {
         parse_is_retargeting:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_retargeting_)));
          set_has_is_retargeting();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(56)) goto parse_is_user_initiated;
        break;
      }

      // optional bool is_user_initiated = 7;
      case 7: {
        if (tag == 56) {
         parse_is_user_initiated:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_user_initiated_)));
          set_has_is_user_initiated();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(65)) goto parse_timestamp_in_millisec;
        break;
      }

      // optional double timestamp_in_millisec = 8;
      case 8: {
        if (tag == 65) {
         parse_timestamp_in_millisec:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &timestamp_in_millisec_)));
          set_has_timestamp_in_millisec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest.URLChainEntry)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest.URLChainEntry)
  return false;
#undef DO_
}

void ClientDownloadRequest_URLChainEntry::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest.URLChainEntry)
  // optional string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.URLChainEntry.URLType type = 2;
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->type(), output);
  }

  // optional string ip_address = 3;
  if (has_ip_address()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->ip_address(), output);
  }

  // optional string referrer = 4;
  if (has_referrer()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->referrer(), output);
  }

  // optional string main_frame_referrer = 5;
  if (has_main_frame_referrer()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->main_frame_referrer(), output);
  }

  // optional bool is_retargeting = 6;
  if (has_is_retargeting()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->is_retargeting(), output);
  }

  // optional bool is_user_initiated = 7;
  if (has_is_user_initiated()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(7, this->is_user_initiated(), output);
  }

  // optional double timestamp_in_millisec = 8;
  if (has_timestamp_in_millisec()) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(8, this->timestamp_in_millisec(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest.URLChainEntry)
}

int ClientDownloadRequest_URLChainEntry::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string url = 1;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // optional .safe_browsing.ClientDownloadRequest.URLChainEntry.URLType type = 2;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
    }

    // optional string ip_address = 3;
    if (has_ip_address()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->ip_address());
    }

    // optional string referrer = 4;
    if (has_referrer()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->referrer());
    }

    // optional string main_frame_referrer = 5;
    if (has_main_frame_referrer()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->main_frame_referrer());
    }

    // optional bool is_retargeting = 6;
    if (has_is_retargeting()) {
      total_size += 1 + 1;
    }

    // optional bool is_user_initiated = 7;
    if (has_is_user_initiated()) {
      total_size += 1 + 1;
    }

    // optional double timestamp_in_millisec = 8;
    if (has_timestamp_in_millisec()) {
      total_size += 1 + 8;
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest_URLChainEntry::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest_URLChainEntry*>(&from));
}

void ClientDownloadRequest_URLChainEntry::MergeFrom(const ClientDownloadRequest_URLChainEntry& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_type()) {
      set_type(from.type());
    }
    if (from.has_ip_address()) {
      set_ip_address(from.ip_address());
    }
    if (from.has_referrer()) {
      set_referrer(from.referrer());
    }
    if (from.has_main_frame_referrer()) {
      set_main_frame_referrer(from.main_frame_referrer());
    }
    if (from.has_is_retargeting()) {
      set_is_retargeting(from.is_retargeting());
    }
    if (from.has_is_user_initiated()) {
      set_is_user_initiated(from.is_user_initiated());
    }
    if (from.has_timestamp_in_millisec()) {
      set_timestamp_in_millisec(from.timestamp_in_millisec());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest_URLChainEntry::CopyFrom(const ClientDownloadRequest_URLChainEntry& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest_URLChainEntry::IsInitialized() const {

  return true;
}

void ClientDownloadRequest_URLChainEntry::Swap(ClientDownloadRequest_URLChainEntry* other) {
  if (other != this) {
    std::swap(url_, other->url_);
    std::swap(type_, other->type_);
    std::swap(ip_address_, other->ip_address_);
    std::swap(referrer_, other->referrer_);
    std::swap(main_frame_referrer_, other->main_frame_referrer_);
    std::swap(is_retargeting_, other->is_retargeting_);
    std::swap(is_user_initiated_, other->is_user_initiated_);
    std::swap(timestamp_in_millisec_, other->timestamp_in_millisec_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest_URLChainEntry::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest.URLChainEntry";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadRequest::kUrlFieldNumber;
const int ClientDownloadRequest::kDigestsFieldNumber;
const int ClientDownloadRequest::kLengthFieldNumber;
const int ClientDownloadRequest::kResourcesFieldNumber;
const int ClientDownloadRequest::kSignatureFieldNumber;
const int ClientDownloadRequest::kUserInitiatedFieldNumber;
const int ClientDownloadRequest::kFileBasenameFieldNumber;
const int ClientDownloadRequest::kDownloadTypeFieldNumber;
const int ClientDownloadRequest::kLocaleFieldNumber;
const int ClientDownloadRequest::kImageHeadersFieldNumber;
const int ClientDownloadRequest::kArchivedBinaryFieldNumber;
const int ClientDownloadRequest::kPopulationFieldNumber;
const int ClientDownloadRequest::kArchiveValidFieldNumber;
const int ClientDownloadRequest::kSkippedUrlWhitelistFieldNumber;
const int ClientDownloadRequest::kSkippedCertificateWhitelistFieldNumber;
const int ClientDownloadRequest::kAlternateExtensionsFieldNumber;
const int ClientDownloadRequest::kUrlChainFieldNumber;
#endif  // !_MSC_VER

ClientDownloadRequest::ClientDownloadRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadRequest)
}

void ClientDownloadRequest::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  digests_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(
      ::safe_browsing::ClientDownloadRequest_Digests::internal_default_instance());
#else
  digests_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(&::safe_browsing::ClientDownloadRequest_Digests::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(
      ::safe_browsing::ChromeUserPopulation::internal_default_instance());
#else
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(&::safe_browsing::ChromeUserPopulation::default_instance());
#endif
}

ClientDownloadRequest::ClientDownloadRequest(const ClientDownloadRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadRequest)
}

void ClientDownloadRequest::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  digests_ = NULL;
  length_ = GOOGLE_LONGLONG(0);
  signature_ = NULL;
  user_initiated_ = false;
  file_basename_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  download_type_ = 0;
  locale_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  image_headers_ = NULL;
  population_ = NULL;
  archive_valid_ = false;
  skipped_url_whitelist_ = false;
  skipped_certificate_whitelist_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadRequest::~ClientDownloadRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadRequest)
  SharedDtor();
}

void ClientDownloadRequest::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete file_basename_;
  }
  if (locale_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete locale_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete digests_;
    delete signature_;
    delete image_headers_;
    delete population_;
  }
}

void ClientDownloadRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadRequest& ClientDownloadRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadRequest* ClientDownloadRequest::default_instance_ = NULL;

ClientDownloadRequest* ClientDownloadRequest::New() const {
  return new ClientDownloadRequest;
}

void ClientDownloadRequest::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientDownloadRequest*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 247) {
    ZR_(download_type_, user_initiated_);
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_digests()) {
      if (digests_ != NULL) digests_->::safe_browsing::ClientDownloadRequest_Digests::Clear();
    }
    length_ = GOOGLE_LONGLONG(0);
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_file_basename()) {
      if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        file_basename_->clear();
      }
    }
  }
  if (_has_bits_[8 / 32] & 31488) {
    ZR_(archive_valid_, skipped_certificate_whitelist_);
    if (has_locale()) {
      if (locale_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        locale_->clear();
      }
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
    if (has_population()) {
      if (population_ != NULL) population_->::safe_browsing::ChromeUserPopulation::Clear();
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  resources_.Clear();
  archived_binary_.Clear();
  alternate_extensions_.Clear();
  url_chain_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(16383);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_digests;
        break;
      }

      // required .safe_browsing.ClientDownloadRequest.Digests digests = 2;
      case 2: {
        if (tag == 18) {
         parse_digests:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_digests()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_length;
        break;
      }

      // required int64 length = 3;
      case 3: {
        if (tag == 24) {
         parse_length:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &length_)));
          set_has_length();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_resources;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.Resource resources = 4;
      case 4: {
        if (tag == 34) {
         parse_resources:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_resources()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_resources;
        if (input->ExpectTag(42)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
      case 5: {
        if (tag == 42) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_user_initiated;
        break;
      }

      // optional bool user_initiated = 6;
      case 6: {
        if (tag == 48) {
         parse_user_initiated:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &user_initiated_)));
          set_has_user_initiated();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(74)) goto parse_file_basename;
        break;
      }

      // optional string file_basename = 9;
      case 9: {
        if (tag == 74) {
         parse_file_basename:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_file_basename()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(80)) goto parse_download_type;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 10 [default = WIN_EXECUTABLE];
      case 10: {
        if (tag == 80) {
         parse_download_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadRequest_DownloadType_IsValid(value)) {
            set_download_type(static_cast< ::safe_browsing::ClientDownloadRequest_DownloadType >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(90)) goto parse_locale;
        break;
      }

      // optional string locale = 11;
      case 11: {
        if (tag == 90) {
         parse_locale:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_locale()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(146)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 18;
      case 18: {
        if (tag == 146) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(178)) goto parse_archived_binary;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.ArchivedBinary archived_binary = 22;
      case 22: {
        if (tag == 178) {
         parse_archived_binary:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_archived_binary()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(178)) goto parse_archived_binary;
        if (input->ExpectTag(194)) goto parse_population;
        break;
      }

      // optional .safe_browsing.ChromeUserPopulation population = 24;
      case 24: {
        if (tag == 194) {
         parse_population:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_population()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(208)) goto parse_archive_valid;
        break;
      }

      // optional bool archive_valid = 26;
      case 26: {
        if (tag == 208) {
         parse_archive_valid:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &archive_valid_)));
          set_has_archive_valid();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(224)) goto parse_skipped_url_whitelist;
        break;
      }

      // optional bool skipped_url_whitelist = 28;
      case 28: {
        if (tag == 224) {
         parse_skipped_url_whitelist:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &skipped_url_whitelist_)));
          set_has_skipped_url_whitelist();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(248)) goto parse_skipped_certificate_whitelist;
        break;
      }

      // optional bool skipped_certificate_whitelist = 31;
      case 31: {
        if (tag == 248) {
         parse_skipped_certificate_whitelist:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &skipped_certificate_whitelist_)));
          set_has_skipped_certificate_whitelist();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(282)) goto parse_alternate_extensions;
        break;
      }

      // repeated string alternate_extensions = 35;
      case 35: {
        if (tag == 282) {
         parse_alternate_extensions:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_alternate_extensions()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(282)) goto parse_alternate_extensions;
        if (input->ExpectTag(290)) goto parse_url_chain;
        break;
      }

      // repeated .safe_browsing.ClientDownloadRequest.URLChainEntry url_chain = 36;
      case 36: {
        if (tag == 290) {
         parse_url_chain:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_url_chain()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(290)) goto parse_url_chain;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadRequest)
  return false;
#undef DO_
}

void ClientDownloadRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadRequest)
  // required string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // required .safe_browsing.ClientDownloadRequest.Digests digests = 2;
  if (has_digests()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->digests(), output);
  }

  // required int64 length = 3;
  if (has_length()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->length(), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.Resource resources = 4;
  for (int i = 0; i < this->resources_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->resources(i), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->signature(), output);
  }

  // optional bool user_initiated = 6;
  if (has_user_initiated()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->user_initiated(), output);
  }

  // optional string file_basename = 9;
  if (has_file_basename()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->file_basename(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 10 [default = WIN_EXECUTABLE];
  if (has_download_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      10, this->download_type(), output);
  }

  // optional string locale = 11;
  if (has_locale()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->locale(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 18;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      18, this->image_headers(), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.ArchivedBinary archived_binary = 22;
  for (int i = 0; i < this->archived_binary_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      22, this->archived_binary(i), output);
  }

  // optional .safe_browsing.ChromeUserPopulation population = 24;
  if (has_population()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      24, this->population(), output);
  }

  // optional bool archive_valid = 26;
  if (has_archive_valid()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(26, this->archive_valid(), output);
  }

  // optional bool skipped_url_whitelist = 28;
  if (has_skipped_url_whitelist()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(28, this->skipped_url_whitelist(), output);
  }

  // optional bool skipped_certificate_whitelist = 31;
  if (has_skipped_certificate_whitelist()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(31, this->skipped_certificate_whitelist(), output);
  }

  // repeated string alternate_extensions = 35;
  for (int i = 0; i < this->alternate_extensions_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      35, this->alternate_extensions(i), output);
  }

  // repeated .safe_browsing.ClientDownloadRequest.URLChainEntry url_chain = 36;
  for (int i = 0; i < this->url_chain_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      36, this->url_chain(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadRequest)
}

int ClientDownloadRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string url = 1;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // required .safe_browsing.ClientDownloadRequest.Digests digests = 2;
    if (has_digests()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->digests());
    }

    // required int64 length = 3;
    if (has_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->length());
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional bool user_initiated = 6;
    if (has_user_initiated()) {
      total_size += 1 + 1;
    }

    // optional string file_basename = 9;
    if (has_file_basename()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->file_basename());
    }

    // optional .safe_browsing.ClientDownloadRequest.DownloadType download_type = 10 [default = WIN_EXECUTABLE];
    if (has_download_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->download_type());
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // optional string locale = 11;
    if (has_locale()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->locale());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 18;
    if (has_image_headers()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

    // optional .safe_browsing.ChromeUserPopulation population = 24;
    if (has_population()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->population());
    }

    // optional bool archive_valid = 26;
    if (has_archive_valid()) {
      total_size += 2 + 1;
    }

    // optional bool skipped_url_whitelist = 28;
    if (has_skipped_url_whitelist()) {
      total_size += 2 + 1;
    }

    // optional bool skipped_certificate_whitelist = 31;
    if (has_skipped_certificate_whitelist()) {
      total_size += 2 + 1;
    }

  }
  // repeated .safe_browsing.ClientDownloadRequest.Resource resources = 4;
  total_size += 1 * this->resources_size();
  for (int i = 0; i < this->resources_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->resources(i));
  }

  // repeated .safe_browsing.ClientDownloadRequest.ArchivedBinary archived_binary = 22;
  total_size += 2 * this->archived_binary_size();
  for (int i = 0; i < this->archived_binary_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->archived_binary(i));
  }

  // repeated string alternate_extensions = 35;
  total_size += 2 * this->alternate_extensions_size();
  for (int i = 0; i < this->alternate_extensions_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->alternate_extensions(i));
  }

  // repeated .safe_browsing.ClientDownloadRequest.URLChainEntry url_chain = 36;
  total_size += 2 * this->url_chain_size();
  for (int i = 0; i < this->url_chain_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->url_chain(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadRequest*>(&from));
}

void ClientDownloadRequest::MergeFrom(const ClientDownloadRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  resources_.MergeFrom(from.resources_);
  archived_binary_.MergeFrom(from.archived_binary_);
  alternate_extensions_.MergeFrom(from.alternate_extensions_);
  url_chain_.MergeFrom(from.url_chain_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_digests()) {
      mutable_digests()->::safe_browsing::ClientDownloadRequest_Digests::MergeFrom(from.digests());
    }
    if (from.has_length()) {
      set_length(from.length());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_user_initiated()) {
      set_user_initiated(from.user_initiated());
    }
    if (from.has_file_basename()) {
      set_file_basename(from.file_basename());
    }
    if (from.has_download_type()) {
      set_download_type(from.download_type());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_locale()) {
      set_locale(from.locale());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
    if (from.has_population()) {
      mutable_population()->::safe_browsing::ChromeUserPopulation::MergeFrom(from.population());
    }
    if (from.has_archive_valid()) {
      set_archive_valid(from.archive_valid());
    }
    if (from.has_skipped_url_whitelist()) {
      set_skipped_url_whitelist(from.skipped_url_whitelist());
    }
    if (from.has_skipped_certificate_whitelist()) {
      set_skipped_certificate_whitelist(from.skipped_certificate_whitelist());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadRequest::CopyFrom(const ClientDownloadRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;

  if (!::google::protobuf::internal::AllAreInitialized(this->resources())) return false;
  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  if (!::google::protobuf::internal::AllAreInitialized(this->archived_binary())) return false;
  return true;
}

void ClientDownloadRequest::Swap(ClientDownloadRequest* other) {
  if (other != this) {
    std::swap(url_, other->url_);
    std::swap(digests_, other->digests_);
    std::swap(length_, other->length_);
    resources_.Swap(&other->resources_);
    std::swap(signature_, other->signature_);
    std::swap(user_initiated_, other->user_initiated_);
    std::swap(file_basename_, other->file_basename_);
    std::swap(download_type_, other->download_type_);
    std::swap(locale_, other->locale_);
    std::swap(image_headers_, other->image_headers_);
    archived_binary_.Swap(&other->archived_binary_);
    std::swap(population_, other->population_);
    std::swap(archive_valid_, other->archive_valid_);
    std::swap(skipped_url_whitelist_, other->skipped_url_whitelist_);
    std::swap(skipped_certificate_whitelist_, other->skipped_certificate_whitelist_);
    alternate_extensions_.Swap(&other->alternate_extensions_);
    url_chain_.Swap(&other->url_chain_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadRequest::GetTypeName() const {
  return "safe_browsing.ClientDownloadRequest";
}


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

bool ClientDownloadResponse_Verdict_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientDownloadResponse_Verdict ClientDownloadResponse::SAFE;
const ClientDownloadResponse_Verdict ClientDownloadResponse::DANGEROUS;
const ClientDownloadResponse_Verdict ClientDownloadResponse::UNCOMMON;
const ClientDownloadResponse_Verdict ClientDownloadResponse::POTENTIALLY_UNWANTED;
const ClientDownloadResponse_Verdict ClientDownloadResponse::DANGEROUS_HOST;
const ClientDownloadResponse_Verdict ClientDownloadResponse::UNKNOWN;
const ClientDownloadResponse_Verdict ClientDownloadResponse::Verdict_MIN;
const ClientDownloadResponse_Verdict ClientDownloadResponse::Verdict_MAX;
const int ClientDownloadResponse::Verdict_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientDownloadResponse_MoreInfo::kDescriptionFieldNumber;
const int ClientDownloadResponse_MoreInfo::kUrlFieldNumber;
#endif  // !_MSC_VER

ClientDownloadResponse_MoreInfo::ClientDownloadResponse_MoreInfo()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadResponse.MoreInfo)
}

void ClientDownloadResponse_MoreInfo::InitAsDefaultInstance() {
}

ClientDownloadResponse_MoreInfo::ClientDownloadResponse_MoreInfo(const ClientDownloadResponse_MoreInfo& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadResponse.MoreInfo)
}

void ClientDownloadResponse_MoreInfo::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  description_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadResponse_MoreInfo::~ClientDownloadResponse_MoreInfo() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadResponse.MoreInfo)
  SharedDtor();
}

void ClientDownloadResponse_MoreInfo::SharedDtor() {
  if (description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete description_;
  }
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadResponse_MoreInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadResponse_MoreInfo& ClientDownloadResponse_MoreInfo::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadResponse_MoreInfo* ClientDownloadResponse_MoreInfo::default_instance_ = NULL;

ClientDownloadResponse_MoreInfo* ClientDownloadResponse_MoreInfo::New() const {
  return new ClientDownloadResponse_MoreInfo;
}

void ClientDownloadResponse_MoreInfo::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_description()) {
      if (description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        description_->clear();
      }
    }
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadResponse_MoreInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadResponse.MoreInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string description = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_url;
        break;
      }

      // optional string url = 2;
      case 2: {
        if (tag == 18) {
         parse_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadResponse.MoreInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadResponse.MoreInfo)
  return false;
#undef DO_
}

void ClientDownloadResponse_MoreInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadResponse.MoreInfo)
  // optional string description = 1;
  if (has_description()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->description(), output);
  }

  // optional string url = 2;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->url(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadResponse.MoreInfo)
}

int ClientDownloadResponse_MoreInfo::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string description = 1;
    if (has_description()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }

    // optional string url = 2;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadResponse_MoreInfo::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadResponse_MoreInfo*>(&from));
}

void ClientDownloadResponse_MoreInfo::MergeFrom(const ClientDownloadResponse_MoreInfo& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_description()) {
      set_description(from.description());
    }
    if (from.has_url()) {
      set_url(from.url());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadResponse_MoreInfo::CopyFrom(const ClientDownloadResponse_MoreInfo& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadResponse_MoreInfo::IsInitialized() const {

  return true;
}

void ClientDownloadResponse_MoreInfo::Swap(ClientDownloadResponse_MoreInfo* other) {
  if (other != this) {
    std::swap(description_, other->description_);
    std::swap(url_, other->url_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadResponse_MoreInfo::GetTypeName() const {
  return "safe_browsing.ClientDownloadResponse.MoreInfo";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadResponse::kVerdictFieldNumber;
const int ClientDownloadResponse::kMoreInfoFieldNumber;
const int ClientDownloadResponse::kTokenFieldNumber;
#endif  // !_MSC_VER

ClientDownloadResponse::ClientDownloadResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadResponse)
}

void ClientDownloadResponse::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  more_info_ = const_cast< ::safe_browsing::ClientDownloadResponse_MoreInfo*>(
      ::safe_browsing::ClientDownloadResponse_MoreInfo::internal_default_instance());
#else
  more_info_ = const_cast< ::safe_browsing::ClientDownloadResponse_MoreInfo*>(&::safe_browsing::ClientDownloadResponse_MoreInfo::default_instance());
#endif
}

ClientDownloadResponse::ClientDownloadResponse(const ClientDownloadResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadResponse)
}

void ClientDownloadResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  verdict_ = 0;
  more_info_ = NULL;
  token_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadResponse::~ClientDownloadResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadResponse)
  SharedDtor();
}

void ClientDownloadResponse::SharedDtor() {
  if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete token_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete more_info_;
  }
}

void ClientDownloadResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadResponse& ClientDownloadResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadResponse* ClientDownloadResponse::default_instance_ = NULL;

ClientDownloadResponse* ClientDownloadResponse::New() const {
  return new ClientDownloadResponse;
}

void ClientDownloadResponse::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    verdict_ = 0;
    if (has_more_info()) {
      if (more_info_ != NULL) more_info_->::safe_browsing::ClientDownloadResponse_MoreInfo::Clear();
    }
    if (has_token()) {
      if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        token_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientDownloadResponse.Verdict verdict = 1 [default = SAFE];
      case 1: {
        if (tag == 8) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadResponse_Verdict_IsValid(value)) {
            set_verdict(static_cast< ::safe_browsing::ClientDownloadResponse_Verdict >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_more_info;
        break;
      }

      // optional .safe_browsing.ClientDownloadResponse.MoreInfo more_info = 2;
      case 2: {
        if (tag == 18) {
         parse_more_info:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_more_info()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_token;
        break;
      }

      // optional bytes token = 3;
      case 3: {
        if (tag == 26) {
         parse_token:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_token()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadResponse)
  return false;
#undef DO_
}

void ClientDownloadResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadResponse)
  // optional .safe_browsing.ClientDownloadResponse.Verdict verdict = 1 [default = SAFE];
  if (has_verdict()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->verdict(), output);
  }

  // optional .safe_browsing.ClientDownloadResponse.MoreInfo more_info = 2;
  if (has_more_info()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->more_info(), output);
  }

  // optional bytes token = 3;
  if (has_token()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->token(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadResponse)
}

int ClientDownloadResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientDownloadResponse.Verdict verdict = 1 [default = SAFE];
    if (has_verdict()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->verdict());
    }

    // optional .safe_browsing.ClientDownloadResponse.MoreInfo more_info = 2;
    if (has_more_info()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->more_info());
    }

    // optional bytes token = 3;
    if (has_token()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->token());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadResponse*>(&from));
}

void ClientDownloadResponse::MergeFrom(const ClientDownloadResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_verdict()) {
      set_verdict(from.verdict());
    }
    if (from.has_more_info()) {
      mutable_more_info()->::safe_browsing::ClientDownloadResponse_MoreInfo::MergeFrom(from.more_info());
    }
    if (from.has_token()) {
      set_token(from.token());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadResponse::CopyFrom(const ClientDownloadResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadResponse::IsInitialized() const {

  return true;
}

void ClientDownloadResponse::Swap(ClientDownloadResponse* other) {
  if (other != this) {
    std::swap(verdict_, other->verdict_);
    std::swap(more_info_, other->more_info_);
    std::swap(token_, other->token_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadResponse::GetTypeName() const {
  return "safe_browsing.ClientDownloadResponse";
}


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

bool ClientDownloadReport_Reason_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientDownloadReport_Reason ClientDownloadReport::SHARE;
const ClientDownloadReport_Reason ClientDownloadReport::FALSE_POSITIVE;
const ClientDownloadReport_Reason ClientDownloadReport::APPEAL;
const ClientDownloadReport_Reason ClientDownloadReport::Reason_MIN;
const ClientDownloadReport_Reason ClientDownloadReport::Reason_MAX;
const int ClientDownloadReport::Reason_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientDownloadReport_UserInformation::kEmailFieldNumber;
#endif  // !_MSC_VER

ClientDownloadReport_UserInformation::ClientDownloadReport_UserInformation()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadReport.UserInformation)
}

void ClientDownloadReport_UserInformation::InitAsDefaultInstance() {
}

ClientDownloadReport_UserInformation::ClientDownloadReport_UserInformation(const ClientDownloadReport_UserInformation& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadReport.UserInformation)
}

void ClientDownloadReport_UserInformation::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  email_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadReport_UserInformation::~ClientDownloadReport_UserInformation() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadReport.UserInformation)
  SharedDtor();
}

void ClientDownloadReport_UserInformation::SharedDtor() {
  if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete email_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientDownloadReport_UserInformation::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadReport_UserInformation& ClientDownloadReport_UserInformation::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadReport_UserInformation* ClientDownloadReport_UserInformation::default_instance_ = NULL;

ClientDownloadReport_UserInformation* ClientDownloadReport_UserInformation::New() const {
  return new ClientDownloadReport_UserInformation;
}

void ClientDownloadReport_UserInformation::Clear() {
  if (has_email()) {
    if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      email_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadReport_UserInformation::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadReport.UserInformation)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string email = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_email()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadReport.UserInformation)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadReport.UserInformation)
  return false;
#undef DO_
}

void ClientDownloadReport_UserInformation::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadReport.UserInformation)
  // optional string email = 1;
  if (has_email()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->email(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadReport.UserInformation)
}

int ClientDownloadReport_UserInformation::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string email = 1;
    if (has_email()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->email());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadReport_UserInformation::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadReport_UserInformation*>(&from));
}

void ClientDownloadReport_UserInformation::MergeFrom(const ClientDownloadReport_UserInformation& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_email()) {
      set_email(from.email());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadReport_UserInformation::CopyFrom(const ClientDownloadReport_UserInformation& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadReport_UserInformation::IsInitialized() const {

  return true;
}

void ClientDownloadReport_UserInformation::Swap(ClientDownloadReport_UserInformation* other) {
  if (other != this) {
    std::swap(email_, other->email_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadReport_UserInformation::GetTypeName() const {
  return "safe_browsing.ClientDownloadReport.UserInformation";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientDownloadReport::kReasonFieldNumber;
const int ClientDownloadReport::kDownloadRequestFieldNumber;
const int ClientDownloadReport::kUserInformationFieldNumber;
const int ClientDownloadReport::kCommentFieldNumber;
const int ClientDownloadReport::kDownloadResponseFieldNumber;
#endif  // !_MSC_VER

ClientDownloadReport::ClientDownloadReport()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientDownloadReport)
}

void ClientDownloadReport::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  download_request_ = const_cast< ::safe_browsing::ClientDownloadRequest*>(
      ::safe_browsing::ClientDownloadRequest::internal_default_instance());
#else
  download_request_ = const_cast< ::safe_browsing::ClientDownloadRequest*>(&::safe_browsing::ClientDownloadRequest::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  user_information_ = const_cast< ::safe_browsing::ClientDownloadReport_UserInformation*>(
      ::safe_browsing::ClientDownloadReport_UserInformation::internal_default_instance());
#else
  user_information_ = const_cast< ::safe_browsing::ClientDownloadReport_UserInformation*>(&::safe_browsing::ClientDownloadReport_UserInformation::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  download_response_ = const_cast< ::safe_browsing::ClientDownloadResponse*>(
      ::safe_browsing::ClientDownloadResponse::internal_default_instance());
#else
  download_response_ = const_cast< ::safe_browsing::ClientDownloadResponse*>(&::safe_browsing::ClientDownloadResponse::default_instance());
#endif
}

ClientDownloadReport::ClientDownloadReport(const ClientDownloadReport& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientDownloadReport)
}

void ClientDownloadReport::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  reason_ = 0;
  download_request_ = NULL;
  user_information_ = NULL;
  comment_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  download_response_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientDownloadReport::~ClientDownloadReport() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientDownloadReport)
  SharedDtor();
}

void ClientDownloadReport::SharedDtor() {
  if (comment_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete comment_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete download_request_;
    delete user_information_;
    delete download_response_;
  }
}

void ClientDownloadReport::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientDownloadReport& ClientDownloadReport::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientDownloadReport* ClientDownloadReport::default_instance_ = NULL;

ClientDownloadReport* ClientDownloadReport::New() const {
  return new ClientDownloadReport;
}

void ClientDownloadReport::Clear() {
  if (_has_bits_[0 / 32] & 31) {
    reason_ = 0;
    if (has_download_request()) {
      if (download_request_ != NULL) download_request_->::safe_browsing::ClientDownloadRequest::Clear();
    }
    if (has_user_information()) {
      if (user_information_ != NULL) user_information_->::safe_browsing::ClientDownloadReport_UserInformation::Clear();
    }
    if (has_comment()) {
      if (comment_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        comment_->clear();
      }
    }
    if (has_download_response()) {
      if (download_response_ != NULL) download_response_->::safe_browsing::ClientDownloadResponse::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientDownloadReport::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientDownloadReport)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientDownloadReport.Reason reason = 1;
      case 1: {
        if (tag == 8) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadReport_Reason_IsValid(value)) {
            set_reason(static_cast< ::safe_browsing::ClientDownloadReport_Reason >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_download_request;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest download_request = 2;
      case 2: {
        if (tag == 18) {
         parse_download_request:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_download_request()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_user_information;
        break;
      }

      // optional .safe_browsing.ClientDownloadReport.UserInformation user_information = 3;
      case 3: {
        if (tag == 26) {
         parse_user_information:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_user_information()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_comment;
        break;
      }

      // optional bytes comment = 4;
      case 4: {
        if (tag == 34) {
         parse_comment:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_comment()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_download_response;
        break;
      }

      // optional .safe_browsing.ClientDownloadResponse download_response = 5;
      case 5: {
        if (tag == 42) {
         parse_download_response:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_download_response()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientDownloadReport)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientDownloadReport)
  return false;
#undef DO_
}

void ClientDownloadReport::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientDownloadReport)
  // optional .safe_browsing.ClientDownloadReport.Reason reason = 1;
  if (has_reason()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->reason(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest download_request = 2;
  if (has_download_request()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->download_request(), output);
  }

  // optional .safe_browsing.ClientDownloadReport.UserInformation user_information = 3;
  if (has_user_information()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->user_information(), output);
  }

  // optional bytes comment = 4;
  if (has_comment()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      4, this->comment(), output);
  }

  // optional .safe_browsing.ClientDownloadResponse download_response = 5;
  if (has_download_response()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->download_response(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientDownloadReport)
}

int ClientDownloadReport::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientDownloadReport.Reason reason = 1;
    if (has_reason()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->reason());
    }

    // optional .safe_browsing.ClientDownloadRequest download_request = 2;
    if (has_download_request()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->download_request());
    }

    // optional .safe_browsing.ClientDownloadReport.UserInformation user_information = 3;
    if (has_user_information()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->user_information());
    }

    // optional bytes comment = 4;
    if (has_comment()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->comment());
    }

    // optional .safe_browsing.ClientDownloadResponse download_response = 5;
    if (has_download_response()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->download_response());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientDownloadReport::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientDownloadReport*>(&from));
}

void ClientDownloadReport::MergeFrom(const ClientDownloadReport& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_reason()) {
      set_reason(from.reason());
    }
    if (from.has_download_request()) {
      mutable_download_request()->::safe_browsing::ClientDownloadRequest::MergeFrom(from.download_request());
    }
    if (from.has_user_information()) {
      mutable_user_information()->::safe_browsing::ClientDownloadReport_UserInformation::MergeFrom(from.user_information());
    }
    if (from.has_comment()) {
      set_comment(from.comment());
    }
    if (from.has_download_response()) {
      mutable_download_response()->::safe_browsing::ClientDownloadResponse::MergeFrom(from.download_response());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientDownloadReport::CopyFrom(const ClientDownloadReport& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientDownloadReport::IsInitialized() const {

  if (has_download_request()) {
    if (!this->download_request().IsInitialized()) return false;
  }
  return true;
}

void ClientDownloadReport::Swap(ClientDownloadReport* other) {
  if (other != this) {
    std::swap(reason_, other->reason_);
    std::swap(download_request_, other->download_request_);
    std::swap(user_information_, other->user_information_);
    std::swap(comment_, other->comment_);
    std::swap(download_response_, other->download_response_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientDownloadReport::GetTypeName() const {
  return "safe_browsing.ClientDownloadReport";
}


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

bool ClientUploadResponse_UploadStatus_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientUploadResponse_UploadStatus ClientUploadResponse::SUCCESS;
const ClientUploadResponse_UploadStatus ClientUploadResponse::UPLOAD_FAILURE;
const ClientUploadResponse_UploadStatus ClientUploadResponse::UploadStatus_MIN;
const ClientUploadResponse_UploadStatus ClientUploadResponse::UploadStatus_MAX;
const int ClientUploadResponse::UploadStatus_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientUploadResponse::kStatusFieldNumber;
const int ClientUploadResponse::kPermalinkFieldNumber;
#endif  // !_MSC_VER

ClientUploadResponse::ClientUploadResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientUploadResponse)
}

void ClientUploadResponse::InitAsDefaultInstance() {
}

ClientUploadResponse::ClientUploadResponse(const ClientUploadResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientUploadResponse)
}

void ClientUploadResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  status_ = 0;
  permalink_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientUploadResponse::~ClientUploadResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientUploadResponse)
  SharedDtor();
}

void ClientUploadResponse::SharedDtor() {
  if (permalink_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete permalink_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientUploadResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientUploadResponse& ClientUploadResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientUploadResponse* ClientUploadResponse::default_instance_ = NULL;

ClientUploadResponse* ClientUploadResponse::New() const {
  return new ClientUploadResponse;
}

void ClientUploadResponse::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    status_ = 0;
    if (has_permalink()) {
      if (permalink_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        permalink_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientUploadResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientUploadResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientUploadResponse.UploadStatus status = 1;
      case 1: {
        if (tag == 8) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientUploadResponse_UploadStatus_IsValid(value)) {
            set_status(static_cast< ::safe_browsing::ClientUploadResponse_UploadStatus >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_permalink;
        break;
      }

      // optional string permalink = 2;
      case 2: {
        if (tag == 18) {
         parse_permalink:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_permalink()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientUploadResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientUploadResponse)
  return false;
#undef DO_
}

void ClientUploadResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientUploadResponse)
  // optional .safe_browsing.ClientUploadResponse.UploadStatus status = 1;
  if (has_status()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->status(), output);
  }

  // optional string permalink = 2;
  if (has_permalink()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->permalink(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientUploadResponse)
}

int ClientUploadResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientUploadResponse.UploadStatus status = 1;
    if (has_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
    }

    // optional string permalink = 2;
    if (has_permalink()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->permalink());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientUploadResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientUploadResponse*>(&from));
}

void ClientUploadResponse::MergeFrom(const ClientUploadResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_status()) {
      set_status(from.status());
    }
    if (from.has_permalink()) {
      set_permalink(from.permalink());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientUploadResponse::CopyFrom(const ClientUploadResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientUploadResponse::IsInitialized() const {

  return true;
}

void ClientUploadResponse::Swap(ClientUploadResponse* other) {
  if (other != this) {
    std::swap(status_, other->status_);
    std::swap(permalink_, other->permalink_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientUploadResponse::GetTypeName() const {
  return "safe_browsing.ClientUploadResponse";
}


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

bool ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::UNKNOWN;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::CLEARED;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::WEAK_LEGACY_OBSOLETE;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::CHANGED;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::UNTRUSTED_UNKNOWN_VALUE;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ValueState_MIN;
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ValueState_MAX;
const int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ValueState_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::kPathFieldNumber;
const int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::kAtomicValueFieldNumber;
const int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::kSplitKeyFieldNumber;
const int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::kValueStateFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ClientIncidentReport_IncidentData_TrackedPreferenceIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::InitAsDefaultInstance() {
}

ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ClientIncidentReport_IncidentData_TrackedPreferenceIncident(const ClientIncidentReport_IncidentData_TrackedPreferenceIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  atomic_value_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_state_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_TrackedPreferenceIncident::~ClientIncidentReport_IncidentData_TrackedPreferenceIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::SharedDtor() {
  if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete path_;
  }
  if (atomic_value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete atomic_value_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_TrackedPreferenceIncident& ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_TrackedPreferenceIncident* ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_TrackedPreferenceIncident* ClientIncidentReport_IncidentData_TrackedPreferenceIncident::New() const {
  return new ClientIncidentReport_IncidentData_TrackedPreferenceIncident;
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::Clear() {
  if (_has_bits_[0 / 32] & 11) {
    if (has_path()) {
      if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        path_->clear();
      }
    }
    if (has_atomic_value()) {
      if (atomic_value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        atomic_value_->clear();
      }
    }
    value_state_ = 0;
  }
  split_key_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_TrackedPreferenceIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string path = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_path()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_atomic_value;
        break;
      }

      // optional string atomic_value = 2;
      case 2: {
        if (tag == 18) {
         parse_atomic_value:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_atomic_value()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_split_key;
        break;
      }

      // repeated string split_key = 3;
      case 3: {
        if (tag == 26) {
         parse_split_key:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_split_key()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_split_key;
        if (input->ExpectTag(32)) goto parse_value_state;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident.ValueState value_state = 4;
      case 4: {
        if (tag == 32) {
         parse_value_state:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState_IsValid(value)) {
            set_value_state(static_cast< ::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident_ValueState >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
  // optional string path = 1;
  if (has_path()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->path(), output);
  }

  // optional string atomic_value = 2;
  if (has_atomic_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->atomic_value(), output);
  }

  // repeated string split_key = 3;
  for (int i = 0; i < this->split_key_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->split_key(i), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident.ValueState value_state = 4;
  if (has_value_state()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      4, this->value_state(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident)
}

int ClientIncidentReport_IncidentData_TrackedPreferenceIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string path = 1;
    if (has_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->path());
    }

    // optional string atomic_value = 2;
    if (has_atomic_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->atomic_value());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident.ValueState value_state = 4;
    if (has_value_state()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->value_state());
    }

  }
  // repeated string split_key = 3;
  total_size += 1 * this->split_key_size();
  for (int i = 0; i < this->split_key_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->split_key(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_TrackedPreferenceIncident*>(&from));
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::MergeFrom(const ClientIncidentReport_IncidentData_TrackedPreferenceIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  split_key_.MergeFrom(from.split_key_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_path()) {
      set_path(from.path());
    }
    if (from.has_atomic_value()) {
      set_atomic_value(from.atomic_value());
    }
    if (from.has_value_state()) {
      set_value_state(from.value_state());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::CopyFrom(const ClientIncidentReport_IncidentData_TrackedPreferenceIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_TrackedPreferenceIncident::IsInitialized() const {

  return true;
}

void ClientIncidentReport_IncidentData_TrackedPreferenceIncident::Swap(ClientIncidentReport_IncidentData_TrackedPreferenceIncident* other) {
  if (other != this) {
    std::swap(path_, other->path_);
    std::swap(atomic_value_, other->atomic_value_);
    split_key_.Swap(&other->split_key_);
    std::swap(value_state_, other->value_state_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_TrackedPreferenceIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::kRelativePathFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::kSignatureFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::kImageHeadersFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  relative_path_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  signature_ = NULL;
  image_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::~ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::SharedDtor() {
  if (relative_path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete relative_path_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete signature_;
    delete image_headers_;
  }
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile& ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile* ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::default_instance_ = NULL;

ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile* ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::New() const {
  return new ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_relative_path()) {
      if (relative_path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        relative_path_->clear();
      }
    }
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string relative_path = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_relative_path()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
      case 2: {
        if (tag == 18) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
      case 3: {
        if (tag == 26) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
  // optional string relative_path = 1;
  if (has_relative_path()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->relative_path(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->signature(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->image_headers(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile)
}

int ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string relative_path = 1;
    if (has_relative_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->relative_path());
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile*>(&from));
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::MergeFrom(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_relative_path()) {
      set_relative_path(from.relative_path());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::CopyFrom(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::IsInitialized() const {

  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::Swap(ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile* other) {
  if (other != this) {
    std::swap(relative_path_, other->relative_path_);
    std::swap(signature_, other->signature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_BinaryIntegrityIncident_ContainedFile::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::kFileBasenameFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::kSignatureFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::kImageHeadersFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::kSecErrorFieldNumber;
const int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::kContainedFileFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_BinaryIntegrityIncident::ClientIncidentReport_IncidentData_BinaryIntegrityIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident::ClientIncidentReport_IncidentData_BinaryIntegrityIncident(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  file_basename_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  signature_ = NULL;
  image_headers_ = NULL;
  sec_error_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident::~ClientIncidentReport_IncidentData_BinaryIntegrityIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::SharedDtor() {
  if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete file_basename_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete signature_;
    delete image_headers_;
  }
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_BinaryIntegrityIncident& ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_BinaryIntegrityIncident* ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_BinaryIntegrityIncident* ClientIncidentReport_IncidentData_BinaryIntegrityIncident::New() const {
  return new ClientIncidentReport_IncidentData_BinaryIntegrityIncident;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::Clear() {
  if (_has_bits_[0 / 32] & 15) {
    if (has_file_basename()) {
      if (file_basename_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        file_basename_->clear();
      }
    }
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
    sec_error_ = 0;
  }
  contained_file_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_BinaryIntegrityIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string file_basename = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_file_basename()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
      case 2: {
        if (tag == 18) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
      case 3: {
        if (tag == 26) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_sec_error;
        break;
      }

      // optional int32 sec_error = 4;
      case 4: {
        if (tag == 32) {
         parse_sec_error:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &sec_error_)));
          set_has_sec_error();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_contained_file;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile contained_file = 5;
      case 5: {
        if (tag == 42) {
         parse_contained_file:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_contained_file()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_contained_file;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
  // optional string file_basename = 1;
  if (has_file_basename()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->file_basename(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->signature(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->image_headers(), output);
  }

  // optional int32 sec_error = 4;
  if (has_sec_error()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->sec_error(), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile contained_file = 5;
  for (int i = 0; i < this->contained_file_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->contained_file(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident)
}

int ClientIncidentReport_IncidentData_BinaryIntegrityIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string file_basename = 1;
    if (has_file_basename()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->file_basename());
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 2;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 3;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

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

  }
  // repeated .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident.ContainedFile contained_file = 5;
  total_size += 1 * this->contained_file_size();
  for (int i = 0; i < this->contained_file_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->contained_file(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_BinaryIntegrityIncident*>(&from));
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::MergeFrom(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  contained_file_.MergeFrom(from.contained_file_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_file_basename()) {
      set_file_basename(from.file_basename());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
    if (from.has_sec_error()) {
      set_sec_error(from.sec_error());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::CopyFrom(const ClientIncidentReport_IncidentData_BinaryIntegrityIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_BinaryIntegrityIncident::IsInitialized() const {

  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  if (!::google::protobuf::internal::AllAreInitialized(this->contained_file())) return false;
  return true;
}

void ClientIncidentReport_IncidentData_BinaryIntegrityIncident::Swap(ClientIncidentReport_IncidentData_BinaryIntegrityIncident* other) {
  if (other != this) {
    std::swap(file_basename_, other->file_basename_);
    std::swap(signature_, other->signature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(sec_error_, other->sec_error_);
    contained_file_.Swap(&other->contained_file_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_BinaryIntegrityIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kPathFieldNumber;
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kDigestFieldNumber;
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kVersionFieldNumber;
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kBlacklistInitializedFieldNumber;
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kSignatureFieldNumber;
const int ClientIncidentReport_IncidentData_BlacklistLoadIncident::kImageHeadersFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_BlacklistLoadIncident::ClientIncidentReport_IncidentData_BlacklistLoadIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  digest_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(
      ::safe_browsing::ClientDownloadRequest_Digests::internal_default_instance());
#else
  digest_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(&::safe_browsing::ClientDownloadRequest_Digests::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientIncidentReport_IncidentData_BlacklistLoadIncident::ClientIncidentReport_IncidentData_BlacklistLoadIncident(const ClientIncidentReport_IncidentData_BlacklistLoadIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  digest_ = NULL;
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  blacklist_initialized_ = false;
  signature_ = NULL;
  image_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_BlacklistLoadIncident::~ClientIncidentReport_IncidentData_BlacklistLoadIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::SharedDtor() {
  if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete path_;
  }
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete digest_;
    delete signature_;
    delete image_headers_;
  }
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_BlacklistLoadIncident& ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_BlacklistLoadIncident* ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_BlacklistLoadIncident* ClientIncidentReport_IncidentData_BlacklistLoadIncident::New() const {
  return new ClientIncidentReport_IncidentData_BlacklistLoadIncident;
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::Clear() {
  if (_has_bits_[0 / 32] & 63) {
    if (has_path()) {
      if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        path_->clear();
      }
    }
    if (has_digest()) {
      if (digest_ != NULL) digest_->::safe_browsing::ClientDownloadRequest_Digests::Clear();
    }
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
    blacklist_initialized_ = false;
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_BlacklistLoadIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string path = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_path()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_digest;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
      case 2: {
        if (tag == 18) {
         parse_digest:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_digest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_version;
        break;
      }

      // optional string version = 3;
      case 3: {
        if (tag == 26) {
         parse_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_blacklist_initialized;
        break;
      }

      // optional bool blacklist_initialized = 4;
      case 4: {
        if (tag == 32) {
         parse_blacklist_initialized:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &blacklist_initialized_)));
          set_has_blacklist_initialized();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
      case 5: {
        if (tag == 42) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
      case 6: {
        if (tag == 50) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
  // optional string path = 1;
  if (has_path()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->path(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
  if (has_digest()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->digest(), output);
  }

  // optional string version = 3;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->version(), output);
  }

  // optional bool blacklist_initialized = 4;
  if (has_blacklist_initialized()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->blacklist_initialized(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->signature(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      6, this->image_headers(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident)
}

int ClientIncidentReport_IncidentData_BlacklistLoadIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string path = 1;
    if (has_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->path());
    }

    // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
    if (has_digest()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->digest());
    }

    // optional string version = 3;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->version());
    }

    // optional bool blacklist_initialized = 4;
    if (has_blacklist_initialized()) {
      total_size += 1 + 1;
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 5;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 6;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_BlacklistLoadIncident*>(&from));
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::MergeFrom(const ClientIncidentReport_IncidentData_BlacklistLoadIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_path()) {
      set_path(from.path());
    }
    if (from.has_digest()) {
      mutable_digest()->::safe_browsing::ClientDownloadRequest_Digests::MergeFrom(from.digest());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_blacklist_initialized()) {
      set_blacklist_initialized(from.blacklist_initialized());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::CopyFrom(const ClientIncidentReport_IncidentData_BlacklistLoadIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_BlacklistLoadIncident::IsInitialized() const {

  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_IncidentData_BlacklistLoadIncident::Swap(ClientIncidentReport_IncidentData_BlacklistLoadIncident* other) {
  if (other != this) {
    std::swap(path_, other->path_);
    std::swap(digest_, other->digest_);
    std::swap(version_, other->version_);
    std::swap(blacklist_initialized_, other->blacklist_initialized_);
    std::swap(signature_, other->signature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_BlacklistLoadIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::kVariationsSeedSignatureFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::InitAsDefaultInstance() {
}

ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident(const ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  variations_seed_signature_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::~ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::SharedDtor() {
  if (variations_seed_signature_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete variations_seed_signature_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident& ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident* ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident* ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::New() const {
  return new ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident;
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::Clear() {
  if (has_variations_seed_signature()) {
    if (variations_seed_signature_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      variations_seed_signature_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string variations_seed_signature = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_variations_seed_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
  // optional string variations_seed_signature = 1;
  if (has_variations_seed_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->variations_seed_signature(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident)
}

int ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string variations_seed_signature = 1;
    if (has_variations_seed_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->variations_seed_signature());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident*>(&from));
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::MergeFrom(const ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_variations_seed_signature()) {
      set_variations_seed_signature(from.variations_seed_signature());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::CopyFrom(const ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::IsInitialized() const {

  return true;
}

void ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::Swap(ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident* other) {
  if (other != this) {
    std::swap(variations_seed_signature_, other->variations_seed_signature_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident";
}


// -------------------------------------------------------------------

bool ClientIncidentReport_IncidentData_ResourceRequestIncident_Type_IsValid(int value) {
  switch(value) {
    case 0:
    case 3:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_IncidentData_ResourceRequestIncident_Type ClientIncidentReport_IncidentData_ResourceRequestIncident::UNKNOWN;
const ClientIncidentReport_IncidentData_ResourceRequestIncident_Type ClientIncidentReport_IncidentData_ResourceRequestIncident::TYPE_PATTERN;
const ClientIncidentReport_IncidentData_ResourceRequestIncident_Type ClientIncidentReport_IncidentData_ResourceRequestIncident::Type_MIN;
const ClientIncidentReport_IncidentData_ResourceRequestIncident_Type ClientIncidentReport_IncidentData_ResourceRequestIncident::Type_MAX;
const int ClientIncidentReport_IncidentData_ResourceRequestIncident::Type_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_ResourceRequestIncident::kDigestFieldNumber;
const int ClientIncidentReport_IncidentData_ResourceRequestIncident::kOriginFieldNumber;
const int ClientIncidentReport_IncidentData_ResourceRequestIncident::kTypeFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_ResourceRequestIncident::ClientIncidentReport_IncidentData_ResourceRequestIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::InitAsDefaultInstance() {
}

ClientIncidentReport_IncidentData_ResourceRequestIncident::ClientIncidentReport_IncidentData_ResourceRequestIncident(const ClientIncidentReport_IncidentData_ResourceRequestIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  digest_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  origin_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_ResourceRequestIncident::~ClientIncidentReport_IncidentData_ResourceRequestIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::SharedDtor() {
  if (digest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete digest_;
  }
  if (origin_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete origin_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_ResourceRequestIncident& ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_ResourceRequestIncident* ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_ResourceRequestIncident* ClientIncidentReport_IncidentData_ResourceRequestIncident::New() const {
  return new ClientIncidentReport_IncidentData_ResourceRequestIncident;
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_digest()) {
      if (digest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        digest_->clear();
      }
    }
    if (has_origin()) {
      if (origin_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        origin_->clear();
      }
    }
    type_ = 0;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_ResourceRequestIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes digest = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_digest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_origin;
        break;
      }

      // optional string origin = 2;
      case 2: {
        if (tag == 18) {
         parse_origin:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_origin()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_type;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident.Type type = 3 [default = UNKNOWN];
      case 3: {
        if (tag == 24) {
         parse_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident_Type_IsValid(value)) {
            set_type(static_cast< ::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident_Type >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
  // optional bytes digest = 1;
  if (has_digest()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->digest(), output);
  }

  // optional string origin = 2;
  if (has_origin()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->origin(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident.Type type = 3 [default = UNKNOWN];
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      3, this->type(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident)
}

int ClientIncidentReport_IncidentData_ResourceRequestIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes digest = 1;
    if (has_digest()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->digest());
    }

    // optional string origin = 2;
    if (has_origin()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->origin());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident.Type type = 3 [default = UNKNOWN];
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_ResourceRequestIncident*>(&from));
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::MergeFrom(const ClientIncidentReport_IncidentData_ResourceRequestIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_digest()) {
      set_digest(from.digest());
    }
    if (from.has_origin()) {
      set_origin(from.origin());
    }
    if (from.has_type()) {
      set_type(from.type());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::CopyFrom(const ClientIncidentReport_IncidentData_ResourceRequestIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_ResourceRequestIncident::IsInitialized() const {

  return true;
}

void ClientIncidentReport_IncidentData_ResourceRequestIncident::Swap(ClientIncidentReport_IncidentData_ResourceRequestIncident* other) {
  if (other != this) {
    std::swap(digest_, other->digest_);
    std::swap(origin_, other->origin_);
    std::swap(type_, other->type_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_ResourceRequestIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::kPathFieldNumber;
const int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::kDigestFieldNumber;
const int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::kVersionFieldNumber;
const int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::kSignatureFieldNumber;
const int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::kImageHeadersFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData_SuspiciousModuleIncident::ClientIncidentReport_IncidentData_SuspiciousModuleIncident()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  digest_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(
      ::safe_browsing::ClientDownloadRequest_Digests::internal_default_instance());
#else
  digest_ = const_cast< ::safe_browsing::ClientDownloadRequest_Digests*>(&::safe_browsing::ClientDownloadRequest_Digests::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(
      ::safe_browsing::ClientDownloadRequest_SignatureInfo::internal_default_instance());
#else
  signature_ = const_cast< ::safe_browsing::ClientDownloadRequest_SignatureInfo*>(&::safe_browsing::ClientDownloadRequest_SignatureInfo::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientIncidentReport_IncidentData_SuspiciousModuleIncident::ClientIncidentReport_IncidentData_SuspiciousModuleIncident(const ClientIncidentReport_IncidentData_SuspiciousModuleIncident& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  digest_ = NULL;
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  signature_ = NULL;
  image_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData_SuspiciousModuleIncident::~ClientIncidentReport_IncidentData_SuspiciousModuleIncident() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
  SharedDtor();
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::SharedDtor() {
  if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete path_;
  }
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete digest_;
    delete signature_;
    delete image_headers_;
  }
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData_SuspiciousModuleIncident& ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData_SuspiciousModuleIncident* ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance_ = NULL;

ClientIncidentReport_IncidentData_SuspiciousModuleIncident* ClientIncidentReport_IncidentData_SuspiciousModuleIncident::New() const {
  return new ClientIncidentReport_IncidentData_SuspiciousModuleIncident;
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::Clear() {
  if (_has_bits_[0 / 32] & 31) {
    if (has_path()) {
      if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        path_->clear();
      }
    }
    if (has_digest()) {
      if (digest_ != NULL) digest_->::safe_browsing::ClientDownloadRequest_Digests::Clear();
    }
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
    if (has_signature()) {
      if (signature_ != NULL) signature_->::safe_browsing::ClientDownloadRequest_SignatureInfo::Clear();
    }
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData_SuspiciousModuleIncident::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string path = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_path()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_digest;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
      case 2: {
        if (tag == 18) {
         parse_digest:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_digest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_version;
        break;
      }

      // optional string version = 3;
      case 3: {
        if (tag == 26) {
         parse_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_signature;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 4;
      case 4: {
        if (tag == 34) {
         parse_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
      case 5: {
        if (tag == 42) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
  // optional string path = 1;
  if (has_path()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->path(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
  if (has_digest()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->digest(), output);
  }

  // optional string version = 3;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->version(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 4;
  if (has_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->signature(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->image_headers(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident)
}

int ClientIncidentReport_IncidentData_SuspiciousModuleIncident::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string path = 1;
    if (has_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->path());
    }

    // optional .safe_browsing.ClientDownloadRequest.Digests digest = 2;
    if (has_digest()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->digest());
    }

    // optional string version = 3;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->version());
    }

    // optional .safe_browsing.ClientDownloadRequest.SignatureInfo signature = 4;
    if (has_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->signature());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData_SuspiciousModuleIncident*>(&from));
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::MergeFrom(const ClientIncidentReport_IncidentData_SuspiciousModuleIncident& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_path()) {
      set_path(from.path());
    }
    if (from.has_digest()) {
      mutable_digest()->::safe_browsing::ClientDownloadRequest_Digests::MergeFrom(from.digest());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_signature()) {
      mutable_signature()->::safe_browsing::ClientDownloadRequest_SignatureInfo::MergeFrom(from.signature());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::CopyFrom(const ClientIncidentReport_IncidentData_SuspiciousModuleIncident& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData_SuspiciousModuleIncident::IsInitialized() const {

  if (has_signature()) {
    if (!this->signature().IsInitialized()) return false;
  }
  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_IncidentData_SuspiciousModuleIncident::Swap(ClientIncidentReport_IncidentData_SuspiciousModuleIncident* other) {
  if (other != this) {
    std::swap(path_, other->path_);
    std::swap(digest_, other->digest_);
    std::swap(version_, other->version_);
    std::swap(signature_, other->signature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData_SuspiciousModuleIncident::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_IncidentData::kIncidentTimeMsecFieldNumber;
const int ClientIncidentReport_IncidentData::kTrackedPreferenceFieldNumber;
const int ClientIncidentReport_IncidentData::kBinaryIntegrityFieldNumber;
const int ClientIncidentReport_IncidentData::kBlacklistLoadFieldNumber;
const int ClientIncidentReport_IncidentData::kVariationsSeedSignatureFieldNumber;
const int ClientIncidentReport_IncidentData::kResourceRequestFieldNumber;
const int ClientIncidentReport_IncidentData::kSuspiciousModuleFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_IncidentData::ClientIncidentReport_IncidentData()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.IncidentData)
}

void ClientIncidentReport_IncidentData::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  tracked_preference_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident::internal_default_instance());
#else
  tracked_preference_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  binary_integrity_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident::internal_default_instance());
#else
  binary_integrity_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  blacklist_load_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident::internal_default_instance());
#else
  blacklist_load_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  variations_seed_signature_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::internal_default_instance());
#else
  variations_seed_signature_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  resource_request_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident::internal_default_instance());
#else
  resource_request_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  suspicious_module_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident*>(
      ::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident::internal_default_instance());
#else
  suspicious_module_ = const_cast< ::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident*>(&::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident::default_instance());
#endif
}

ClientIncidentReport_IncidentData::ClientIncidentReport_IncidentData(const ClientIncidentReport_IncidentData& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.IncidentData)
}

void ClientIncidentReport_IncidentData::SharedCtor() {
  _cached_size_ = 0;
  incident_time_msec_ = GOOGLE_LONGLONG(0);
  tracked_preference_ = NULL;
  binary_integrity_ = NULL;
  blacklist_load_ = NULL;
  variations_seed_signature_ = NULL;
  resource_request_ = NULL;
  suspicious_module_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_IncidentData::~ClientIncidentReport_IncidentData() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.IncidentData)
  SharedDtor();
}

void ClientIncidentReport_IncidentData::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete tracked_preference_;
    delete binary_integrity_;
    delete blacklist_load_;
    delete variations_seed_signature_;
    delete resource_request_;
    delete suspicious_module_;
  }
}

void ClientIncidentReport_IncidentData::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_IncidentData& ClientIncidentReport_IncidentData::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_IncidentData* ClientIncidentReport_IncidentData::default_instance_ = NULL;

ClientIncidentReport_IncidentData* ClientIncidentReport_IncidentData::New() const {
  return new ClientIncidentReport_IncidentData;
}

void ClientIncidentReport_IncidentData::Clear() {
  if (_has_bits_[0 / 32] & 127) {
    incident_time_msec_ = GOOGLE_LONGLONG(0);
    if (has_tracked_preference()) {
      if (tracked_preference_ != NULL) tracked_preference_->::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident::Clear();
    }
    if (has_binary_integrity()) {
      if (binary_integrity_ != NULL) binary_integrity_->::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident::Clear();
    }
    if (has_blacklist_load()) {
      if (blacklist_load_ != NULL) blacklist_load_->::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident::Clear();
    }
    if (has_variations_seed_signature()) {
      if (variations_seed_signature_ != NULL) variations_seed_signature_->::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::Clear();
    }
    if (has_resource_request()) {
      if (resource_request_ != NULL) resource_request_->::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident::Clear();
    }
    if (has_suspicious_module()) {
      if (suspicious_module_ != NULL) suspicious_module_->::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_IncidentData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.IncidentData)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int64 incident_time_msec = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &incident_time_msec_)));
          set_has_incident_time_msec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_tracked_preference;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident tracked_preference = 2;
      case 2: {
        if (tag == 18) {
         parse_tracked_preference:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tracked_preference()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_binary_integrity;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident binary_integrity = 3;
      case 3: {
        if (tag == 26) {
         parse_binary_integrity:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_binary_integrity()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_blacklist_load;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident blacklist_load = 4;
      case 4: {
        if (tag == 34) {
         parse_blacklist_load:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_blacklist_load()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_variations_seed_signature;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident variations_seed_signature = 6;
      case 6: {
        if (tag == 50) {
         parse_variations_seed_signature:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_variations_seed_signature()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_resource_request;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident resource_request = 7;
      case 7: {
        if (tag == 58) {
         parse_resource_request:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_resource_request()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(66)) goto parse_suspicious_module;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident suspicious_module = 8;
      case 8: {
        if (tag == 66) {
         parse_suspicious_module:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_suspicious_module()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.IncidentData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.IncidentData)
  return false;
#undef DO_
}

void ClientIncidentReport_IncidentData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.IncidentData)
  // optional int64 incident_time_msec = 1;
  if (has_incident_time_msec()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->incident_time_msec(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident tracked_preference = 2;
  if (has_tracked_preference()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->tracked_preference(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident binary_integrity = 3;
  if (has_binary_integrity()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->binary_integrity(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident blacklist_load = 4;
  if (has_blacklist_load()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->blacklist_load(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident variations_seed_signature = 6;
  if (has_variations_seed_signature()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      6, this->variations_seed_signature(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident resource_request = 7;
  if (has_resource_request()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      7, this->resource_request(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident suspicious_module = 8;
  if (has_suspicious_module()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      8, this->suspicious_module(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.IncidentData)
}

int ClientIncidentReport_IncidentData::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional int64 incident_time_msec = 1;
    if (has_incident_time_msec()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->incident_time_msec());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.TrackedPreferenceIncident tracked_preference = 2;
    if (has_tracked_preference()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->tracked_preference());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.BinaryIntegrityIncident binary_integrity = 3;
    if (has_binary_integrity()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->binary_integrity());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.BlacklistLoadIncident blacklist_load = 4;
    if (has_blacklist_load()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->blacklist_load());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.VariationsSeedSignatureIncident variations_seed_signature = 6;
    if (has_variations_seed_signature()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->variations_seed_signature());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.ResourceRequestIncident resource_request = 7;
    if (has_resource_request()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->resource_request());
    }

    // optional .safe_browsing.ClientIncidentReport.IncidentData.SuspiciousModuleIncident suspicious_module = 8;
    if (has_suspicious_module()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->suspicious_module());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_IncidentData::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_IncidentData*>(&from));
}

void ClientIncidentReport_IncidentData::MergeFrom(const ClientIncidentReport_IncidentData& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_incident_time_msec()) {
      set_incident_time_msec(from.incident_time_msec());
    }
    if (from.has_tracked_preference()) {
      mutable_tracked_preference()->::safe_browsing::ClientIncidentReport_IncidentData_TrackedPreferenceIncident::MergeFrom(from.tracked_preference());
    }
    if (from.has_binary_integrity()) {
      mutable_binary_integrity()->::safe_browsing::ClientIncidentReport_IncidentData_BinaryIntegrityIncident::MergeFrom(from.binary_integrity());
    }
    if (from.has_blacklist_load()) {
      mutable_blacklist_load()->::safe_browsing::ClientIncidentReport_IncidentData_BlacklistLoadIncident::MergeFrom(from.blacklist_load());
    }
    if (from.has_variations_seed_signature()) {
      mutable_variations_seed_signature()->::safe_browsing::ClientIncidentReport_IncidentData_VariationsSeedSignatureIncident::MergeFrom(from.variations_seed_signature());
    }
    if (from.has_resource_request()) {
      mutable_resource_request()->::safe_browsing::ClientIncidentReport_IncidentData_ResourceRequestIncident::MergeFrom(from.resource_request());
    }
    if (from.has_suspicious_module()) {
      mutable_suspicious_module()->::safe_browsing::ClientIncidentReport_IncidentData_SuspiciousModuleIncident::MergeFrom(from.suspicious_module());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_IncidentData::CopyFrom(const ClientIncidentReport_IncidentData& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_IncidentData::IsInitialized() const {

  if (has_binary_integrity()) {
    if (!this->binary_integrity().IsInitialized()) return false;
  }
  if (has_blacklist_load()) {
    if (!this->blacklist_load().IsInitialized()) return false;
  }
  if (has_suspicious_module()) {
    if (!this->suspicious_module().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_IncidentData::Swap(ClientIncidentReport_IncidentData* other) {
  if (other != this) {
    std::swap(incident_time_msec_, other->incident_time_msec_);
    std::swap(tracked_preference_, other->tracked_preference_);
    std::swap(binary_integrity_, other->binary_integrity_);
    std::swap(blacklist_load_, other->blacklist_load_);
    std::swap(variations_seed_signature_, other->variations_seed_signature_);
    std::swap(resource_request_, other->resource_request_);
    std::swap(suspicious_module_, other->suspicious_module_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_IncidentData::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.IncidentData";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_DownloadDetails::kTokenFieldNumber;
const int ClientIncidentReport_DownloadDetails::kDownloadFieldNumber;
const int ClientIncidentReport_DownloadDetails::kDownloadTimeMsecFieldNumber;
const int ClientIncidentReport_DownloadDetails::kOpenTimeMsecFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_DownloadDetails::ClientIncidentReport_DownloadDetails()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.DownloadDetails)
}

void ClientIncidentReport_DownloadDetails::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  download_ = const_cast< ::safe_browsing::ClientDownloadRequest*>(
      ::safe_browsing::ClientDownloadRequest::internal_default_instance());
#else
  download_ = const_cast< ::safe_browsing::ClientDownloadRequest*>(&::safe_browsing::ClientDownloadRequest::default_instance());
#endif
}

ClientIncidentReport_DownloadDetails::ClientIncidentReport_DownloadDetails(const ClientIncidentReport_DownloadDetails& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.DownloadDetails)
}

void ClientIncidentReport_DownloadDetails::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  token_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  download_ = NULL;
  download_time_msec_ = GOOGLE_LONGLONG(0);
  open_time_msec_ = GOOGLE_LONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_DownloadDetails::~ClientIncidentReport_DownloadDetails() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.DownloadDetails)
  SharedDtor();
}

void ClientIncidentReport_DownloadDetails::SharedDtor() {
  if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete token_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete download_;
  }
}

void ClientIncidentReport_DownloadDetails::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_DownloadDetails& ClientIncidentReport_DownloadDetails::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_DownloadDetails* ClientIncidentReport_DownloadDetails::default_instance_ = NULL;

ClientIncidentReport_DownloadDetails* ClientIncidentReport_DownloadDetails::New() const {
  return new ClientIncidentReport_DownloadDetails;
}

void ClientIncidentReport_DownloadDetails::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientIncidentReport_DownloadDetails*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 15) {
    ZR_(download_time_msec_, open_time_msec_);
    if (has_token()) {
      if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        token_->clear();
      }
    }
    if (has_download()) {
      if (download_ != NULL) download_->::safe_browsing::ClientDownloadRequest::Clear();
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_DownloadDetails::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.DownloadDetails)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes token = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_token()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_download;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest download = 2;
      case 2: {
        if (tag == 18) {
         parse_download:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_download()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_download_time_msec;
        break;
      }

      // optional int64 download_time_msec = 3;
      case 3: {
        if (tag == 24) {
         parse_download_time_msec:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &download_time_msec_)));
          set_has_download_time_msec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_open_time_msec;
        break;
      }

      // optional int64 open_time_msec = 4;
      case 4: {
        if (tag == 32) {
         parse_open_time_msec:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &open_time_msec_)));
          set_has_open_time_msec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.DownloadDetails)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.DownloadDetails)
  return false;
#undef DO_
}

void ClientIncidentReport_DownloadDetails::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.DownloadDetails)
  // optional bytes token = 1;
  if (has_token()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->token(), output);
  }

  // optional .safe_browsing.ClientDownloadRequest download = 2;
  if (has_download()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->download(), output);
  }

  // optional int64 download_time_msec = 3;
  if (has_download_time_msec()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->download_time_msec(), output);
  }

  // optional int64 open_time_msec = 4;
  if (has_open_time_msec()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->open_time_msec(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.DownloadDetails)
}

int ClientIncidentReport_DownloadDetails::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes token = 1;
    if (has_token()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->token());
    }

    // optional .safe_browsing.ClientDownloadRequest download = 2;
    if (has_download()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->download());
    }

    // optional int64 download_time_msec = 3;
    if (has_download_time_msec()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->download_time_msec());
    }

    // optional int64 open_time_msec = 4;
    if (has_open_time_msec()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->open_time_msec());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_DownloadDetails::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_DownloadDetails*>(&from));
}

void ClientIncidentReport_DownloadDetails::MergeFrom(const ClientIncidentReport_DownloadDetails& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_token()) {
      set_token(from.token());
    }
    if (from.has_download()) {
      mutable_download()->::safe_browsing::ClientDownloadRequest::MergeFrom(from.download());
    }
    if (from.has_download_time_msec()) {
      set_download_time_msec(from.download_time_msec());
    }
    if (from.has_open_time_msec()) {
      set_open_time_msec(from.open_time_msec());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_DownloadDetails::CopyFrom(const ClientIncidentReport_DownloadDetails& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_DownloadDetails::IsInitialized() const {

  if (has_download()) {
    if (!this->download().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_DownloadDetails::Swap(ClientIncidentReport_DownloadDetails* other) {
  if (other != this) {
    std::swap(token_, other->token_);
    std::swap(download_, other->download_);
    std::swap(download_time_msec_, other->download_time_msec_);
    std::swap(open_time_msec_, other->open_time_msec_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_DownloadDetails::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.DownloadDetails";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_OS_RegistryValue::kNameFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS_RegistryValue::kTypeFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS_RegistryValue::kDataFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_OS_RegistryValue::ClientIncidentReport_EnvironmentData_OS_RegistryValue()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_OS_RegistryValue::ClientIncidentReport_EnvironmentData_OS_RegistryValue(const ClientIncidentReport_EnvironmentData_OS_RegistryValue& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 0u;
  data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_OS_RegistryValue::~ClientIncidentReport_EnvironmentData_OS_RegistryValue() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::SharedDtor() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete data_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_OS_RegistryValue& ClientIncidentReport_EnvironmentData_OS_RegistryValue::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_OS_RegistryValue* ClientIncidentReport_EnvironmentData_OS_RegistryValue::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_OS_RegistryValue* ClientIncidentReport_EnvironmentData_OS_RegistryValue::New() const {
  return new ClientIncidentReport_EnvironmentData_OS_RegistryValue;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_name()) {
      if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        name_->clear();
      }
    }
    type_ = 0u;
    if (has_data()) {
      if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        data_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_OS_RegistryValue::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_type;
        break;
      }

      // optional uint32 type = 2;
      case 2: {
        if (tag == 16) {
         parse_type:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &type_)));
          set_has_type();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_data;
        break;
      }

      // optional bytes data = 3;
      case 3: {
        if (tag == 26) {
         parse_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
  // optional string name = 1;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // optional uint32 type = 2;
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->type(), output);
  }

  // optional bytes data = 3;
  if (has_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->data(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue)
}

int ClientIncidentReport_EnvironmentData_OS_RegistryValue::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }

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

    // optional bytes data = 3;
    if (has_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->data());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_OS_RegistryValue*>(&from));
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::MergeFrom(const ClientIncidentReport_EnvironmentData_OS_RegistryValue& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_name()) {
      set_name(from.name());
    }
    if (from.has_type()) {
      set_type(from.type());
    }
    if (from.has_data()) {
      set_data(from.data());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::CopyFrom(const ClientIncidentReport_EnvironmentData_OS_RegistryValue& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_OS_RegistryValue::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryValue::Swap(ClientIncidentReport_EnvironmentData_OS_RegistryValue* other) {
  if (other != this) {
    std::swap(name_, other->name_);
    std::swap(type_, other->type_);
    std::swap(data_, other->data_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_OS_RegistryValue::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_OS_RegistryKey::kNameFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS_RegistryKey::kValueFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS_RegistryKey::kKeyFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_OS_RegistryKey::ClientIncidentReport_EnvironmentData_OS_RegistryKey()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_OS_RegistryKey::ClientIncidentReport_EnvironmentData_OS_RegistryKey(const ClientIncidentReport_EnvironmentData_OS_RegistryKey& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_OS_RegistryKey::~ClientIncidentReport_EnvironmentData_OS_RegistryKey() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::SharedDtor() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_OS_RegistryKey& ClientIncidentReport_EnvironmentData_OS_RegistryKey::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_OS_RegistryKey* ClientIncidentReport_EnvironmentData_OS_RegistryKey::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_OS_RegistryKey* ClientIncidentReport_EnvironmentData_OS_RegistryKey::New() const {
  return new ClientIncidentReport_EnvironmentData_OS_RegistryKey;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::Clear() {
  if (has_name()) {
    if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      name_->clear();
    }
  }
  value_.Clear();
  key_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_OS_RegistryKey::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_value;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue value = 2;
      case 2: {
        if (tag == 18) {
         parse_value:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_value()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_value;
        if (input->ExpectTag(26)) goto parse_key;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey key = 3;
      case 3: {
        if (tag == 26) {
         parse_key:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_key()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_key;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
  // optional string name = 1;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue value = 2;
  for (int i = 0; i < this->value_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->value(i), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey key = 3;
  for (int i = 0; i < this->key_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->key(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey)
}

int ClientIncidentReport_EnvironmentData_OS_RegistryKey::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }

  }
  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryValue value = 2;
  total_size += 1 * this->value_size();
  for (int i = 0; i < this->value_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->value(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey key = 3;
  total_size += 1 * this->key_size();
  for (int i = 0; i < this->key_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->key(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_OS_RegistryKey*>(&from));
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::MergeFrom(const ClientIncidentReport_EnvironmentData_OS_RegistryKey& from) {
  GOOGLE_CHECK_NE(&from, this);
  value_.MergeFrom(from.value_);
  key_.MergeFrom(from.key_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_name()) {
      set_name(from.name());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::CopyFrom(const ClientIncidentReport_EnvironmentData_OS_RegistryKey& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_OS_RegistryKey::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_OS_RegistryKey::Swap(ClientIncidentReport_EnvironmentData_OS_RegistryKey* other) {
  if (other != this) {
    std::swap(name_, other->name_);
    value_.Swap(&other->value_);
    key_.Swap(&other->key_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_OS_RegistryKey::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_OS::kOsNameFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS::kOsVersionFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS::kRegistryKeyFieldNumber;
const int ClientIncidentReport_EnvironmentData_OS::kIsEnrolledToDomainFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_OS::ClientIncidentReport_EnvironmentData_OS()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
}

void ClientIncidentReport_EnvironmentData_OS::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_OS::ClientIncidentReport_EnvironmentData_OS(const ClientIncidentReport_EnvironmentData_OS& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
}

void ClientIncidentReport_EnvironmentData_OS::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  os_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  os_version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  is_enrolled_to_domain_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_OS::~ClientIncidentReport_EnvironmentData_OS() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_OS::SharedDtor() {
  if (os_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete os_name_;
  }
  if (os_version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete os_version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_OS::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_OS& ClientIncidentReport_EnvironmentData_OS::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_OS* ClientIncidentReport_EnvironmentData_OS::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_OS* ClientIncidentReport_EnvironmentData_OS::New() const {
  return new ClientIncidentReport_EnvironmentData_OS;
}

void ClientIncidentReport_EnvironmentData_OS::Clear() {
  if (_has_bits_[0 / 32] & 11) {
    if (has_os_name()) {
      if (os_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        os_name_->clear();
      }
    }
    if (has_os_version()) {
      if (os_version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        os_version_->clear();
      }
    }
    is_enrolled_to_domain_ = false;
  }
  registry_key_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_OS::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string os_name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_os_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_os_version;
        break;
      }

      // optional string os_version = 2;
      case 2: {
        if (tag == 18) {
         parse_os_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_os_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_registry_key;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey registry_key = 3;
      case 3: {
        if (tag == 26) {
         parse_registry_key:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_registry_key()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_registry_key;
        if (input->ExpectTag(32)) goto parse_is_enrolled_to_domain;
        break;
      }

      // optional bool is_enrolled_to_domain = 4;
      case 4: {
        if (tag == 32) {
         parse_is_enrolled_to_domain:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_enrolled_to_domain_)));
          set_has_is_enrolled_to_domain();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_OS::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
  // optional string os_name = 1;
  if (has_os_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->os_name(), output);
  }

  // optional string os_version = 2;
  if (has_os_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->os_version(), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey registry_key = 3;
  for (int i = 0; i < this->registry_key_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->registry_key(i), output);
  }

  // optional bool is_enrolled_to_domain = 4;
  if (has_is_enrolled_to_domain()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->is_enrolled_to_domain(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.OS)
}

int ClientIncidentReport_EnvironmentData_OS::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string os_name = 1;
    if (has_os_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->os_name());
    }

    // optional string os_version = 2;
    if (has_os_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->os_version());
    }

    // optional bool is_enrolled_to_domain = 4;
    if (has_is_enrolled_to_domain()) {
      total_size += 1 + 1;
    }

  }
  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.OS.RegistryKey registry_key = 3;
  total_size += 1 * this->registry_key_size();
  for (int i = 0; i < this->registry_key_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->registry_key(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_OS::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_OS*>(&from));
}

void ClientIncidentReport_EnvironmentData_OS::MergeFrom(const ClientIncidentReport_EnvironmentData_OS& from) {
  GOOGLE_CHECK_NE(&from, this);
  registry_key_.MergeFrom(from.registry_key_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_os_name()) {
      set_os_name(from.os_name());
    }
    if (from.has_os_version()) {
      set_os_version(from.os_version());
    }
    if (from.has_is_enrolled_to_domain()) {
      set_is_enrolled_to_domain(from.is_enrolled_to_domain());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_OS::CopyFrom(const ClientIncidentReport_EnvironmentData_OS& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_OS::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_OS::Swap(ClientIncidentReport_EnvironmentData_OS* other) {
  if (other != this) {
    std::swap(os_name_, other->os_name_);
    std::swap(os_version_, other->os_version_);
    registry_key_.Swap(&other->registry_key_);
    std::swap(is_enrolled_to_domain_, other->is_enrolled_to_domain_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_OS::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.OS";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Machine::kCpuArchitectureFieldNumber;
const int ClientIncidentReport_EnvironmentData_Machine::kCpuVendorFieldNumber;
const int ClientIncidentReport_EnvironmentData_Machine::kCpuidFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Machine::ClientIncidentReport_EnvironmentData_Machine()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
}

void ClientIncidentReport_EnvironmentData_Machine::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Machine::ClientIncidentReport_EnvironmentData_Machine(const ClientIncidentReport_EnvironmentData_Machine& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
}

void ClientIncidentReport_EnvironmentData_Machine::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  cpu_architecture_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cpu_vendor_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cpuid_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Machine::~ClientIncidentReport_EnvironmentData_Machine() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Machine::SharedDtor() {
  if (cpu_architecture_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete cpu_architecture_;
  }
  if (cpu_vendor_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete cpu_vendor_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Machine::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Machine& ClientIncidentReport_EnvironmentData_Machine::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Machine* ClientIncidentReport_EnvironmentData_Machine::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Machine* ClientIncidentReport_EnvironmentData_Machine::New() const {
  return new ClientIncidentReport_EnvironmentData_Machine;
}

void ClientIncidentReport_EnvironmentData_Machine::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_cpu_architecture()) {
      if (cpu_architecture_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        cpu_architecture_->clear();
      }
    }
    if (has_cpu_vendor()) {
      if (cpu_vendor_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        cpu_vendor_->clear();
      }
    }
    cpuid_ = 0u;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Machine::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string cpu_architecture = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cpu_architecture()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_cpu_vendor;
        break;
      }

      // optional string cpu_vendor = 2;
      case 2: {
        if (tag == 18) {
         parse_cpu_vendor:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cpu_vendor()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_cpuid;
        break;
      }

      // optional uint32 cpuid = 3;
      case 3: {
        if (tag == 24) {
         parse_cpuid:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &cpuid_)));
          set_has_cpuid();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Machine::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
  // optional string cpu_architecture = 1;
  if (has_cpu_architecture()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->cpu_architecture(), output);
  }

  // optional string cpu_vendor = 2;
  if (has_cpu_vendor()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->cpu_vendor(), output);
  }

  // optional uint32 cpuid = 3;
  if (has_cpuid()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->cpuid(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Machine)
}

int ClientIncidentReport_EnvironmentData_Machine::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string cpu_architecture = 1;
    if (has_cpu_architecture()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->cpu_architecture());
    }

    // optional string cpu_vendor = 2;
    if (has_cpu_vendor()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->cpu_vendor());
    }

    // optional uint32 cpuid = 3;
    if (has_cpuid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->cpuid());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Machine::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Machine*>(&from));
}

void ClientIncidentReport_EnvironmentData_Machine::MergeFrom(const ClientIncidentReport_EnvironmentData_Machine& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_cpu_architecture()) {
      set_cpu_architecture(from.cpu_architecture());
    }
    if (from.has_cpu_vendor()) {
      set_cpu_vendor(from.cpu_vendor());
    }
    if (from.has_cpuid()) {
      set_cpuid(from.cpuid());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Machine::CopyFrom(const ClientIncidentReport_EnvironmentData_Machine& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Machine::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_Machine::Swap(ClientIncidentReport_EnvironmentData_Machine* other) {
  if (other != this) {
    std::swap(cpu_architecture_, other->cpu_architecture_);
    std::swap(cpu_vendor_, other->cpu_vendor_);
    std::swap(cpuid_, other->cpuid_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Machine::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Machine";
}


// -------------------------------------------------------------------

bool ClientIncidentReport_EnvironmentData_Process_Channel_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::CHANNEL_UNKNOWN;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::CHANNEL_CANARY;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::CHANNEL_DEV;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::CHANNEL_BETA;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::CHANNEL_STABLE;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::Channel_MIN;
const ClientIncidentReport_EnvironmentData_Process_Channel ClientIncidentReport_EnvironmentData_Process::Channel_MAX;
const int ClientIncidentReport_EnvironmentData_Process::Channel_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Process_Patch::kFunctionFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_Patch::kTargetDllFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process_Patch::ClientIncidentReport_EnvironmentData_Process_Patch()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
}

void ClientIncidentReport_EnvironmentData_Process_Patch::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Process_Patch::ClientIncidentReport_EnvironmentData_Process_Patch(const ClientIncidentReport_EnvironmentData_Process_Patch& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
}

void ClientIncidentReport_EnvironmentData_Process_Patch::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  function_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  target_dll_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process_Patch::~ClientIncidentReport_EnvironmentData_Process_Patch() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process_Patch::SharedDtor() {
  if (function_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete function_;
  }
  if (target_dll_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete target_dll_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Process_Patch::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process_Patch& ClientIncidentReport_EnvironmentData_Process_Patch::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process_Patch* ClientIncidentReport_EnvironmentData_Process_Patch::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process_Patch* ClientIncidentReport_EnvironmentData_Process_Patch::New() const {
  return new ClientIncidentReport_EnvironmentData_Process_Patch;
}

void ClientIncidentReport_EnvironmentData_Process_Patch::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_function()) {
      if (function_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        function_->clear();
      }
    }
    if (has_target_dll()) {
      if (target_dll_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        target_dll_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process_Patch::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string function = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_function()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_target_dll;
        break;
      }

      // optional string target_dll = 2;
      case 2: {
        if (tag == 18) {
         parse_target_dll:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_target_dll()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process_Patch::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
  // optional string function = 1;
  if (has_function()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->function(), output);
  }

  // optional string target_dll = 2;
  if (has_target_dll()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->target_dll(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch)
}

int ClientIncidentReport_EnvironmentData_Process_Patch::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string function = 1;
    if (has_function()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->function());
    }

    // optional string target_dll = 2;
    if (has_target_dll()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->target_dll());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process_Patch::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process_Patch*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process_Patch::MergeFrom(const ClientIncidentReport_EnvironmentData_Process_Patch& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_function()) {
      set_function(from.function());
    }
    if (from.has_target_dll()) {
      set_target_dll(from.target_dll());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process_Patch::CopyFrom(const ClientIncidentReport_EnvironmentData_Process_Patch& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process_Patch::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_Process_Patch::Swap(ClientIncidentReport_EnvironmentData_Process_Patch* other) {
  if (other != this) {
    std::swap(function_, other->function_);
    std::swap(target_dll_, other->target_dll_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process_Patch::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process_NetworkProvider::ClientIncidentReport_EnvironmentData_Process_NetworkProvider()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Process_NetworkProvider::ClientIncidentReport_EnvironmentData_Process_NetworkProvider(const ClientIncidentReport_EnvironmentData_Process_NetworkProvider& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::SharedCtor() {
  _cached_size_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process_NetworkProvider::~ClientIncidentReport_EnvironmentData_Process_NetworkProvider() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process_NetworkProvider& ClientIncidentReport_EnvironmentData_Process_NetworkProvider::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process_NetworkProvider* ClientIncidentReport_EnvironmentData_Process_NetworkProvider::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process_NetworkProvider* ClientIncidentReport_EnvironmentData_Process_NetworkProvider::New() const {
  return new ClientIncidentReport_EnvironmentData_Process_NetworkProvider;
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::Clear() {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process_NetworkProvider::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
  handle_unusual:
    if (tag == 0 ||
        ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
        ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
      goto success;
    }
    DO_(::google::protobuf::internal::WireFormatLite::SkipField(
        input, tag, &unknown_fields_stream));
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider)
}

int ClientIncidentReport_EnvironmentData_Process_NetworkProvider::ByteSize() const {
  int total_size = 0;

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process_NetworkProvider*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::MergeFrom(const ClientIncidentReport_EnvironmentData_Process_NetworkProvider& from) {
  GOOGLE_CHECK_NE(&from, this);
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::CopyFrom(const ClientIncidentReport_EnvironmentData_Process_NetworkProvider& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process_NetworkProvider::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_Process_NetworkProvider::Swap(ClientIncidentReport_EnvironmentData_Process_NetworkProvider* other) {
  if (other != this) {
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process_NetworkProvider::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider";
}


// -------------------------------------------------------------------

bool ClientIncidentReport_EnvironmentData_Process_Dll_Feature_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_EnvironmentData_Process_Dll_Feature ClientIncidentReport_EnvironmentData_Process_Dll::UNKNOWN;
const ClientIncidentReport_EnvironmentData_Process_Dll_Feature ClientIncidentReport_EnvironmentData_Process_Dll::LSP;
const ClientIncidentReport_EnvironmentData_Process_Dll_Feature ClientIncidentReport_EnvironmentData_Process_Dll::Feature_MIN;
const ClientIncidentReport_EnvironmentData_Process_Dll_Feature ClientIncidentReport_EnvironmentData_Process_Dll::Feature_MAX;
const int ClientIncidentReport_EnvironmentData_Process_Dll::Feature_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Process_Dll::kPathFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_Dll::kBaseAddressFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_Dll::kLengthFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_Dll::kFeatureFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_Dll::kImageHeadersFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process_Dll::ClientIncidentReport_EnvironmentData_Process_Dll()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
}

void ClientIncidentReport_EnvironmentData_Process_Dll::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(
      ::safe_browsing::ClientDownloadRequest_ImageHeaders::internal_default_instance());
#else
  image_headers_ = const_cast< ::safe_browsing::ClientDownloadRequest_ImageHeaders*>(&::safe_browsing::ClientDownloadRequest_ImageHeaders::default_instance());
#endif
}

ClientIncidentReport_EnvironmentData_Process_Dll::ClientIncidentReport_EnvironmentData_Process_Dll(const ClientIncidentReport_EnvironmentData_Process_Dll& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
}

void ClientIncidentReport_EnvironmentData_Process_Dll::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  base_address_ = GOOGLE_ULONGLONG(0);
  length_ = 0u;
  image_headers_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process_Dll::~ClientIncidentReport_EnvironmentData_Process_Dll() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process_Dll::SharedDtor() {
  if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete path_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete image_headers_;
  }
}

void ClientIncidentReport_EnvironmentData_Process_Dll::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process_Dll& ClientIncidentReport_EnvironmentData_Process_Dll::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process_Dll* ClientIncidentReport_EnvironmentData_Process_Dll::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process_Dll* ClientIncidentReport_EnvironmentData_Process_Dll::New() const {
  return new ClientIncidentReport_EnvironmentData_Process_Dll;
}

void ClientIncidentReport_EnvironmentData_Process_Dll::Clear() {
  if (_has_bits_[0 / 32] & 23) {
    if (has_path()) {
      if (path_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        path_->clear();
      }
    }
    base_address_ = GOOGLE_ULONGLONG(0);
    length_ = 0u;
    if (has_image_headers()) {
      if (image_headers_ != NULL) image_headers_->::safe_browsing::ClientDownloadRequest_ImageHeaders::Clear();
    }
  }
  feature_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process_Dll::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string path = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_path()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_base_address;
        break;
      }

      // optional uint64 base_address = 2;
      case 2: {
        if (tag == 16) {
         parse_base_address:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &base_address_)));
          set_has_base_address();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_length;
        break;
      }

      // optional uint32 length = 3;
      case 3: {
        if (tag == 24) {
         parse_length:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &length_)));
          set_has_length();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_feature;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll.Feature feature = 4;
      case 4: {
        if (tag == 32) {
         parse_feature:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_EnvironmentData_Process_Dll_Feature_IsValid(value)) {
            add_feature(static_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Process_Dll_Feature >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else if (tag == 34) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedEnumNoInline(
                 input,
                 &::safe_browsing::ClientIncidentReport_EnvironmentData_Process_Dll_Feature_IsValid,
                 this->mutable_feature())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_feature;
        if (input->ExpectTag(42)) goto parse_image_headers;
        break;
      }

      // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
      case 5: {
        if (tag == 42) {
         parse_image_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_image_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process_Dll::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
  // optional string path = 1;
  if (has_path()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->path(), output);
  }

  // optional uint64 base_address = 2;
  if (has_base_address()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->base_address(), output);
  }

  // optional uint32 length = 3;
  if (has_length()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->length(), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll.Feature feature = 4;
  for (int i = 0; i < this->feature_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      4, this->feature(i), output);
  }

  // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
  if (has_image_headers()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      5, this->image_headers(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll)
}

int ClientIncidentReport_EnvironmentData_Process_Dll::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string path = 1;
    if (has_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->path());
    }

    // optional uint64 base_address = 2;
    if (has_base_address()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->base_address());
    }

    // optional uint32 length = 3;
    if (has_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->length());
    }

    // optional .safe_browsing.ClientDownloadRequest.ImageHeaders image_headers = 5;
    if (has_image_headers()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->image_headers());
    }

  }
  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll.Feature feature = 4;
  {
    int data_size = 0;
    for (int i = 0; i < this->feature_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::EnumSize(
        this->feature(i));
    }
    total_size += 1 * this->feature_size() + data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process_Dll::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process_Dll*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process_Dll::MergeFrom(const ClientIncidentReport_EnvironmentData_Process_Dll& from) {
  GOOGLE_CHECK_NE(&from, this);
  feature_.MergeFrom(from.feature_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_path()) {
      set_path(from.path());
    }
    if (from.has_base_address()) {
      set_base_address(from.base_address());
    }
    if (from.has_length()) {
      set_length(from.length());
    }
    if (from.has_image_headers()) {
      mutable_image_headers()->::safe_browsing::ClientDownloadRequest_ImageHeaders::MergeFrom(from.image_headers());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process_Dll::CopyFrom(const ClientIncidentReport_EnvironmentData_Process_Dll& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process_Dll::IsInitialized() const {

  if (has_image_headers()) {
    if (!this->image_headers().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_EnvironmentData_Process_Dll::Swap(ClientIncidentReport_EnvironmentData_Process_Dll* other) {
  if (other != this) {
    std::swap(path_, other->path_);
    std::swap(base_address_, other->base_address_);
    std::swap(length_, other->length_);
    feature_.Swap(&other->feature_);
    std::swap(image_headers_, other->image_headers_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process_Dll::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll";
}


// -------------------------------------------------------------------

bool ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::UNKNOWN;
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::MODULE_STATE_UNKNOWN;
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::MODULE_STATE_UNMODIFIED;
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::MODULE_STATE_MODIFIED;
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::ModifiedState_MIN;
const ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState ClientIncidentReport_EnvironmentData_Process_ModuleState::ModifiedState_MAX;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState::ModifiedState_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::kFileOffsetFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::kByteCountFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::kModifiedBytesFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::kExportNameFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification(const ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  file_offset_ = 0u;
  byte_count_ = 0;
  modified_bytes_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  export_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::~ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::SharedDtor() {
  if (modified_bytes_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete modified_bytes_;
  }
  if (export_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete export_name_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification& ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification* ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification* ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::New() const {
  return new ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 15) {
    ZR_(file_offset_, byte_count_);
    if (has_modified_bytes()) {
      if (modified_bytes_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        modified_bytes_->clear();
      }
    }
    if (has_export_name()) {
      if (export_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        export_name_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint32 file_offset = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &file_offset_)));
          set_has_file_offset();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_byte_count;
        break;
      }

      // optional int32 byte_count = 2;
      case 2: {
        if (tag == 16) {
         parse_byte_count:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &byte_count_)));
          set_has_byte_count();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_modified_bytes;
        break;
      }

      // optional bytes modified_bytes = 3;
      case 3: {
        if (tag == 26) {
         parse_modified_bytes:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_modified_bytes()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_export_name;
        break;
      }

      // optional string export_name = 4;
      case 4: {
        if (tag == 34) {
         parse_export_name:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_export_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
  // optional uint32 file_offset = 1;
  if (has_file_offset()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->file_offset(), output);
  }

  // optional int32 byte_count = 2;
  if (has_byte_count()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->byte_count(), output);
  }

  // optional bytes modified_bytes = 3;
  if (has_modified_bytes()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->modified_bytes(), output);
  }

  // optional string export_name = 4;
  if (has_export_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->export_name(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification)
}

int ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint32 file_offset = 1;
    if (has_file_offset()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->file_offset());
    }

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

    // optional bytes modified_bytes = 3;
    if (has_modified_bytes()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->modified_bytes());
    }

    // optional string export_name = 4;
    if (has_export_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->export_name());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::MergeFrom(const ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_file_offset()) {
      set_file_offset(from.file_offset());
    }
    if (from.has_byte_count()) {
      set_byte_count(from.byte_count());
    }
    if (from.has_modified_bytes()) {
      set_modified_bytes(from.modified_bytes());
    }
    if (from.has_export_name()) {
      set_export_name(from.export_name());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::CopyFrom(const ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::Swap(ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification* other) {
  if (other != this) {
    std::swap(file_offset_, other->file_offset_);
    std::swap(byte_count_, other->byte_count_);
    std::swap(modified_bytes_, other->modified_bytes_);
    std::swap(export_name_, other->export_name_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process_ModuleState_Modification::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Process_ModuleState::kNameFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState::kModifiedStateFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState::kOBSOLETEModifiedExportFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process_ModuleState::kModificationFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process_ModuleState::ClientIncidentReport_EnvironmentData_Process_ModuleState()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Process_ModuleState::ClientIncidentReport_EnvironmentData_Process_ModuleState(const ClientIncidentReport_EnvironmentData_Process_ModuleState& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  modified_state_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process_ModuleState::~ClientIncidentReport_EnvironmentData_Process_ModuleState() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::SharedDtor() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process_ModuleState& ClientIncidentReport_EnvironmentData_Process_ModuleState::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process_ModuleState* ClientIncidentReport_EnvironmentData_Process_ModuleState::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process_ModuleState* ClientIncidentReport_EnvironmentData_Process_ModuleState::New() const {
  return new ClientIncidentReport_EnvironmentData_Process_ModuleState;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_name()) {
      if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        name_->clear();
      }
    }
    modified_state_ = 0;
  }
  obsolete_modified_export_.Clear();
  modification_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process_ModuleState::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_modified_state;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.ModifiedState modified_state = 2;
      case 2: {
        if (tag == 16) {
         parse_modified_state:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState_IsValid(value)) {
            set_modified_state(static_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Process_ModuleState_ModifiedState >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_OBSOLETE_modified_export;
        break;
      }

      // repeated string OBSOLETE_modified_export = 3;
      case 3: {
        if (tag == 26) {
         parse_OBSOLETE_modified_export:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_obsolete_modified_export()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_OBSOLETE_modified_export;
        if (input->ExpectTag(34)) goto parse_modification;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification modification = 4;
      case 4: {
        if (tag == 34) {
         parse_modification:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_modification()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_modification;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
  // optional string name = 1;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.ModifiedState modified_state = 2;
  if (has_modified_state()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->modified_state(), output);
  }

  // repeated string OBSOLETE_modified_export = 3;
  for (int i = 0; i < this->obsolete_modified_export_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->obsolete_modified_export(i), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification modification = 4;
  for (int i = 0; i < this->modification_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->modification(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState)
}

int ClientIncidentReport_EnvironmentData_Process_ModuleState::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }

    // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.ModifiedState modified_state = 2;
    if (has_modified_state()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->modified_state());
    }

  }
  // repeated string OBSOLETE_modified_export = 3;
  total_size += 1 * this->obsolete_modified_export_size();
  for (int i = 0; i < this->obsolete_modified_export_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->obsolete_modified_export(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState.Modification modification = 4;
  total_size += 1 * this->modification_size();
  for (int i = 0; i < this->modification_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->modification(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process_ModuleState*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::MergeFrom(const ClientIncidentReport_EnvironmentData_Process_ModuleState& from) {
  GOOGLE_CHECK_NE(&from, this);
  obsolete_modified_export_.MergeFrom(from.obsolete_modified_export_);
  modification_.MergeFrom(from.modification_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_name()) {
      set_name(from.name());
    }
    if (from.has_modified_state()) {
      set_modified_state(from.modified_state());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::CopyFrom(const ClientIncidentReport_EnvironmentData_Process_ModuleState& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process_ModuleState::IsInitialized() const {

  return true;
}

void ClientIncidentReport_EnvironmentData_Process_ModuleState::Swap(ClientIncidentReport_EnvironmentData_Process_ModuleState* other) {
  if (other != this) {
    std::swap(name_, other->name_);
    std::swap(modified_state_, other->modified_state_);
    obsolete_modified_export_.Swap(&other->obsolete_modified_export_);
    modification_.Swap(&other->modification_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process_ModuleState::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData_Process::kVersionFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kOBSOLETEDllsFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kPatchesFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kNetworkProvidersFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kChromeUpdateChannelFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kUptimeMsecFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kMetricsConsentFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kExtendedConsentFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kDllFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kBlacklistedDllFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kModuleStateFieldNumber;
const int ClientIncidentReport_EnvironmentData_Process::kFieldTrialParticipantFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData_Process::ClientIncidentReport_EnvironmentData_Process()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
}

void ClientIncidentReport_EnvironmentData_Process::InitAsDefaultInstance() {
}

ClientIncidentReport_EnvironmentData_Process::ClientIncidentReport_EnvironmentData_Process(const ClientIncidentReport_EnvironmentData_Process& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
}

void ClientIncidentReport_EnvironmentData_Process::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  chrome_update_channel_ = 0;
  uptime_msec_ = GOOGLE_LONGLONG(0);
  metrics_consent_ = false;
  extended_consent_ = false;
  field_trial_participant_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData_Process::~ClientIncidentReport_EnvironmentData_Process() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData_Process::SharedDtor() {
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_EnvironmentData_Process::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData_Process& ClientIncidentReport_EnvironmentData_Process::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData_Process* ClientIncidentReport_EnvironmentData_Process::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData_Process* ClientIncidentReport_EnvironmentData_Process::New() const {
  return new ClientIncidentReport_EnvironmentData_Process;
}

void ClientIncidentReport_EnvironmentData_Process::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientIncidentReport_EnvironmentData_Process*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 241) {
    ZR_(uptime_msec_, extended_consent_);
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
  }
  field_trial_participant_ = false;

#undef OFFSET_OF_FIELD_
#undef ZR_

  obsolete_dlls_.Clear();
  patches_.Clear();
  network_providers_.Clear();
  dll_.Clear();
  blacklisted_dll_.Clear();
  module_state_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData_Process::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string version = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_OBSOLETE_dlls;
        break;
      }

      // repeated string OBSOLETE_dlls = 2;
      case 2: {
        if (tag == 18) {
         parse_OBSOLETE_dlls:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_obsolete_dlls()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_OBSOLETE_dlls;
        if (input->ExpectTag(26)) goto parse_patches;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch patches = 3;
      case 3: {
        if (tag == 26) {
         parse_patches:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_patches()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_patches;
        if (input->ExpectTag(34)) goto parse_network_providers;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider network_providers = 4;
      case 4: {
        if (tag == 34) {
         parse_network_providers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_network_providers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_network_providers;
        if (input->ExpectTag(40)) goto parse_chrome_update_channel;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Channel chrome_update_channel = 5;
      case 5: {
        if (tag == 40) {
         parse_chrome_update_channel:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_EnvironmentData_Process_Channel_IsValid(value)) {
            set_chrome_update_channel(static_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Process_Channel >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_uptime_msec;
        break;
      }

      // optional int64 uptime_msec = 6;
      case 6: {
        if (tag == 48) {
         parse_uptime_msec:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &uptime_msec_)));
          set_has_uptime_msec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(56)) goto parse_metrics_consent;
        break;
      }

      // optional bool metrics_consent = 7;
      case 7: {
        if (tag == 56) {
         parse_metrics_consent:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &metrics_consent_)));
          set_has_metrics_consent();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(64)) goto parse_extended_consent;
        break;
      }

      // optional bool extended_consent = 8;
      case 8: {
        if (tag == 64) {
         parse_extended_consent:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &extended_consent_)));
          set_has_extended_consent();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(74)) goto parse_dll;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll dll = 9;
      case 9: {
        if (tag == 74) {
         parse_dll:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_dll()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(74)) goto parse_dll;
        if (input->ExpectTag(82)) goto parse_blacklisted_dll;
        break;
      }

      // repeated string blacklisted_dll = 10;
      case 10: {
        if (tag == 82) {
         parse_blacklisted_dll:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_blacklisted_dll()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(82)) goto parse_blacklisted_dll;
        if (input->ExpectTag(90)) goto parse_module_state;
        break;
      }

      // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState module_state = 11;
      case 11: {
        if (tag == 90) {
         parse_module_state:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_module_state()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(90)) goto parse_module_state;
        if (input->ExpectTag(96)) goto parse_field_trial_participant;
        break;
      }

      // optional bool field_trial_participant = 12;
      case 12: {
        if (tag == 96) {
         parse_field_trial_participant:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &field_trial_participant_)));
          set_has_field_trial_participant();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData_Process::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
  // optional string version = 1;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->version(), output);
  }

  // repeated string OBSOLETE_dlls = 2;
  for (int i = 0; i < this->obsolete_dlls_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      2, this->obsolete_dlls(i), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch patches = 3;
  for (int i = 0; i < this->patches_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->patches(i), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider network_providers = 4;
  for (int i = 0; i < this->network_providers_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->network_providers(i), output);
  }

  // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Channel chrome_update_channel = 5;
  if (has_chrome_update_channel()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->chrome_update_channel(), output);
  }

  // optional int64 uptime_msec = 6;
  if (has_uptime_msec()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(6, this->uptime_msec(), output);
  }

  // optional bool metrics_consent = 7;
  if (has_metrics_consent()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(7, this->metrics_consent(), output);
  }

  // optional bool extended_consent = 8;
  if (has_extended_consent()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->extended_consent(), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll dll = 9;
  for (int i = 0; i < this->dll_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      9, this->dll(i), output);
  }

  // repeated string blacklisted_dll = 10;
  for (int i = 0; i < this->blacklisted_dll_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      10, this->blacklisted_dll(i), output);
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState module_state = 11;
  for (int i = 0; i < this->module_state_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      11, this->module_state(i), output);
  }

  // optional bool field_trial_participant = 12;
  if (has_field_trial_participant()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(12, this->field_trial_participant(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData.Process)
}

int ClientIncidentReport_EnvironmentData_Process::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string version = 1;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->version());
    }

    // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Channel chrome_update_channel = 5;
    if (has_chrome_update_channel()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->chrome_update_channel());
    }

    // optional int64 uptime_msec = 6;
    if (has_uptime_msec()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->uptime_msec());
    }

    // optional bool metrics_consent = 7;
    if (has_metrics_consent()) {
      total_size += 1 + 1;
    }

    // optional bool extended_consent = 8;
    if (has_extended_consent()) {
      total_size += 1 + 1;
    }

  }
  if (_has_bits_[11 / 32] & (0xffu << (11 % 32))) {
    // optional bool field_trial_participant = 12;
    if (has_field_trial_participant()) {
      total_size += 1 + 1;
    }

  }
  // repeated string OBSOLETE_dlls = 2;
  total_size += 1 * this->obsolete_dlls_size();
  for (int i = 0; i < this->obsolete_dlls_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->obsolete_dlls(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Patch patches = 3;
  total_size += 1 * this->patches_size();
  for (int i = 0; i < this->patches_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->patches(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.NetworkProvider network_providers = 4;
  total_size += 1 * this->network_providers_size();
  for (int i = 0; i < this->network_providers_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->network_providers(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.Dll dll = 9;
  total_size += 1 * this->dll_size();
  for (int i = 0; i < this->dll_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->dll(i));
  }

  // repeated string blacklisted_dll = 10;
  total_size += 1 * this->blacklisted_dll_size();
  for (int i = 0; i < this->blacklisted_dll_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->blacklisted_dll(i));
  }

  // repeated .safe_browsing.ClientIncidentReport.EnvironmentData.Process.ModuleState module_state = 11;
  total_size += 1 * this->module_state_size();
  for (int i = 0; i < this->module_state_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->module_state(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData_Process::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData_Process*>(&from));
}

void ClientIncidentReport_EnvironmentData_Process::MergeFrom(const ClientIncidentReport_EnvironmentData_Process& from) {
  GOOGLE_CHECK_NE(&from, this);
  obsolete_dlls_.MergeFrom(from.obsolete_dlls_);
  patches_.MergeFrom(from.patches_);
  network_providers_.MergeFrom(from.network_providers_);
  dll_.MergeFrom(from.dll_);
  blacklisted_dll_.MergeFrom(from.blacklisted_dll_);
  module_state_.MergeFrom(from.module_state_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_chrome_update_channel()) {
      set_chrome_update_channel(from.chrome_update_channel());
    }
    if (from.has_uptime_msec()) {
      set_uptime_msec(from.uptime_msec());
    }
    if (from.has_metrics_consent()) {
      set_metrics_consent(from.metrics_consent());
    }
    if (from.has_extended_consent()) {
      set_extended_consent(from.extended_consent());
    }
  }
  if (from._has_bits_[11 / 32] & (0xffu << (11 % 32))) {
    if (from.has_field_trial_participant()) {
      set_field_trial_participant(from.field_trial_participant());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData_Process::CopyFrom(const ClientIncidentReport_EnvironmentData_Process& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData_Process::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->dll())) return false;
  return true;
}

void ClientIncidentReport_EnvironmentData_Process::Swap(ClientIncidentReport_EnvironmentData_Process* other) {
  if (other != this) {
    std::swap(version_, other->version_);
    obsolete_dlls_.Swap(&other->obsolete_dlls_);
    patches_.Swap(&other->patches_);
    network_providers_.Swap(&other->network_providers_);
    std::swap(chrome_update_channel_, other->chrome_update_channel_);
    std::swap(uptime_msec_, other->uptime_msec_);
    std::swap(metrics_consent_, other->metrics_consent_);
    std::swap(extended_consent_, other->extended_consent_);
    dll_.Swap(&other->dll_);
    blacklisted_dll_.Swap(&other->blacklisted_dll_);
    module_state_.Swap(&other->module_state_);
    std::swap(field_trial_participant_, other->field_trial_participant_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData_Process::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData.Process";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_EnvironmentData::kOsFieldNumber;
const int ClientIncidentReport_EnvironmentData::kMachineFieldNumber;
const int ClientIncidentReport_EnvironmentData::kProcessFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_EnvironmentData::ClientIncidentReport_EnvironmentData()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.EnvironmentData)
}

void ClientIncidentReport_EnvironmentData::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  os_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_OS*>(
      ::safe_browsing::ClientIncidentReport_EnvironmentData_OS::internal_default_instance());
#else
  os_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_OS*>(&::safe_browsing::ClientIncidentReport_EnvironmentData_OS::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  machine_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Machine*>(
      ::safe_browsing::ClientIncidentReport_EnvironmentData_Machine::internal_default_instance());
#else
  machine_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Machine*>(&::safe_browsing::ClientIncidentReport_EnvironmentData_Machine::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  process_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Process*>(
      ::safe_browsing::ClientIncidentReport_EnvironmentData_Process::internal_default_instance());
#else
  process_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData_Process*>(&::safe_browsing::ClientIncidentReport_EnvironmentData_Process::default_instance());
#endif
}

ClientIncidentReport_EnvironmentData::ClientIncidentReport_EnvironmentData(const ClientIncidentReport_EnvironmentData& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.EnvironmentData)
}

void ClientIncidentReport_EnvironmentData::SharedCtor() {
  _cached_size_ = 0;
  os_ = NULL;
  machine_ = NULL;
  process_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_EnvironmentData::~ClientIncidentReport_EnvironmentData() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.EnvironmentData)
  SharedDtor();
}

void ClientIncidentReport_EnvironmentData::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete os_;
    delete machine_;
    delete process_;
  }
}

void ClientIncidentReport_EnvironmentData::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_EnvironmentData& ClientIncidentReport_EnvironmentData::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_EnvironmentData* ClientIncidentReport_EnvironmentData::default_instance_ = NULL;

ClientIncidentReport_EnvironmentData* ClientIncidentReport_EnvironmentData::New() const {
  return new ClientIncidentReport_EnvironmentData;
}

void ClientIncidentReport_EnvironmentData::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_os()) {
      if (os_ != NULL) os_->::safe_browsing::ClientIncidentReport_EnvironmentData_OS::Clear();
    }
    if (has_machine()) {
      if (machine_ != NULL) machine_->::safe_browsing::ClientIncidentReport_EnvironmentData_Machine::Clear();
    }
    if (has_process()) {
      if (process_ != NULL) process_->::safe_browsing::ClientIncidentReport_EnvironmentData_Process::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_EnvironmentData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.EnvironmentData)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientIncidentReport.EnvironmentData.OS os = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_os()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_machine;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Machine machine = 2;
      case 2: {
        if (tag == 18) {
         parse_machine:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_machine()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_process;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process process = 3;
      case 3: {
        if (tag == 26) {
         parse_process:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_process()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.EnvironmentData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.EnvironmentData)
  return false;
#undef DO_
}

void ClientIncidentReport_EnvironmentData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.EnvironmentData)
  // optional .safe_browsing.ClientIncidentReport.EnvironmentData.OS os = 1;
  if (has_os()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->os(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Machine machine = 2;
  if (has_machine()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->machine(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process process = 3;
  if (has_process()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->process(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.EnvironmentData)
}

int ClientIncidentReport_EnvironmentData::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientIncidentReport.EnvironmentData.OS os = 1;
    if (has_os()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->os());
    }

    // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Machine machine = 2;
    if (has_machine()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->machine());
    }

    // optional .safe_browsing.ClientIncidentReport.EnvironmentData.Process process = 3;
    if (has_process()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->process());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_EnvironmentData::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_EnvironmentData*>(&from));
}

void ClientIncidentReport_EnvironmentData::MergeFrom(const ClientIncidentReport_EnvironmentData& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_os()) {
      mutable_os()->::safe_browsing::ClientIncidentReport_EnvironmentData_OS::MergeFrom(from.os());
    }
    if (from.has_machine()) {
      mutable_machine()->::safe_browsing::ClientIncidentReport_EnvironmentData_Machine::MergeFrom(from.machine());
    }
    if (from.has_process()) {
      mutable_process()->::safe_browsing::ClientIncidentReport_EnvironmentData_Process::MergeFrom(from.process());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_EnvironmentData::CopyFrom(const ClientIncidentReport_EnvironmentData& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_EnvironmentData::IsInitialized() const {

  if (has_process()) {
    if (!this->process().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport_EnvironmentData::Swap(ClientIncidentReport_EnvironmentData* other) {
  if (other != this) {
    std::swap(os_, other->os_);
    std::swap(machine_, other->machine_);
    std::swap(process_, other->process_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_EnvironmentData::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.EnvironmentData";
}


// -------------------------------------------------------------------

bool ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_UNKNOWN;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_ENABLED;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_DISABLED;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_BLACKLISTED;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_BLOCKED;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::STATE_TERMINATED;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::ExtensionState_MIN;
const ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState ClientIncidentReport_ExtensionData_ExtensionInfo::ExtensionState_MAX;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::ExtensionState_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kIdFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kVersionFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kNameFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kDescriptionFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kStateFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kTypeFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kUpdateUrlFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kHasSignatureValidationFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kSignatureIsValidFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kInstalledByCustodianFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kInstalledByDefaultFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kInstalledByOemFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kFromBookmarkFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kFromWebstoreFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kConvertedFromUserScriptFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kMayBeUntrustedFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kInstallTimeMsecFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kManifestLocationTypeFieldNumber;
const int ClientIncidentReport_ExtensionData_ExtensionInfo::kManifestFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_ExtensionData_ExtensionInfo::ClientIncidentReport_ExtensionData_ExtensionInfo()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::InitAsDefaultInstance() {
}

ClientIncidentReport_ExtensionData_ExtensionInfo::ClientIncidentReport_ExtensionData_ExtensionInfo(const ClientIncidentReport_ExtensionData_ExtensionInfo& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  description_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  state_ = 0;
  type_ = 0;
  update_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  has_signature_validation_ = false;
  signature_is_valid_ = false;
  installed_by_custodian_ = false;
  installed_by_default_ = false;
  installed_by_oem_ = false;
  from_bookmark_ = false;
  from_webstore_ = false;
  converted_from_user_script_ = false;
  may_be_untrusted_ = false;
  install_time_msec_ = GOOGLE_LONGLONG(0);
  manifest_location_type_ = 0;
  manifest_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_ExtensionData_ExtensionInfo::~ClientIncidentReport_ExtensionData_ExtensionInfo() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
  SharedDtor();
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::SharedDtor() {
  if (id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete id_;
  }
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete description_;
  }
  if (update_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete update_url_;
  }
  if (manifest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete manifest_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_ExtensionData_ExtensionInfo& ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_ExtensionData_ExtensionInfo* ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance_ = NULL;

ClientIncidentReport_ExtensionData_ExtensionInfo* ClientIncidentReport_ExtensionData_ExtensionInfo::New() const {
  return new ClientIncidentReport_ExtensionData_ExtensionInfo;
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientIncidentReport_ExtensionData_ExtensionInfo*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 255) {
    ZR_(state_, type_);
    if (has_id()) {
      if (id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        id_->clear();
      }
    }
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
    if (has_name()) {
      if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        name_->clear();
      }
    }
    if (has_description()) {
      if (description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        description_->clear();
      }
    }
    if (has_update_url()) {
      if (update_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        update_url_->clear();
      }
    }
    has_signature_validation_ = false;
  }
  if (_has_bits_[8 / 32] & 65280) {
    ZR_(signature_is_valid_, converted_from_user_script_);
    may_be_untrusted_ = false;
  }
  if (_has_bits_[16 / 32] & 458752) {
    install_time_msec_ = GOOGLE_LONGLONG(0);
    manifest_location_type_ = 0;
    if (has_manifest()) {
      if (manifest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        manifest_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_ExtensionData_ExtensionInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(16383);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string id = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_version;
        break;
      }

      // optional string version = 2;
      case 2: {
        if (tag == 18) {
         parse_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_name;
        break;
      }

      // optional string name = 3;
      case 3: {
        if (tag == 26) {
         parse_name:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_description;
        break;
      }

      // optional string description = 4;
      case 4: {
        if (tag == 34) {
         parse_description:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_state;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo.ExtensionState state = 5 [default = STATE_UNKNOWN];
      case 5: {
        if (tag == 40) {
         parse_state:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState_IsValid(value)) {
            set_state(static_cast< ::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo_ExtensionState >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_type;
        break;
      }

      // optional int32 type = 6;
      case 6: {
        if (tag == 48) {
         parse_type:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &type_)));
          set_has_type();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_update_url;
        break;
      }

      // optional string update_url = 7;
      case 7: {
        if (tag == 58) {
         parse_update_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_update_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(64)) goto parse_has_signature_validation;
        break;
      }

      // optional bool has_signature_validation = 8;
      case 8: {
        if (tag == 64) {
         parse_has_signature_validation:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &has_signature_validation_)));
          set_has_has_signature_validation();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(72)) goto parse_signature_is_valid;
        break;
      }

      // optional bool signature_is_valid = 9;
      case 9: {
        if (tag == 72) {
         parse_signature_is_valid:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &signature_is_valid_)));
          set_has_signature_is_valid();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(80)) goto parse_installed_by_custodian;
        break;
      }

      // optional bool installed_by_custodian = 10;
      case 10: {
        if (tag == 80) {
         parse_installed_by_custodian:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &installed_by_custodian_)));
          set_has_installed_by_custodian();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(88)) goto parse_installed_by_default;
        break;
      }

      // optional bool installed_by_default = 11;
      case 11: {
        if (tag == 88) {
         parse_installed_by_default:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &installed_by_default_)));
          set_has_installed_by_default();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(96)) goto parse_installed_by_oem;
        break;
      }

      // optional bool installed_by_oem = 12;
      case 12: {
        if (tag == 96) {
         parse_installed_by_oem:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &installed_by_oem_)));
          set_has_installed_by_oem();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(104)) goto parse_from_bookmark;
        break;
      }

      // optional bool from_bookmark = 13;
      case 13: {
        if (tag == 104) {
         parse_from_bookmark:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &from_bookmark_)));
          set_has_from_bookmark();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(112)) goto parse_from_webstore;
        break;
      }

      // optional bool from_webstore = 14;
      case 14: {
        if (tag == 112) {
         parse_from_webstore:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &from_webstore_)));
          set_has_from_webstore();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(120)) goto parse_converted_from_user_script;
        break;
      }

      // optional bool converted_from_user_script = 15;
      case 15: {
        if (tag == 120) {
         parse_converted_from_user_script:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &converted_from_user_script_)));
          set_has_converted_from_user_script();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(128)) goto parse_may_be_untrusted;
        break;
      }

      // optional bool may_be_untrusted = 16;
      case 16: {
        if (tag == 128) {
         parse_may_be_untrusted:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &may_be_untrusted_)));
          set_has_may_be_untrusted();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(136)) goto parse_install_time_msec;
        break;
      }

      // optional int64 install_time_msec = 17;
      case 17: {
        if (tag == 136) {
         parse_install_time_msec:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &install_time_msec_)));
          set_has_install_time_msec();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(144)) goto parse_manifest_location_type;
        break;
      }

      // optional int32 manifest_location_type = 18;
      case 18: {
        if (tag == 144) {
         parse_manifest_location_type:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &manifest_location_type_)));
          set_has_manifest_location_type();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(154)) goto parse_manifest;
        break;
      }

      // optional string manifest = 19;
      case 19: {
        if (tag == 154) {
         parse_manifest:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_manifest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
  return false;
#undef DO_
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
  // optional string id = 1;
  if (has_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // optional string version = 2;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->version(), output);
  }

  // optional string name = 3;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->name(), output);
  }

  // optional string description = 4;
  if (has_description()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->description(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo.ExtensionState state = 5 [default = STATE_UNKNOWN];
  if (has_state()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->state(), output);
  }

  // optional int32 type = 6;
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->type(), output);
  }

  // optional string update_url = 7;
  if (has_update_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->update_url(), output);
  }

  // optional bool has_signature_validation = 8;
  if (has_has_signature_validation()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->has_signature_validation(), output);
  }

  // optional bool signature_is_valid = 9;
  if (has_signature_is_valid()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->signature_is_valid(), output);
  }

  // optional bool installed_by_custodian = 10;
  if (has_installed_by_custodian()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(10, this->installed_by_custodian(), output);
  }

  // optional bool installed_by_default = 11;
  if (has_installed_by_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(11, this->installed_by_default(), output);
  }

  // optional bool installed_by_oem = 12;
  if (has_installed_by_oem()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(12, this->installed_by_oem(), output);
  }

  // optional bool from_bookmark = 13;
  if (has_from_bookmark()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(13, this->from_bookmark(), output);
  }

  // optional bool from_webstore = 14;
  if (has_from_webstore()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(14, this->from_webstore(), output);
  }

  // optional bool converted_from_user_script = 15;
  if (has_converted_from_user_script()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(15, this->converted_from_user_script(), output);
  }

  // optional bool may_be_untrusted = 16;
  if (has_may_be_untrusted()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(16, this->may_be_untrusted(), output);
  }

  // optional int64 install_time_msec = 17;
  if (has_install_time_msec()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(17, this->install_time_msec(), output);
  }

  // optional int32 manifest_location_type = 18;
  if (has_manifest_location_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(18, this->manifest_location_type(), output);
  }

  // optional string manifest = 19;
  if (has_manifest()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      19, this->manifest(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo)
}

int ClientIncidentReport_ExtensionData_ExtensionInfo::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string id = 1;
    if (has_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->id());
    }

    // optional string version = 2;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->version());
    }

    // optional string name = 3;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }

    // optional string description = 4;
    if (has_description()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->description());
    }

    // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo.ExtensionState state = 5 [default = STATE_UNKNOWN];
    if (has_state()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->state());
    }

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

    // optional string update_url = 7;
    if (has_update_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->update_url());
    }

    // optional bool has_signature_validation = 8;
    if (has_has_signature_validation()) {
      total_size += 1 + 1;
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // optional bool signature_is_valid = 9;
    if (has_signature_is_valid()) {
      total_size += 1 + 1;
    }

    // optional bool installed_by_custodian = 10;
    if (has_installed_by_custodian()) {
      total_size += 1 + 1;
    }

    // optional bool installed_by_default = 11;
    if (has_installed_by_default()) {
      total_size += 1 + 1;
    }

    // optional bool installed_by_oem = 12;
    if (has_installed_by_oem()) {
      total_size += 1 + 1;
    }

    // optional bool from_bookmark = 13;
    if (has_from_bookmark()) {
      total_size += 1 + 1;
    }

    // optional bool from_webstore = 14;
    if (has_from_webstore()) {
      total_size += 1 + 1;
    }

    // optional bool converted_from_user_script = 15;
    if (has_converted_from_user_script()) {
      total_size += 1 + 1;
    }

    // optional bool may_be_untrusted = 16;
    if (has_may_be_untrusted()) {
      total_size += 2 + 1;
    }

  }
  if (_has_bits_[16 / 32] & (0xffu << (16 % 32))) {
    // optional int64 install_time_msec = 17;
    if (has_install_time_msec()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->install_time_msec());
    }

    // optional int32 manifest_location_type = 18;
    if (has_manifest_location_type()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->manifest_location_type());
    }

    // optional string manifest = 19;
    if (has_manifest()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->manifest());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_ExtensionData_ExtensionInfo*>(&from));
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::MergeFrom(const ClientIncidentReport_ExtensionData_ExtensionInfo& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_id()) {
      set_id(from.id());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_name()) {
      set_name(from.name());
    }
    if (from.has_description()) {
      set_description(from.description());
    }
    if (from.has_state()) {
      set_state(from.state());
    }
    if (from.has_type()) {
      set_type(from.type());
    }
    if (from.has_update_url()) {
      set_update_url(from.update_url());
    }
    if (from.has_has_signature_validation()) {
      set_has_signature_validation(from.has_signature_validation());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_signature_is_valid()) {
      set_signature_is_valid(from.signature_is_valid());
    }
    if (from.has_installed_by_custodian()) {
      set_installed_by_custodian(from.installed_by_custodian());
    }
    if (from.has_installed_by_default()) {
      set_installed_by_default(from.installed_by_default());
    }
    if (from.has_installed_by_oem()) {
      set_installed_by_oem(from.installed_by_oem());
    }
    if (from.has_from_bookmark()) {
      set_from_bookmark(from.from_bookmark());
    }
    if (from.has_from_webstore()) {
      set_from_webstore(from.from_webstore());
    }
    if (from.has_converted_from_user_script()) {
      set_converted_from_user_script(from.converted_from_user_script());
    }
    if (from.has_may_be_untrusted()) {
      set_may_be_untrusted(from.may_be_untrusted());
    }
  }
  if (from._has_bits_[16 / 32] & (0xffu << (16 % 32))) {
    if (from.has_install_time_msec()) {
      set_install_time_msec(from.install_time_msec());
    }
    if (from.has_manifest_location_type()) {
      set_manifest_location_type(from.manifest_location_type());
    }
    if (from.has_manifest()) {
      set_manifest(from.manifest());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::CopyFrom(const ClientIncidentReport_ExtensionData_ExtensionInfo& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_ExtensionData_ExtensionInfo::IsInitialized() const {

  return true;
}

void ClientIncidentReport_ExtensionData_ExtensionInfo::Swap(ClientIncidentReport_ExtensionData_ExtensionInfo* other) {
  if (other != this) {
    std::swap(id_, other->id_);
    std::swap(version_, other->version_);
    std::swap(name_, other->name_);
    std::swap(description_, other->description_);
    std::swap(state_, other->state_);
    std::swap(type_, other->type_);
    std::swap(update_url_, other->update_url_);
    std::swap(has_signature_validation_, other->has_signature_validation_);
    std::swap(signature_is_valid_, other->signature_is_valid_);
    std::swap(installed_by_custodian_, other->installed_by_custodian_);
    std::swap(installed_by_default_, other->installed_by_default_);
    std::swap(installed_by_oem_, other->installed_by_oem_);
    std::swap(from_bookmark_, other->from_bookmark_);
    std::swap(from_webstore_, other->from_webstore_);
    std::swap(converted_from_user_script_, other->converted_from_user_script_);
    std::swap(may_be_untrusted_, other->may_be_untrusted_);
    std::swap(install_time_msec_, other->install_time_msec_);
    std::swap(manifest_location_type_, other->manifest_location_type_);
    std::swap(manifest_, other->manifest_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_ExtensionData_ExtensionInfo::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_ExtensionData::kLastInstalledExtensionFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_ExtensionData::ClientIncidentReport_ExtensionData()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.ExtensionData)
}

void ClientIncidentReport_ExtensionData::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  last_installed_extension_ = const_cast< ::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo*>(
      ::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo::internal_default_instance());
#else
  last_installed_extension_ = const_cast< ::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo*>(&::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo::default_instance());
#endif
}

ClientIncidentReport_ExtensionData::ClientIncidentReport_ExtensionData(const ClientIncidentReport_ExtensionData& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.ExtensionData)
}

void ClientIncidentReport_ExtensionData::SharedCtor() {
  _cached_size_ = 0;
  last_installed_extension_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_ExtensionData::~ClientIncidentReport_ExtensionData() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.ExtensionData)
  SharedDtor();
}

void ClientIncidentReport_ExtensionData::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete last_installed_extension_;
  }
}

void ClientIncidentReport_ExtensionData::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_ExtensionData& ClientIncidentReport_ExtensionData::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_ExtensionData* ClientIncidentReport_ExtensionData::default_instance_ = NULL;

ClientIncidentReport_ExtensionData* ClientIncidentReport_ExtensionData::New() const {
  return new ClientIncidentReport_ExtensionData;
}

void ClientIncidentReport_ExtensionData::Clear() {
  if (has_last_installed_extension()) {
    if (last_installed_extension_ != NULL) last_installed_extension_->::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo::Clear();
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_ExtensionData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.ExtensionData)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo last_installed_extension = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_last_installed_extension()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.ExtensionData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.ExtensionData)
  return false;
#undef DO_
}

void ClientIncidentReport_ExtensionData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.ExtensionData)
  // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo last_installed_extension = 1;
  if (has_last_installed_extension()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->last_installed_extension(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.ExtensionData)
}

int ClientIncidentReport_ExtensionData::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientIncidentReport.ExtensionData.ExtensionInfo last_installed_extension = 1;
    if (has_last_installed_extension()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->last_installed_extension());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_ExtensionData::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_ExtensionData*>(&from));
}

void ClientIncidentReport_ExtensionData::MergeFrom(const ClientIncidentReport_ExtensionData& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_last_installed_extension()) {
      mutable_last_installed_extension()->::safe_browsing::ClientIncidentReport_ExtensionData_ExtensionInfo::MergeFrom(from.last_installed_extension());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_ExtensionData::CopyFrom(const ClientIncidentReport_ExtensionData& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_ExtensionData::IsInitialized() const {

  return true;
}

void ClientIncidentReport_ExtensionData::Swap(ClientIncidentReport_ExtensionData* other) {
  if (other != this) {
    std::swap(last_installed_extension_, other->last_installed_extension_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_ExtensionData::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.ExtensionData";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport_NonBinaryDownloadDetails::kFileTypeFieldNumber;
const int ClientIncidentReport_NonBinaryDownloadDetails::kUrlSpecSha256FieldNumber;
const int ClientIncidentReport_NonBinaryDownloadDetails::kHostFieldNumber;
const int ClientIncidentReport_NonBinaryDownloadDetails::kLengthFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport_NonBinaryDownloadDetails::ClientIncidentReport_NonBinaryDownloadDetails()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
}

void ClientIncidentReport_NonBinaryDownloadDetails::InitAsDefaultInstance() {
}

ClientIncidentReport_NonBinaryDownloadDetails::ClientIncidentReport_NonBinaryDownloadDetails(const ClientIncidentReport_NonBinaryDownloadDetails& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
}

void ClientIncidentReport_NonBinaryDownloadDetails::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  file_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_spec_sha256_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  host_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  length_ = GOOGLE_LONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport_NonBinaryDownloadDetails::~ClientIncidentReport_NonBinaryDownloadDetails() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
  SharedDtor();
}

void ClientIncidentReport_NonBinaryDownloadDetails::SharedDtor() {
  if (file_type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete file_type_;
  }
  if (url_spec_sha256_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_spec_sha256_;
  }
  if (host_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete host_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentReport_NonBinaryDownloadDetails::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport_NonBinaryDownloadDetails& ClientIncidentReport_NonBinaryDownloadDetails::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport_NonBinaryDownloadDetails* ClientIncidentReport_NonBinaryDownloadDetails::default_instance_ = NULL;

ClientIncidentReport_NonBinaryDownloadDetails* ClientIncidentReport_NonBinaryDownloadDetails::New() const {
  return new ClientIncidentReport_NonBinaryDownloadDetails;
}

void ClientIncidentReport_NonBinaryDownloadDetails::Clear() {
  if (_has_bits_[0 / 32] & 15) {
    if (has_file_type()) {
      if (file_type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        file_type_->clear();
      }
    }
    if (has_url_spec_sha256()) {
      if (url_spec_sha256_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_spec_sha256_->clear();
      }
    }
    if (has_host()) {
      if (host_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        host_->clear();
      }
    }
    length_ = GOOGLE_LONGLONG(0);
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport_NonBinaryDownloadDetails::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string file_type = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_file_type()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_url_spec_sha256;
        break;
      }

      // optional bytes url_spec_sha256 = 2;
      case 2: {
        if (tag == 18) {
         parse_url_spec_sha256:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_url_spec_sha256()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_host;
        break;
      }

      // optional string host = 3;
      case 3: {
        if (tag == 26) {
         parse_host:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_host()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_length;
        break;
      }

      // optional int64 length = 4;
      case 4: {
        if (tag == 32) {
         parse_length:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &length_)));
          set_has_length();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
  return false;
#undef DO_
}

void ClientIncidentReport_NonBinaryDownloadDetails::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
  // optional string file_type = 1;
  if (has_file_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->file_type(), output);
  }

  // optional bytes url_spec_sha256 = 2;
  if (has_url_spec_sha256()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->url_spec_sha256(), output);
  }

  // optional string host = 3;
  if (has_host()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->host(), output);
  }

  // optional int64 length = 4;
  if (has_length()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->length(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails)
}

int ClientIncidentReport_NonBinaryDownloadDetails::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string file_type = 1;
    if (has_file_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->file_type());
    }

    // optional bytes url_spec_sha256 = 2;
    if (has_url_spec_sha256()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->url_spec_sha256());
    }

    // optional string host = 3;
    if (has_host()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->host());
    }

    // optional int64 length = 4;
    if (has_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->length());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport_NonBinaryDownloadDetails::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport_NonBinaryDownloadDetails*>(&from));
}

void ClientIncidentReport_NonBinaryDownloadDetails::MergeFrom(const ClientIncidentReport_NonBinaryDownloadDetails& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_file_type()) {
      set_file_type(from.file_type());
    }
    if (from.has_url_spec_sha256()) {
      set_url_spec_sha256(from.url_spec_sha256());
    }
    if (from.has_host()) {
      set_host(from.host());
    }
    if (from.has_length()) {
      set_length(from.length());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport_NonBinaryDownloadDetails::CopyFrom(const ClientIncidentReport_NonBinaryDownloadDetails& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport_NonBinaryDownloadDetails::IsInitialized() const {

  return true;
}

void ClientIncidentReport_NonBinaryDownloadDetails::Swap(ClientIncidentReport_NonBinaryDownloadDetails* other) {
  if (other != this) {
    std::swap(file_type_, other->file_type_);
    std::swap(url_spec_sha256_, other->url_spec_sha256_);
    std::swap(host_, other->host_);
    std::swap(length_, other->length_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport_NonBinaryDownloadDetails::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentReport::kIncidentFieldNumber;
const int ClientIncidentReport::kDownloadFieldNumber;
const int ClientIncidentReport::kEnvironmentFieldNumber;
const int ClientIncidentReport::kPopulationFieldNumber;
const int ClientIncidentReport::kExtensionDataFieldNumber;
const int ClientIncidentReport::kNonBinaryDownloadFieldNumber;
#endif  // !_MSC_VER

ClientIncidentReport::ClientIncidentReport()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentReport)
}

void ClientIncidentReport::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  download_ = const_cast< ::safe_browsing::ClientIncidentReport_DownloadDetails*>(
      ::safe_browsing::ClientIncidentReport_DownloadDetails::internal_default_instance());
#else
  download_ = const_cast< ::safe_browsing::ClientIncidentReport_DownloadDetails*>(&::safe_browsing::ClientIncidentReport_DownloadDetails::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  environment_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData*>(
      ::safe_browsing::ClientIncidentReport_EnvironmentData::internal_default_instance());
#else
  environment_ = const_cast< ::safe_browsing::ClientIncidentReport_EnvironmentData*>(&::safe_browsing::ClientIncidentReport_EnvironmentData::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(
      ::safe_browsing::ChromeUserPopulation::internal_default_instance());
#else
  population_ = const_cast< ::safe_browsing::ChromeUserPopulation*>(&::safe_browsing::ChromeUserPopulation::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  extension_data_ = const_cast< ::safe_browsing::ClientIncidentReport_ExtensionData*>(
      ::safe_browsing::ClientIncidentReport_ExtensionData::internal_default_instance());
#else
  extension_data_ = const_cast< ::safe_browsing::ClientIncidentReport_ExtensionData*>(&::safe_browsing::ClientIncidentReport_ExtensionData::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  non_binary_download_ = const_cast< ::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails*>(
      ::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails::internal_default_instance());
#else
  non_binary_download_ = const_cast< ::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails*>(&::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails::default_instance());
#endif
}

ClientIncidentReport::ClientIncidentReport(const ClientIncidentReport& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentReport)
}

void ClientIncidentReport::SharedCtor() {
  _cached_size_ = 0;
  download_ = NULL;
  environment_ = NULL;
  population_ = NULL;
  extension_data_ = NULL;
  non_binary_download_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentReport::~ClientIncidentReport() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentReport)
  SharedDtor();
}

void ClientIncidentReport::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete download_;
    delete environment_;
    delete population_;
    delete extension_data_;
    delete non_binary_download_;
  }
}

void ClientIncidentReport::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentReport& ClientIncidentReport::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentReport* ClientIncidentReport::default_instance_ = NULL;

ClientIncidentReport* ClientIncidentReport::New() const {
  return new ClientIncidentReport;
}

void ClientIncidentReport::Clear() {
  if (_has_bits_[0 / 32] & 62) {
    if (has_download()) {
      if (download_ != NULL) download_->::safe_browsing::ClientIncidentReport_DownloadDetails::Clear();
    }
    if (has_environment()) {
      if (environment_ != NULL) environment_->::safe_browsing::ClientIncidentReport_EnvironmentData::Clear();
    }
    if (has_population()) {
      if (population_ != NULL) population_->::safe_browsing::ChromeUserPopulation::Clear();
    }
    if (has_extension_data()) {
      if (extension_data_ != NULL) extension_data_->::safe_browsing::ClientIncidentReport_ExtensionData::Clear();
    }
    if (has_non_binary_download()) {
      if (non_binary_download_ != NULL) non_binary_download_->::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails::Clear();
    }
  }
  incident_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentReport::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentReport)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .safe_browsing.ClientIncidentReport.IncidentData incident = 1;
      case 1: {
        if (tag == 10) {
         parse_incident:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_incident()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(10)) goto parse_incident;
        if (input->ExpectTag(18)) goto parse_download;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
      case 2: {
        if (tag == 18) {
         parse_download:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_download()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_environment;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.EnvironmentData environment = 3;
      case 3: {
        if (tag == 26) {
         parse_environment:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_environment()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_population;
        break;
      }

      // optional .safe_browsing.ChromeUserPopulation population = 7;
      case 7: {
        if (tag == 58) {
         parse_population:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_population()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(66)) goto parse_extension_data;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.ExtensionData extension_data = 8;
      case 8: {
        if (tag == 66) {
         parse_extension_data:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_extension_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(74)) goto parse_non_binary_download;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails non_binary_download = 9;
      case 9: {
        if (tag == 74) {
         parse_non_binary_download:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_non_binary_download()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentReport)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentReport)
  return false;
#undef DO_
}

void ClientIncidentReport::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentReport)
  // repeated .safe_browsing.ClientIncidentReport.IncidentData incident = 1;
  for (int i = 0; i < this->incident_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->incident(i), output);
  }

  // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
  if (has_download()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->download(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.EnvironmentData environment = 3;
  if (has_environment()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->environment(), output);
  }

  // optional .safe_browsing.ChromeUserPopulation population = 7;
  if (has_population()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      7, this->population(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.ExtensionData extension_data = 8;
  if (has_extension_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      8, this->extension_data(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails non_binary_download = 9;
  if (has_non_binary_download()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      9, this->non_binary_download(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentReport)
}

int ClientIncidentReport::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
    if (has_download()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->download());
    }

    // optional .safe_browsing.ClientIncidentReport.EnvironmentData environment = 3;
    if (has_environment()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->environment());
    }

    // optional .safe_browsing.ChromeUserPopulation population = 7;
    if (has_population()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->population());
    }

    // optional .safe_browsing.ClientIncidentReport.ExtensionData extension_data = 8;
    if (has_extension_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->extension_data());
    }

    // optional .safe_browsing.ClientIncidentReport.NonBinaryDownloadDetails non_binary_download = 9;
    if (has_non_binary_download()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->non_binary_download());
    }

  }
  // repeated .safe_browsing.ClientIncidentReport.IncidentData incident = 1;
  total_size += 1 * this->incident_size();
  for (int i = 0; i < this->incident_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->incident(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentReport::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentReport*>(&from));
}

void ClientIncidentReport::MergeFrom(const ClientIncidentReport& from) {
  GOOGLE_CHECK_NE(&from, this);
  incident_.MergeFrom(from.incident_);
  if (from._has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (from.has_download()) {
      mutable_download()->::safe_browsing::ClientIncidentReport_DownloadDetails::MergeFrom(from.download());
    }
    if (from.has_environment()) {
      mutable_environment()->::safe_browsing::ClientIncidentReport_EnvironmentData::MergeFrom(from.environment());
    }
    if (from.has_population()) {
      mutable_population()->::safe_browsing::ChromeUserPopulation::MergeFrom(from.population());
    }
    if (from.has_extension_data()) {
      mutable_extension_data()->::safe_browsing::ClientIncidentReport_ExtensionData::MergeFrom(from.extension_data());
    }
    if (from.has_non_binary_download()) {
      mutable_non_binary_download()->::safe_browsing::ClientIncidentReport_NonBinaryDownloadDetails::MergeFrom(from.non_binary_download());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentReport::CopyFrom(const ClientIncidentReport& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentReport::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->incident())) return false;
  if (has_download()) {
    if (!this->download().IsInitialized()) return false;
  }
  if (has_environment()) {
    if (!this->environment().IsInitialized()) return false;
  }
  return true;
}

void ClientIncidentReport::Swap(ClientIncidentReport* other) {
  if (other != this) {
    incident_.Swap(&other->incident_);
    std::swap(download_, other->download_);
    std::swap(environment_, other->environment_);
    std::swap(population_, other->population_);
    std::swap(extension_data_, other->extension_data_);
    std::swap(non_binary_download_, other->non_binary_download_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentReport::GetTypeName() const {
  return "safe_browsing.ClientIncidentReport";
}


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

#ifndef _MSC_VER
const int ClientIncidentResponse_EnvironmentRequest::kDllIndexFieldNumber;
#endif  // !_MSC_VER

ClientIncidentResponse_EnvironmentRequest::ClientIncidentResponse_EnvironmentRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
}

void ClientIncidentResponse_EnvironmentRequest::InitAsDefaultInstance() {
}

ClientIncidentResponse_EnvironmentRequest::ClientIncidentResponse_EnvironmentRequest(const ClientIncidentResponse_EnvironmentRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
}

void ClientIncidentResponse_EnvironmentRequest::SharedCtor() {
  _cached_size_ = 0;
  dll_index_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentResponse_EnvironmentRequest::~ClientIncidentResponse_EnvironmentRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
  SharedDtor();
}

void ClientIncidentResponse_EnvironmentRequest::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentResponse_EnvironmentRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentResponse_EnvironmentRequest& ClientIncidentResponse_EnvironmentRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentResponse_EnvironmentRequest* ClientIncidentResponse_EnvironmentRequest::default_instance_ = NULL;

ClientIncidentResponse_EnvironmentRequest* ClientIncidentResponse_EnvironmentRequest::New() const {
  return new ClientIncidentResponse_EnvironmentRequest;
}

void ClientIncidentResponse_EnvironmentRequest::Clear() {
  dll_index_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentResponse_EnvironmentRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 dll_index = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &dll_index_)));
          set_has_dll_index();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
  return false;
#undef DO_
}

void ClientIncidentResponse_EnvironmentRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
  // optional int32 dll_index = 1;
  if (has_dll_index()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->dll_index(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentResponse.EnvironmentRequest)
}

int ClientIncidentResponse_EnvironmentRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional int32 dll_index = 1;
    if (has_dll_index()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->dll_index());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentResponse_EnvironmentRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentResponse_EnvironmentRequest*>(&from));
}

void ClientIncidentResponse_EnvironmentRequest::MergeFrom(const ClientIncidentResponse_EnvironmentRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_dll_index()) {
      set_dll_index(from.dll_index());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentResponse_EnvironmentRequest::CopyFrom(const ClientIncidentResponse_EnvironmentRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentResponse_EnvironmentRequest::IsInitialized() const {

  return true;
}

void ClientIncidentResponse_EnvironmentRequest::Swap(ClientIncidentResponse_EnvironmentRequest* other) {
  if (other != this) {
    std::swap(dll_index_, other->dll_index_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentResponse_EnvironmentRequest::GetTypeName() const {
  return "safe_browsing.ClientIncidentResponse.EnvironmentRequest";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientIncidentResponse::kTokenFieldNumber;
const int ClientIncidentResponse::kDownloadRequestedFieldNumber;
const int ClientIncidentResponse::kEnvironmentRequestsFieldNumber;
#endif  // !_MSC_VER

ClientIncidentResponse::ClientIncidentResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientIncidentResponse)
}

void ClientIncidentResponse::InitAsDefaultInstance() {
}

ClientIncidentResponse::ClientIncidentResponse(const ClientIncidentResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientIncidentResponse)
}

void ClientIncidentResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  token_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  download_requested_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientIncidentResponse::~ClientIncidentResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientIncidentResponse)
  SharedDtor();
}

void ClientIncidentResponse::SharedDtor() {
  if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete token_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientIncidentResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientIncidentResponse& ClientIncidentResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientIncidentResponse* ClientIncidentResponse::default_instance_ = NULL;

ClientIncidentResponse* ClientIncidentResponse::New() const {
  return new ClientIncidentResponse;
}

void ClientIncidentResponse::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_token()) {
      if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        token_->clear();
      }
    }
    download_requested_ = false;
  }
  environment_requests_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientIncidentResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientIncidentResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes token = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_token()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_download_requested;
        break;
      }

      // optional bool download_requested = 2;
      case 2: {
        if (tag == 16) {
         parse_download_requested:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &download_requested_)));
          set_has_download_requested();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_environment_requests;
        break;
      }

      // repeated .safe_browsing.ClientIncidentResponse.EnvironmentRequest environment_requests = 3;
      case 3: {
        if (tag == 26) {
         parse_environment_requests:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_environment_requests()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_environment_requests;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientIncidentResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientIncidentResponse)
  return false;
#undef DO_
}

void ClientIncidentResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientIncidentResponse)
  // optional bytes token = 1;
  if (has_token()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->token(), output);
  }

  // optional bool download_requested = 2;
  if (has_download_requested()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->download_requested(), output);
  }

  // repeated .safe_browsing.ClientIncidentResponse.EnvironmentRequest environment_requests = 3;
  for (int i = 0; i < this->environment_requests_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->environment_requests(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientIncidentResponse)
}

int ClientIncidentResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes token = 1;
    if (has_token()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->token());
    }

    // optional bool download_requested = 2;
    if (has_download_requested()) {
      total_size += 1 + 1;
    }

  }
  // repeated .safe_browsing.ClientIncidentResponse.EnvironmentRequest environment_requests = 3;
  total_size += 1 * this->environment_requests_size();
  for (int i = 0; i < this->environment_requests_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->environment_requests(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientIncidentResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientIncidentResponse*>(&from));
}

void ClientIncidentResponse::MergeFrom(const ClientIncidentResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  environment_requests_.MergeFrom(from.environment_requests_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_token()) {
      set_token(from.token());
    }
    if (from.has_download_requested()) {
      set_download_requested(from.download_requested());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientIncidentResponse::CopyFrom(const ClientIncidentResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientIncidentResponse::IsInitialized() const {

  return true;
}

void ClientIncidentResponse::Swap(ClientIncidentResponse* other) {
  if (other != this) {
    std::swap(token_, other->token_);
    std::swap(download_requested_, other->download_requested_);
    environment_requests_.Swap(&other->environment_requests_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientIncidentResponse::GetTypeName() const {
  return "safe_browsing.ClientIncidentResponse";
}


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

#ifndef _MSC_VER
const int DownloadMetadata::kDownloadIdFieldNumber;
const int DownloadMetadata::kDownloadFieldNumber;
#endif  // !_MSC_VER

DownloadMetadata::DownloadMetadata()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.DownloadMetadata)
}

void DownloadMetadata::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  download_ = const_cast< ::safe_browsing::ClientIncidentReport_DownloadDetails*>(
      ::safe_browsing::ClientIncidentReport_DownloadDetails::internal_default_instance());
#else
  download_ = const_cast< ::safe_browsing::ClientIncidentReport_DownloadDetails*>(&::safe_browsing::ClientIncidentReport_DownloadDetails::default_instance());
#endif
}

DownloadMetadata::DownloadMetadata(const DownloadMetadata& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.DownloadMetadata)
}

void DownloadMetadata::SharedCtor() {
  _cached_size_ = 0;
  download_id_ = 0u;
  download_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

DownloadMetadata::~DownloadMetadata() {
  // @@protoc_insertion_point(destructor:safe_browsing.DownloadMetadata)
  SharedDtor();
}

void DownloadMetadata::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete download_;
  }
}

void DownloadMetadata::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const DownloadMetadata& DownloadMetadata::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

DownloadMetadata* DownloadMetadata::default_instance_ = NULL;

DownloadMetadata* DownloadMetadata::New() const {
  return new DownloadMetadata;
}

void DownloadMetadata::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    download_id_ = 0u;
    if (has_download()) {
      if (download_ != NULL) download_->::safe_browsing::ClientIncidentReport_DownloadDetails::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool DownloadMetadata::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.DownloadMetadata)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint32 download_id = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &download_id_)));
          set_has_download_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_download;
        break;
      }

      // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
      case 2: {
        if (tag == 18) {
         parse_download:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_download()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.DownloadMetadata)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.DownloadMetadata)
  return false;
#undef DO_
}

void DownloadMetadata::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.DownloadMetadata)
  // optional uint32 download_id = 1;
  if (has_download_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->download_id(), output);
  }

  // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
  if (has_download()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->download(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.DownloadMetadata)
}

int DownloadMetadata::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint32 download_id = 1;
    if (has_download_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->download_id());
    }

    // optional .safe_browsing.ClientIncidentReport.DownloadDetails download = 2;
    if (has_download()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->download());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void DownloadMetadata::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const DownloadMetadata*>(&from));
}

void DownloadMetadata::MergeFrom(const DownloadMetadata& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_download_id()) {
      set_download_id(from.download_id());
    }
    if (from.has_download()) {
      mutable_download()->::safe_browsing::ClientIncidentReport_DownloadDetails::MergeFrom(from.download());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void DownloadMetadata::CopyFrom(const DownloadMetadata& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DownloadMetadata::IsInitialized() const {

  if (has_download()) {
    if (!this->download().IsInitialized()) return false;
  }
  return true;
}

void DownloadMetadata::Swap(DownloadMetadata* other) {
  if (other != this) {
    std::swap(download_id_, other->download_id_);
    std::swap(download_, other->download_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string DownloadMetadata::GetTypeName() const {
  return "safe_browsing.DownloadMetadata";
}


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

bool ClientSafeBrowsingReportRequest_ReportType_IsValid(int value) {
  switch(value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 10:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::UNKNOWN;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::URL_PHISHING;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::URL_MALWARE;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::URL_UNWANTED;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::CLIENT_SIDE_PHISHING_URL;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::CLIENT_SIDE_MALWARE_URL;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::DANGEROUS_DOWNLOAD_RECOVERY;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::DANGEROUS_DOWNLOAD_WARNING;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::DANGEROUS_DOWNLOAD_BY_API;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::ReportType_MIN;
const ClientSafeBrowsingReportRequest_ReportType ClientSafeBrowsingReportRequest::ReportType_MAX;
const int ClientSafeBrowsingReportRequest::ReportType_ARRAYSIZE;
#endif  // _MSC_VER
#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_HTTPHeader::kNameFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPHeader::kValueFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_HTTPHeader::ClientSafeBrowsingReportRequest_HTTPHeader()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
}

void ClientSafeBrowsingReportRequest_HTTPHeader::InitAsDefaultInstance() {
}

ClientSafeBrowsingReportRequest_HTTPHeader::ClientSafeBrowsingReportRequest_HTTPHeader(const ClientSafeBrowsingReportRequest_HTTPHeader& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
}

void ClientSafeBrowsingReportRequest_HTTPHeader::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_HTTPHeader::~ClientSafeBrowsingReportRequest_HTTPHeader() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_HTTPHeader::SharedDtor() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete value_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientSafeBrowsingReportRequest_HTTPHeader::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_HTTPHeader& ClientSafeBrowsingReportRequest_HTTPHeader::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_HTTPHeader* ClientSafeBrowsingReportRequest_HTTPHeader::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_HTTPHeader* ClientSafeBrowsingReportRequest_HTTPHeader::New() const {
  return new ClientSafeBrowsingReportRequest_HTTPHeader;
}

void ClientSafeBrowsingReportRequest_HTTPHeader::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_name()) {
      if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        name_->clear();
      }
    }
    if (has_value()) {
      if (value_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        value_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_HTTPHeader::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required bytes name = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_value;
        break;
      }

      // optional bytes value = 2;
      case 2: {
        if (tag == 18) {
         parse_value:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_value()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_HTTPHeader::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
  // required bytes name = 1;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->name(), output);
  }

  // optional bytes value = 2;
  if (has_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->value(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader)
}

int ClientSafeBrowsingReportRequest_HTTPHeader::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required bytes name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->name());
    }

    // optional bytes value = 2;
    if (has_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->value());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_HTTPHeader::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_HTTPHeader*>(&from));
}

void ClientSafeBrowsingReportRequest_HTTPHeader::MergeFrom(const ClientSafeBrowsingReportRequest_HTTPHeader& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_name()) {
      set_name(from.name());
    }
    if (from.has_value()) {
      set_value(from.value());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_HTTPHeader::CopyFrom(const ClientSafeBrowsingReportRequest_HTTPHeader& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  return true;
}

void ClientSafeBrowsingReportRequest_HTTPHeader::Swap(ClientSafeBrowsingReportRequest_HTTPHeader* other) {
  if (other != this) {
    std::swap(name_, other->name_);
    std::swap(value_, other->value_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_HTTPHeader::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::kVerbFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::kUriFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::kVersionFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::InitAsDefaultInstance() {
}

ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine(const ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  verb_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  uri_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::~ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::SharedDtor() {
  if (verb_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete verb_;
  }
  if (uri_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete uri_;
  }
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine& ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine* ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine* ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::New() const {
  return new ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine;
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    if (has_verb()) {
      if (verb_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        verb_->clear();
      }
    }
    if (has_uri()) {
      if (uri_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        uri_->clear();
      }
    }
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional bytes verb = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_verb()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_uri;
        break;
      }

      // optional bytes uri = 2;
      case 2: {
        if (tag == 18) {
         parse_uri:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_uri()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_version;
        break;
      }

      // optional bytes version = 3;
      case 3: {
        if (tag == 26) {
         parse_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
  // optional bytes verb = 1;
  if (has_verb()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->verb(), output);
  }

  // optional bytes uri = 2;
  if (has_uri()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->uri(), output);
  }

  // optional bytes version = 3;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->version(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine)
}

int ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bytes verb = 1;
    if (has_verb()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->verb());
    }

    // optional bytes uri = 2;
    if (has_uri()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->uri());
    }

    // optional bytes version = 3;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->version());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine*>(&from));
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::MergeFrom(const ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_verb()) {
      set_verb(from.verb());
    }
    if (from.has_uri()) {
      set_uri(from.uri());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::CopyFrom(const ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::IsInitialized() const {

  return true;
}

void ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::Swap(ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine* other) {
  if (other != this) {
    std::swap(verb_, other->verb_);
    std::swap(uri_, other->uri_);
    std::swap(version_, other->version_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_HTTPRequest::kFirstlineFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest::kHeadersFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest::kBodyFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest::kBodydigestFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPRequest::kBodylengthFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_HTTPRequest::ClientSafeBrowsingReportRequest_HTTPRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
}

void ClientSafeBrowsingReportRequest_HTTPRequest::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  firstline_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine*>(
      ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::internal_default_instance());
#else
  firstline_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine*>(&::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::default_instance());
#endif
}

ClientSafeBrowsingReportRequest_HTTPRequest::ClientSafeBrowsingReportRequest_HTTPRequest(const ClientSafeBrowsingReportRequest_HTTPRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
}

void ClientSafeBrowsingReportRequest_HTTPRequest::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  firstline_ = NULL;
  body_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bodydigest_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bodylength_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_HTTPRequest::~ClientSafeBrowsingReportRequest_HTTPRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_HTTPRequest::SharedDtor() {
  if (body_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete body_;
  }
  if (bodydigest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete bodydigest_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete firstline_;
  }
}

void ClientSafeBrowsingReportRequest_HTTPRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_HTTPRequest& ClientSafeBrowsingReportRequest_HTTPRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_HTTPRequest* ClientSafeBrowsingReportRequest_HTTPRequest::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_HTTPRequest* ClientSafeBrowsingReportRequest_HTTPRequest::New() const {
  return new ClientSafeBrowsingReportRequest_HTTPRequest;
}

void ClientSafeBrowsingReportRequest_HTTPRequest::Clear() {
  if (_has_bits_[0 / 32] & 29) {
    if (has_firstline()) {
      if (firstline_ != NULL) firstline_->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::Clear();
    }
    if (has_body()) {
      if (body_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        body_->clear();
      }
    }
    if (has_bodydigest()) {
      if (bodydigest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        bodydigest_->clear();
      }
    }
    bodylength_ = 0;
  }
  headers_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_HTTPRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine firstline = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_firstline()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_headers;
        break;
      }

      // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
      case 2: {
        if (tag == 18) {
         parse_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_headers;
        if (input->ExpectTag(26)) goto parse_body;
        break;
      }

      // optional bytes body = 3;
      case 3: {
        if (tag == 26) {
         parse_body:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_body()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_bodydigest;
        break;
      }

      // optional bytes bodydigest = 4;
      case 4: {
        if (tag == 34) {
         parse_bodydigest:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_bodydigest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_bodylength;
        break;
      }

      // optional int32 bodylength = 5;
      case 5: {
        if (tag == 40) {
         parse_bodylength:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bodylength_)));
          set_has_bodylength();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_HTTPRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
  // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine firstline = 1;
  if (has_firstline()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->firstline(), output);
  }

  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
  for (int i = 0; i < this->headers_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->headers(i), output);
  }

  // optional bytes body = 3;
  if (has_body()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->body(), output);
  }

  // optional bytes bodydigest = 4;
  if (has_bodydigest()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      4, this->bodydigest(), output);
  }

  // optional int32 bodylength = 5;
  if (has_bodylength()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->bodylength(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest)
}

int ClientSafeBrowsingReportRequest_HTTPRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest.FirstLine firstline = 1;
    if (has_firstline()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->firstline());
    }

    // optional bytes body = 3;
    if (has_body()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->body());
    }

    // optional bytes bodydigest = 4;
    if (has_bodydigest()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->bodydigest());
    }

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

  }
  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
  total_size += 1 * this->headers_size();
  for (int i = 0; i < this->headers_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->headers(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_HTTPRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_HTTPRequest*>(&from));
}

void ClientSafeBrowsingReportRequest_HTTPRequest::MergeFrom(const ClientSafeBrowsingReportRequest_HTTPRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  headers_.MergeFrom(from.headers_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_firstline()) {
      mutable_firstline()->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest_FirstLine::MergeFrom(from.firstline());
    }
    if (from.has_body()) {
      set_body(from.body());
    }
    if (from.has_bodydigest()) {
      set_bodydigest(from.bodydigest());
    }
    if (from.has_bodylength()) {
      set_bodylength(from.bodylength());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_HTTPRequest::CopyFrom(const ClientSafeBrowsingReportRequest_HTTPRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientSafeBrowsingReportRequest_HTTPRequest::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->headers())) return false;
  return true;
}

void ClientSafeBrowsingReportRequest_HTTPRequest::Swap(ClientSafeBrowsingReportRequest_HTTPRequest* other) {
  if (other != this) {
    std::swap(firstline_, other->firstline_);
    headers_.Swap(&other->headers_);
    std::swap(body_, other->body_);
    std::swap(bodydigest_, other->bodydigest_);
    std::swap(bodylength_, other->bodylength_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_HTTPRequest::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::kCodeFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::kReasonFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::kVersionFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::InitAsDefaultInstance() {
}

ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine(const ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  code_ = 0;
  reason_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::~ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::SharedDtor() {
  if (reason_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete reason_;
  }
  if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete version_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine& ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine* ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine* ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::New() const {
  return new ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine;
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::Clear() {
  if (_has_bits_[0 / 32] & 7) {
    code_ = 0;
    if (has_reason()) {
      if (reason_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        reason_->clear();
      }
    }
    if (has_version()) {
      if (version_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        version_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 code = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
          set_has_code();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_reason;
        break;
      }

      // optional bytes reason = 2;
      case 2: {
        if (tag == 18) {
         parse_reason:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_reason()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_version;
        break;
      }

      // optional bytes version = 3;
      case 3: {
        if (tag == 26) {
         parse_version:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_version()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
  // optional int32 code = 1;
  if (has_code()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->code(), output);
  }

  // optional bytes reason = 2;
  if (has_reason()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->reason(), output);
  }

  // optional bytes version = 3;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->version(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine)
}

int ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional int32 code = 1;
    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

    // optional bytes reason = 2;
    if (has_reason()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->reason());
    }

    // optional bytes version = 3;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->version());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine*>(&from));
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::MergeFrom(const ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_code()) {
      set_code(from.code());
    }
    if (from.has_reason()) {
      set_reason(from.reason());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::CopyFrom(const ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::IsInitialized() const {

  return true;
}

void ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::Swap(ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine* other) {
  if (other != this) {
    std::swap(code_, other->code_);
    std::swap(reason_, other->reason_);
    std::swap(version_, other->version_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_HTTPResponse::kFirstlineFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse::kHeadersFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse::kBodyFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse::kBodydigestFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse::kBodylengthFieldNumber;
const int ClientSafeBrowsingReportRequest_HTTPResponse::kRemoteIpFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_HTTPResponse::ClientSafeBrowsingReportRequest_HTTPResponse()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
}

void ClientSafeBrowsingReportRequest_HTTPResponse::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  firstline_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine*>(
      ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::internal_default_instance());
#else
  firstline_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine*>(&::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::default_instance());
#endif
}

ClientSafeBrowsingReportRequest_HTTPResponse::ClientSafeBrowsingReportRequest_HTTPResponse(const ClientSafeBrowsingReportRequest_HTTPResponse& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
}

void ClientSafeBrowsingReportRequest_HTTPResponse::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  firstline_ = NULL;
  body_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bodydigest_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bodylength_ = 0;
  remote_ip_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_HTTPResponse::~ClientSafeBrowsingReportRequest_HTTPResponse() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_HTTPResponse::SharedDtor() {
  if (body_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete body_;
  }
  if (bodydigest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete bodydigest_;
  }
  if (remote_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete remote_ip_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete firstline_;
  }
}

void ClientSafeBrowsingReportRequest_HTTPResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_HTTPResponse& ClientSafeBrowsingReportRequest_HTTPResponse::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_HTTPResponse* ClientSafeBrowsingReportRequest_HTTPResponse::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_HTTPResponse* ClientSafeBrowsingReportRequest_HTTPResponse::New() const {
  return new ClientSafeBrowsingReportRequest_HTTPResponse;
}

void ClientSafeBrowsingReportRequest_HTTPResponse::Clear() {
  if (_has_bits_[0 / 32] & 61) {
    if (has_firstline()) {
      if (firstline_ != NULL) firstline_->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::Clear();
    }
    if (has_body()) {
      if (body_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        body_->clear();
      }
    }
    if (has_bodydigest()) {
      if (bodydigest_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        bodydigest_->clear();
      }
    }
    bodylength_ = 0;
    if (has_remote_ip()) {
      if (remote_ip_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        remote_ip_->clear();
      }
    }
  }
  headers_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_HTTPResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine firstline = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_firstline()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_headers;
        break;
      }

      // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
      case 2: {
        if (tag == 18) {
         parse_headers:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_headers()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_headers;
        if (input->ExpectTag(26)) goto parse_body;
        break;
      }

      // optional bytes body = 3;
      case 3: {
        if (tag == 26) {
         parse_body:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_body()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_bodydigest;
        break;
      }

      // optional bytes bodydigest = 4;
      case 4: {
        if (tag == 34) {
         parse_bodydigest:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_bodydigest()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_bodylength;
        break;
      }

      // optional int32 bodylength = 5;
      case 5: {
        if (tag == 40) {
         parse_bodylength:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bodylength_)));
          set_has_bodylength();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_remote_ip;
        break;
      }

      // optional bytes remote_ip = 6;
      case 6: {
        if (tag == 50) {
         parse_remote_ip:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_remote_ip()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_HTTPResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
  // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine firstline = 1;
  if (has_firstline()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->firstline(), output);
  }

  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
  for (int i = 0; i < this->headers_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->headers(i), output);
  }

  // optional bytes body = 3;
  if (has_body()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      3, this->body(), output);
  }

  // optional bytes bodydigest = 4;
  if (has_bodydigest()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      4, this->bodydigest(), output);
  }

  // optional int32 bodylength = 5;
  if (has_bodylength()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->bodylength(), output);
  }

  // optional bytes remote_ip = 6;
  if (has_remote_ip()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      6, this->remote_ip(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse)
}

int ClientSafeBrowsingReportRequest_HTTPResponse::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse.FirstLine firstline = 1;
    if (has_firstline()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->firstline());
    }

    // optional bytes body = 3;
    if (has_body()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->body());
    }

    // optional bytes bodydigest = 4;
    if (has_bodydigest()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->bodydigest());
    }

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

    // optional bytes remote_ip = 6;
    if (has_remote_ip()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->remote_ip());
    }

  }
  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.HTTPHeader headers = 2;
  total_size += 1 * this->headers_size();
  for (int i = 0; i < this->headers_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->headers(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_HTTPResponse::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_HTTPResponse*>(&from));
}

void ClientSafeBrowsingReportRequest_HTTPResponse::MergeFrom(const ClientSafeBrowsingReportRequest_HTTPResponse& from) {
  GOOGLE_CHECK_NE(&from, this);
  headers_.MergeFrom(from.headers_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_firstline()) {
      mutable_firstline()->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse_FirstLine::MergeFrom(from.firstline());
    }
    if (from.has_body()) {
      set_body(from.body());
    }
    if (from.has_bodydigest()) {
      set_bodydigest(from.bodydigest());
    }
    if (from.has_bodylength()) {
      set_bodylength(from.bodylength());
    }
    if (from.has_remote_ip()) {
      set_remote_ip(from.remote_ip());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_HTTPResponse::CopyFrom(const ClientSafeBrowsingReportRequest_HTTPResponse& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientSafeBrowsingReportRequest_HTTPResponse::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->headers())) return false;
  return true;
}

void ClientSafeBrowsingReportRequest_HTTPResponse::Swap(ClientSafeBrowsingReportRequest_HTTPResponse* other) {
  if (other != this) {
    std::swap(firstline_, other->firstline_);
    headers_.Swap(&other->headers_);
    std::swap(body_, other->body_);
    std::swap(bodydigest_, other->bodydigest_);
    std::swap(bodylength_, other->bodylength_);
    std::swap(remote_ip_, other->remote_ip_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_HTTPResponse::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest_Resource::kIdFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kUrlFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kRequestFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kResponseFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kParentIdFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kChildIdsFieldNumber;
const int ClientSafeBrowsingReportRequest_Resource::kTagNameFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest_Resource::ClientSafeBrowsingReportRequest_Resource()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
}

void ClientSafeBrowsingReportRequest_Resource::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  request_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest*>(
      ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest::internal_default_instance());
#else
  request_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest*>(&::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  response_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse*>(
      ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse::internal_default_instance());
#else
  response_ = const_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse*>(&::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse::default_instance());
#endif
}

ClientSafeBrowsingReportRequest_Resource::ClientSafeBrowsingReportRequest_Resource(const ClientSafeBrowsingReportRequest_Resource& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
}

void ClientSafeBrowsingReportRequest_Resource::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  id_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  request_ = NULL;
  response_ = NULL;
  parent_id_ = 0;
  tag_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest_Resource::~ClientSafeBrowsingReportRequest_Resource() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest_Resource::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (tag_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete tag_name_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete request_;
    delete response_;
  }
}

void ClientSafeBrowsingReportRequest_Resource::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest_Resource& ClientSafeBrowsingReportRequest_Resource::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest_Resource* ClientSafeBrowsingReportRequest_Resource::default_instance_ = NULL;

ClientSafeBrowsingReportRequest_Resource* ClientSafeBrowsingReportRequest_Resource::New() const {
  return new ClientSafeBrowsingReportRequest_Resource;
}

void ClientSafeBrowsingReportRequest_Resource::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientSafeBrowsingReportRequest_Resource*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 95) {
    ZR_(id_, parent_id_);
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_request()) {
      if (request_ != NULL) request_->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest::Clear();
    }
    if (has_response()) {
      if (response_ != NULL) response_->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse::Clear();
    }
    if (has_tag_name()) {
      if (tag_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        tag_name_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  child_ids_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest_Resource::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required int32 id = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &id_)));
          set_has_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_url;
        break;
      }

      // optional string url = 2;
      case 2: {
        if (tag == 18) {
         parse_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_request;
        break;
      }

      // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest request = 3;
      case 3: {
        if (tag == 26) {
         parse_request:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_request()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_response;
        break;
      }

      // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse response = 4;
      case 4: {
        if (tag == 34) {
         parse_response:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_response()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_parent_id;
        break;
      }

      // optional int32 parent_id = 5;
      case 5: {
        if (tag == 40) {
         parse_parent_id:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &parent_id_)));
          set_has_parent_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_child_ids;
        break;
      }

      // repeated int32 child_ids = 6;
      case 6: {
        if (tag == 48) {
         parse_child_ids:
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 1, 48, input, this->mutable_child_ids())));
        } else if (tag == 50) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, this->mutable_child_ids())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_child_ids;
        if (input->ExpectTag(58)) goto parse_tag_name;
        break;
      }

      // optional string tag_name = 7;
      case 7: {
        if (tag == 58) {
         parse_tag_name:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest_Resource::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
  // required int32 id = 1;
  if (has_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->id(), output);
  }

  // optional string url = 2;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->url(), output);
  }

  // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest request = 3;
  if (has_request()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      3, this->request(), output);
  }

  // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse response = 4;
  if (has_response()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->response(), output);
  }

  // optional int32 parent_id = 5;
  if (has_parent_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->parent_id(), output);
  }

  // repeated int32 child_ids = 6;
  for (int i = 0; i < this->child_ids_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(
      6, this->child_ids(i), output);
  }

  // optional string tag_name = 7;
  if (has_tag_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->tag_name(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest.Resource)
}

int ClientSafeBrowsingReportRequest_Resource::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required int32 id = 1;
    if (has_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->id());
    }

    // optional string url = 2;
    if (has_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->url());
    }

    // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPRequest request = 3;
    if (has_request()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->request());
    }

    // optional .safe_browsing.ClientSafeBrowsingReportRequest.HTTPResponse response = 4;
    if (has_response()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->response());
    }

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

    // optional string tag_name = 7;
    if (has_tag_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag_name());
    }

  }
  // repeated int32 child_ids = 6;
  {
    int data_size = 0;
    for (int i = 0; i < this->child_ids_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        Int32Size(this->child_ids(i));
    }
    total_size += 1 * this->child_ids_size() + data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest_Resource::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest_Resource*>(&from));
}

void ClientSafeBrowsingReportRequest_Resource::MergeFrom(const ClientSafeBrowsingReportRequest_Resource& from) {
  GOOGLE_CHECK_NE(&from, this);
  child_ids_.MergeFrom(from.child_ids_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_id()) {
      set_id(from.id());
    }
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_request()) {
      mutable_request()->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPRequest::MergeFrom(from.request());
    }
    if (from.has_response()) {
      mutable_response()->::safe_browsing::ClientSafeBrowsingReportRequest_HTTPResponse::MergeFrom(from.response());
    }
    if (from.has_parent_id()) {
      set_parent_id(from.parent_id());
    }
    if (from.has_tag_name()) {
      set_tag_name(from.tag_name());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest_Resource::CopyFrom(const ClientSafeBrowsingReportRequest_Resource& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

  if (has_request()) {
    if (!this->request().IsInitialized()) return false;
  }
  if (has_response()) {
    if (!this->response().IsInitialized()) return false;
  }
  return true;
}

void ClientSafeBrowsingReportRequest_Resource::Swap(ClientSafeBrowsingReportRequest_Resource* other) {
  if (other != this) {
    std::swap(id_, other->id_);
    std::swap(url_, other->url_);
    std::swap(request_, other->request_);
    std::swap(response_, other->response_);
    std::swap(parent_id_, other->parent_id_);
    child_ids_.Swap(&other->child_ids_);
    std::swap(tag_name_, other->tag_name_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest_Resource::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest.Resource";
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int ClientSafeBrowsingReportRequest::kTypeFieldNumber;
const int ClientSafeBrowsingReportRequest::kDownloadVerdictFieldNumber;
const int ClientSafeBrowsingReportRequest::kUrlFieldNumber;
const int ClientSafeBrowsingReportRequest::kPageUrlFieldNumber;
const int ClientSafeBrowsingReportRequest::kReferrerUrlFieldNumber;
const int ClientSafeBrowsingReportRequest::kResourcesFieldNumber;
const int ClientSafeBrowsingReportRequest::kCompleteFieldNumber;
const int ClientSafeBrowsingReportRequest::kClientAsnFieldNumber;
const int ClientSafeBrowsingReportRequest::kClientCountryFieldNumber;
const int ClientSafeBrowsingReportRequest::kDidProceedFieldNumber;
const int ClientSafeBrowsingReportRequest::kRepeatVisitFieldNumber;
const int ClientSafeBrowsingReportRequest::kTokenFieldNumber;
#endif  // !_MSC_VER

ClientSafeBrowsingReportRequest::ClientSafeBrowsingReportRequest()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:safe_browsing.ClientSafeBrowsingReportRequest)
}

void ClientSafeBrowsingReportRequest::InitAsDefaultInstance() {
}

ClientSafeBrowsingReportRequest::ClientSafeBrowsingReportRequest(const ClientSafeBrowsingReportRequest& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:safe_browsing.ClientSafeBrowsingReportRequest)
}

void ClientSafeBrowsingReportRequest::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  type_ = 0;
  download_verdict_ = 0;
  url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  page_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  referrer_url_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  complete_ = false;
  client_country_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  did_proceed_ = false;
  repeat_visit_ = false;
  token_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

ClientSafeBrowsingReportRequest::~ClientSafeBrowsingReportRequest() {
  // @@protoc_insertion_point(destructor:safe_browsing.ClientSafeBrowsingReportRequest)
  SharedDtor();
}

void ClientSafeBrowsingReportRequest::SharedDtor() {
  if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete url_;
  }
  if (page_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete page_url_;
  }
  if (referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete referrer_url_;
  }
  if (client_country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_country_;
  }
  if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete token_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void ClientSafeBrowsingReportRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ClientSafeBrowsingReportRequest& ClientSafeBrowsingReportRequest::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_chromium_2fchrome_2fcommon_2fsafe_5fbrowsing_2fcsd_2eproto();
#endif
  return *default_instance_;
}

ClientSafeBrowsingReportRequest* ClientSafeBrowsingReportRequest::default_instance_ = NULL;

ClientSafeBrowsingReportRequest* ClientSafeBrowsingReportRequest::New() const {
  return new ClientSafeBrowsingReportRequest;
}

void ClientSafeBrowsingReportRequest::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<ClientSafeBrowsingReportRequest*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 95) {
    ZR_(type_, download_verdict_);
    if (has_url()) {
      if (url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        url_->clear();
      }
    }
    if (has_page_url()) {
      if (page_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        page_url_->clear();
      }
    }
    if (has_referrer_url()) {
      if (referrer_url_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        referrer_url_->clear();
      }
    }
    complete_ = false;
  }
  if (_has_bits_[8 / 32] & 3840) {
    ZR_(did_proceed_, repeat_visit_);
    if (has_client_country()) {
      if (client_country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        client_country_->clear();
      }
    }
    if (has_token()) {
      if (token_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        token_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  resources_.Clear();
  client_asn_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool ClientSafeBrowsingReportRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:safe_browsing.ClientSafeBrowsingReportRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string url = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_page_url;
        break;
      }

      // optional string page_url = 2;
      case 2: {
        if (tag == 18) {
         parse_page_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_page_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_referrer_url;
        break;
      }

      // optional string referrer_url = 3;
      case 3: {
        if (tag == 26) {
         parse_referrer_url:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_referrer_url()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_resources;
        break;
      }

      // repeated .safe_browsing.ClientSafeBrowsingReportRequest.Resource resources = 4;
      case 4: {
        if (tag == 34) {
         parse_resources:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_resources()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_resources;
        if (input->ExpectTag(40)) goto parse_complete;
        break;
      }

      // optional bool complete = 5;
      case 5: {
        if (tag == 40) {
         parse_complete:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &complete_)));
          set_has_complete();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_client_asn;
        break;
      }

      // repeated string client_asn = 6;
      case 6: {
        if (tag == 50) {
         parse_client_asn:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_client_asn()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_client_asn;
        if (input->ExpectTag(58)) goto parse_client_country;
        break;
      }

      // optional string client_country = 7;
      case 7: {
        if (tag == 58) {
         parse_client_country:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_client_country()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(64)) goto parse_did_proceed;
        break;
      }

      // optional bool did_proceed = 8;
      case 8: {
        if (tag == 64) {
         parse_did_proceed:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &did_proceed_)));
          set_has_did_proceed();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(72)) goto parse_repeat_visit;
        break;
      }

      // optional bool repeat_visit = 9;
      case 9: {
        if (tag == 72) {
         parse_repeat_visit:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &repeat_visit_)));
          set_has_repeat_visit();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(80)) goto parse_type;
        break;
      }

      // optional .safe_browsing.ClientSafeBrowsingReportRequest.ReportType type = 10;
      case 10: {
        if (tag == 80) {
         parse_type:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientSafeBrowsingReportRequest_ReportType_IsValid(value)) {
            set_type(static_cast< ::safe_browsing::ClientSafeBrowsingReportRequest_ReportType >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(88)) goto parse_download_verdict;
        break;
      }

      // optional .safe_browsing.ClientDownloadResponse.Verdict download_verdict = 11;
      case 11: {
        if (tag == 88) {
         parse_download_verdict:
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::safe_browsing::ClientDownloadResponse_Verdict_IsValid(value)) {
            set_download_verdict(static_cast< ::safe_browsing::ClientDownloadResponse_Verdict >(value));
          } else {
            unknown_fields_stream.WriteVarint32(tag);
            unknown_fields_stream.WriteVarint32(value);
          }
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(122)) goto parse_token;
        break;
      }

      // optional bytes token = 15;
      case 15: {
        if (tag == 122) {
         parse_token:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_token()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:safe_browsing.ClientSafeBrowsingReportRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:safe_browsing.ClientSafeBrowsingReportRequest)
  return false;
#undef DO_
}

void ClientSafeBrowsingReportRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:safe_browsing.ClientSafeBrowsingReportRequest)
  // optional string url = 1;
  if (has_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->url(), output);
  }

  // optional string page_url = 2;
  if (has_page_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->page_url(), output);
  }

  // optional string referrer_url = 3;
  if (has_referrer_url()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->referrer_url(), output);
  }

  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.Resource resources = 4;
  for (int i = 0; i < this->resources_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->resources(i), output);
  }

  // optional bool complete = 5;
  if (has_complete()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->complete(), output);
  }

  // repeated string client_asn = 6;
  for (int i = 0; i < this->client_asn_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteString(
      6, this->client_asn(i), output);
  }

  // optional string client_country = 7;
  if (has_client_country()) {
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->client_country(), output);
  }

  // optional bool did_proceed = 8;
  if (has_did_proceed()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->did_proceed(), output);
  }

  // optional bool repeat_visit = 9;
  if (has_repeat_visit()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->repeat_visit(), output);
  }

  // optional .safe_browsing.ClientSafeBrowsingReportRequest.ReportType type = 10;
  if (has_type()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      10, this->type(), output);
  }

  // optional .safe_browsing.ClientDownloadResponse.Verdict download_verdict = 11;
  if (has_download_verdict()) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      11, this->download_verdict(), output);
  }

  // optional bytes token = 15;
  if (has_token()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      15, this->token(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:safe_browsing.ClientSafeBrowsingReportRequest)
}

int ClientSafeBrowsingReportRequest::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .safe_browsing.ClientSafeBrowsingReportRequest.ReportType type = 10;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
    }

    // optional .safe_browsing.ClientDownloadResponse.Verdict download_verdict = 11;
    if (has_download_verdict()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->download_verdict());
    }

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

    // optional string page_url = 2;
    if (has_page_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->page_url());
    }

    // optional string referrer_url = 3;
    if (has_referrer_url()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->referrer_url());
    }

    // optional bool complete = 5;
    if (has_complete()) {
      total_size += 1 + 1;
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // optional string client_country = 7;
    if (has_client_country()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->client_country());
    }

    // optional bool did_proceed = 8;
    if (has_did_proceed()) {
      total_size += 1 + 1;
    }

    // optional bool repeat_visit = 9;
    if (has_repeat_visit()) {
      total_size += 1 + 1;
    }

    // optional bytes token = 15;
    if (has_token()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->token());
    }

  }
  // repeated .safe_browsing.ClientSafeBrowsingReportRequest.Resource resources = 4;
  total_size += 1 * this->resources_size();
  for (int i = 0; i < this->resources_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->resources(i));
  }

  // repeated string client_asn = 6;
  total_size += 1 * this->client_asn_size();
  for (int i = 0; i < this->client_asn_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->client_asn(i));
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientSafeBrowsingReportRequest::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const ClientSafeBrowsingReportRequest*>(&from));
}

void ClientSafeBrowsingReportRequest::MergeFrom(const ClientSafeBrowsingReportRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  resources_.MergeFrom(from.resources_);
  client_asn_.MergeFrom(from.client_asn_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_type()) {
      set_type(from.type());
    }
    if (from.has_download_verdict()) {
      set_download_verdict(from.download_verdict());
    }
    if (from.has_url()) {
      set_url(from.url());
    }
    if (from.has_page_url()) {
      set_page_url(from.page_url());
    }
    if (from.has_referrer_url()) {
      set_referrer_url(from.referrer_url());
    }
    if (from.has_complete()) {
      set_complete(from.complete());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_client_country()) {
      set_client_country(from.client_country());
    }
    if (from.has_did_proceed()) {
      set_did_proceed(from.did_proceed());
    }
    if (from.has_repeat_visit()) {
      set_repeat_visit(from.repeat_visit());
    }
    if (from.has_token()) {
      set_token(from.token());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void ClientSafeBrowsingReportRequest::CopyFrom(const ClientSafeBrowsingReportRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientSafeBrowsingReportRequest::IsInitialized() const {

  if (!::google::protobuf::internal::AllAreInitialized(this->resources())) return false;
  return true;
}

void ClientSafeBrowsingReportRequest::Swap(ClientSafeBrowsingReportRequest* other) {
  if (other != this) {
    std::swap(type_, other->type_);
    std::swap(download_verdict_, other->download_verdict_);
    std::swap(url_, other->url_);
    std::swap(page_url_, other->page_url_);
    std::swap(referrer_url_, other->referrer_url_);
    resources_.Swap(&other->resources_);
    std::swap(complete_, other->complete_);
    client_asn_.Swap(&other->client_asn_);
    std::swap(client_country_, other->client_country_);
    std::swap(did_proceed_, other->did_proceed_);
    std::swap(repeat_visit_, other->repeat_visit_);
    std::swap(token_, other->token_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string ClientSafeBrowsingReportRequest::GetTypeName() const {
  return "safe_browsing.ClientSafeBrowsingReportRequest";
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace safe_browsing

// @@protoc_insertion_point(global_scope)