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

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "Global_Uconnect_GNSS.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace com {
namespace fca {
namespace uconnect {
namespace global {
class DestinationDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Destination> {
} _Destination_default_instance_;
class AddressDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Address> {
} _Address_default_instance_;
class PointOfInterestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<PointOfInterest> {
} _PointOfInterest_default_instance_;
class LocationDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Location> {
} _Location_default_instance_;

namespace protobuf_Global_5fUconnect_5fGNSS_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[4];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[2];

}  // namespace

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
    const TableStruct::entries[] = {
  {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
    const TableStruct::aux[] = {
  ::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
    TableStruct::schema[] = {
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, location_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, destinationpoi_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, destinationaddress_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, createtimestamp_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Destination, routepreference_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, countryname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, countrycode_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, provincename_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, provincecode_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, cityname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, citycode_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, districtcountyname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, districtcountycode_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, streetname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, secondunitdesignator_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, streetcode_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, housenumber_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Address, postalcode_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, category_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, phonenumber_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, description_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PointOfInterest, url_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, positionlatitude_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, positionlongitude_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, estimatedpositionerror_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, positionaltitude_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, gpsfixtypeenum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, isgpsfixnotavailable_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, estimatedaltitudeerror_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Location, positiondirection_),
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, -1, sizeof(Destination)},
  { 10, -1, sizeof(Address)},
  { 28, -1, sizeof(PointOfInterest)},
  { 39, -1, sizeof(Location)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_Destination_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_Address_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_PointOfInterest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_Location_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "Global_Uconnect_GNSS.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

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

}  // namespace

void TableStruct::Shutdown() {
  _Destination_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _Address_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _PointOfInterest_default_instance_.Shutdown();
  delete file_level_metadata[2].reflection;
  _Location_default_instance_.Shutdown();
  delete file_level_metadata[3].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _Destination_default_instance_.DefaultConstruct();
  _Address_default_instance_.DefaultConstruct();
  _PointOfInterest_default_instance_.DefaultConstruct();
  _Location_default_instance_.DefaultConstruct();
  _Destination_default_instance_.get_mutable()->location_ = const_cast< ::com::fca::uconnect::global::Location*>(
      ::com::fca::uconnect::global::Location::internal_default_instance());
  _Destination_default_instance_.get_mutable()->destinationpoi_ = const_cast< ::com::fca::uconnect::global::PointOfInterest*>(
      ::com::fca::uconnect::global::PointOfInterest::internal_default_instance());
  _Destination_default_instance_.get_mutable()->destinationaddress_ = const_cast< ::com::fca::uconnect::global::Address*>(
      ::com::fca::uconnect::global::Address::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n\032Global_Uconnect_GNSS.proto\022\027com.fca.uc"
      "onnect.global\"\203\003\n\013Destination\0223\n\010locatio"
      "n\030\001 \001(\0132!.com.fca.uconnect.global.Locati"
      "on\022@\n\016destinationPoi\030\002 \001(\0132(.com.fca.uco"
      "nnect.global.PointOfInterest\022<\n\022destinat"
      "ionAddress\030\003 \001(\0132 .com.fca.uconnect.glob"
      "al.Address\022\027\n\017createTimestamp\030\004 \001(\003\022M\n\017r"
      "outePreference\030\005 \001(\01624.com.fca.uconnect."
      "global.Destination.RoutePreference\"W\n\017Ro"
      "utePreference\022\013\n\007DEFAULT\020\000\022\010\n\004FAST\020\001\022\t\n\005"
      "SHORT\020\002\022\016\n\nECONOMICAL\020\003\022\022\n\016RECOMMENDATIO"
      "N\020\004\"\252\002\n\007Address\022\023\n\013countryName\030\001 \001(\t\022\023\n\013"
      "countryCode\030\002 \001(\t\022\024\n\014provinceName\030\003 \001(\t\022"
      "\024\n\014provinceCode\030\004 \001(\t\022\020\n\010cityName\030\005 \001(\t\022"
      "\020\n\010cityCode\030\006 \001(\t\022\032\n\022districtCountyName\030"
      "\007 \001(\t\022\032\n\022districtCountyCode\030\010 \001(\t\022\022\n\nstr"
      "eetName\030\t \001(\t\022\034\n\024secondUnitDesignator\030\014 "
      "\001(\t\022\022\n\nstreetCode\030\n \001(\t\022\023\n\013houseNumber\030\013"
      " \001(\t\022\022\n\npostalCode\030\r \001(\t\"t\n\017PointOfInter"
      "est\022\014\n\004name\030\001 \001(\t\022\020\n\010category\030\002 \001(\t\022\n\n\002i"
      "d\030\003 \001(\005\022\023\n\013phoneNumber\030\004 \001(\t\022\023\n\013descript"
      "ion\030\005 \001(\t\022\013\n\003url\030\006 \001(\t\"\355\002\n\010Location\022\030\n\020p"
      "ositionLatitude\030\001 \001(\001\022\031\n\021positionLongitu"
      "de\030\002 \001(\001\022\036\n\026estimatedPositionError\030\003 \001(\005"
      "\022\030\n\020positionAltitude\030\004 \001(\001\022D\n\016gpsFixType"
      "Enum\030\005 \001(\0162,.com.fca.uconnect.global.Loc"
      "ation.GpsFixType\022\034\n\024isGPSFixNotAvailable"
      "\030\010 \001(\010\022\036\n\026estimatedAltitudeError\030\006 \001(\005\022\031"
      "\n\021positionDirection\030\007 \001(\001\"S\n\nGpsFixType\022"
      "\021\n\rID_FIX_NO_POS\020\000\022\r\n\tID_FIX_3D\020\001\022\r\n\tID_"
      "FIX_2D\020\002\022\024\n\020ID_FIX_ESTIMATED\020\003b\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1238);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "Global_Uconnect_GNSS.proto", &protobuf_RegisterTypes);
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_Global_5fUconnect_5fGNSS_2eproto

const ::google::protobuf::EnumDescriptor* Destination_RoutePreference_descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_enum_descriptors[0];
}
bool Destination_RoutePreference_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Destination_RoutePreference Destination::DEFAULT;
const Destination_RoutePreference Destination::FAST;
const Destination_RoutePreference Destination::SHORT;
const Destination_RoutePreference Destination::ECONOMICAL;
const Destination_RoutePreference Destination::RECOMMENDATION;
const Destination_RoutePreference Destination::RoutePreference_MIN;
const Destination_RoutePreference Destination::RoutePreference_MAX;
const int Destination::RoutePreference_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* Location_GpsFixType_descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_enum_descriptors[1];
}
bool Location_GpsFixType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Location_GpsFixType Location::ID_FIX_NO_POS;
const Location_GpsFixType Location::ID_FIX_3D;
const Location_GpsFixType Location::ID_FIX_2D;
const Location_GpsFixType Location::ID_FIX_ESTIMATED;
const Location_GpsFixType Location::GpsFixType_MIN;
const Location_GpsFixType Location::GpsFixType_MAX;
const int Location::GpsFixType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Destination::kLocationFieldNumber;
const int Destination::kDestinationPoiFieldNumber;
const int Destination::kDestinationAddressFieldNumber;
const int Destination::kCreateTimestampFieldNumber;
const int Destination::kRoutePreferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Destination::Destination()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.Destination)
}
Destination::Destination(const Destination& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_location()) {
    location_ = new ::com::fca::uconnect::global::Location(*from.location_);
  } else {
    location_ = NULL;
  }
  if (from.has_destinationpoi()) {
    destinationpoi_ = new ::com::fca::uconnect::global::PointOfInterest(*from.destinationpoi_);
  } else {
    destinationpoi_ = NULL;
  }
  if (from.has_destinationaddress()) {
    destinationaddress_ = new ::com::fca::uconnect::global::Address(*from.destinationaddress_);
  } else {
    destinationaddress_ = NULL;
  }
  ::memcpy(&createtimestamp_, &from.createtimestamp_,
    reinterpret_cast<char*>(&routepreference_) -
    reinterpret_cast<char*>(&createtimestamp_) + sizeof(routepreference_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.Destination)
}

void Destination::SharedCtor() {
  ::memset(&location_, 0, reinterpret_cast<char*>(&routepreference_) -
    reinterpret_cast<char*>(&location_) + sizeof(routepreference_));
  _cached_size_ = 0;
}

Destination::~Destination() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.Destination)
  SharedDtor();
}

