1// Generated by the protocol buffer compiler.  DO NOT EDIT!
2// source: phonemetadata.proto
3
4#include "phonemetadata.pb.h"
5
6#include <algorithm>
7
8#include <google/protobuf/io/coded_stream.h>
9#include <google/protobuf/extension_set.h>
10#include <google/protobuf/wire_format_lite.h>
11#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
12// @@protoc_insertion_point(includes)
13#include <google/protobuf/port_def.inc>
14extern PROTOBUF_INTERNAL_EXPORT_phonemetadata_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NumberFormat_phonemetadata_2eproto;
15extern PROTOBUF_INTERNAL_EXPORT_phonemetadata_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PhoneMetadata_phonemetadata_2eproto;
16extern PROTOBUF_INTERNAL_EXPORT_phonemetadata_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhoneNumberDesc_phonemetadata_2eproto;
17namespace i18n {
18namespace phonenumbers {
19class NumberFormatDefaultTypeInternal {
20 public:
21  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NumberFormat> _instance;
22} _NumberFormat_default_instance_;
23class PhoneNumberDescDefaultTypeInternal {
24 public:
25  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhoneNumberDesc> _instance;
26} _PhoneNumberDesc_default_instance_;
27class PhoneMetadataDefaultTypeInternal {
28 public:
29  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhoneMetadata> _instance;
30} _PhoneMetadata_default_instance_;
31class PhoneMetadataCollectionDefaultTypeInternal {
32 public:
33  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhoneMetadataCollection> _instance;
34} _PhoneMetadataCollection_default_instance_;
35}  // namespace phonenumbers
36}  // namespace i18n
37static void InitDefaultsscc_info_NumberFormat_phonemetadata_2eproto() {
38  GOOGLE_PROTOBUF_VERIFY_VERSION;
39
40  {
41    void* ptr = &::i18n::phonenumbers::_NumberFormat_default_instance_;
42    new (ptr) ::i18n::phonenumbers::NumberFormat();
43    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
44  }
45  ::i18n::phonenumbers::NumberFormat::InitAsDefaultInstance();
46}
47
48::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NumberFormat_phonemetadata_2eproto =
49    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NumberFormat_phonemetadata_2eproto}, {}};
50
51static void InitDefaultsscc_info_PhoneMetadata_phonemetadata_2eproto() {
52  GOOGLE_PROTOBUF_VERIFY_VERSION;
53
54  {
55    void* ptr = &::i18n::phonenumbers::_PhoneMetadata_default_instance_;
56    new (ptr) ::i18n::phonenumbers::PhoneMetadata();
57    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
58  }
59  ::i18n::phonenumbers::PhoneMetadata::InitAsDefaultInstance();
60}
61
62::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PhoneMetadata_phonemetadata_2eproto =
63    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PhoneMetadata_phonemetadata_2eproto}, {
64      &scc_info_PhoneNumberDesc_phonemetadata_2eproto.base,
65      &scc_info_NumberFormat_phonemetadata_2eproto.base,}};
66
67static void InitDefaultsscc_info_PhoneMetadataCollection_phonemetadata_2eproto() {
68  GOOGLE_PROTOBUF_VERIFY_VERSION;
69
70  {
71    void* ptr = &::i18n::phonenumbers::_PhoneMetadataCollection_default_instance_;
72    new (ptr) ::i18n::phonenumbers::PhoneMetadataCollection();
73    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
74  }
75  ::i18n::phonenumbers::PhoneMetadataCollection::InitAsDefaultInstance();
76}
77
78::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PhoneMetadataCollection_phonemetadata_2eproto =
79    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PhoneMetadataCollection_phonemetadata_2eproto}, {
80      &scc_info_PhoneMetadata_phonemetadata_2eproto.base,}};
81
82static void InitDefaultsscc_info_PhoneNumberDesc_phonemetadata_2eproto() {
83  GOOGLE_PROTOBUF_VERIFY_VERSION;
84
85  {
86    void* ptr = &::i18n::phonenumbers::_PhoneNumberDesc_default_instance_;
87    new (ptr) ::i18n::phonenumbers::PhoneNumberDesc();
88    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
89  }
90  ::i18n::phonenumbers::PhoneNumberDesc::InitAsDefaultInstance();
91}
92
93::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhoneNumberDesc_phonemetadata_2eproto =
94    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PhoneNumberDesc_phonemetadata_2eproto}, {}};
95
96namespace i18n {
97namespace phonenumbers {
98
99// ===================================================================
100
101void NumberFormat::InitAsDefaultInstance() {
102}
103class NumberFormat::_Internal {
104 public:
105  using HasBits = decltype(std::declval<NumberFormat>()._has_bits_);
106  static void set_has_pattern(HasBits* has_bits) {
107    (*has_bits)[0] |= 1u;
108  }
109  static void set_has_format(HasBits* has_bits) {
110    (*has_bits)[0] |= 2u;
111  }
112  static void set_has_national_prefix_formatting_rule(HasBits* has_bits) {
113    (*has_bits)[0] |= 4u;
114  }
115  static void set_has_national_prefix_optional_when_formatting(HasBits* has_bits) {
116    (*has_bits)[0] |= 16u;
117  }
118  static void set_has_domestic_carrier_code_formatting_rule(HasBits* has_bits) {
119    (*has_bits)[0] |= 8u;
120  }
121  static bool MissingRequiredFields(const HasBits& has_bits) {
122    return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
123  }
124};
125
126NumberFormat::NumberFormat(::PROTOBUF_NAMESPACE_ID::Arena* arena)
127  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena),
128  leading_digits_pattern_(arena) {
129  SharedCtor();
130  RegisterArenaDtor(arena);
131  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.NumberFormat)
132}
133NumberFormat::NumberFormat(const NumberFormat& from)
134  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
135      _has_bits_(from._has_bits_),
136      leading_digits_pattern_(from.leading_digits_pattern_) {
137  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
138  pattern_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
139  if (from._internal_has_pattern()) {
140    pattern_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_pattern(),
141      GetArena());
142  }
143  format_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
144  if (from._internal_has_format()) {
145    format_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_format(),
146      GetArena());
147  }
148  national_prefix_formatting_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
149  if (from._internal_has_national_prefix_formatting_rule()) {
150    national_prefix_formatting_rule_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_national_prefix_formatting_rule(),
151      GetArena());
152  }
153  domestic_carrier_code_formatting_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
154  if (from._internal_has_domestic_carrier_code_formatting_rule()) {
155    domestic_carrier_code_formatting_rule_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_domestic_carrier_code_formatting_rule(),
156      GetArena());
157  }
158  national_prefix_optional_when_formatting_ = from.national_prefix_optional_when_formatting_;
159  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.NumberFormat)
160}
161
162void NumberFormat::SharedCtor() {
163  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NumberFormat_phonemetadata_2eproto.base);
164  pattern_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
165  format_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
166  national_prefix_formatting_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
167  domestic_carrier_code_formatting_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
168  national_prefix_optional_when_formatting_ = false;
169}
170
171NumberFormat::~NumberFormat() {
172  // @@protoc_insertion_point(destructor:i18n.phonenumbers.NumberFormat)
173  SharedDtor();
174  _internal_metadata_.Delete<std::string>();
175}
176
177void NumberFormat::SharedDtor() {
178  GOOGLE_DCHECK(GetArena() == nullptr);
179  pattern_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
180  format_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
181  national_prefix_formatting_rule_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
182  domestic_carrier_code_formatting_rule_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
183}
184
185void NumberFormat::ArenaDtor(void* object) {
186  NumberFormat* _this = reinterpret_cast< NumberFormat* >(object);
187  (void)_this;
188}
189void NumberFormat::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
190}
191void NumberFormat::SetCachedSize(int size) const {
192  _cached_size_.Set(size);
193}
194const NumberFormat& NumberFormat::default_instance() {
195  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NumberFormat_phonemetadata_2eproto.base);
196  return *internal_default_instance();
197}
198
199
200void NumberFormat::Clear() {
201// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.NumberFormat)
202  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
203  // Prevent compiler warnings about cached_has_bits being unused
204  (void) cached_has_bits;
205
206  leading_digits_pattern_.Clear();
207  cached_has_bits = _has_bits_[0];
208  if (cached_has_bits & 0x0000000fu) {
209    if (cached_has_bits & 0x00000001u) {
210      pattern_.ClearNonDefaultToEmpty();
211    }
212    if (cached_has_bits & 0x00000002u) {
213      format_.ClearNonDefaultToEmpty();
214    }
215    if (cached_has_bits & 0x00000004u) {
216      national_prefix_formatting_rule_.ClearNonDefaultToEmpty();
217    }
218    if (cached_has_bits & 0x00000008u) {
219      domestic_carrier_code_formatting_rule_.ClearNonDefaultToEmpty();
220    }
221  }
222  national_prefix_optional_when_formatting_ = false;
223  _has_bits_.Clear();
224  _internal_metadata_.Clear<std::string>();
225}
226
227const char* NumberFormat::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
228#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
229  _Internal::HasBits has_bits{};
230  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
231  while (!ctx->Done(&ptr)) {
232    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
233    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
234    CHK_(ptr);
235    switch (tag >> 3) {
236      // required string pattern = 1;
237      case 1:
238        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
239          auto str = _internal_mutable_pattern();
240          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
241          CHK_(ptr);
242        } else goto handle_unusual;
243        continue;
244      // required string format = 2;
245      case 2:
246        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
247          auto str = _internal_mutable_format();
248          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
249          CHK_(ptr);
250        } else goto handle_unusual;
251        continue;
252      // repeated string leading_digits_pattern = 3;
253      case 3:
254        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
255          ptr -= 1;
256          do {
257            ptr += 1;
258            auto str = _internal_add_leading_digits_pattern();
259            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
260            CHK_(ptr);
261            if (!ctx->DataAvailable(ptr)) break;
262          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
263        } else goto handle_unusual;
264        continue;
265      // optional string national_prefix_formatting_rule = 4;
266      case 4:
267        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
268          auto str = _internal_mutable_national_prefix_formatting_rule();
269          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
270          CHK_(ptr);
271        } else goto handle_unusual;
272        continue;
273      // optional string domestic_carrier_code_formatting_rule = 5;
274      case 5:
275        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
276          auto str = _internal_mutable_domestic_carrier_code_formatting_rule();
277          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
278          CHK_(ptr);
279        } else goto handle_unusual;
280        continue;
281      // optional bool national_prefix_optional_when_formatting = 6 [default = false];
282      case 6:
283        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
284          _Internal::set_has_national_prefix_optional_when_formatting(&has_bits);
285          national_prefix_optional_when_formatting_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
286          CHK_(ptr);
287        } else goto handle_unusual;
288        continue;
289      default: {
290      handle_unusual:
291        if ((tag & 7) == 4 || tag == 0) {
292          ctx->SetLastTag(tag);
293          goto success;
294        }
295        ptr = UnknownFieldParse(tag,
296            _internal_metadata_.mutable_unknown_fields<std::string>(),
297            ptr, ctx);
298        CHK_(ptr != nullptr);
299        continue;
300      }
301    }  // switch
302  }  // while
303success:
304  _has_bits_.Or(has_bits);
305  return ptr;
306failure:
307  ptr = nullptr;
308  goto success;
309#undef CHK_
310}
311
312::PROTOBUF_NAMESPACE_ID::uint8* NumberFormat::_InternalSerialize(
313    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
314  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.NumberFormat)
315  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
316  (void) cached_has_bits;
317
318  cached_has_bits = _has_bits_[0];
319  // required string pattern = 1;
320  if (cached_has_bits & 0x00000001u) {
321    target = stream->WriteStringMaybeAliased(
322        1, this->_internal_pattern(), target);
323  }
324
325  // required string format = 2;
326  if (cached_has_bits & 0x00000002u) {
327    target = stream->WriteStringMaybeAliased(
328        2, this->_internal_format(), target);
329  }
330
331  // repeated string leading_digits_pattern = 3;
332  for (int i = 0, n = this->_internal_leading_digits_pattern_size(); i < n; i++) {
333    const auto& s = this->_internal_leading_digits_pattern(i);
334    target = stream->WriteString(3, s, target);
335  }
336
337  // optional string national_prefix_formatting_rule = 4;
338  if (cached_has_bits & 0x00000004u) {
339    target = stream->WriteStringMaybeAliased(
340        4, this->_internal_national_prefix_formatting_rule(), target);
341  }
342
343  // optional string domestic_carrier_code_formatting_rule = 5;
344  if (cached_has_bits & 0x00000008u) {
345    target = stream->WriteStringMaybeAliased(
346        5, this->_internal_domestic_carrier_code_formatting_rule(), target);
347  }
348
349  // optional bool national_prefix_optional_when_formatting = 6 [default = false];
350  if (cached_has_bits & 0x00000010u) {
351    target = stream->EnsureSpace(target);
352    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_national_prefix_optional_when_formatting(), target);
353  }
354
355  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
356    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
357        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
358  }
359  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.NumberFormat)
360  return target;
361}
362
363size_t NumberFormat::RequiredFieldsByteSizeFallback() const {
364// @@protoc_insertion_point(required_fields_byte_size_fallback_start:i18n.phonenumbers.NumberFormat)
365  size_t total_size = 0;
366
367  if (_internal_has_pattern()) {
368    // required string pattern = 1;
369    total_size += 1 +
370      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
371        this->_internal_pattern());
372  }
373
374  if (_internal_has_format()) {
375    // required string format = 2;
376    total_size += 1 +
377      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
378        this->_internal_format());
379  }
380
381  return total_size;
382}
383size_t NumberFormat::ByteSizeLong() const {
384// @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.NumberFormat)
385  size_t total_size = 0;
386
387  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
388    // required string pattern = 1;
389    total_size += 1 +
390      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
391        this->_internal_pattern());
392
393    // required string format = 2;
394    total_size += 1 +
395      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
396        this->_internal_format());
397
398  } else {
399    total_size += RequiredFieldsByteSizeFallback();
400  }
401  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
402  // Prevent compiler warnings about cached_has_bits being unused
403  (void) cached_has_bits;
404
405  // repeated string leading_digits_pattern = 3;
406  total_size += 1 *
407      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(leading_digits_pattern_.size());
408  for (int i = 0, n = leading_digits_pattern_.size(); i < n; i++) {
409    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
410      leading_digits_pattern_.Get(i));
411  }
412
413  cached_has_bits = _has_bits_[0];
414  if (cached_has_bits & 0x0000001cu) {
415    // optional string national_prefix_formatting_rule = 4;
416    if (cached_has_bits & 0x00000004u) {
417      total_size += 1 +
418        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
419          this->_internal_national_prefix_formatting_rule());
420    }
421
422    // optional string domestic_carrier_code_formatting_rule = 5;
423    if (cached_has_bits & 0x00000008u) {
424      total_size += 1 +
425        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
426          this->_internal_domestic_carrier_code_formatting_rule());
427    }
428
429    // optional bool national_prefix_optional_when_formatting = 6 [default = false];
430    if (cached_has_bits & 0x00000010u) {
431      total_size += 1 + 1;
432    }
433
434  }
435  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
436    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
437  }
438  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
439  SetCachedSize(cached_size);
440  return total_size;
441}
442
443void NumberFormat::CheckTypeAndMergeFrom(
444    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
445  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const NumberFormat*>(
446      &from));
447}
448
449void NumberFormat::MergeFrom(const NumberFormat& from) {
450// @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.NumberFormat)
451  GOOGLE_DCHECK_NE(&from, this);
452  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
453  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
454  (void) cached_has_bits;
455
456  leading_digits_pattern_.MergeFrom(from.leading_digits_pattern_);
457  cached_has_bits = from._has_bits_[0];
458  if (cached_has_bits & 0x0000001fu) {
459    if (cached_has_bits & 0x00000001u) {
460      _internal_set_pattern(from._internal_pattern());
461    }
462    if (cached_has_bits & 0x00000002u) {
463      _internal_set_format(from._internal_format());
464    }
465    if (cached_has_bits & 0x00000004u) {
466      _internal_set_national_prefix_formatting_rule(from._internal_national_prefix_formatting_rule());
467    }
468    if (cached_has_bits & 0x00000008u) {
469      _internal_set_domestic_carrier_code_formatting_rule(from._internal_domestic_carrier_code_formatting_rule());
470    }
471    if (cached_has_bits & 0x00000010u) {
472      national_prefix_optional_when_formatting_ = from.national_prefix_optional_when_formatting_;
473    }
474    _has_bits_[0] |= cached_has_bits;
475  }
476}
477
478void NumberFormat::CopyFrom(const NumberFormat& from) {
479// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.NumberFormat)
480  if (&from == this) return;
481  Clear();
482  MergeFrom(from);
483}
484
485bool NumberFormat::IsInitialized() const {
486  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
487  return true;
488}
489
490void NumberFormat::InternalSwap(NumberFormat* other) {
491  using std::swap;
492  _internal_metadata_.Swap<std::string>(&other->_internal_metadata_);
493  swap(_has_bits_[0], other->_has_bits_[0]);
494  leading_digits_pattern_.InternalSwap(&other->leading_digits_pattern_);
495  pattern_.Swap(&other->pattern_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
496  format_.Swap(&other->format_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
497  national_prefix_formatting_rule_.Swap(&other->national_prefix_formatting_rule_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
498  domestic_carrier_code_formatting_rule_.Swap(&other->domestic_carrier_code_formatting_rule_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
499  swap(national_prefix_optional_when_formatting_, other->national_prefix_optional_when_formatting_);
500}
501
502std::string NumberFormat::GetTypeName() const {
503  return "i18n.phonenumbers.NumberFormat";
504}
505
506
507// ===================================================================
508
509void PhoneNumberDesc::InitAsDefaultInstance() {
510}
511class PhoneNumberDesc::_Internal {
512 public:
513  using HasBits = decltype(std::declval<PhoneNumberDesc>()._has_bits_);
514  static void set_has_national_number_pattern(HasBits* has_bits) {
515    (*has_bits)[0] |= 1u;
516  }
517  static void set_has_example_number(HasBits* has_bits) {
518    (*has_bits)[0] |= 2u;
519  }
520};
521
522PhoneNumberDesc::PhoneNumberDesc(::PROTOBUF_NAMESPACE_ID::Arena* arena)
523  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena),
524  possible_length_(arena),
525  possible_length_local_only_(arena) {
526  SharedCtor();
527  RegisterArenaDtor(arena);
528  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneNumberDesc)
529}
530PhoneNumberDesc::PhoneNumberDesc(const PhoneNumberDesc& from)
531  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
532      _has_bits_(from._has_bits_),
533      possible_length_(from.possible_length_),
534      possible_length_local_only_(from.possible_length_local_only_) {
535  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
536  national_number_pattern_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
537  if (from._internal_has_national_number_pattern()) {
538    national_number_pattern_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_national_number_pattern(),
539      GetArena());
540  }
541  example_number_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
542  if (from._internal_has_example_number()) {
543    example_number_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_example_number(),
544      GetArena());
545  }
546  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneNumberDesc)
547}
548
549void PhoneNumberDesc::SharedCtor() {
550  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhoneNumberDesc_phonemetadata_2eproto.base);
551  national_number_pattern_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
552  example_number_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
553}
554
555PhoneNumberDesc::~PhoneNumberDesc() {
556  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneNumberDesc)
557  SharedDtor();
558  _internal_metadata_.Delete<std::string>();
559}
560
561void PhoneNumberDesc::SharedDtor() {
562  GOOGLE_DCHECK(GetArena() == nullptr);
563  national_number_pattern_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
564  example_number_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
565}
566
567void PhoneNumberDesc::ArenaDtor(void* object) {
568  PhoneNumberDesc* _this = reinterpret_cast< PhoneNumberDesc* >(object);
569  (void)_this;
570}
571void PhoneNumberDesc::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
572}
573void PhoneNumberDesc::SetCachedSize(int size) const {
574  _cached_size_.Set(size);
575}
576const PhoneNumberDesc& PhoneNumberDesc::default_instance() {
577  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhoneNumberDesc_phonemetadata_2eproto.base);
578  return *internal_default_instance();
579}
580
581
582void PhoneNumberDesc::Clear() {
583// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneNumberDesc)
584  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
585  // Prevent compiler warnings about cached_has_bits being unused
586  (void) cached_has_bits;
587
588  possible_length_.Clear();
589  possible_length_local_only_.Clear();
590  cached_has_bits = _has_bits_[0];
591  if (cached_has_bits & 0x00000003u) {
592    if (cached_has_bits & 0x00000001u) {
593      national_number_pattern_.ClearNonDefaultToEmpty();
594    }
595    if (cached_has_bits & 0x00000002u) {
596      example_number_.ClearNonDefaultToEmpty();
597    }
598  }
599  _has_bits_.Clear();
600  _internal_metadata_.Clear<std::string>();
601}
602
603const char* PhoneNumberDesc::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
604#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
605  _Internal::HasBits has_bits{};
606  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
607  while (!ctx->Done(&ptr)) {
608    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
609    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
610    CHK_(ptr);
611    switch (tag >> 3) {
612      // optional string national_number_pattern = 2;
613      case 2:
614        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
615          auto str = _internal_mutable_national_number_pattern();
616          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
617          CHK_(ptr);
618        } else goto handle_unusual;
619        continue;
620      // optional string example_number = 6;
621      case 6:
622        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
623          auto str = _internal_mutable_example_number();
624          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
625          CHK_(ptr);
626        } else goto handle_unusual;
627        continue;
628      // repeated int32 possible_length = 9;
629      case 9:
630        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
631          ptr -= 1;
632          do {
633            ptr += 1;
634            _internal_add_possible_length(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
635            CHK_(ptr);
636            if (!ctx->DataAvailable(ptr)) break;
637          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<72>(ptr));
638        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74) {
639          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_possible_length(), ptr, ctx);
640          CHK_(ptr);
641        } else goto handle_unusual;
642        continue;
643      // repeated int32 possible_length_local_only = 10;
644      case 10:
645        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
646          ptr -= 1;
647          do {
648            ptr += 1;
649            _internal_add_possible_length_local_only(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
650            CHK_(ptr);
651            if (!ctx->DataAvailable(ptr)) break;
652          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<80>(ptr));
653        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82) {
654          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_possible_length_local_only(), ptr, ctx);
655          CHK_(ptr);
656        } else goto handle_unusual;
657        continue;
658      default: {
659      handle_unusual:
660        if ((tag & 7) == 4 || tag == 0) {
661          ctx->SetLastTag(tag);
662          goto success;
663        }
664        ptr = UnknownFieldParse(tag,
665            _internal_metadata_.mutable_unknown_fields<std::string>(),
666            ptr, ctx);
667        CHK_(ptr != nullptr);
668        continue;
669      }
670    }  // switch
671  }  // while
672success:
673  _has_bits_.Or(has_bits);
674  return ptr;
675failure:
676  ptr = nullptr;
677  goto success;
678#undef CHK_
679}
680
681::PROTOBUF_NAMESPACE_ID::uint8* PhoneNumberDesc::_InternalSerialize(
682    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
683  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneNumberDesc)
684  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
685  (void) cached_has_bits;
686
687  cached_has_bits = _has_bits_[0];
688  // optional string national_number_pattern = 2;
689  if (cached_has_bits & 0x00000001u) {
690    target = stream->WriteStringMaybeAliased(
691        2, this->_internal_national_number_pattern(), target);
692  }
693
694  // optional string example_number = 6;
695  if (cached_has_bits & 0x00000002u) {
696    target = stream->WriteStringMaybeAliased(
697        6, this->_internal_example_number(), target);
698  }
699
700  // repeated int32 possible_length = 9;
701  for (int i = 0, n = this->_internal_possible_length_size(); i < n; i++) {
702    target = stream->EnsureSpace(target);
703    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_possible_length(i), target);
704  }
705
706  // repeated int32 possible_length_local_only = 10;
707  for (int i = 0, n = this->_internal_possible_length_local_only_size(); i < n; i++) {
708    target = stream->EnsureSpace(target);
709    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_possible_length_local_only(i), target);
710  }
711
712  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
713    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
714        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
715  }
716  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneNumberDesc)
717  return target;
718}
719
720size_t PhoneNumberDesc::ByteSizeLong() const {
721// @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneNumberDesc)
722  size_t total_size = 0;
723
724  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
725  // Prevent compiler warnings about cached_has_bits being unused
726  (void) cached_has_bits;
727
728  // repeated int32 possible_length = 9;
729  {
730    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
731      Int32Size(this->possible_length_);
732    total_size += 1 *
733                  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_possible_length_size());
734    total_size += data_size;
735  }
736
737  // repeated int32 possible_length_local_only = 10;
738  {
739    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
740      Int32Size(this->possible_length_local_only_);
741    total_size += 1 *
742                  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_possible_length_local_only_size());
743    total_size += data_size;
744  }
745
746  cached_has_bits = _has_bits_[0];
747  if (cached_has_bits & 0x00000003u) {
748    // optional string national_number_pattern = 2;
749    if (cached_has_bits & 0x00000001u) {
750      total_size += 1 +
751        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
752          this->_internal_national_number_pattern());
753    }
754
755    // optional string example_number = 6;
756    if (cached_has_bits & 0x00000002u) {
757      total_size += 1 +
758        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
759          this->_internal_example_number());
760    }
761
762  }
763  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
764    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
765  }
766  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
767  SetCachedSize(cached_size);
768  return total_size;
769}
770
771void PhoneNumberDesc::CheckTypeAndMergeFrom(
772    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
773  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const PhoneNumberDesc*>(
774      &from));
775}
776
777void PhoneNumberDesc::MergeFrom(const PhoneNumberDesc& from) {
778// @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneNumberDesc)
779  GOOGLE_DCHECK_NE(&from, this);
780  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
781  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
782  (void) cached_has_bits;
783
784  possible_length_.MergeFrom(from.possible_length_);
785  possible_length_local_only_.MergeFrom(from.possible_length_local_only_);
786  cached_has_bits = from._has_bits_[0];
787  if (cached_has_bits & 0x00000003u) {
788    if (cached_has_bits & 0x00000001u) {
789      _internal_set_national_number_pattern(from._internal_national_number_pattern());
790    }
791    if (cached_has_bits & 0x00000002u) {
792      _internal_set_example_number(from._internal_example_number());
793    }
794  }
795}
796
797void PhoneNumberDesc::CopyFrom(const PhoneNumberDesc& from) {
798// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneNumberDesc)
799  if (&from == this) return;
800  Clear();
801  MergeFrom(from);
802}
803
804bool PhoneNumberDesc::IsInitialized() const {
805  return true;
806}
807
808void PhoneNumberDesc::InternalSwap(PhoneNumberDesc* other) {
809  using std::swap;
810  _internal_metadata_.Swap<std::string>(&other->_internal_metadata_);
811  swap(_has_bits_[0], other->_has_bits_[0]);
812  possible_length_.InternalSwap(&other->possible_length_);
813  possible_length_local_only_.InternalSwap(&other->possible_length_local_only_);
814  national_number_pattern_.Swap(&other->national_number_pattern_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
815  example_number_.Swap(&other->example_number_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
816}
817
818std::string PhoneNumberDesc::GetTypeName() const {
819  return "i18n.phonenumbers.PhoneNumberDesc";
820}
821
822
823// ===================================================================
824
825void PhoneMetadata::InitAsDefaultInstance() {
826  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->general_desc_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
827      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
828  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->fixed_line_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
829      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
830  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->mobile_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
831      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
832  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->toll_free_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
833      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
834  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->premium_rate_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
835      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
836  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->shared_cost_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
837      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
838  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->personal_number_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
839      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
840  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->voip_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
841      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
842  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->pager_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
843      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
844  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->uan_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
845      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
846  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->emergency_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
847      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
848  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->voicemail_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
849      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
850  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->short_code_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
851      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
852  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->standard_rate_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
853      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
854  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->carrier_specific_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
855      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
856  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->sms_services_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
857      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
858  ::i18n::phonenumbers::_PhoneMetadata_default_instance_._instance.get_mutable()->no_international_dialling_ = const_cast< ::i18n::phonenumbers::PhoneNumberDesc*>(
859      ::i18n::phonenumbers::PhoneNumberDesc::internal_default_instance());
860}
861class PhoneMetadata::_Internal {
862 public:
863  using HasBits = decltype(std::declval<PhoneMetadata>()._has_bits_);
864  static const ::i18n::phonenumbers::PhoneNumberDesc& general_desc(const PhoneMetadata* msg);
865  static void set_has_general_desc(HasBits* has_bits) {
866    (*has_bits)[0] |= 256u;
867  }
868  static const ::i18n::phonenumbers::PhoneNumberDesc& fixed_line(const PhoneMetadata* msg);
869  static void set_has_fixed_line(HasBits* has_bits) {
870    (*has_bits)[0] |= 512u;
871  }
872  static const ::i18n::phonenumbers::PhoneNumberDesc& mobile(const PhoneMetadata* msg);
873  static void set_has_mobile(HasBits* has_bits) {
874    (*has_bits)[0] |= 1024u;
875  }
876  static const ::i18n::phonenumbers::PhoneNumberDesc& toll_free(const PhoneMetadata* msg);
877  static void set_has_toll_free(HasBits* has_bits) {
878    (*has_bits)[0] |= 2048u;
879  }
880  static const ::i18n::phonenumbers::PhoneNumberDesc& premium_rate(const PhoneMetadata* msg);
881  static void set_has_premium_rate(HasBits* has_bits) {
882    (*has_bits)[0] |= 4096u;
883  }
884  static const ::i18n::phonenumbers::PhoneNumberDesc& shared_cost(const PhoneMetadata* msg);
885  static void set_has_shared_cost(HasBits* has_bits) {
886    (*has_bits)[0] |= 8192u;
887  }
888  static const ::i18n::phonenumbers::PhoneNumberDesc& personal_number(const PhoneMetadata* msg);
889  static void set_has_personal_number(HasBits* has_bits) {
890    (*has_bits)[0] |= 16384u;
891  }
892  static const ::i18n::phonenumbers::PhoneNumberDesc& voip(const PhoneMetadata* msg);
893  static void set_has_voip(HasBits* has_bits) {
894    (*has_bits)[0] |= 32768u;
895  }
896  static const ::i18n::phonenumbers::PhoneNumberDesc& pager(const PhoneMetadata* msg);
897  static void set_has_pager(HasBits* has_bits) {
898    (*has_bits)[0] |= 65536u;
899  }
900  static const ::i18n::phonenumbers::PhoneNumberDesc& uan(const PhoneMetadata* msg);
901  static void set_has_uan(HasBits* has_bits) {
902    (*has_bits)[0] |= 262144u;
903  }
904  static const ::i18n::phonenumbers::PhoneNumberDesc& emergency(const PhoneMetadata* msg);
905  static void set_has_emergency(HasBits* has_bits) {
906    (*has_bits)[0] |= 524288u;
907  }
908  static const ::i18n::phonenumbers::PhoneNumberDesc& voicemail(const PhoneMetadata* msg);
909  static void set_has_voicemail(HasBits* has_bits) {
910    (*has_bits)[0] |= 1048576u;
911  }
912  static const ::i18n::phonenumbers::PhoneNumberDesc& short_code(const PhoneMetadata* msg);
913  static void set_has_short_code(HasBits* has_bits) {
914    (*has_bits)[0] |= 2097152u;
915  }
916  static const ::i18n::phonenumbers::PhoneNumberDesc& standard_rate(const PhoneMetadata* msg);
917  static void set_has_standard_rate(HasBits* has_bits) {
918    (*has_bits)[0] |= 4194304u;
919  }
920  static const ::i18n::phonenumbers::PhoneNumberDesc& carrier_specific(const PhoneMetadata* msg);
921  static void set_has_carrier_specific(HasBits* has_bits) {
922    (*has_bits)[0] |= 8388608u;
923  }
924  static const ::i18n::phonenumbers::PhoneNumberDesc& sms_services(const PhoneMetadata* msg);
925  static void set_has_sms_services(HasBits* has_bits) {
926    (*has_bits)[0] |= 16777216u;
927  }
928  static const ::i18n::phonenumbers::PhoneNumberDesc& no_international_dialling(const PhoneMetadata* msg);
929  static void set_has_no_international_dialling(HasBits* has_bits) {
930    (*has_bits)[0] |= 131072u;
931  }
932  static void set_has_id(HasBits* has_bits) {
933    (*has_bits)[0] |= 1u;
934  }
935  static void set_has_country_code(HasBits* has_bits) {
936    (*has_bits)[0] |= 33554432u;
937  }
938  static void set_has_international_prefix(HasBits* has_bits) {
939    (*has_bits)[0] |= 2u;
940  }
941  static void set_has_preferred_international_prefix(HasBits* has_bits) {
942    (*has_bits)[0] |= 64u;
943  }
944  static void set_has_national_prefix(HasBits* has_bits) {
945    (*has_bits)[0] |= 4u;
946  }
947  static void set_has_preferred_extn_prefix(HasBits* has_bits) {
948    (*has_bits)[0] |= 8u;
949  }
950  static void set_has_national_prefix_for_parsing(HasBits* has_bits) {
951    (*has_bits)[0] |= 16u;
952  }
953  static void set_has_national_prefix_transform_rule(HasBits* has_bits) {
954    (*has_bits)[0] |= 32u;
955  }
956  static void set_has_same_mobile_and_fixed_line_pattern(HasBits* has_bits) {
957    (*has_bits)[0] |= 67108864u;
958  }
959  static void set_has_main_country_for_code(HasBits* has_bits) {
960    (*has_bits)[0] |= 134217728u;
961  }
962  static void set_has_leading_digits(HasBits* has_bits) {
963    (*has_bits)[0] |= 128u;
964  }
965  static void set_has_mobile_number_portable_region(HasBits* has_bits) {
966    (*has_bits)[0] |= 268435456u;
967  }
968  static bool MissingRequiredFields(const HasBits& has_bits) {
969    return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
970  }
971};
972
973const ::i18n::phonenumbers::PhoneNumberDesc&
974PhoneMetadata::_Internal::general_desc(const PhoneMetadata* msg) {
975  return *msg->general_desc_;
976}
977const ::i18n::phonenumbers::PhoneNumberDesc&
978PhoneMetadata::_Internal::fixed_line(const PhoneMetadata* msg) {
979  return *msg->fixed_line_;
980}
981const ::i18n::phonenumbers::PhoneNumberDesc&
982PhoneMetadata::_Internal::mobile(const PhoneMetadata* msg) {
983  return *msg->mobile_;
984}
985const ::i18n::phonenumbers::PhoneNumberDesc&
986PhoneMetadata::_Internal::toll_free(const PhoneMetadata* msg) {
987  return *msg->toll_free_;
988}
989const ::i18n::phonenumbers::PhoneNumberDesc&
990PhoneMetadata::_Internal::premium_rate(const PhoneMetadata* msg) {
991  return *msg->premium_rate_;
992}
993const ::i18n::phonenumbers::PhoneNumberDesc&
994PhoneMetadata::_Internal::shared_cost(const PhoneMetadata* msg) {
995  return *msg->shared_cost_;
996}
997const ::i18n::phonenumbers::PhoneNumberDesc&
998PhoneMetadata::_Internal::personal_number(const PhoneMetadata* msg) {
999  return *msg->personal_number_;
1000}
1001const ::i18n::phonenumbers::PhoneNumberDesc&
1002PhoneMetadata::_Internal::voip(const PhoneMetadata* msg) {
1003  return *msg->voip_;
1004}
1005const ::i18n::phonenumbers::PhoneNumberDesc&
1006PhoneMetadata::_Internal::pager(const PhoneMetadata* msg) {
1007  return *msg->pager_;
1008}
1009const ::i18n::phonenumbers::PhoneNumberDesc&
1010PhoneMetadata::_Internal::uan(const PhoneMetadata* msg) {
1011  return *msg->uan_;
1012}
1013const ::i18n::phonenumbers::PhoneNumberDesc&
1014PhoneMetadata::_Internal::emergency(const PhoneMetadata* msg) {
1015  return *msg->emergency_;
1016}
1017const ::i18n::phonenumbers::PhoneNumberDesc&
1018PhoneMetadata::_Internal::voicemail(const PhoneMetadata* msg) {
1019  return *msg->voicemail_;
1020}
1021const ::i18n::phonenumbers::PhoneNumberDesc&
1022PhoneMetadata::_Internal::short_code(const PhoneMetadata* msg) {
1023  return *msg->short_code_;
1024}
1025const ::i18n::phonenumbers::PhoneNumberDesc&
1026PhoneMetadata::_Internal::standard_rate(const PhoneMetadata* msg) {
1027  return *msg->standard_rate_;
1028}
1029const ::i18n::phonenumbers::PhoneNumberDesc&
1030PhoneMetadata::_Internal::carrier_specific(const PhoneMetadata* msg) {
1031  return *msg->carrier_specific_;
1032}
1033const ::i18n::phonenumbers::PhoneNumberDesc&
1034PhoneMetadata::_Internal::sms_services(const PhoneMetadata* msg) {
1035  return *msg->sms_services_;
1036}
1037const ::i18n::phonenumbers::PhoneNumberDesc&
1038PhoneMetadata::_Internal::no_international_dialling(const PhoneMetadata* msg) {
1039  return *msg->no_international_dialling_;
1040}
1041PhoneMetadata::PhoneMetadata(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1042  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena),
1043  number_format_(arena),
1044  intl_number_format_(arena) {
1045  SharedCtor();
1046  RegisterArenaDtor(arena);
1047  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadata)
1048}
1049PhoneMetadata::PhoneMetadata(const PhoneMetadata& from)
1050  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
1051      _has_bits_(from._has_bits_),
1052      number_format_(from.number_format_),
1053      intl_number_format_(from.intl_number_format_) {
1054  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
1055  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1056  if (from._internal_has_id()) {
1057    id_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_id(),
1058      GetArena());
1059  }
1060  international_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1061  if (from._internal_has_international_prefix()) {
1062    international_prefix_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_international_prefix(),
1063      GetArena());
1064  }
1065  national_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1066  if (from._internal_has_national_prefix()) {
1067    national_prefix_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_national_prefix(),
1068      GetArena());
1069  }
1070  preferred_extn_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1071  if (from._internal_has_preferred_extn_prefix()) {
1072    preferred_extn_prefix_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_preferred_extn_prefix(),
1073      GetArena());
1074  }
1075  national_prefix_for_parsing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1076  if (from._internal_has_national_prefix_for_parsing()) {
1077    national_prefix_for_parsing_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_national_prefix_for_parsing(),
1078      GetArena());
1079  }
1080  national_prefix_transform_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1081  if (from._internal_has_national_prefix_transform_rule()) {
1082    national_prefix_transform_rule_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_national_prefix_transform_rule(),
1083      GetArena());
1084  }
1085  preferred_international_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1086  if (from._internal_has_preferred_international_prefix()) {
1087    preferred_international_prefix_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_preferred_international_prefix(),
1088      GetArena());
1089  }
1090  leading_digits_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1091  if (from._internal_has_leading_digits()) {
1092    leading_digits_.SetLite(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_leading_digits(),
1093      GetArena());
1094  }
1095  if (from._internal_has_general_desc()) {
1096    general_desc_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.general_desc_);
1097  } else {
1098    general_desc_ = nullptr;
1099  }
1100  if (from._internal_has_fixed_line()) {
1101    fixed_line_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.fixed_line_);
1102  } else {
1103    fixed_line_ = nullptr;
1104  }
1105  if (from._internal_has_mobile()) {
1106    mobile_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.mobile_);
1107  } else {
1108    mobile_ = nullptr;
1109  }
1110  if (from._internal_has_toll_free()) {
1111    toll_free_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.toll_free_);
1112  } else {
1113    toll_free_ = nullptr;
1114  }
1115  if (from._internal_has_premium_rate()) {
1116    premium_rate_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.premium_rate_);
1117  } else {
1118    premium_rate_ = nullptr;
1119  }
1120  if (from._internal_has_shared_cost()) {
1121    shared_cost_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.shared_cost_);
1122  } else {
1123    shared_cost_ = nullptr;
1124  }
1125  if (from._internal_has_personal_number()) {
1126    personal_number_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.personal_number_);
1127  } else {
1128    personal_number_ = nullptr;
1129  }
1130  if (from._internal_has_voip()) {
1131    voip_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.voip_);
1132  } else {
1133    voip_ = nullptr;
1134  }
1135  if (from._internal_has_pager()) {
1136    pager_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.pager_);
1137  } else {
1138    pager_ = nullptr;
1139  }
1140  if (from._internal_has_no_international_dialling()) {
1141    no_international_dialling_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.no_international_dialling_);
1142  } else {
1143    no_international_dialling_ = nullptr;
1144  }
1145  if (from._internal_has_uan()) {
1146    uan_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.uan_);
1147  } else {
1148    uan_ = nullptr;
1149  }
1150  if (from._internal_has_emergency()) {
1151    emergency_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.emergency_);
1152  } else {
1153    emergency_ = nullptr;
1154  }
1155  if (from._internal_has_voicemail()) {
1156    voicemail_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.voicemail_);
1157  } else {
1158    voicemail_ = nullptr;
1159  }
1160  if (from._internal_has_short_code()) {
1161    short_code_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.short_code_);
1162  } else {
1163    short_code_ = nullptr;
1164  }
1165  if (from._internal_has_standard_rate()) {
1166    standard_rate_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.standard_rate_);
1167  } else {
1168    standard_rate_ = nullptr;
1169  }
1170  if (from._internal_has_carrier_specific()) {
1171    carrier_specific_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.carrier_specific_);
1172  } else {
1173    carrier_specific_ = nullptr;
1174  }
1175  if (from._internal_has_sms_services()) {
1176    sms_services_ = new ::i18n::phonenumbers::PhoneNumberDesc(*from.sms_services_);
1177  } else {
1178    sms_services_ = nullptr;
1179  }
1180  ::memcpy(&country_code_, &from.country_code_,
1181    static_cast<size_t>(reinterpret_cast<char*>(&mobile_number_portable_region_) -
1182    reinterpret_cast<char*>(&country_code_)) + sizeof(mobile_number_portable_region_));
1183  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadata)
1184}
1185
1186void PhoneMetadata::SharedCtor() {
1187  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhoneMetadata_phonemetadata_2eproto.base);
1188  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1189  international_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1190  national_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1191  preferred_extn_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1192  national_prefix_for_parsing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1193  national_prefix_transform_rule_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1194  preferred_international_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1195  leading_digits_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1196  ::memset(&general_desc_, 0, static_cast<size_t>(
1197      reinterpret_cast<char*>(&mobile_number_portable_region_) -
1198      reinterpret_cast<char*>(&general_desc_)) + sizeof(mobile_number_portable_region_));
1199}
1200
1201PhoneMetadata::~PhoneMetadata() {
1202  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadata)
1203  SharedDtor();
1204  _internal_metadata_.Delete<std::string>();
1205}
1206
1207void PhoneMetadata::SharedDtor() {
1208  GOOGLE_DCHECK(GetArena() == nullptr);
1209  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1210  international_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1211  national_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1212  preferred_extn_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1213  national_prefix_for_parsing_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1214  national_prefix_transform_rule_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1215  preferred_international_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1216  leading_digits_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1217  if (this != internal_default_instance()) delete general_desc_;
1218  if (this != internal_default_instance()) delete fixed_line_;
1219  if (this != internal_default_instance()) delete mobile_;
1220  if (this != internal_default_instance()) delete toll_free_;
1221  if (this != internal_default_instance()) delete premium_rate_;
1222  if (this != internal_default_instance()) delete shared_cost_;
1223  if (this != internal_default_instance()) delete personal_number_;
1224  if (this != internal_default_instance()) delete voip_;
1225  if (this != internal_default_instance()) delete pager_;
1226  if (this != internal_default_instance()) delete no_international_dialling_;
1227  if (this != internal_default_instance()) delete uan_;
1228  if (this != internal_default_instance()) delete emergency_;
1229  if (this != internal_default_instance()) delete voicemail_;
1230  if (this != internal_default_instance()) delete short_code_;
1231  if (this != internal_default_instance()) delete standard_rate_;
1232  if (this != internal_default_instance()) delete carrier_specific_;
1233  if (this != internal_default_instance()) delete sms_services_;
1234}
1235
1236void PhoneMetadata::ArenaDtor(void* object) {
1237  PhoneMetadata* _this = reinterpret_cast< PhoneMetadata* >(object);
1238  (void)_this;
1239}
1240void PhoneMetadata::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1241}
1242void PhoneMetadata::SetCachedSize(int size) const {
1243  _cached_size_.Set(size);
1244}
1245const PhoneMetadata& PhoneMetadata::default_instance() {
1246  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhoneMetadata_phonemetadata_2eproto.base);
1247  return *internal_default_instance();
1248}
1249
1250
1251void PhoneMetadata::Clear() {
1252// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadata)
1253  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1254  // Prevent compiler warnings about cached_has_bits being unused
1255  (void) cached_has_bits;
1256
1257  number_format_.Clear();
1258  intl_number_format_.Clear();
1259  cached_has_bits = _has_bits_[0];
1260  if (cached_has_bits & 0x000000ffu) {
1261    if (cached_has_bits & 0x00000001u) {
1262      id_.ClearNonDefaultToEmpty();
1263    }
1264    if (cached_has_bits & 0x00000002u) {
1265      international_prefix_.ClearNonDefaultToEmpty();
1266    }
1267    if (cached_has_bits & 0x00000004u) {
1268      national_prefix_.ClearNonDefaultToEmpty();
1269    }
1270    if (cached_has_bits & 0x00000008u) {
1271      preferred_extn_prefix_.ClearNonDefaultToEmpty();
1272    }
1273    if (cached_has_bits & 0x00000010u) {
1274      national_prefix_for_parsing_.ClearNonDefaultToEmpty();
1275    }
1276    if (cached_has_bits & 0x00000020u) {
1277      national_prefix_transform_rule_.ClearNonDefaultToEmpty();
1278    }
1279    if (cached_has_bits & 0x00000040u) {
1280      preferred_international_prefix_.ClearNonDefaultToEmpty();
1281    }
1282    if (cached_has_bits & 0x00000080u) {
1283      leading_digits_.ClearNonDefaultToEmpty();
1284    }
1285  }
1286  if (cached_has_bits & 0x0000ff00u) {
1287    if (cached_has_bits & 0x00000100u) {
1288      GOOGLE_DCHECK(general_desc_ != nullptr);
1289      general_desc_->Clear();
1290    }
1291    if (cached_has_bits & 0x00000200u) {
1292      GOOGLE_DCHECK(fixed_line_ != nullptr);
1293      fixed_line_->Clear();
1294    }
1295    if (cached_has_bits & 0x00000400u) {
1296      GOOGLE_DCHECK(mobile_ != nullptr);
1297      mobile_->Clear();
1298    }
1299    if (cached_has_bits & 0x00000800u) {
1300      GOOGLE_DCHECK(toll_free_ != nullptr);
1301      toll_free_->Clear();
1302    }
1303    if (cached_has_bits & 0x00001000u) {
1304      GOOGLE_DCHECK(premium_rate_ != nullptr);
1305      premium_rate_->Clear();
1306    }
1307    if (cached_has_bits & 0x00002000u) {
1308      GOOGLE_DCHECK(shared_cost_ != nullptr);
1309      shared_cost_->Clear();
1310    }
1311    if (cached_has_bits & 0x00004000u) {
1312      GOOGLE_DCHECK(personal_number_ != nullptr);
1313      personal_number_->Clear();
1314    }
1315    if (cached_has_bits & 0x00008000u) {
1316      GOOGLE_DCHECK(voip_ != nullptr);
1317      voip_->Clear();
1318    }
1319  }
1320  if (cached_has_bits & 0x00ff0000u) {
1321    if (cached_has_bits & 0x00010000u) {
1322      GOOGLE_DCHECK(pager_ != nullptr);
1323      pager_->Clear();
1324    }
1325    if (cached_has_bits & 0x00020000u) {
1326      GOOGLE_DCHECK(no_international_dialling_ != nullptr);
1327      no_international_dialling_->Clear();
1328    }
1329    if (cached_has_bits & 0x00040000u) {
1330      GOOGLE_DCHECK(uan_ != nullptr);
1331      uan_->Clear();
1332    }
1333    if (cached_has_bits & 0x00080000u) {
1334      GOOGLE_DCHECK(emergency_ != nullptr);
1335      emergency_->Clear();
1336    }
1337    if (cached_has_bits & 0x00100000u) {
1338      GOOGLE_DCHECK(voicemail_ != nullptr);
1339      voicemail_->Clear();
1340    }
1341    if (cached_has_bits & 0x00200000u) {
1342      GOOGLE_DCHECK(short_code_ != nullptr);
1343      short_code_->Clear();
1344    }
1345    if (cached_has_bits & 0x00400000u) {
1346      GOOGLE_DCHECK(standard_rate_ != nullptr);
1347      standard_rate_->Clear();
1348    }
1349    if (cached_has_bits & 0x00800000u) {
1350      GOOGLE_DCHECK(carrier_specific_ != nullptr);
1351      carrier_specific_->Clear();
1352    }
1353  }
1354  if (cached_has_bits & 0x01000000u) {
1355    GOOGLE_DCHECK(sms_services_ != nullptr);
1356    sms_services_->Clear();
1357  }
1358  if (cached_has_bits & 0x1e000000u) {
1359    ::memset(&country_code_, 0, static_cast<size_t>(
1360        reinterpret_cast<char*>(&mobile_number_portable_region_) -
1361        reinterpret_cast<char*>(&country_code_)) + sizeof(mobile_number_portable_region_));
1362  }
1363  _has_bits_.Clear();
1364  _internal_metadata_.Clear<std::string>();
1365}
1366
1367const char* PhoneMetadata::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1368#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1369  _Internal::HasBits has_bits{};
1370  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1371  while (!ctx->Done(&ptr)) {
1372    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1373    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1374    CHK_(ptr);
1375    switch (tag >> 3) {
1376      // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1377      case 1:
1378        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1379          ptr = ctx->ParseMessage(_internal_mutable_general_desc(), ptr);
1380          CHK_(ptr);
1381        } else goto handle_unusual;
1382        continue;
1383      // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1384      case 2:
1385        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1386          ptr = ctx->ParseMessage(_internal_mutable_fixed_line(), ptr);
1387          CHK_(ptr);
1388        } else goto handle_unusual;
1389        continue;
1390      // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1391      case 3:
1392        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
1393          ptr = ctx->ParseMessage(_internal_mutable_mobile(), ptr);
1394          CHK_(ptr);
1395        } else goto handle_unusual;
1396        continue;
1397      // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1398      case 4:
1399        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
1400          ptr = ctx->ParseMessage(_internal_mutable_toll_free(), ptr);
1401          CHK_(ptr);
1402        } else goto handle_unusual;
1403        continue;
1404      // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1405      case 5:
1406        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
1407          ptr = ctx->ParseMessage(_internal_mutable_premium_rate(), ptr);
1408          CHK_(ptr);
1409        } else goto handle_unusual;
1410        continue;
1411      // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1412      case 6:
1413        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
1414          ptr = ctx->ParseMessage(_internal_mutable_shared_cost(), ptr);
1415          CHK_(ptr);
1416        } else goto handle_unusual;
1417        continue;
1418      // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1419      case 7:
1420        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
1421          ptr = ctx->ParseMessage(_internal_mutable_personal_number(), ptr);
1422          CHK_(ptr);
1423        } else goto handle_unusual;
1424        continue;
1425      // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1426      case 8:
1427        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
1428          ptr = ctx->ParseMessage(_internal_mutable_voip(), ptr);
1429          CHK_(ptr);
1430        } else goto handle_unusual;
1431        continue;
1432      // required string id = 9;
1433      case 9:
1434        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
1435          auto str = _internal_mutable_id();
1436          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1437          CHK_(ptr);
1438        } else goto handle_unusual;
1439        continue;
1440      // optional int32 country_code = 10;
1441      case 10:
1442        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
1443          _Internal::set_has_country_code(&has_bits);
1444          country_code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1445          CHK_(ptr);
1446        } else goto handle_unusual;
1447        continue;
1448      // optional string international_prefix = 11;
1449      case 11:
1450        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
1451          auto str = _internal_mutable_international_prefix();
1452          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1453          CHK_(ptr);
1454        } else goto handle_unusual;
1455        continue;
1456      // optional string national_prefix = 12;
1457      case 12:
1458        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
1459          auto str = _internal_mutable_national_prefix();
1460          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1461          CHK_(ptr);
1462        } else goto handle_unusual;
1463        continue;
1464      // optional string preferred_extn_prefix = 13;
1465      case 13:
1466        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
1467          auto str = _internal_mutable_preferred_extn_prefix();
1468          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1469          CHK_(ptr);
1470        } else goto handle_unusual;
1471        continue;
1472      // optional string national_prefix_for_parsing = 15;
1473      case 15:
1474        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
1475          auto str = _internal_mutable_national_prefix_for_parsing();
1476          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1477          CHK_(ptr);
1478        } else goto handle_unusual;
1479        continue;
1480      // optional string national_prefix_transform_rule = 16;
1481      case 16:
1482        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
1483          auto str = _internal_mutable_national_prefix_transform_rule();
1484          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1485          CHK_(ptr);
1486        } else goto handle_unusual;
1487        continue;
1488      // optional string preferred_international_prefix = 17;
1489      case 17:
1490        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
1491          auto str = _internal_mutable_preferred_international_prefix();
1492          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1493          CHK_(ptr);
1494        } else goto handle_unusual;
1495        continue;
1496      // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1497      case 18:
1498        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
1499          _Internal::set_has_same_mobile_and_fixed_line_pattern(&has_bits);
1500          same_mobile_and_fixed_line_pattern_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1501          CHK_(ptr);
1502        } else goto handle_unusual;
1503        continue;
1504      // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1505      case 19:
1506        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
1507          ptr -= 2;
1508          do {
1509            ptr += 2;
1510            ptr = ctx->ParseMessage(_internal_add_number_format(), ptr);
1511            CHK_(ptr);
1512            if (!ctx->DataAvailable(ptr)) break;
1513          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<154>(ptr));
1514        } else goto handle_unusual;
1515        continue;
1516      // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1517      case 20:
1518        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
1519          ptr -= 2;
1520          do {
1521            ptr += 2;
1522            ptr = ctx->ParseMessage(_internal_add_intl_number_format(), ptr);
1523            CHK_(ptr);
1524            if (!ctx->DataAvailable(ptr)) break;
1525          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<162>(ptr));
1526        } else goto handle_unusual;
1527        continue;
1528      // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1529      case 21:
1530        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
1531          ptr = ctx->ParseMessage(_internal_mutable_pager(), ptr);
1532          CHK_(ptr);
1533        } else goto handle_unusual;
1534        continue;
1535      // optional bool main_country_for_code = 22 [default = false];
1536      case 22:
1537        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
1538          _Internal::set_has_main_country_for_code(&has_bits);
1539          main_country_for_code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1540          CHK_(ptr);
1541        } else goto handle_unusual;
1542        continue;
1543      // optional string leading_digits = 23;
1544      case 23:
1545        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
1546          auto str = _internal_mutable_leading_digits();
1547          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1548          CHK_(ptr);
1549        } else goto handle_unusual;
1550        continue;
1551      // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1552      case 24:
1553        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
1554          ptr = ctx->ParseMessage(_internal_mutable_no_international_dialling(), ptr);
1555          CHK_(ptr);
1556        } else goto handle_unusual;
1557        continue;
1558      // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1559      case 25:
1560        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
1561          ptr = ctx->ParseMessage(_internal_mutable_uan(), ptr);
1562          CHK_(ptr);
1563        } else goto handle_unusual;
1564        continue;
1565      // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1566      case 27:
1567        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
1568          ptr = ctx->ParseMessage(_internal_mutable_emergency(), ptr);
1569          CHK_(ptr);
1570        } else goto handle_unusual;
1571        continue;
1572      // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1573      case 28:
1574        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
1575          ptr = ctx->ParseMessage(_internal_mutable_voicemail(), ptr);
1576          CHK_(ptr);
1577        } else goto handle_unusual;
1578        continue;
1579      // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1580      case 29:
1581        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
1582          ptr = ctx->ParseMessage(_internal_mutable_short_code(), ptr);
1583          CHK_(ptr);
1584        } else goto handle_unusual;
1585        continue;
1586      // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1587      case 30:
1588        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 242)) {
1589          ptr = ctx->ParseMessage(_internal_mutable_standard_rate(), ptr);
1590          CHK_(ptr);
1591        } else goto handle_unusual;
1592        continue;
1593      // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1594      case 31:
1595        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 250)) {
1596          ptr = ctx->ParseMessage(_internal_mutable_carrier_specific(), ptr);
1597          CHK_(ptr);
1598        } else goto handle_unusual;
1599        continue;
1600      // optional bool mobile_number_portable_region = 32 [default = false];
1601      case 32:
1602        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
1603          _Internal::set_has_mobile_number_portable_region(&has_bits);
1604          mobile_number_portable_region_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1605          CHK_(ptr);
1606        } else goto handle_unusual;
1607        continue;
1608      // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
1609      case 33:
1610        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1611          ptr = ctx->ParseMessage(_internal_mutable_sms_services(), ptr);
1612          CHK_(ptr);
1613        } else goto handle_unusual;
1614        continue;
1615      default: {
1616      handle_unusual:
1617        if ((tag & 7) == 4 || tag == 0) {
1618          ctx->SetLastTag(tag);
1619          goto success;
1620        }
1621        ptr = UnknownFieldParse(tag,
1622            _internal_metadata_.mutable_unknown_fields<std::string>(),
1623            ptr, ctx);
1624        CHK_(ptr != nullptr);
1625        continue;
1626      }
1627    }  // switch
1628  }  // while
1629success:
1630  _has_bits_.Or(has_bits);
1631  return ptr;
1632failure:
1633  ptr = nullptr;
1634  goto success;
1635#undef CHK_
1636}
1637
1638::PROTOBUF_NAMESPACE_ID::uint8* PhoneMetadata::_InternalSerialize(
1639    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1640  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadata)
1641  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1642  (void) cached_has_bits;
1643
1644  cached_has_bits = _has_bits_[0];
1645  // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1646  if (cached_has_bits & 0x00000100u) {
1647    target = stream->EnsureSpace(target);
1648    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1649      InternalWriteMessage(
1650        1, _Internal::general_desc(this), target, stream);
1651  }
1652
1653  // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1654  if (cached_has_bits & 0x00000200u) {
1655    target = stream->EnsureSpace(target);
1656    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1657      InternalWriteMessage(
1658        2, _Internal::fixed_line(this), target, stream);
1659  }
1660
1661  // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1662  if (cached_has_bits & 0x00000400u) {
1663    target = stream->EnsureSpace(target);
1664    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1665      InternalWriteMessage(
1666        3, _Internal::mobile(this), target, stream);
1667  }
1668
1669  // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1670  if (cached_has_bits & 0x00000800u) {
1671    target = stream->EnsureSpace(target);
1672    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1673      InternalWriteMessage(
1674        4, _Internal::toll_free(this), target, stream);
1675  }
1676
1677  // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1678  if (cached_has_bits & 0x00001000u) {
1679    target = stream->EnsureSpace(target);
1680    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1681      InternalWriteMessage(
1682        5, _Internal::premium_rate(this), target, stream);
1683  }
1684
1685  // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1686  if (cached_has_bits & 0x00002000u) {
1687    target = stream->EnsureSpace(target);
1688    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1689      InternalWriteMessage(
1690        6, _Internal::shared_cost(this), target, stream);
1691  }
1692
1693  // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1694  if (cached_has_bits & 0x00004000u) {
1695    target = stream->EnsureSpace(target);
1696    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1697      InternalWriteMessage(
1698        7, _Internal::personal_number(this), target, stream);
1699  }
1700
1701  // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1702  if (cached_has_bits & 0x00008000u) {
1703    target = stream->EnsureSpace(target);
1704    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1705      InternalWriteMessage(
1706        8, _Internal::voip(this), target, stream);
1707  }
1708
1709  // required string id = 9;
1710  if (cached_has_bits & 0x00000001u) {
1711    target = stream->WriteStringMaybeAliased(
1712        9, this->_internal_id(), target);
1713  }
1714
1715  // optional int32 country_code = 10;
1716  if (cached_has_bits & 0x02000000u) {
1717    target = stream->EnsureSpace(target);
1718    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_country_code(), target);
1719  }
1720
1721  // optional string international_prefix = 11;
1722  if (cached_has_bits & 0x00000002u) {
1723    target = stream->WriteStringMaybeAliased(
1724        11, this->_internal_international_prefix(), target);
1725  }
1726
1727  // optional string national_prefix = 12;
1728  if (cached_has_bits & 0x00000004u) {
1729    target = stream->WriteStringMaybeAliased(
1730        12, this->_internal_national_prefix(), target);
1731  }
1732
1733  // optional string preferred_extn_prefix = 13;
1734  if (cached_has_bits & 0x00000008u) {
1735    target = stream->WriteStringMaybeAliased(
1736        13, this->_internal_preferred_extn_prefix(), target);
1737  }
1738
1739  // optional string national_prefix_for_parsing = 15;
1740  if (cached_has_bits & 0x00000010u) {
1741    target = stream->WriteStringMaybeAliased(
1742        15, this->_internal_national_prefix_for_parsing(), target);
1743  }
1744
1745  // optional string national_prefix_transform_rule = 16;
1746  if (cached_has_bits & 0x00000020u) {
1747    target = stream->WriteStringMaybeAliased(
1748        16, this->_internal_national_prefix_transform_rule(), target);
1749  }
1750
1751  // optional string preferred_international_prefix = 17;
1752  if (cached_has_bits & 0x00000040u) {
1753    target = stream->WriteStringMaybeAliased(
1754        17, this->_internal_preferred_international_prefix(), target);
1755  }
1756
1757  // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1758  if (cached_has_bits & 0x04000000u) {
1759    target = stream->EnsureSpace(target);
1760    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_same_mobile_and_fixed_line_pattern(), target);
1761  }
1762
1763  // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1764  for (unsigned int i = 0,
1765      n = static_cast<unsigned int>(this->_internal_number_format_size()); i < n; i++) {
1766    target = stream->EnsureSpace(target);
1767    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1768      InternalWriteMessage(19, this->_internal_number_format(i), target, stream);
1769  }
1770
1771  // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1772  for (unsigned int i = 0,
1773      n = static_cast<unsigned int>(this->_internal_intl_number_format_size()); i < n; i++) {
1774    target = stream->EnsureSpace(target);
1775    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1776      InternalWriteMessage(20, this->_internal_intl_number_format(i), target, stream);
1777  }
1778
1779  // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1780  if (cached_has_bits & 0x00010000u) {
1781    target = stream->EnsureSpace(target);
1782    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1783      InternalWriteMessage(
1784        21, _Internal::pager(this), target, stream);
1785  }
1786
1787  // optional bool main_country_for_code = 22 [default = false];
1788  if (cached_has_bits & 0x08000000u) {
1789    target = stream->EnsureSpace(target);
1790    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(22, this->_internal_main_country_for_code(), target);
1791  }
1792
1793  // optional string leading_digits = 23;
1794  if (cached_has_bits & 0x00000080u) {
1795    target = stream->WriteStringMaybeAliased(
1796        23, this->_internal_leading_digits(), target);
1797  }
1798
1799  // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1800  if (cached_has_bits & 0x00020000u) {
1801    target = stream->EnsureSpace(target);
1802    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1803      InternalWriteMessage(
1804        24, _Internal::no_international_dialling(this), target, stream);
1805  }
1806
1807  // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1808  if (cached_has_bits & 0x00040000u) {
1809    target = stream->EnsureSpace(target);
1810    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1811      InternalWriteMessage(
1812        25, _Internal::uan(this), target, stream);
1813  }
1814
1815  // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1816  if (cached_has_bits & 0x00080000u) {
1817    target = stream->EnsureSpace(target);
1818    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1819      InternalWriteMessage(
1820        27, _Internal::emergency(this), target, stream);
1821  }
1822
1823  // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1824  if (cached_has_bits & 0x00100000u) {
1825    target = stream->EnsureSpace(target);
1826    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1827      InternalWriteMessage(
1828        28, _Internal::voicemail(this), target, stream);
1829  }
1830
1831  // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1832  if (cached_has_bits & 0x00200000u) {
1833    target = stream->EnsureSpace(target);
1834    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1835      InternalWriteMessage(
1836        29, _Internal::short_code(this), target, stream);
1837  }
1838
1839  // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1840  if (cached_has_bits & 0x00400000u) {
1841    target = stream->EnsureSpace(target);
1842    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1843      InternalWriteMessage(
1844        30, _Internal::standard_rate(this), target, stream);
1845  }
1846
1847  // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1848  if (cached_has_bits & 0x00800000u) {
1849    target = stream->EnsureSpace(target);
1850    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1851      InternalWriteMessage(
1852        31, _Internal::carrier_specific(this), target, stream);
1853  }
1854
1855  // optional bool mobile_number_portable_region = 32 [default = false];
1856  if (cached_has_bits & 0x10000000u) {
1857    target = stream->EnsureSpace(target);
1858    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_mobile_number_portable_region(), target);
1859  }
1860
1861  // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
1862  if (cached_has_bits & 0x01000000u) {
1863    target = stream->EnsureSpace(target);
1864    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1865      InternalWriteMessage(
1866        33, _Internal::sms_services(this), target, stream);
1867  }
1868
1869  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1870    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
1871        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
1872  }
1873  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadata)
1874  return target;
1875}
1876
1877size_t PhoneMetadata::ByteSizeLong() const {
1878// @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadata)
1879  size_t total_size = 0;
1880
1881  // required string id = 9;
1882  if (_internal_has_id()) {
1883    total_size += 1 +
1884      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1885        this->_internal_id());
1886  }
1887  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1888  // Prevent compiler warnings about cached_has_bits being unused
1889  (void) cached_has_bits;
1890
1891  // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1892  total_size += 2UL * this->_internal_number_format_size();
1893  for (const auto& msg : this->number_format_) {
1894    total_size +=
1895      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1896  }
1897
1898  // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1899  total_size += 2UL * this->_internal_intl_number_format_size();
1900  for (const auto& msg : this->intl_number_format_) {
1901    total_size +=
1902      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1903  }
1904
1905  cached_has_bits = _has_bits_[0];
1906  if (cached_has_bits & 0x000000feu) {
1907    // optional string international_prefix = 11;
1908    if (cached_has_bits & 0x00000002u) {
1909      total_size += 1 +
1910        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1911          this->_internal_international_prefix());
1912    }
1913
1914    // optional string national_prefix = 12;
1915    if (cached_has_bits & 0x00000004u) {
1916      total_size += 1 +
1917        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1918          this->_internal_national_prefix());
1919    }
1920
1921    // optional string preferred_extn_prefix = 13;
1922    if (cached_has_bits & 0x00000008u) {
1923      total_size += 1 +
1924        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1925          this->_internal_preferred_extn_prefix());
1926    }
1927
1928    // optional string national_prefix_for_parsing = 15;
1929    if (cached_has_bits & 0x00000010u) {
1930      total_size += 1 +
1931        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1932          this->_internal_national_prefix_for_parsing());
1933    }
1934
1935    // optional string national_prefix_transform_rule = 16;
1936    if (cached_has_bits & 0x00000020u) {
1937      total_size += 2 +
1938        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1939          this->_internal_national_prefix_transform_rule());
1940    }
1941
1942    // optional string preferred_international_prefix = 17;
1943    if (cached_has_bits & 0x00000040u) {
1944      total_size += 2 +
1945        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1946          this->_internal_preferred_international_prefix());
1947    }
1948
1949    // optional string leading_digits = 23;
1950    if (cached_has_bits & 0x00000080u) {
1951      total_size += 2 +
1952        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1953          this->_internal_leading_digits());
1954    }
1955
1956  }
1957  if (cached_has_bits & 0x0000ff00u) {
1958    // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1959    if (cached_has_bits & 0x00000100u) {
1960      total_size += 1 +
1961        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1962          *general_desc_);
1963    }
1964
1965    // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1966    if (cached_has_bits & 0x00000200u) {
1967      total_size += 1 +
1968        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1969          *fixed_line_);
1970    }
1971
1972    // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1973    if (cached_has_bits & 0x00000400u) {
1974      total_size += 1 +
1975        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1976          *mobile_);
1977    }
1978
1979    // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1980    if (cached_has_bits & 0x00000800u) {
1981      total_size += 1 +
1982        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1983          *toll_free_);
1984    }
1985
1986    // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1987    if (cached_has_bits & 0x00001000u) {
1988      total_size += 1 +
1989        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1990          *premium_rate_);
1991    }
1992
1993    // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1994    if (cached_has_bits & 0x00002000u) {
1995      total_size += 1 +
1996        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1997          *shared_cost_);
1998    }
1999
2000    // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
2001    if (cached_has_bits & 0x00004000u) {
2002      total_size += 1 +
2003        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2004          *personal_number_);
2005    }
2006
2007    // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
2008    if (cached_has_bits & 0x00008000u) {
2009      total_size += 1 +
2010        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2011          *voip_);
2012    }
2013
2014  }
2015  if (cached_has_bits & 0x00ff0000u) {
2016    // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
2017    if (cached_has_bits & 0x00010000u) {
2018      total_size += 2 +
2019        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2020          *pager_);
2021    }
2022
2023    // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
2024    if (cached_has_bits & 0x00020000u) {
2025      total_size += 2 +
2026        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2027          *no_international_dialling_);
2028    }
2029
2030    // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
2031    if (cached_has_bits & 0x00040000u) {
2032      total_size += 2 +
2033        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2034          *uan_);
2035    }
2036
2037    // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
2038    if (cached_has_bits & 0x00080000u) {
2039      total_size += 2 +
2040        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2041          *emergency_);
2042    }
2043
2044    // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
2045    if (cached_has_bits & 0x00100000u) {
2046      total_size += 2 +
2047        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2048          *voicemail_);
2049    }
2050
2051    // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
2052    if (cached_has_bits & 0x00200000u) {
2053      total_size += 2 +
2054        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2055          *short_code_);
2056    }
2057
2058    // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
2059    if (cached_has_bits & 0x00400000u) {
2060      total_size += 2 +
2061        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2062          *standard_rate_);
2063    }
2064
2065    // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
2066    if (cached_has_bits & 0x00800000u) {
2067      total_size += 2 +
2068        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2069          *carrier_specific_);
2070    }
2071
2072  }
2073  if (cached_has_bits & 0x1f000000u) {
2074    // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
2075    if (cached_has_bits & 0x01000000u) {
2076      total_size += 2 +
2077        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2078          *sms_services_);
2079    }
2080
2081    // optional int32 country_code = 10;
2082    if (cached_has_bits & 0x02000000u) {
2083      total_size += 1 +
2084        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2085          this->_internal_country_code());
2086    }
2087
2088    // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
2089    if (cached_has_bits & 0x04000000u) {
2090      total_size += 2 + 1;
2091    }
2092
2093    // optional bool main_country_for_code = 22 [default = false];
2094    if (cached_has_bits & 0x08000000u) {
2095      total_size += 2 + 1;
2096    }
2097
2098    // optional bool mobile_number_portable_region = 32 [default = false];
2099    if (cached_has_bits & 0x10000000u) {
2100      total_size += 2 + 1;
2101    }
2102
2103  }
2104  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2105    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
2106  }
2107  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2108  SetCachedSize(cached_size);
2109  return total_size;
2110}
2111
2112void PhoneMetadata::CheckTypeAndMergeFrom(
2113    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
2114  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const PhoneMetadata*>(
2115      &from));
2116}
2117
2118void PhoneMetadata::MergeFrom(const PhoneMetadata& from) {
2119// @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadata)
2120  GOOGLE_DCHECK_NE(&from, this);
2121  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
2122  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2123  (void) cached_has_bits;
2124
2125  number_format_.MergeFrom(from.number_format_);
2126  intl_number_format_.MergeFrom(from.intl_number_format_);
2127  cached_has_bits = from._has_bits_[0];
2128  if (cached_has_bits & 0x000000ffu) {
2129    if (cached_has_bits & 0x00000001u) {
2130      _internal_set_id(from._internal_id());
2131    }
2132    if (cached_has_bits & 0x00000002u) {
2133      _internal_set_international_prefix(from._internal_international_prefix());
2134    }
2135    if (cached_has_bits & 0x00000004u) {
2136      _internal_set_national_prefix(from._internal_national_prefix());
2137    }
2138    if (cached_has_bits & 0x00000008u) {
2139      _internal_set_preferred_extn_prefix(from._internal_preferred_extn_prefix());
2140    }
2141    if (cached_has_bits & 0x00000010u) {
2142      _internal_set_national_prefix_for_parsing(from._internal_national_prefix_for_parsing());
2143    }
2144    if (cached_has_bits & 0x00000020u) {
2145      _internal_set_national_prefix_transform_rule(from._internal_national_prefix_transform_rule());
2146    }
2147    if (cached_has_bits & 0x00000040u) {
2148      _internal_set_preferred_international_prefix(from._internal_preferred_international_prefix());
2149    }
2150    if (cached_has_bits & 0x00000080u) {
2151      _internal_set_leading_digits(from._internal_leading_digits());
2152    }
2153  }
2154  if (cached_has_bits & 0x0000ff00u) {
2155    if (cached_has_bits & 0x00000100u) {
2156      _internal_mutable_general_desc()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_general_desc());
2157    }
2158    if (cached_has_bits & 0x00000200u) {
2159      _internal_mutable_fixed_line()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_fixed_line());
2160    }
2161    if (cached_has_bits & 0x00000400u) {
2162      _internal_mutable_mobile()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_mobile());
2163    }
2164    if (cached_has_bits & 0x00000800u) {
2165      _internal_mutable_toll_free()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_toll_free());
2166    }
2167    if (cached_has_bits & 0x00001000u) {
2168      _internal_mutable_premium_rate()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_premium_rate());
2169    }
2170    if (cached_has_bits & 0x00002000u) {
2171      _internal_mutable_shared_cost()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_shared_cost());
2172    }
2173    if (cached_has_bits & 0x00004000u) {
2174      _internal_mutable_personal_number()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_personal_number());
2175    }
2176    if (cached_has_bits & 0x00008000u) {
2177      _internal_mutable_voip()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_voip());
2178    }
2179  }
2180  if (cached_has_bits & 0x00ff0000u) {
2181    if (cached_has_bits & 0x00010000u) {
2182      _internal_mutable_pager()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_pager());
2183    }
2184    if (cached_has_bits & 0x00020000u) {
2185      _internal_mutable_no_international_dialling()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_no_international_dialling());
2186    }
2187    if (cached_has_bits & 0x00040000u) {
2188      _internal_mutable_uan()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_uan());
2189    }
2190    if (cached_has_bits & 0x00080000u) {
2191      _internal_mutable_emergency()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_emergency());
2192    }
2193    if (cached_has_bits & 0x00100000u) {
2194      _internal_mutable_voicemail()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_voicemail());
2195    }
2196    if (cached_has_bits & 0x00200000u) {
2197      _internal_mutable_short_code()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_short_code());
2198    }
2199    if (cached_has_bits & 0x00400000u) {
2200      _internal_mutable_standard_rate()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_standard_rate());
2201    }
2202    if (cached_has_bits & 0x00800000u) {
2203      _internal_mutable_carrier_specific()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_carrier_specific());
2204    }
2205  }
2206  if (cached_has_bits & 0x1f000000u) {
2207    if (cached_has_bits & 0x01000000u) {
2208      _internal_mutable_sms_services()->::i18n::phonenumbers::PhoneNumberDesc::MergeFrom(from._internal_sms_services());
2209    }
2210    if (cached_has_bits & 0x02000000u) {
2211      country_code_ = from.country_code_;
2212    }
2213    if (cached_has_bits & 0x04000000u) {
2214      same_mobile_and_fixed_line_pattern_ = from.same_mobile_and_fixed_line_pattern_;
2215    }
2216    if (cached_has_bits & 0x08000000u) {
2217      main_country_for_code_ = from.main_country_for_code_;
2218    }
2219    if (cached_has_bits & 0x10000000u) {
2220      mobile_number_portable_region_ = from.mobile_number_portable_region_;
2221    }
2222    _has_bits_[0] |= cached_has_bits;
2223  }
2224}
2225
2226void PhoneMetadata::CopyFrom(const PhoneMetadata& from) {
2227// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadata)
2228  if (&from == this) return;
2229  Clear();
2230  MergeFrom(from);
2231}
2232
2233bool PhoneMetadata::IsInitialized() const {
2234  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
2235  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(number_format_)) return false;
2236  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(intl_number_format_)) return false;
2237  return true;
2238}
2239
2240void PhoneMetadata::InternalSwap(PhoneMetadata* other) {
2241  using std::swap;
2242  _internal_metadata_.Swap<std::string>(&other->_internal_metadata_);
2243  swap(_has_bits_[0], other->_has_bits_[0]);
2244  number_format_.InternalSwap(&other->number_format_);
2245  intl_number_format_.InternalSwap(&other->intl_number_format_);
2246  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2247  international_prefix_.Swap(&other->international_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2248  national_prefix_.Swap(&other->national_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2249  preferred_extn_prefix_.Swap(&other->preferred_extn_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2250  national_prefix_for_parsing_.Swap(&other->national_prefix_for_parsing_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2251  national_prefix_transform_rule_.Swap(&other->national_prefix_transform_rule_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2252  preferred_international_prefix_.Swap(&other->preferred_international_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2253  leading_digits_.Swap(&other->leading_digits_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2254  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2255      PROTOBUF_FIELD_OFFSET(PhoneMetadata, mobile_number_portable_region_)
2256      + sizeof(PhoneMetadata::mobile_number_portable_region_)
2257      - PROTOBUF_FIELD_OFFSET(PhoneMetadata, general_desc_)>(
2258          reinterpret_cast<char*>(&general_desc_),
2259          reinterpret_cast<char*>(&other->general_desc_));
2260}
2261
2262std::string PhoneMetadata::GetTypeName() const {
2263  return "i18n.phonenumbers.PhoneMetadata";
2264}
2265
2266
2267// ===================================================================
2268
2269void PhoneMetadataCollection::InitAsDefaultInstance() {
2270}
2271class PhoneMetadataCollection::_Internal {
2272 public:
2273};
2274
2275PhoneMetadataCollection::PhoneMetadataCollection(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2276  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena),
2277  metadata_(arena) {
2278  SharedCtor();
2279  RegisterArenaDtor(arena);
2280  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadataCollection)
2281}
2282PhoneMetadataCollection::PhoneMetadataCollection(const PhoneMetadataCollection& from)
2283  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
2284      metadata_(from.metadata_) {
2285  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
2286  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadataCollection)
2287}
2288
2289void PhoneMetadataCollection::SharedCtor() {
2290  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhoneMetadataCollection_phonemetadata_2eproto.base);
2291}
2292
2293PhoneMetadataCollection::~PhoneMetadataCollection() {
2294  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadataCollection)
2295  SharedDtor();
2296  _internal_metadata_.Delete<std::string>();
2297}
2298
2299void PhoneMetadataCollection::SharedDtor() {
2300  GOOGLE_DCHECK(GetArena() == nullptr);
2301}
2302
2303void PhoneMetadataCollection::ArenaDtor(void* object) {
2304  PhoneMetadataCollection* _this = reinterpret_cast< PhoneMetadataCollection* >(object);
2305  (void)_this;
2306}
2307void PhoneMetadataCollection::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2308}
2309void PhoneMetadataCollection::SetCachedSize(int size) const {
2310  _cached_size_.Set(size);
2311}
2312const PhoneMetadataCollection& PhoneMetadataCollection::default_instance() {
2313  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhoneMetadataCollection_phonemetadata_2eproto.base);
2314  return *internal_default_instance();
2315}
2316
2317
2318void PhoneMetadataCollection::Clear() {
2319// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadataCollection)
2320  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2321  // Prevent compiler warnings about cached_has_bits being unused
2322  (void) cached_has_bits;
2323
2324  metadata_.Clear();
2325  _internal_metadata_.Clear<std::string>();
2326}
2327
2328const char* PhoneMetadataCollection::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2329#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2330  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
2331  while (!ctx->Done(&ptr)) {
2332    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2333    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2334    CHK_(ptr);
2335    switch (tag >> 3) {
2336      // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2337      case 1:
2338        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2339          ptr -= 1;
2340          do {
2341            ptr += 1;
2342            ptr = ctx->ParseMessage(_internal_add_metadata(), ptr);
2343            CHK_(ptr);
2344            if (!ctx->DataAvailable(ptr)) break;
2345          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
2346        } else goto handle_unusual;
2347        continue;
2348      default: {
2349      handle_unusual:
2350        if ((tag & 7) == 4 || tag == 0) {
2351          ctx->SetLastTag(tag);
2352          goto success;
2353        }
2354        ptr = UnknownFieldParse(tag,
2355            _internal_metadata_.mutable_unknown_fields<std::string>(),
2356            ptr, ctx);
2357        CHK_(ptr != nullptr);
2358        continue;
2359      }
2360    }  // switch
2361  }  // while
2362success:
2363  return ptr;
2364failure:
2365  ptr = nullptr;
2366  goto success;
2367#undef CHK_
2368}
2369
2370::PROTOBUF_NAMESPACE_ID::uint8* PhoneMetadataCollection::_InternalSerialize(
2371    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2372  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadataCollection)
2373  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2374  (void) cached_has_bits;
2375
2376  // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2377  for (unsigned int i = 0,
2378      n = static_cast<unsigned int>(this->_internal_metadata_size()); i < n; i++) {
2379    target = stream->EnsureSpace(target);
2380    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2381      InternalWriteMessage(1, this->_internal_metadata(i), target, stream);
2382  }
2383
2384  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2385    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
2386        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
2387  }
2388  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadataCollection)
2389  return target;
2390}
2391
2392size_t PhoneMetadataCollection::ByteSizeLong() const {
2393// @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadataCollection)
2394  size_t total_size = 0;
2395
2396  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2397  // Prevent compiler warnings about cached_has_bits being unused
2398  (void) cached_has_bits;
2399
2400  // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2401  total_size += 1UL * this->_internal_metadata_size();
2402  for (const auto& msg : this->metadata_) {
2403    total_size +=
2404      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2405  }
2406
2407  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2408    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
2409  }
2410  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2411  SetCachedSize(cached_size);
2412  return total_size;
2413}
2414
2415void PhoneMetadataCollection::CheckTypeAndMergeFrom(
2416    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
2417  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const PhoneMetadataCollection*>(
2418      &from));
2419}
2420
2421void PhoneMetadataCollection::MergeFrom(const PhoneMetadataCollection& from) {
2422// @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadataCollection)
2423  GOOGLE_DCHECK_NE(&from, this);
2424  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
2425  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2426  (void) cached_has_bits;
2427
2428  metadata_.MergeFrom(from.metadata_);
2429}
2430
2431void PhoneMetadataCollection::CopyFrom(const PhoneMetadataCollection& from) {
2432// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadataCollection)
2433  if (&from == this) return;
2434  Clear();
2435  MergeFrom(from);
2436}
2437
2438bool PhoneMetadataCollection::IsInitialized() const {
2439  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(metadata_)) return false;
2440  return true;
2441}
2442
2443void PhoneMetadataCollection::InternalSwap(PhoneMetadataCollection* other) {
2444  using std::swap;
2445  _internal_metadata_.Swap<std::string>(&other->_internal_metadata_);
2446  metadata_.InternalSwap(&other->metadata_);
2447}
2448
2449std::string PhoneMetadataCollection::GetTypeName() const {
2450  return "i18n.phonenumbers.PhoneMetadataCollection";
2451}
2452
2453
2454// @@protoc_insertion_point(namespace_scope)
2455}  // namespace phonenumbers
2456}  // namespace i18n
2457PROTOBUF_NAMESPACE_OPEN
2458template<> PROTOBUF_NOINLINE ::i18n::phonenumbers::NumberFormat* Arena::CreateMaybeMessage< ::i18n::phonenumbers::NumberFormat >(Arena* arena) {
2459  return Arena::CreateMessageInternal< ::i18n::phonenumbers::NumberFormat >(arena);
2460}
2461template<> PROTOBUF_NOINLINE ::i18n::phonenumbers::PhoneNumberDesc* Arena::CreateMaybeMessage< ::i18n::phonenumbers::PhoneNumberDesc >(Arena* arena) {
2462  return Arena::CreateMessageInternal< ::i18n::phonenumbers::PhoneNumberDesc >(arena);
2463}
2464template<> PROTOBUF_NOINLINE ::i18n::phonenumbers::PhoneMetadata* Arena::CreateMaybeMessage< ::i18n::phonenumbers::PhoneMetadata >(Arena* arena) {
2465  return Arena::CreateMessageInternal< ::i18n::phonenumbers::PhoneMetadata >(arena);
2466}
2467template<> PROTOBUF_NOINLINE ::i18n::phonenumbers::PhoneMetadataCollection* Arena::CreateMaybeMessage< ::i18n::phonenumbers::PhoneMetadataCollection >(Arena* arena) {
2468  return Arena::CreateMessageInternal< ::i18n::phonenumbers::PhoneMetadataCollection >(arena);
2469}
2470PROTOBUF_NAMESPACE_CLOSE
2471
2472// @@protoc_insertion_point(global_scope)
2473#include <google/protobuf/port_undef.inc>
2474