void Destination::SharedDtor() {
  if (this != internal_default_instance()) {
    delete location_;
  }
  if (this != internal_default_instance()) {
    delete destinationpoi_;
  }
  if (this != internal_default_instance()) {
    delete destinationaddress_;
  }
}

void Destination::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Destination::descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Destination& Destination::default_instance() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  return *internal_default_instance();
}

Destination* Destination::New(::google::protobuf::Arena* arena) const {
  Destination* n = new Destination;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Destination::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.Destination)
  if (GetArenaNoVirtual() == NULL && location_ != NULL) {
    delete location_;
  }
  location_ = NULL;
  if (GetArenaNoVirtual() == NULL && destinationpoi_ != NULL) {
    delete destinationpoi_;
  }
  destinationpoi_ = NULL;
  if (GetArenaNoVirtual() == NULL && destinationaddress_ != NULL) {
    delete destinationaddress_;
  }
  destinationaddress_ = NULL;
  ::memset(&createtimestamp_, 0, reinterpret_cast<char*>(&routepreference_) -
    reinterpret_cast<char*>(&createtimestamp_) + sizeof(routepreference_));
}

bool Destination::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.Destination)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.Location location = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_location()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.PointOfInterest destinationPoi = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_destinationpoi()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Address destinationAddress = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_destinationaddress()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 createTimestamp = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &createtimestamp_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Destination.RoutePreference routePreference = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_routepreference(static_cast< ::com::fca::uconnect::global::Destination_RoutePreference >(value));
        } else {
          goto handle_unusual;
        }
        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));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.Destination)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.Destination)
  return false;
#undef DO_
}

void Destination::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.Destination)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.Location location = 1;
  if (this->has_location()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->location_, output);
  }

  // .com.fca.uconnect.global.PointOfInterest destinationPoi = 2;
  if (this->has_destinationpoi()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->destinationpoi_, output);
  }

  // .com.fca.uconnect.global.Address destinationAddress = 3;
  if (this->has_destinationaddress()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->destinationaddress_, output);
  }

  // int64 createTimestamp = 4;
  if (this->createtimestamp() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->createtimestamp(), output);
  }

  // .com.fca.uconnect.global.Destination.RoutePreference routePreference = 5;
  if (this->routepreference() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->routepreference(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.Destination)
}

::google::protobuf::uint8* Destination::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.Destination)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.Location location = 1;
  if (this->has_location()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->location_, deterministic, target);
  }

  // .com.fca.uconnect.global.PointOfInterest destinationPoi = 2;
  if (this->has_destinationpoi()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->destinationpoi_, deterministic, target);
  }

  // .com.fca.uconnect.global.Address destinationAddress = 3;
  if (this->has_destinationaddress()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->destinationaddress_, deterministic, target);
  }

  // int64 createTimestamp = 4;
  if (this->createtimestamp() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(4, this->createtimestamp(), target);
  }

  // .com.fca.uconnect.global.Destination.RoutePreference routePreference = 5;
  if (this->routepreference() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      5, this->routepreference(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.Destination)
  return target;
}

size_t Destination::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.Destination)
  size_t total_size = 0;

  // .com.fca.uconnect.global.Location location = 1;
  if (this->has_location()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->location_);
  }

  // .com.fca.uconnect.global.PointOfInterest destinationPoi = 2;
  if (this->has_destinationpoi()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->destinationpoi_);
  }

  // .com.fca.uconnect.global.Address destinationAddress = 3;
  if (this->has_destinationaddress()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->destinationaddress_);
  }

  // int64 createTimestamp = 4;
  if (this->createtimestamp() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->createtimestamp());
  }

  // .com.fca.uconnect.global.Destination.RoutePreference routePreference = 5;
  if (this->routepreference() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->routepreference());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void Destination::MergeFrom(const Destination& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.Destination)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_location()) {
    mutable_location()->::com::fca::uconnect::global::Location::MergeFrom(from.location());
  }
  if (from.has_destinationpoi()) {
    mutable_destinationpoi()->::com::fca::uconnect::global::PointOfInterest::MergeFrom(from.destinationpoi());
  }
  if (from.has_destinationaddress()) {
    mutable_destinationaddress()->::com::fca::uconnect::global::Address::MergeFrom(from.destinationaddress());
  }
  if (from.createtimestamp() != 0) {
    set_createtimestamp(from.createtimestamp());
  }
  if (from.routepreference() != 0) {
    set_routepreference(from.routepreference());
  }
}

void Destination::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.Destination)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Destination::CopyFrom(const Destination& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.Destination)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Destination::Swap(Destination* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Destination::InternalSwap(Destination* other) {
  std::swap(location_, other->location_);
  std::swap(destinationpoi_, other->destinationpoi_);
  std::swap(destinationaddress_, other->destinationaddress_);
  std::swap(createtimestamp_, other->createtimestamp_);
  std::swap(routepreference_, other->routepreference_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Destination

// .com.fca.uconnect.global.Location location = 1;
bool Destination::has_location() const {
  return this != internal_default_instance() && location_ != NULL;
}
void Destination::clear_location() {
  if (GetArenaNoVirtual() == NULL && location_ != NULL) delete location_;
  location_ = NULL;
}
const ::com::fca::uconnect::global::Location& Destination::location() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Destination.location)
  return location_ != NULL ? *location_
                         : *::com::fca::uconnect::global::Location::internal_default_instance();
}
::com::fca::uconnect::global::Location* Destination::mutable_location() {
  
  if (location_ == NULL) {
    location_ = new ::com::fca::uconnect::global::Location;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Destination.location)
  return location_;
}
::com::fca::uconnect::global::Location* Destination::release_location() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Destination.location)
  
  ::com::fca::uconnect::global::Location* temp = location_;
  location_ = NULL;
  return temp;
}
void Destination::set_allocated_location(::com::fca::uconnect::global::Location* location) {
  delete location_;
  location_ = location;
  if (location) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Destination.location)
}

// .com.fca.uconnect.global.PointOfInterest destinationPoi = 2;
bool Destination::has_destinationpoi() const {
  return this != internal_default_instance() && destinationpoi_ != NULL;
}
void Destination::clear_destinationpoi() {
  if (GetArenaNoVirtual() == NULL && destinationpoi_ != NULL) delete destinationpoi_;
  destinationpoi_ = NULL;
}
const ::com::fca::uconnect::global::PointOfInterest& Destination::destinationpoi() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Destination.destinationPoi)
  return destinationpoi_ != NULL ? *destinationpoi_
                         : *::com::fca::uconnect::global::PointOfInterest::internal_default_instance();
}
::com::fca::uconnect::global::PointOfInterest* Destination::mutable_destinationpoi() {
  
  if (destinationpoi_ == NULL) {
    destinationpoi_ = new ::com::fca::uconnect::global::PointOfInterest;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Destination.destinationPoi)
  return destinationpoi_;
}
::com::fca::uconnect::global::PointOfInterest* Destination::release_destinationpoi() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Destination.destinationPoi)
  
  ::com::fca::uconnect::global::PointOfInterest* temp = destinationpoi_;
  destinationpoi_ = NULL;
  return temp;
}
void Destination::set_allocated_destinationpoi(::com::fca::uconnect::global::PointOfInterest* destinationpoi) {
  delete destinationpoi_;
  destinationpoi_ = destinationpoi;
  if (destinationpoi) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Destination.destinationPoi)
}

// .com.fca.uconnect.global.Address destinationAddress = 3;
bool Destination::has_destinationaddress() const {
  return this != internal_default_instance() && destinationaddress_ != NULL;
}
void Destination::clear_destinationaddress() {
  if (GetArenaNoVirtual() == NULL && destinationaddress_ != NULL) delete destinationaddress_;
  destinationaddress_ = NULL;
}
const ::com::fca::uconnect::global::Address& Destination::destinationaddress() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Destination.destinationAddress)
  return destinationaddress_ != NULL ? *destinationaddress_
                         : *::com::fca::uconnect::global::Address::internal_default_instance();
}
::com::fca::uconnect::global::Address* Destination::mutable_destinationaddress() {
  
  if (destinationaddress_ == NULL) {
    destinationaddress_ = new ::com::fca::uconnect::global::Address;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Destination.destinationAddress)
  return destinationaddress_;
}
::com::fca::uconnect::global::Address* Destination::release_destinationaddress() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Destination.destinationAddress)
  
  ::com::fca::uconnect::global::Address* temp = destinationaddress_;
  destinationaddress_ = NULL;
  return temp;
}
void Destination::set_allocated_destinationaddress(::com::fca::uconnect::global::Address* destinationaddress) {
  delete destinationaddress_;
  destinationaddress_ = destinationaddress;
  if (destinationaddress) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Destination.destinationAddress)
}

// int64 createTimestamp = 4;
void Destination::clear_createtimestamp() {
  createtimestamp_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 Destination::createtimestamp() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Destination.createTimestamp)
  return createtimestamp_;
}
void Destination::set_createtimestamp(::google::protobuf::int64 value) {
  
  createtimestamp_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Destination.createTimestamp)
}

// .com.fca.uconnect.global.Destination.RoutePreference routePreference = 5;
void Destination::clear_routepreference() {
  routepreference_ = 0;
}
::com::fca::uconnect::global::Destination_RoutePreference Destination::routepreference() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Destination.routePreference)
  return static_cast< ::com::fca::uconnect::global::Destination_RoutePreference >(routepreference_);
}
void Destination::set_routepreference(::com::fca::uconnect::global::Destination_RoutePreference value) {
  
  routepreference_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Destination.routePreference)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Address::kCountryNameFieldNumber;
const int Address::kCountryCodeFieldNumber;
const int Address::kProvinceNameFieldNumber;
const int Address::kProvinceCodeFieldNumber;
const int Address::kCityNameFieldNumber;
const int Address::kCityCodeFieldNumber;
const int Address::kDistrictCountyNameFieldNumber;
const int Address::kDistrictCountyCodeFieldNumber;
const int Address::kStreetNameFieldNumber;
const int Address::kSecondUnitDesignatorFieldNumber;
const int Address::kStreetCodeFieldNumber;
const int Address::kHouseNumberFieldNumber;
const int Address::kPostalCodeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Address::Address()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.Address)
}
Address::Address(const Address& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  countryname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.countryname().size() > 0) {
    countryname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.countryname_);
  }
  countrycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.countrycode().size() > 0) {
    countrycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.countrycode_);
  }
  provincename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.provincename().size() > 0) {
    provincename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.provincename_);
  }
  provincecode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.provincecode().size() > 0) {
    provincecode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.provincecode_);
  }
  cityname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.cityname().size() > 0) {
    cityname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cityname_);
  }
  citycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.citycode().size() > 0) {
    citycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.citycode_);
  }
  districtcountyname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.districtcountyname().size() > 0) {
    districtcountyname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.districtcountyname_);
  }
  districtcountycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.districtcountycode().size() > 0) {
    districtcountycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.districtcountycode_);
  }
  streetname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.streetname().size() > 0) {
    streetname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.streetname_);
  }
  streetcode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.streetcode().size() > 0) {
    streetcode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.streetcode_);
  }
  housenumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.housenumber().size() > 0) {
    housenumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.housenumber_);
  }
  secondunitdesignator_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.secondunitdesignator().size() > 0) {
    secondunitdesignator_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.secondunitdesignator_);
  }
  postalcode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.postalcode().size() > 0) {
    postalcode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.postalcode_);
  }
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.Address)
}

void Address::SharedCtor() {
  countryname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  countrycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincecode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cityname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  citycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountyname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountycode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetcode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  housenumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  secondunitdesignator_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  postalcode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _cached_size_ = 0;
}

Address::~Address() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.Address)
  SharedDtor();
}

void Address::SharedDtor() {
  countryname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  countrycode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincecode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cityname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  citycode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountyname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountycode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetcode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  housenumber_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  secondunitdesignator_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  postalcode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Address::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Address::descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Address& Address::default_instance() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  return *internal_default_instance();
}

Address* Address::New(::google::protobuf::Arena* arena) const {
  Address* n = new Address;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Address::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.Address)
  countryname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  countrycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  provincecode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cityname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  citycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountyname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  districtcountycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  streetcode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  housenumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  secondunitdesignator_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  postalcode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

bool Address::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.Address)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string countryName = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_countryname()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->countryname().data(), this->countryname().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.countryName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string countryCode = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_countrycode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->countrycode().data(), this->countrycode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.countryCode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string provinceName = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_provincename()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->provincename().data(), this->provincename().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.provinceName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string provinceCode = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_provincecode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->provincecode().data(), this->provincecode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.provinceCode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cityName = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cityname()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->cityname().data(), this->cityname().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.cityName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cityCode = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_citycode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->citycode().data(), this->citycode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.cityCode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string districtCountyName = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_districtcountyname()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->districtcountyname().data(), this->districtcountyname().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.districtCountyName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string districtCountyCode = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_districtcountycode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->districtcountycode().data(), this->districtcountycode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.districtCountyCode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string streetName = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_streetname()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->streetname().data(), this->streetname().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.streetName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string streetCode = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_streetcode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->streetcode().data(), this->streetcode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.streetCode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string houseNumber = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_housenumber()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->housenumber().data(), this->housenumber().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.houseNumber"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string secondUnitDesignator = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_secondunitdesignator()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->secondunitdesignator().data(), this->secondunitdesignator().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.secondUnitDesignator"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string postalCode = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_postalcode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->postalcode().data(), this->postalcode().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Address.postalCode"));
        } else {
          goto handle_unusual;
        }
        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));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.Address)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.Address)
  return false;
#undef DO_
}

void Address::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.Address)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string countryName = 1;
  if (this->countryname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->countryname().data(), this->countryname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.countryName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->countryname(), output);
  }

  // string countryCode = 2;
  if (this->countrycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->countrycode().data(), this->countrycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.countryCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->countrycode(), output);
  }

  // string provinceName = 3;
  if (this->provincename().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->provincename().data(), this->provincename().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.provinceName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->provincename(), output);
  }

  // string provinceCode = 4;
  if (this->provincecode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->provincecode().data(), this->provincecode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.provinceCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->provincecode(), output);
  }

  // string cityName = 5;
  if (this->cityname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cityname().data(), this->cityname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.cityName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->cityname(), output);
  }

  // string cityCode = 6;
  if (this->citycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->citycode().data(), this->citycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.cityCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->citycode(), output);
  }

  // string districtCountyName = 7;
  if (this->districtcountyname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->districtcountyname().data(), this->districtcountyname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.districtCountyName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->districtcountyname(), output);
  }

  // string districtCountyCode = 8;
  if (this->districtcountycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->districtcountycode().data(), this->districtcountycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.districtCountyCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->districtcountycode(), output);
  }

  // string streetName = 9;
  if (this->streetname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->streetname().data(), this->streetname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.streetName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->streetname(), output);
  }

  // string streetCode = 10;
  if (this->streetcode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->streetcode().data(), this->streetcode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.streetCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      10, this->streetcode(), output);
  }

  // string houseNumber = 11;
  if (this->housenumber().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->housenumber().data(), this->housenumber().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.houseNumber");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->housenumber(), output);
  }

  // string secondUnitDesignator = 12;
  if (this->secondunitdesignator().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->secondunitdesignator().data(), this->secondunitdesignator().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.secondUnitDesignator");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      12, this->secondunitdesignator(), output);
  }

  // string postalCode = 13;
  if (this->postalcode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->postalcode().data(), this->postalcode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.postalCode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      13, this->postalcode(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.Address)
}

::google::protobuf::uint8* Address::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.Address)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string countryName = 1;
  if (this->countryname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->countryname().data(), this->countryname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.countryName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->countryname(), target);
  }

  // string countryCode = 2;
  if (this->countrycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->countrycode().data(), this->countrycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.countryCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->countrycode(), target);
  }

  // string provinceName = 3;
  if (this->provincename().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->provincename().data(), this->provincename().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.provinceName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->provincename(), target);
  }

  // string provinceCode = 4;
  if (this->provincecode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->provincecode().data(), this->provincecode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.provinceCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->provincecode(), target);
  }

  // string cityName = 5;
  if (this->cityname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cityname().data(), this->cityname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.cityName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->cityname(), target);
  }

  // string cityCode = 6;
  if (this->citycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->citycode().data(), this->citycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.cityCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->citycode(), target);
  }

  // string districtCountyName = 7;
  if (this->districtcountyname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->districtcountyname().data(), this->districtcountyname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.districtCountyName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->districtcountyname(), target);
  }

  // string districtCountyCode = 8;
  if (this->districtcountycode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->districtcountycode().data(), this->districtcountycode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.districtCountyCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->districtcountycode(), target);
  }

  // string streetName = 9;
  if (this->streetname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->streetname().data(), this->streetname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.streetName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        9, this->streetname(), target);
  }

  // string streetCode = 10;
  if (this->streetcode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->streetcode().data(), this->streetcode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.streetCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        10, this->streetcode(), target);
  }

  // string houseNumber = 11;
  if (this->housenumber().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->housenumber().data(), this->housenumber().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.houseNumber");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        11, this->housenumber(), target);
  }

  // string secondUnitDesignator = 12;
  if (this->secondunitdesignator().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->secondunitdesignator().data(), this->secondunitdesignator().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.secondUnitDesignator");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        12, this->secondunitdesignator(), target);
  }

  // string postalCode = 13;
  if (this->postalcode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->postalcode().data(), this->postalcode().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.Address.postalCode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        13, this->postalcode(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.Address)
  return target;
}

size_t Address::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.Address)
  size_t total_size = 0;

  // string countryName = 1;
  if (this->countryname().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->countryname());
  }

  // string countryCode = 2;
  if (this->countrycode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->countrycode());
  }

  // string provinceName = 3;
  if (this->provincename().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->provincename());
  }

  // string provinceCode = 4;
  if (this->provincecode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->provincecode());
  }

  // string cityName = 5;
  if (this->cityname().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->cityname());
  }

  // string cityCode = 6;
  if (this->citycode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->citycode());
  }

  // string districtCountyName = 7;
  if (this->districtcountyname().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->districtcountyname());
  }

  // string districtCountyCode = 8;
  if (this->districtcountycode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->districtcountycode());
  }

  // string streetName = 9;
  if (this->streetname().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->streetname());
  }

  // string streetCode = 10;
  if (this->streetcode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->streetcode());
  }

  // string houseNumber = 11;
  if (this->housenumber().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->housenumber());
  }

  // string secondUnitDesignator = 12;
  if (this->secondunitdesignator().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->secondunitdesignator());
  }

  // string postalCode = 13;
  if (this->postalcode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->postalcode());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void Address::MergeFrom(const Address& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.Address)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.countryname().size() > 0) {

    countryname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.countryname_);
  }
  if (from.countrycode().size() > 0) {

    countrycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.countrycode_);
  }
  if (from.provincename().size() > 0) {

    provincename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.provincename_);
  }
  if (from.provincecode().size() > 0) {

    provincecode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.provincecode_);
  }
  if (from.cityname().size() > 0) {

    cityname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cityname_);
  }
  if (from.citycode().size() > 0) {

    citycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.citycode_);
  }
  if (from.districtcountyname().size() > 0) {

    districtcountyname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.districtcountyname_);
  }
  if (from.districtcountycode().size() > 0) {

    districtcountycode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.districtcountycode_);
  }
  if (from.streetname().size() > 0) {

    streetname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.streetname_);
  }
  if (from.streetcode().size() > 0) {

    streetcode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.streetcode_);
  }
  if (from.housenumber().size() > 0) {

    housenumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.housenumber_);
  }
  if (from.secondunitdesignator().size() > 0) {

    secondunitdesignator_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.secondunitdesignator_);
  }
  if (from.postalcode().size() > 0) {

    postalcode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.postalcode_);
  }
}

void Address::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.Address)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Address::CopyFrom(const Address& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.Address)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Address::Swap(Address* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Address::InternalSwap(Address* other) {
  countryname_.Swap(&other->countryname_);
  countrycode_.Swap(&other->countrycode_);
  provincename_.Swap(&other->provincename_);
  provincecode_.Swap(&other->provincecode_);
  cityname_.Swap(&other->cityname_);
  citycode_.Swap(&other->citycode_);
  districtcountyname_.Swap(&other->districtcountyname_);
  districtcountycode_.Swap(&other->districtcountycode_);
  streetname_.Swap(&other->streetname_);
  streetcode_.Swap(&other->streetcode_);
  housenumber_.Swap(&other->housenumber_);
  secondunitdesignator_.Swap(&other->secondunitdesignator_);
  postalcode_.Swap(&other->postalcode_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Address

// string countryName = 1;
void Address::clear_countryname() {
  countryname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::countryname() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.countryName)
  return countryname_.GetNoArena();
}
void Address::set_countryname(const ::std::string& value) {
  
  countryname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.countryName)
}
#if LANG_CXX11
void Address::set_countryname(::std::string&& value) {
  
  countryname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.countryName)
}
#endif
void Address::set_countryname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  countryname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.countryName)
}
void Address::set_countryname(const char* value, size_t size) {
  
  countryname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.countryName)
}
::std::string* Address::mutable_countryname() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.countryName)
  return countryname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_countryname() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.countryName)
  
  return countryname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_countryname(::std::string* countryname) {
  if (countryname != NULL) {
    
  } else {
    
  }
  countryname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), countryname);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.countryName)
}

// string countryCode = 2;
void Address::clear_countrycode() {
  countrycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::countrycode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.countryCode)
  return countrycode_.GetNoArena();
}
void Address::set_countrycode(const ::std::string& value) {
  
  countrycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.countryCode)
}
#if LANG_CXX11
void Address::set_countrycode(::std::string&& value) {
  
  countrycode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.countryCode)
}
#endif
void Address::set_countrycode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  countrycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.countryCode)
}
void Address::set_countrycode(const char* value, size_t size) {
  
  countrycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.countryCode)
}
::std::string* Address::mutable_countrycode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.countryCode)
  return countrycode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_countrycode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.countryCode)
  
  return countrycode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_countrycode(::std::string* countrycode) {
  if (countrycode != NULL) {
    
  } else {
    
  }
  countrycode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), countrycode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.countryCode)
}

// string provinceName = 3;
void Address::clear_provincename() {
  provincename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::provincename() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.provinceName)
  return provincename_.GetNoArena();
}
void Address::set_provincename(const ::std::string& value) {
  
  provincename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.provinceName)
}
#if LANG_CXX11
void Address::set_provincename(::std::string&& value) {
  
  provincename_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.provinceName)
}
#endif
void Address::set_provincename(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  provincename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.provinceName)
}
void Address::set_provincename(const char* value, size_t size) {
  
  provincename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.provinceName)
}
::std::string* Address::mutable_provincename() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.provinceName)
  return provincename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_provincename() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.provinceName)
  
  return provincename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_provincename(::std::string* provincename) {
  if (provincename != NULL) {
    
  } else {
    
  }
  provincename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), provincename);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.provinceName)
}

// string provinceCode = 4;
void Address::clear_provincecode() {
  provincecode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::provincecode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.provinceCode)
  return provincecode_.GetNoArena();
}
void Address::set_provincecode(const ::std::string& value) {
  
  provincecode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.provinceCode)
}
#if LANG_CXX11
void Address::set_provincecode(::std::string&& value) {
  
  provincecode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.provinceCode)
}
#endif
void Address::set_provincecode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  provincecode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.provinceCode)
}
void Address::set_provincecode(const char* value, size_t size) {
  
  provincecode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.provinceCode)
}
::std::string* Address::mutable_provincecode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.provinceCode)
  return provincecode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_provincecode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.provinceCode)
  
  return provincecode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_provincecode(::std::string* provincecode) {
  if (provincecode != NULL) {
    
  } else {
    
  }
  provincecode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), provincecode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.provinceCode)
}

// string cityName = 5;
void Address::clear_cityname() {
  cityname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::cityname() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.cityName)
  return cityname_.GetNoArena();
}
void Address::set_cityname(const ::std::string& value) {
  
  cityname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.cityName)
}
#if LANG_CXX11
void Address::set_cityname(::std::string&& value) {
  
  cityname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.cityName)
}
#endif
void Address::set_cityname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  cityname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.cityName)
}
void Address::set_cityname(const char* value, size_t size) {
  
  cityname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.cityName)
}
::std::string* Address::mutable_cityname() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.cityName)
  return cityname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_cityname() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.cityName)
  
  return cityname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_cityname(::std::string* cityname) {
  if (cityname != NULL) {
    
  } else {
    
  }
  cityname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cityname);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.cityName)
}

// string cityCode = 6;
void Address::clear_citycode() {
  citycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::citycode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.cityCode)
  return citycode_.GetNoArena();
}
void Address::set_citycode(const ::std::string& value) {
  
  citycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.cityCode)
}
#if LANG_CXX11
void Address::set_citycode(::std::string&& value) {
  
  citycode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.cityCode)
}
#endif
void Address::set_citycode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  citycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.cityCode)
}
void Address::set_citycode(const char* value, size_t size) {
  
  citycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.cityCode)
}
::std::string* Address::mutable_citycode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.cityCode)
  return citycode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_citycode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.cityCode)
  
  return citycode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_citycode(::std::string* citycode) {
  if (citycode != NULL) {
    
  } else {
    
  }
  citycode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), citycode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.cityCode)
}

// string districtCountyName = 7;
void Address::clear_districtcountyname() {
  districtcountyname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::districtcountyname() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.districtCountyName)
  return districtcountyname_.GetNoArena();
}
void Address::set_districtcountyname(const ::std::string& value) {
  
  districtcountyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.districtCountyName)
}
#if LANG_CXX11
void Address::set_districtcountyname(::std::string&& value) {
  
  districtcountyname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.districtCountyName)
}
#endif
void Address::set_districtcountyname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  districtcountyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.districtCountyName)
}
void Address::set_districtcountyname(const char* value, size_t size) {
  
  districtcountyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.districtCountyName)
}
::std::string* Address::mutable_districtcountyname() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.districtCountyName)
  return districtcountyname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_districtcountyname() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.districtCountyName)
  
  return districtcountyname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_districtcountyname(::std::string* districtcountyname) {
  if (districtcountyname != NULL) {
    
  } else {
    
  }
  districtcountyname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), districtcountyname);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.districtCountyName)
}

// string districtCountyCode = 8;
void Address::clear_districtcountycode() {
  districtcountycode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::districtcountycode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.districtCountyCode)
  return districtcountycode_.GetNoArena();
}
void Address::set_districtcountycode(const ::std::string& value) {
  
  districtcountycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.districtCountyCode)
}
#if LANG_CXX11
void Address::set_districtcountycode(::std::string&& value) {
  
  districtcountycode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.districtCountyCode)
}
#endif
void Address::set_districtcountycode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  districtcountycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.districtCountyCode)
}
void Address::set_districtcountycode(const char* value, size_t size) {
  
  districtcountycode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.districtCountyCode)
}
::std::string* Address::mutable_districtcountycode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.districtCountyCode)
  return districtcountycode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_districtcountycode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.districtCountyCode)
  
  return districtcountycode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_districtcountycode(::std::string* districtcountycode) {
  if (districtcountycode != NULL) {
    
  } else {
    
  }
  districtcountycode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), districtcountycode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.districtCountyCode)
}

// string streetName = 9;
void Address::clear_streetname() {
  streetname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::streetname() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.streetName)
  return streetname_.GetNoArena();
}
void Address::set_streetname(const ::std::string& value) {
  
  streetname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.streetName)
}
#if LANG_CXX11
void Address::set_streetname(::std::string&& value) {
  
  streetname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.streetName)
}
#endif
void Address::set_streetname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  streetname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.streetName)
}
void Address::set_streetname(const char* value, size_t size) {
  
  streetname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.streetName)
}
::std::string* Address::mutable_streetname() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.streetName)
  return streetname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_streetname() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.streetName)
  
  return streetname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_streetname(::std::string* streetname) {
  if (streetname != NULL) {
    
  } else {
    
  }
  streetname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), streetname);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.streetName)
}

// string secondUnitDesignator = 12;
void Address::clear_secondunitdesignator() {
  secondunitdesignator_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::secondunitdesignator() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.secondUnitDesignator)
  return secondunitdesignator_.GetNoArena();
}
void Address::set_secondunitdesignator(const ::std::string& value) {
  
  secondunitdesignator_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.secondUnitDesignator)
}
#if LANG_CXX11
void Address::set_secondunitdesignator(::std::string&& value) {
  
  secondunitdesignator_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.secondUnitDesignator)
}
#endif
void Address::set_secondunitdesignator(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  secondunitdesignator_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.secondUnitDesignator)
}
void Address::set_secondunitdesignator(const char* value, size_t size) {
  
  secondunitdesignator_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.secondUnitDesignator)
}
::std::string* Address::mutable_secondunitdesignator() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.secondUnitDesignator)
  return secondunitdesignator_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_secondunitdesignator() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.secondUnitDesignator)
  
  return secondunitdesignator_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_secondunitdesignator(::std::string* secondunitdesignator) {
  if (secondunitdesignator != NULL) {
    
  } else {
    
  }
  secondunitdesignator_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), secondunitdesignator);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.secondUnitDesignator)
}

// string streetCode = 10;
void Address::clear_streetcode() {
  streetcode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::streetcode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.streetCode)
  return streetcode_.GetNoArena();
}
void Address::set_streetcode(const ::std::string& value) {
  
  streetcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.streetCode)
}
#if LANG_CXX11
void Address::set_streetcode(::std::string&& value) {
  
  streetcode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.streetCode)
}
#endif
void Address::set_streetcode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  streetcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.streetCode)
}
void Address::set_streetcode(const char* value, size_t size) {
  
  streetcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.streetCode)
}
::std::string* Address::mutable_streetcode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.streetCode)
  return streetcode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_streetcode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.streetCode)
  
  return streetcode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_streetcode(::std::string* streetcode) {
  if (streetcode != NULL) {
    
  } else {
    
  }
  streetcode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), streetcode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.streetCode)
}

// string houseNumber = 11;
void Address::clear_housenumber() {
  housenumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::housenumber() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.houseNumber)
  return housenumber_.GetNoArena();
}
void Address::set_housenumber(const ::std::string& value) {
  
  housenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.houseNumber)
}
#if LANG_CXX11
void Address::set_housenumber(::std::string&& value) {
  
  housenumber_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.houseNumber)
}
#endif
void Address::set_housenumber(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  housenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.houseNumber)
}
void Address::set_housenumber(const char* value, size_t size) {
  
  housenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.houseNumber)
}
::std::string* Address::mutable_housenumber() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.houseNumber)
  return housenumber_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_housenumber() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.houseNumber)
  
  return housenumber_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_housenumber(::std::string* housenumber) {
  if (housenumber != NULL) {
    
  } else {
    
  }
  housenumber_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), housenumber);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.houseNumber)
}

// string postalCode = 13;
void Address::clear_postalcode() {
  postalcode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Address::postalcode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Address.postalCode)
  return postalcode_.GetNoArena();
}
void Address::set_postalcode(const ::std::string& value) {
  
  postalcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Address.postalCode)
}
#if LANG_CXX11
void Address::set_postalcode(::std::string&& value) {
  
  postalcode_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Address.postalCode)
}
#endif
void Address::set_postalcode(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  postalcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Address.postalCode)
}
void Address::set_postalcode(const char* value, size_t size) {
  
  postalcode_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Address.postalCode)
}
::std::string* Address::mutable_postalcode() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Address.postalCode)
  return postalcode_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Address::release_postalcode() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Address.postalCode)
  
  return postalcode_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Address::set_allocated_postalcode(::std::string* postalcode) {
  if (postalcode != NULL) {
    
  } else {
    
  }
  postalcode_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), postalcode);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Address.postalCode)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int PointOfInterest::kNameFieldNumber;
const int PointOfInterest::kCategoryFieldNumber;
const int PointOfInterest::kIdFieldNumber;
const int PointOfInterest::kPhoneNumberFieldNumber;
const int PointOfInterest::kDescriptionFieldNumber;
const int PointOfInterest::kUrlFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

PointOfInterest::PointOfInterest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.PointOfInterest)
}
PointOfInterest::PointOfInterest(const PointOfInterest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.name().size() > 0) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.category().size() > 0) {
    category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.category_);
  }
  phonenumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.phonenumber().size() > 0) {
    phonenumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.phonenumber_);
  }
  description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.url().size() > 0) {
    url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.url_);
  }
  id_ = from.id_;
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.PointOfInterest)
}

void PointOfInterest::SharedCtor() {
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  phonenumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_ = 0;
  _cached_size_ = 0;
}

PointOfInterest::~PointOfInterest() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.PointOfInterest)
  SharedDtor();
}

void PointOfInterest::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  category_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  phonenumber_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void PointOfInterest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PointOfInterest::descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const PointOfInterest& PointOfInterest::default_instance() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  return *internal_default_instance();
}

PointOfInterest* PointOfInterest::New(::google::protobuf::Arena* arena) const {
  PointOfInterest* n = new PointOfInterest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void PointOfInterest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.PointOfInterest)
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  phonenumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_ = 0;
}

bool PointOfInterest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.PointOfInterest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.PointOfInterest.name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string category = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_category()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->category().data(), this->category().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.PointOfInterest.category"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string phoneNumber = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_phonenumber()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->phonenumber().data(), this->phonenumber().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.PointOfInterest.phoneNumber"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string description = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), this->description().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.PointOfInterest.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string url = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->url().data(), this->url().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.PointOfInterest.url"));
        } else {
          goto handle_unusual;
        }
        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));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.PointOfInterest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.PointOfInterest)
  return false;
#undef DO_
}

void PointOfInterest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.PointOfInterest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // string category = 2;
  if (this->category().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->category().data(), this->category().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.category");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->category(), output);
  }

  // int32 id = 3;
  if (this->id() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->id(), output);
  }

  // string phoneNumber = 4;
  if (this->phonenumber().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->phonenumber().data(), this->phonenumber().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.phoneNumber");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->phonenumber(), output);
  }

  // string description = 5;
  if (this->description().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), this->description().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.description");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->description(), output);
  }

  // string url = 6;
  if (this->url().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->url().data(), this->url().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.url");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->url(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.PointOfInterest)
}

::google::protobuf::uint8* PointOfInterest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.PointOfInterest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  // string category = 2;
  if (this->category().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->category().data(), this->category().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.category");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->category(), target);
  }

  // int32 id = 3;
  if (this->id() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->id(), target);
  }

  // string phoneNumber = 4;
  if (this->phonenumber().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->phonenumber().data(), this->phonenumber().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.phoneNumber");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->phonenumber(), target);
  }

  // string description = 5;
  if (this->description().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), this->description().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.description");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->description(), target);
  }

  // string url = 6;
  if (this->url().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->url().data(), this->url().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.PointOfInterest.url");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->url(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.PointOfInterest)
  return target;
}

size_t PointOfInterest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.PointOfInterest)
  size_t total_size = 0;

  // string name = 1;
  if (this->name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  // string category = 2;
  if (this->category().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->category());
  }

  // string phoneNumber = 4;
  if (this->phonenumber().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->phonenumber());
  }

  // string description = 5;
  if (this->description().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->description());
  }

  // string url = 6;
  if (this->url().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->url());
  }

  // int32 id = 3;
  if (this->id() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void PointOfInterest::MergeFrom(const PointOfInterest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.PointOfInterest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.name().size() > 0) {

    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  if (from.category().size() > 0) {

    category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.category_);
  }
  if (from.phonenumber().size() > 0) {

    phonenumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.phonenumber_);
  }
  if (from.description().size() > 0) {

    description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.url().size() > 0) {

    url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.url_);
  }
  if (from.id() != 0) {
    set_id(from.id());
  }
}

void PointOfInterest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.PointOfInterest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PointOfInterest::CopyFrom(const PointOfInterest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.PointOfInterest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void PointOfInterest::Swap(PointOfInterest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void PointOfInterest::InternalSwap(PointOfInterest* other) {
  name_.Swap(&other->name_);
  category_.Swap(&other->category_);
  phonenumber_.Swap(&other->phonenumber_);
  description_.Swap(&other->description_);
  url_.Swap(&other->url_);
  std::swap(id_, other->id_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// PointOfInterest

// string name = 1;
void PointOfInterest::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& PointOfInterest::name() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.name)
  return name_.GetNoArena();
}
void PointOfInterest::set_name(const ::std::string& value) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.name)
}
#if LANG_CXX11
void PointOfInterest::set_name(::std::string&& value) {
  
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.PointOfInterest.name)
}
#endif
void PointOfInterest::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.PointOfInterest.name)
}
void PointOfInterest::set_name(const char* value, size_t size) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.PointOfInterest.name)
}
::std::string* PointOfInterest::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.PointOfInterest.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* PointOfInterest::release_name() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.PointOfInterest.name)
  
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void PointOfInterest::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.PointOfInterest.name)
}

// string category = 2;
void PointOfInterest::clear_category() {
  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& PointOfInterest::category() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.category)
  return category_.GetNoArena();
}
void PointOfInterest::set_category(const ::std::string& value) {
  
  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.category)
}
#if LANG_CXX11
void PointOfInterest::set_category(::std::string&& value) {
  
  category_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.PointOfInterest.category)
}
#endif
void PointOfInterest::set_category(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.PointOfInterest.category)
}
void PointOfInterest::set_category(const char* value, size_t size) {
  
  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.PointOfInterest.category)
}
::std::string* PointOfInterest::mutable_category() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.PointOfInterest.category)
  return category_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* PointOfInterest::release_category() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.PointOfInterest.category)
  
  return category_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void PointOfInterest::set_allocated_category(::std::string* category) {
  if (category != NULL) {
    
  } else {
    
  }
  category_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), category);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.PointOfInterest.category)
}

// int32 id = 3;
void PointOfInterest::clear_id() {
  id_ = 0;
}
::google::protobuf::int32 PointOfInterest::id() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.id)
  return id_;
}
void PointOfInterest::set_id(::google::protobuf::int32 value) {
  
  id_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.id)
}

// string phoneNumber = 4;
void PointOfInterest::clear_phonenumber() {
  phonenumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& PointOfInterest::phonenumber() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.phoneNumber)
  return phonenumber_.GetNoArena();
}
void PointOfInterest::set_phonenumber(const ::std::string& value) {
  
  phonenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.phoneNumber)
}
#if LANG_CXX11
void PointOfInterest::set_phonenumber(::std::string&& value) {
  
  phonenumber_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.PointOfInterest.phoneNumber)
}
#endif
void PointOfInterest::set_phonenumber(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  phonenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.PointOfInterest.phoneNumber)
}
void PointOfInterest::set_phonenumber(const char* value, size_t size) {
  
  phonenumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.PointOfInterest.phoneNumber)
}
::std::string* PointOfInterest::mutable_phonenumber() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.PointOfInterest.phoneNumber)
  return phonenumber_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* PointOfInterest::release_phonenumber() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.PointOfInterest.phoneNumber)
  
  return phonenumber_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void PointOfInterest::set_allocated_phonenumber(::std::string* phonenumber) {
  if (phonenumber != NULL) {
    
  } else {
    
  }
  phonenumber_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), phonenumber);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.PointOfInterest.phoneNumber)
}

// string description = 5;
void PointOfInterest::clear_description() {
  description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& PointOfInterest::description() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.description)
  return description_.GetNoArena();
}
void PointOfInterest::set_description(const ::std::string& value) {
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.description)
}
#if LANG_CXX11
void PointOfInterest::set_description(::std::string&& value) {
  
  description_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.PointOfInterest.description)
}
#endif
void PointOfInterest::set_description(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.PointOfInterest.description)
}
void PointOfInterest::set_description(const char* value, size_t size) {
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.PointOfInterest.description)
}
::std::string* PointOfInterest::mutable_description() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.PointOfInterest.description)
  return description_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* PointOfInterest::release_description() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.PointOfInterest.description)
  
  return description_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void PointOfInterest::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    
  } else {
    
  }
  description_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.PointOfInterest.description)
}

// string url = 6;
void PointOfInterest::clear_url() {
  url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& PointOfInterest::url() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.PointOfInterest.url)
  return url_.GetNoArena();
}
void PointOfInterest::set_url(const ::std::string& value) {
  
  url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.PointOfInterest.url)
}
#if LANG_CXX11
void PointOfInterest::set_url(::std::string&& value) {
  
  url_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.PointOfInterest.url)
}
#endif
void PointOfInterest::set_url(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.PointOfInterest.url)
}
void PointOfInterest::set_url(const char* value, size_t size) {
  
  url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.PointOfInterest.url)
}
::std::string* PointOfInterest::mutable_url() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.PointOfInterest.url)
  return url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* PointOfInterest::release_url() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.PointOfInterest.url)
  
  return url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void PointOfInterest::set_allocated_url(::std::string* url) {
  if (url != NULL) {
    
  } else {
    
  }
  url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), url);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.PointOfInterest.url)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Location::kPositionLatitudeFieldNumber;
const int Location::kPositionLongitudeFieldNumber;
const int Location::kEstimatedPositionErrorFieldNumber;
const int Location::kPositionAltitudeFieldNumber;
const int Location::kGpsFixTypeEnumFieldNumber;
const int Location::kIsGPSFixNotAvailableFieldNumber;
const int Location::kEstimatedAltitudeErrorFieldNumber;
const int Location::kPositionDirectionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Location::Location()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.Location)
}
Location::Location(const Location& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&positionlatitude_, &from.positionlatitude_,
    reinterpret_cast<char*>(&isgpsfixnotavailable_) -
    reinterpret_cast<char*>(&positionlatitude_) + sizeof(isgpsfixnotavailable_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.Location)
}

void Location::SharedCtor() {
  ::memset(&positionlatitude_, 0, reinterpret_cast<char*>(&isgpsfixnotavailable_) -
    reinterpret_cast<char*>(&positionlatitude_) + sizeof(isgpsfixnotavailable_));
  _cached_size_ = 0;
}

Location::~Location() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.Location)
  SharedDtor();
}

void Location::SharedDtor() {
}

void Location::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Location::descriptor() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fGNSS_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Location& Location::default_instance() {
  protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  return *internal_default_instance();
}

Location* Location::New(::google::protobuf::Arena* arena) const {
  Location* n = new Location;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Location::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.Location)
  ::memset(&positionlatitude_, 0, reinterpret_cast<char*>(&isgpsfixnotavailable_) -
    reinterpret_cast<char*>(&positionlatitude_) + sizeof(isgpsfixnotavailable_));
}

bool Location::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.Location)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // double positionLatitude = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(9u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &positionlatitude_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // double positionLongitude = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(17u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &positionlongitude_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 estimatedPositionError = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &estimatedpositionerror_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // double positionAltitude = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(33u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &positionaltitude_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Location.GpsFixType gpsFixTypeEnum = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_gpsfixtypeenum(static_cast< ::com::fca::uconnect::global::Location_GpsFixType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 estimatedAltitudeError = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &estimatedaltitudeerror_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // double positionDirection = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(57u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &positiondirection_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isGPSFixNotAvailable = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &isgpsfixnotavailable_)));
        } else {
          goto handle_unusual;
        }
        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));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.Location)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.Location)
  return false;
#undef DO_
}

void Location::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.Location)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // double positionLatitude = 1;
  if (this->positionlatitude() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->positionlatitude(), output);
  }

  // double positionLongitude = 2;
  if (this->positionlongitude() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->positionlongitude(), output);
  }

  // int32 estimatedPositionError = 3;
  if (this->estimatedpositionerror() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->estimatedpositionerror(), output);
  }

  // double positionAltitude = 4;
  if (this->positionaltitude() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(4, this->positionaltitude(), output);
  }

  // .com.fca.uconnect.global.Location.GpsFixType gpsFixTypeEnum = 5;
  if (this->gpsfixtypeenum() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->gpsfixtypeenum(), output);
  }

  // int32 estimatedAltitudeError = 6;
  if (this->estimatedaltitudeerror() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->estimatedaltitudeerror(), output);
  }

  // double positionDirection = 7;
  if (this->positiondirection() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(7, this->positiondirection(), output);
  }

  // bool isGPSFixNotAvailable = 8;
  if (this->isgpsfixnotavailable() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->isgpsfixnotavailable(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.Location)
}

::google::protobuf::uint8* Location::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.Location)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // double positionLatitude = 1;
  if (this->positionlatitude() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->positionlatitude(), target);
  }

  // double positionLongitude = 2;
  if (this->positionlongitude() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->positionlongitude(), target);
  }

  // int32 estimatedPositionError = 3;
  if (this->estimatedpositionerror() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->estimatedpositionerror(), target);
  }

  // double positionAltitude = 4;
  if (this->positionaltitude() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(4, this->positionaltitude(), target);
  }

  // .com.fca.uconnect.global.Location.GpsFixType gpsFixTypeEnum = 5;
  if (this->gpsfixtypeenum() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      5, this->gpsfixtypeenum(), target);
  }

  // int32 estimatedAltitudeError = 6;
  if (this->estimatedaltitudeerror() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->estimatedaltitudeerror(), target);
  }

  // double positionDirection = 7;
  if (this->positiondirection() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(7, this->positiondirection(), target);
  }

  // bool isGPSFixNotAvailable = 8;
  if (this->isgpsfixnotavailable() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(8, this->isgpsfixnotavailable(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.Location)
  return target;
}

size_t Location::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.Location)
  size_t total_size = 0;

  // double positionLatitude = 1;
  if (this->positionlatitude() != 0) {
    total_size += 1 + 8;
  }

  // double positionLongitude = 2;
  if (this->positionlongitude() != 0) {
    total_size += 1 + 8;
  }

  // double positionAltitude = 4;
  if (this->positionaltitude() != 0) {
    total_size += 1 + 8;
  }

  // int32 estimatedPositionError = 3;
  if (this->estimatedpositionerror() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->estimatedpositionerror());
  }

  // .com.fca.uconnect.global.Location.GpsFixType gpsFixTypeEnum = 5;
  if (this->gpsfixtypeenum() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->gpsfixtypeenum());
  }

  // double positionDirection = 7;
  if (this->positiondirection() != 0) {
    total_size += 1 + 8;
  }

  // int32 estimatedAltitudeError = 6;
  if (this->estimatedaltitudeerror() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->estimatedaltitudeerror());
  }

  // bool isGPSFixNotAvailable = 8;
  if (this->isgpsfixnotavailable() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void Location::MergeFrom(const Location& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.Location)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.positionlatitude() != 0) {
    set_positionlatitude(from.positionlatitude());
  }
  if (from.positionlongitude() != 0) {
    set_positionlongitude(from.positionlongitude());
  }
  if (from.positionaltitude() != 0) {
    set_positionaltitude(from.positionaltitude());
  }
  if (from.estimatedpositionerror() != 0) {
    set_estimatedpositionerror(from.estimatedpositionerror());
  }
  if (from.gpsfixtypeenum() != 0) {
    set_gpsfixtypeenum(from.gpsfixtypeenum());
  }
  if (from.positiondirection() != 0) {
    set_positiondirection(from.positiondirection());
  }
  if (from.estimatedaltitudeerror() != 0) {
    set_estimatedaltitudeerror(from.estimatedaltitudeerror());
  }
  if (from.isgpsfixnotavailable() != 0) {
    set_isgpsfixnotavailable(from.isgpsfixnotavailable());
  }
}

void Location::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.Location)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Location::CopyFrom(const Location& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.Location)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Location::Swap(Location* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Location::InternalSwap(Location* other) {
  std::swap(positionlatitude_, other->positionlatitude_);
  std::swap(positionlongitude_, other->positionlongitude_);
  std::swap(positionaltitude_, other->positionaltitude_);
  std::swap(estimatedpositionerror_, other->estimatedpositionerror_);
  std::swap(gpsfixtypeenum_, other->gpsfixtypeenum_);
  std::swap(positiondirection_, other->positiondirection_);
  std::swap(estimatedaltitudeerror_, other->estimatedaltitudeerror_);
  std::swap(isgpsfixnotavailable_, other->isgpsfixnotavailable_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Location

// double positionLatitude = 1;
void Location::clear_positionlatitude() {
  positionlatitude_ = 0;
}
double Location::positionlatitude() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.positionLatitude)
  return positionlatitude_;
}
void Location::set_positionlatitude(double value) {
  
  positionlatitude_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.positionLatitude)
}

// double positionLongitude = 2;
void Location::clear_positionlongitude() {
  positionlongitude_ = 0;
}
double Location::positionlongitude() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.positionLongitude)
  return positionlongitude_;
}
void Location::set_positionlongitude(double value) {
  
  positionlongitude_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.positionLongitude)
}

// int32 estimatedPositionError = 3;
void Location::clear_estimatedpositionerror() {
  estimatedpositionerror_ = 0;
}
::google::protobuf::int32 Location::estimatedpositionerror() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.estimatedPositionError)
  return estimatedpositionerror_;
}
void Location::set_estimatedpositionerror(::google::protobuf::int32 value) {
  
  estimatedpositionerror_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.estimatedPositionError)
}

// double positionAltitude = 4;
void Location::clear_positionaltitude() {
  positionaltitude_ = 0;
}
double Location::positionaltitude() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.positionAltitude)
  return positionaltitude_;
}
void Location::set_positionaltitude(double value) {
  
  positionaltitude_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.positionAltitude)
}

// .com.fca.uconnect.global.Location.GpsFixType gpsFixTypeEnum = 5;
void Location::clear_gpsfixtypeenum() {
  gpsfixtypeenum_ = 0;
}
::com::fca::uconnect::global::Location_GpsFixType Location::gpsfixtypeenum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.gpsFixTypeEnum)
  return static_cast< ::com::fca::uconnect::global::Location_GpsFixType >(gpsfixtypeenum_);
}
void Location::set_gpsfixtypeenum(::com::fca::uconnect::global::Location_GpsFixType value) {
  
  gpsfixtypeenum_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.gpsFixTypeEnum)
}

// bool isGPSFixNotAvailable = 8;
void Location::clear_isgpsfixnotavailable() {
  isgpsfixnotavailable_ = false;
}
bool Location::isgpsfixnotavailable() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.isGPSFixNotAvailable)
  return isgpsfixnotavailable_;
}
void Location::set_isgpsfixnotavailable(bool value) {
  
  isgpsfixnotavailable_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.isGPSFixNotAvailable)
}

// int32 estimatedAltitudeError = 6;
void Location::clear_estimatedaltitudeerror() {
  estimatedaltitudeerror_ = 0;
}
::google::protobuf::int32 Location::estimatedaltitudeerror() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.estimatedAltitudeError)
  return estimatedaltitudeerror_;
}
void Location::set_estimatedaltitudeerror(::google::protobuf::int32 value) {
  
  estimatedaltitudeerror_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.estimatedAltitudeError)
}

// double positionDirection = 7;
void Location::clear_positiondirection() {
  positiondirection_ = 0;
}
double Location::positiondirection() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Location.positionDirection)
  return positiondirection_;
}
void Location::set_positiondirection(double value) {
  
  positiondirection_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Location.positionDirection)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace global
}  // namespace uconnect
}  // namespace fca
}  // namespace com

// @@protoc_insertion_point(global_scope)
