phonelib 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1989) hide show
  1. checksums.yaml +4 -4
  2. data/data/extended_data.dat +0 -0
  3. data/data/phone_data.dat +0 -0
  4. data/lib/phonelib/data_importer.rb +1 -1
  5. data/lib/phonelib/phone_analyzer.rb +32 -12
  6. data/lib/phonelib/phone_analyzer_helper.rb +21 -2
  7. data/lib/phonelib/phone_formatter.rb +13 -0
  8. data/lib/phonelib/version.rb +1 -1
  9. data/lib/validators/phone_validator.rb +1 -1
  10. metadata +2 -1981
  11. data/data/libphonenumber/AUTHORS +0 -4
  12. data/data/libphonenumber/CONTRIBUTING.md +0 -47
  13. data/data/libphonenumber/CONTRIBUTORS +0 -69
  14. data/data/libphonenumber/FALSEHOODS.md +0 -237
  15. data/data/libphonenumber/FAQ.md +0 -190
  16. data/data/libphonenumber/LICENSE +0 -176
  17. data/data/libphonenumber/LICENSE.Chromium +0 -37
  18. data/data/libphonenumber/README.md +0 -116
  19. data/data/libphonenumber/codereview.settings +0 -4
  20. data/data/libphonenumber/cpp/CMakeLists.txt +0 -592
  21. data/data/libphonenumber/cpp/LICENSE +0 -13
  22. data/data/libphonenumber/cpp/README +0 -344
  23. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +0 -907
  24. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.h +0 -29
  25. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc +0 -781
  26. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.h +0 -243
  27. data/data/libphonenumber/cpp/src/phonenumbers/base/basictypes.h +0 -263
  28. data/data/libphonenumber/cpp/src/phonenumbers/base/logging.h +0 -45
  29. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h +0 -450
  30. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton.h +0 -95
  31. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h +0 -53
  32. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.cc +0 -221
  33. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.h +0 -194
  34. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h +0 -91
  35. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h +0 -63
  36. data/data/libphonenumber/cpp/src/phonenumbers/base/template_util.h +0 -108
  37. data/data/libphonenumber/cpp/src/phonenumbers/base/thread_checker.h +0 -70
  38. data/data/libphonenumber/cpp/src/phonenumbers/callback.h +0 -88
  39. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.cc +0 -57
  40. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.h +0 -105
  41. data/data/libphonenumber/cpp/src/phonenumbers/encoding_utils.h +0 -51
  42. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.cc +0 -94
  43. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.h +0 -75
  44. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.cc +0 -65
  45. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.h +0 -76
  46. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/geocoding_data.h +0 -77
  47. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.cc +0 -175
  48. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.h +0 -75
  49. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc +0 -226
  50. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h +0 -165
  51. data/data/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +0 -11547
  52. data/data/libphonenumber/cpp/src/phonenumbers/logger.cc +0 -27
  53. data/data/libphonenumber/cpp/src/phonenumbers/logger.h +0 -103
  54. data/data/libphonenumber/cpp/src/phonenumbers/matcher_api.h +0 -54
  55. data/data/libphonenumber/cpp/src/phonenumbers/metadata.cc +0 -12478
  56. data/data/libphonenumber/cpp/src/phonenumbers/metadata.h +0 -29
  57. data/data/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h +0 -50
  58. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.cc +0 -87
  59. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.h +0 -40
  60. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc +0 -91
  61. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h +0 -125
  62. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc +0 -907
  63. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.h +0 -201
  64. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc +0 -2926
  65. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.h +0 -868
  66. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc +0 -68
  67. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.h +0 -61
  68. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h +0 -168
  69. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc +0 -237
  70. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h +0 -41
  71. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.cc +0 -155
  72. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.h +0 -40
  73. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc +0 -60
  74. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.h +0 -77
  75. data/data/libphonenumber/cpp/src/phonenumbers/regexp_factory.h +0 -44
  76. data/data/libphonenumber/cpp/src/phonenumbers/region_code.h +0 -40
  77. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +0 -3032
  78. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.h +0 -29
  79. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc +0 -427
  80. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.h +0 -240
  81. data/data/libphonenumber/cpp/src/phonenumbers/stl_util.h +0 -51
  82. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.cc +0 -33
  83. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.h +0 -40
  84. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.cc +0 -448
  85. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.h +0 -176
  86. data/data/libphonenumber/cpp/src/phonenumbers/test_metadata.cc +0 -885
  87. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.cc +0 -114
  88. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.h +0 -133
  89. data/data/libphonenumber/cpp/src/phonenumbers/utf/README +0 -1
  90. data/data/libphonenumber/cpp/src/phonenumbers/utf/rune.c +0 -358
  91. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringpiece.h +0 -23
  92. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringprintf.h +0 -22
  93. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc +0 -520
  94. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h +0 -461
  95. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc +0 -68
  96. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.h +0 -99
  97. data/data/libphonenumber/cpp/src/phonenumbers/utf/utf.h +0 -240
  98. data/data/libphonenumber/cpp/src/phonenumbers/utf/utfdef.h +0 -27
  99. data/data/libphonenumber/cpp/test/phonenumbers/asyoutypeformatter_test.cc +0 -1237
  100. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/area_code_map_test.cc +0 -201
  101. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_data_test.cc +0 -176
  102. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_data.h +0 -50
  103. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_program.cc +0 -44
  104. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/mapping_file_provider_test.cc +0 -91
  105. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/phonenumber_offline_geocoder_test.cc +0 -214
  106. data/data/libphonenumber/cpp/test/phonenumbers/logger_test.cc +0 -172
  107. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatch_test.cc +0 -92
  108. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatcher_test.cc +0 -1234
  109. data/data/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc +0 -3992
  110. data/data/libphonenumber/cpp/test/phonenumbers/regexp_adapter_test.cc +0 -322
  111. data/data/libphonenumber/cpp/test/phonenumbers/regexp_cache_test.cc +0 -60
  112. data/data/libphonenumber/cpp/test/phonenumbers/run_tests.cc +0 -21
  113. data/data/libphonenumber/cpp/test/phonenumbers/shortnumberinfo_test.cc +0 -483
  114. data/data/libphonenumber/cpp/test/phonenumbers/stringutil_test.cc +0 -306
  115. data/data/libphonenumber/cpp/test/phonenumbers/test_util.cc +0 -60
  116. data/data/libphonenumber/cpp/test/phonenumbers/test_util.h +0 -199
  117. data/data/libphonenumber/cpp/test/phonenumbers/unicodestring_test.cc +0 -236
  118. data/data/libphonenumber/cpp/test/phonenumbers/utf/unicodetext_test.cc +0 -45
  119. data/data/libphonenumber/debian/README.source +0 -21
  120. data/data/libphonenumber/debian/changelog +0 -5
  121. data/data/libphonenumber/debian/compat +0 -1
  122. data/data/libphonenumber/debian/control +0 -75
  123. data/data/libphonenumber/debian/copyright +0 -74
  124. data/data/libphonenumber/debian/libphonenumber7-dev.install +0 -3
  125. data/data/libphonenumber/debian/libphonenumber7-java.jlibs +0 -1
  126. data/data/libphonenumber/debian/libphonenumber7-java.poms +0 -39
  127. data/data/libphonenumber/debian/libphonenumber7.install +0 -1
  128. data/data/libphonenumber/debian/maven.cleanIgnoreRules +0 -17
  129. data/data/libphonenumber/debian/maven.ignoreRules +0 -23
  130. data/data/libphonenumber/debian/maven.properties +0 -4
  131. data/data/libphonenumber/debian/maven.publishedRules +0 -19
  132. data/data/libphonenumber/debian/maven.rules +0 -31
  133. data/data/libphonenumber/debian/patches/0003-maven-exclude-demo.patch +0 -13
  134. data/data/libphonenumber/debian/patches/series +0 -1
  135. data/data/libphonenumber/debian/rules +0 -89
  136. data/data/libphonenumber/debian/source/format +0 -1
  137. data/data/libphonenumber/debian/watch +0 -3
  138. data/data/libphonenumber/java/build.xml +0 -307
  139. data/data/libphonenumber/java/carrier/pom.xml +0 -68
  140. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapper.java +0 -124
  141. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en +0 -0
  142. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1246_en +0 -0
  143. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1264_en +0 -0
  144. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1441_en +0 -0
  145. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1473_en +0 -0
  146. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1649_en +0 -0
  147. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1671_en +0 -0
  148. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1684_en +0 -0
  149. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1758_en +0 -0
  150. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1767_en +0 -0
  151. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1784_en +0 -0
  152. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1787_en +0 -0
  153. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1809_en +0 -0
  154. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1868_en +0 -0
  155. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1869_en +0 -0
  156. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1876_en +0 -0
  157. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1939_en +0 -0
  158. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/20_en +0 -0
  159. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/211_en +0 -0
  160. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
  161. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/213_en +0 -0
  162. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
  163. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/220_en +0 -0
  164. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
  165. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/222_en +0 -0
  166. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/223_en +0 -0
  167. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/224_en +0 -0
  168. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/225_en +0 -0
  169. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/226_en +0 -0
  170. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/227_en +0 -0
  171. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
  172. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
  173. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
  174. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/231_en +0 -0
  175. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/232_en +0 -0
  176. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/233_en +0 -0
  177. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/234_en +0 -0
  178. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/235_en +0 -0
  179. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/236_en +0 -0
  180. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
  181. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/238_en +0 -0
  182. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/239_en +0 -0
  183. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/240_en +0 -0
  184. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/241_en +0 -0
  185. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/242_en +0 -0
  186. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/243_en +0 -0
  187. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/244_en +0 -0
  188. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/245_en +0 -0
  189. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/248_en +0 -0
  190. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/249_en +0 -0
  191. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
  192. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/251_en +0 -0
  193. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/252_en +0 -0
  194. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/253_en +0 -0
  195. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/254_en +0 -0
  196. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/255_en +0 -0
  197. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/256_en +0 -0
  198. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/257_en +0 -0
  199. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/258_en +0 -0
  200. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/260_en +0 -0
  201. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/261_en +0 -0
  202. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/263_en +0 -0
  203. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/265_en +0 -0
  204. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/267_en +0 -0
  205. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/268_en +0 -0
  206. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/27_en +0 -0
  207. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/297_en +0 -0
  208. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/298_en +0 -0
  209. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/299_en +0 -0
  210. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
  211. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/31_en +0 -0
  212. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/32_en +0 -0
  213. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/33_en +0 -0
  214. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/350_en +0 -0
  215. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/351_en +0 -0
  216. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/352_en +0 -0
  217. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/353_en +0 -0
  218. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/354_en +0 -0
  219. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/355_en +0 -0
  220. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/356_en +0 -0
  221. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/357_en +0 -0
  222. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/358_en +0 -0
  223. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/359_en +0 -0
  224. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/36_en +0 -0
  225. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/370_en +0 -0
  226. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/372_en +0 -0
  227. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/373_en +0 -0
  228. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_en +0 -0
  229. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_ru +0 -0
  230. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_be +0 -0
  231. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_en +0 -0
  232. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_ru +0 -0
  233. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/376_en +0 -0
  234. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/380_en +0 -0
  235. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/381_en +0 -0
  236. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/382_en +0 -0
  237. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
  238. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/386_en +0 -0
  239. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/387_en +0 -0
  240. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
  241. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
  242. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
  243. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
  244. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/420_en +0 -0
  245. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/421_en +0 -0
  246. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
  247. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
  248. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
  249. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/48_en +0 -0
  250. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
  251. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/501_en +0 -0
  252. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/505_en +0 -0
  253. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/506_en +0 -0
  254. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/507_en +0 -0
  255. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/509_en +0 -0
  256. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
  257. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
  258. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/54_en +0 -0
  259. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/55_en +0 -0
  260. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
  261. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
  262. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/58_en +0 -0
  263. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/591_en +0 -0
  264. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/592_en +0 -0
  265. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/595_en +0 -0
  266. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/597_en +0 -0
  267. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/598_en +0 -0
  268. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/599_en +0 -0
  269. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
  270. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
  271. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/62_en +0 -0
  272. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/63_en +0 -0
  273. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
  274. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
  275. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/66_en +0 -0
  276. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/670_en +0 -0
  277. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/673_en +0 -0
  278. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/675_en +0 -0
  279. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/676_en +0 -0
  280. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/677_en +0 -0
  281. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/678_en +0 -0
  282. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/679_en +0 -0
  283. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/685_en +0 -0
  284. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/686_en +0 -0
  285. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/689_en +0 -0
  286. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_en +0 -0
  287. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
  288. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
  289. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh +0 -0
  290. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh_Hant +0 -0
  291. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/853_en +0 -0
  292. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/855_en +0 -0
  293. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/856_en +0 -0
  294. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
  295. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh +0 -0
  296. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh_Hant +0 -0
  297. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/880_en +0 -0
  298. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
  299. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en +0 -0
  300. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
  301. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_en +0 -0
  302. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_fa +0 -0
  303. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/94_en +0 -0
  304. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/95_en +0 -0
  305. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/960_en +0 -0
  306. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/961_en +0 -0
  307. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/962_en +0 -0
  308. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/963_en +0 -0
  309. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/964_en +0 -0
  310. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_ar +0 -0
  311. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_en +0 -0
  312. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
  313. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/967_en +0 -0
  314. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/968_en +0 -0
  315. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/970_en +0 -0
  316. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/971_en +0 -0
  317. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
  318. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
  319. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/974_en +0 -0
  320. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/975_en +0 -0
  321. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/976_en +0 -0
  322. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/977_en +0 -0
  323. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_en +0 -0
  324. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_fa +0 -0
  325. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
  326. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/993_en +0 -0
  327. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/994_en +0 -0
  328. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
  329. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
  330. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
  331. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/config +0 -0
  332. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapperTest.java +0 -121
  333. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/1650_en +0 -0
  334. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/244_en +0 -0
  335. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_en +0 -0
  336. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_sv +0 -0
  337. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/config +0 -0
  338. data/data/libphonenumber/java/demo/README +0 -16
  339. data/data/libphonenumber/java/demo/build.xml +0 -59
  340. data/data/libphonenumber/java/demo/pom.xml +0 -112
  341. data/data/libphonenumber/java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java +0 -434
  342. data/data/libphonenumber/java/demo/war/WEB-INF/appengine-web.xml +0 -11
  343. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  344. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-io-1.4.jar +0 -0
  345. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-lang-2.6.jar +0 -0
  346. data/data/libphonenumber/java/demo/war/WEB-INF/logging.properties +0 -13
  347. data/data/libphonenumber/java/demo/war/WEB-INF/web.xml +0 -18
  348. data/data/libphonenumber/java/demo/war/favicon.ico +0 -0
  349. data/data/libphonenumber/java/demo/war/phonenumberparser.jsp +0 -39
  350. data/data/libphonenumber/java/demo/war/stylesheets/main.css +0 -26
  351. data/data/libphonenumber/java/geocoder/pom.xml +0 -76
  352. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapper.java +0 -191
  353. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java +0 -217
  354. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1201_en +0 -0
  355. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1202_en +0 -0
  356. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1203_en +0 -0
  357. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1204_en +0 -0
  358. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1205_en +0 -0
  359. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1206_en +0 -0
  360. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1207_en +0 -0
  361. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1208_en +0 -0
  362. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1209_en +0 -0
  363. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1210_en +0 -0
  364. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1212_en +0 -0
  365. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1213_en +0 -0
  366. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1214_en +0 -0
  367. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1215_en +0 -0
  368. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1216_en +0 -0
  369. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1217_en +0 -0
  370. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1218_en +0 -0
  371. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1219_en +0 -0
  372. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1220_en +0 -0
  373. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1224_en +0 -0
  374. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1225_en +0 -0
  375. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1226_en +0 -0
  376. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1228_en +0 -0
  377. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1229_en +0 -0
  378. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1231_en +0 -0
  379. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1234_en +0 -0
  380. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1236_en +0 -0
  381. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1239_en +0 -0
  382. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1240_en +0 -0
  383. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1242_en +0 -0
  384. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1248_en +0 -0
  385. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1250_en +0 -0
  386. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1251_en +0 -0
  387. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1252_en +0 -0
  388. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1253_en +0 -0
  389. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1254_en +0 -0
  390. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1256_en +0 -0
  391. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1260_en +0 -0
  392. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1262_en +0 -0
  393. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1267_en +0 -0
  394. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1269_en +0 -0
  395. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1270_en +0 -0
  396. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1272_en +0 -0
  397. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1276_en +0 -0
  398. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1281_en +0 -0
  399. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1289_en +0 -0
  400. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1301_en +0 -0
  401. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1302_en +0 -0
  402. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1303_en +0 -0
  403. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1304_en +0 -0
  404. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1305_en +0 -0
  405. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1306_en +0 -0
  406. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1307_en +0 -0
  407. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1308_en +0 -0
  408. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1309_en +0 -0
  409. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1310_en +0 -0
  410. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1312_en +0 -0
  411. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1313_en +0 -0
  412. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1314_en +0 -0
  413. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1315_en +0 -0
  414. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1316_en +0 -0
  415. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1317_en +0 -0
  416. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1318_en +0 -0
  417. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1319_en +0 -0
  418. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1320_en +0 -0
  419. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1321_en +0 -0
  420. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1323_en +0 -0
  421. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1325_en +0 -0
  422. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1330_en +0 -0
  423. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1331_en +0 -0
  424. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1334_en +0 -0
  425. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1336_en +0 -0
  426. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1337_en +0 -0
  427. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1339_en +0 -0
  428. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1345_en +0 -0
  429. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1346_en +0 -0
  430. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1347_en +0 -0
  431. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1351_en +0 -0
  432. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1352_en +0 -0
  433. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1360_en +0 -0
  434. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1361_en +0 -0
  435. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1364_en +0 -0
  436. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1365_en +0 -0
  437. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1380_en +0 -0
  438. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1385_en +0 -0
  439. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1386_en +0 -0
  440. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1401_en +0 -0
  441. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1402_en +0 -0
  442. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1403_en +0 -0
  443. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1404_en +0 -0
  444. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1405_en +0 -0
  445. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1406_en +0 -0
  446. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1407_en +0 -0
  447. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1408_en +0 -0
  448. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1409_en +0 -0
  449. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1410_en +0 -0
  450. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1412_en +0 -0
  451. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1413_en +0 -0
  452. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1414_en +0 -0
  453. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1415_en +0 -0
  454. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1416_en +0 -0
  455. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1417_en +0 -0
  456. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1418_en +0 -0
  457. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1419_en +0 -0
  458. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1423_en +0 -0
  459. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1424_en +0 -0
  460. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1425_en +0 -0
  461. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1430_en +0 -0
  462. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1431_en +0 -0
  463. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1432_en +0 -0
  464. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1434_en +0 -0
  465. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1435_en +0 -0
  466. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1437_en +0 -0
  467. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1438_en +0 -0
  468. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1440_en +0 -0
  469. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1441_en +0 -0
  470. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1443_en +0 -0
  471. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1450_en +0 -0
  472. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1469_en +0 -0
  473. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1478_en +0 -0
  474. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1479_en +0 -0
  475. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1480_en +0 -0
  476. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1484_en +0 -0
  477. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1501_en +0 -0
  478. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1502_en +0 -0
  479. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1503_en +0 -0
  480. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1504_en +0 -0
  481. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1505_en +0 -0
  482. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1506_en +0 -0
  483. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1507_en +0 -0
  484. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1508_en +0 -0
  485. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1509_en +0 -0
  486. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1510_en +0 -0
  487. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1512_en +0 -0
  488. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1513_en +0 -0
  489. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1514_en +0 -0
  490. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1515_en +0 -0
  491. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1516_en +0 -0
  492. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1517_en +0 -0
  493. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1518_en +0 -0
  494. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1519_en +0 -0
  495. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1520_en +0 -0
  496. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1530_en +0 -0
  497. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1540_en +0 -0
  498. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1541_en +0 -0
  499. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1548_en +0 -0
  500. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1551_en +0 -0
  501. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1559_en +0 -0
  502. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1561_en +0 -0
  503. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1562_en +0 -0
  504. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1563_en +0 -0
  505. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1567_en +0 -0
  506. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1570_en +0 -0
  507. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1571_en +0 -0
  508. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1573_en +0 -0
  509. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1574_en +0 -0
  510. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1575_en +0 -0
  511. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1580_en +0 -0
  512. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1585_en +0 -0
  513. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1586_en +0 -0
  514. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1587_en +0 -0
  515. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1601_en +0 -0
  516. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1602_en +0 -0
  517. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1603_en +0 -0
  518. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1604_en +0 -0
  519. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1605_en +0 -0
  520. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1606_en +0 -0
  521. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1607_en +0 -0
  522. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1608_en +0 -0
  523. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1609_en +0 -0
  524. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1610_en +0 -0
  525. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1612_en +0 -0
  526. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1613_en +0 -0
  527. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1614_en +0 -0
  528. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1615_en +0 -0
  529. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1616_en +0 -0
  530. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1617_en +0 -0
  531. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1618_en +0 -0
  532. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1619_en +0 -0
  533. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1620_en +0 -0
  534. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1623_en +0 -0
  535. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1626_en +0 -0
  536. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1628_en +0 -0
  537. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1629_en +0 -0
  538. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1630_en +0 -0
  539. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1631_en +0 -0
  540. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1636_en +0 -0
  541. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1639_en +0 -0
  542. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1641_en +0 -0
  543. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1646_en +0 -0
  544. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1647_en +0 -0
  545. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1649_en +0 -0
  546. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1650_en +0 -0
  547. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1651_en +0 -0
  548. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1657_en +0 -0
  549. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1660_en +0 -0
  550. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1661_en +0 -0
  551. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1662_en +0 -0
  552. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1667_en +0 -0
  553. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1669_en +0 -0
  554. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1671_en +0 -0
  555. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1678_en +0 -0
  556. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1682_en +0 -0
  557. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1701_en +0 -0
  558. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1702_en +0 -0
  559. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1703_en +0 -0
  560. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1704_en +0 -0
  561. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1705_en +0 -0
  562. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1706_en +0 -0
  563. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1707_en +0 -0
  564. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1708_en +0 -0
  565. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1709_en +0 -0
  566. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1712_en +0 -0
  567. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1713_en +0 -0
  568. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1714_en +0 -0
  569. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1715_en +0 -0
  570. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1716_en +0 -0
  571. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1717_en +0 -0
  572. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1718_en +0 -0
  573. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1719_en +0 -0
  574. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1720_en +0 -0
  575. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1724_en +0 -0
  576. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1725_en +0 -0
  577. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1727_en +0 -0
  578. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1731_en +0 -0
  579. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1732_en +0 -0
  580. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1734_en +0 -0
  581. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1737_en +0 -0
  582. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1740_en +0 -0
  583. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1743_en +0 -0
  584. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1747_en +0 -0
  585. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1754_en +0 -0
  586. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1757_en +0 -0
  587. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1760_en +0 -0
  588. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1763_en +0 -0
  589. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1765_en +0 -0
  590. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1769_en +0 -0
  591. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1770_en +0 -0
  592. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1772_en +0 -0
  593. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1773_en +0 -0
  594. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1774_en +0 -0
  595. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1775_en +0 -0
  596. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1778_en +0 -0
  597. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1779_en +0 -0
  598. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1780_en +0 -0
  599. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1781_en +0 -0
  600. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1782_en +0 -0
  601. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1785_en +0 -0
  602. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1786_en +0 -0
  603. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1801_en +0 -0
  604. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1802_en +0 -0
  605. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1803_en +0 -0
  606. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1804_en +0 -0
  607. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1805_en +0 -0
  608. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1806_en +0 -0
  609. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1807_en +0 -0
  610. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1808_en +0 -0
  611. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1809_en +0 -0
  612. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1810_en +0 -0
  613. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1812_en +0 -0
  614. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1813_en +0 -0
  615. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1814_en +0 -0
  616. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1815_en +0 -0
  617. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1816_en +0 -0
  618. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1817_en +0 -0
  619. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1818_en +0 -0
  620. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1819_en +0 -0
  621. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1825_en +0 -0
  622. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1828_en +0 -0
  623. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1830_en +0 -0
  624. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1831_en +0 -0
  625. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1832_en +0 -0
  626. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1843_en +0 -0
  627. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1845_en +0 -0
  628. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1847_en +0 -0
  629. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1848_en +0 -0
  630. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1850_en +0 -0
  631. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1854_en +0 -0
  632. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1856_en +0 -0
  633. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1857_en +0 -0
  634. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1858_en +0 -0
  635. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1859_en +0 -0
  636. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1860_en +0 -0
  637. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1862_en +0 -0
  638. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1863_en +0 -0
  639. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1864_en +0 -0
  640. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1865_en +0 -0
  641. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1867_en +0 -0
  642. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1870_en +0 -0
  643. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1872_en +0 -0
  644. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1873_en +0 -0
  645. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1876_en +0 -0
  646. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1878_en +0 -0
  647. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1901_en +0 -0
  648. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1902_en +0 -0
  649. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1903_en +0 -0
  650. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1904_en +0 -0
  651. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1905_en +0 -0
  652. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1906_en +0 -0
  653. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1907_en +0 -0
  654. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1908_en +0 -0
  655. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1909_en +0 -0
  656. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1910_en +0 -0
  657. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1912_en +0 -0
  658. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1913_en +0 -0
  659. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1914_en +0 -0
  660. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1915_en +0 -0
  661. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1916_en +0 -0
  662. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1917_en +0 -0
  663. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1918_en +0 -0
  664. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1919_en +0 -0
  665. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1920_en +0 -0
  666. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1925_en +0 -0
  667. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1928_en +0 -0
  668. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1929_en +0 -0
  669. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1930_en +0 -0
  670. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1931_en +0 -0
  671. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1934_en +0 -0
  672. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1936_en +0 -0
  673. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1937_en +0 -0
  674. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1938_en +0 -0
  675. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1940_en +0 -0
  676. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1941_en +0 -0
  677. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1947_en +0 -0
  678. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1949_en +0 -0
  679. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1951_en +0 -0
  680. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1952_en +0 -0
  681. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1954_en +0 -0
  682. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1956_en +0 -0
  683. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1959_en +0 -0
  684. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1970_en +0 -0
  685. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1971_en +0 -0
  686. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1972_en +0 -0
  687. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1973_en +0 -0
  688. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1978_en +0 -0
  689. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1979_en +0 -0
  690. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1980_en +0 -0
  691. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1984_en +0 -0
  692. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1985_en +0 -0
  693. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1989_en +0 -0
  694. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/20_en +0 -0
  695. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
  696. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
  697. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/213_en +0 -0
  698. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/216_en +0 -0
  699. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/220_en +0 -0
  700. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/221_en +0 -0
  701. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_en +0 -0
  702. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_fr +0 -0
  703. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/223_en +0 -0
  704. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/224_en +0 -0
  705. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/225_en +0 -0
  706. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/226_en +0 -0
  707. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_en +0 -0
  708. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_es +0 -0
  709. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_fr +0 -0
  710. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_en +0 -0
  711. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_fr +0 -0
  712. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_en +0 -0
  713. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_es +0 -0
  714. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_fr +0 -0
  715. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/232_en +0 -0
  716. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/233_en +0 -0
  717. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/234_en +0 -0
  718. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/237_en +0 -0
  719. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/238_en +0 -0
  720. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_en +0 -0
  721. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_pt +0 -0
  722. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/241_en +0 -0
  723. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/242_en +0 -0
  724. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_en +0 -0
  725. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_fr +0 -0
  726. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_en +0 -0
  727. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_pt +0 -0
  728. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en +0 -0
  729. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt +0 -0
  730. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/247_en +0 -0
  731. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/249_en +0 -0
  732. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/251_en +0 -0
  733. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/252_en +0 -0
  734. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/254_en +0 -0
  735. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/256_en +0 -0
  736. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/257_en +0 -0
  737. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_en +0 -0
  738. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_pt +0 -0
  739. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/260_en +0 -0
  740. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/261_en +0 -0
  741. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/263_en +0 -0
  742. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/264_en +0 -0
  743. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/266_en +0 -0
  744. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
  745. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/268_en +0 -0
  746. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/269_en +0 -0
  747. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/27_en +0 -0
  748. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_en +0 -0
  749. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_fr +0 -0
  750. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
  751. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_el +0 -0
  752. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_en +0 -0
  753. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_en +0 -0
  754. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_nl +0 -0
  755. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_de +0 -0
  756. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_en +0 -0
  757. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_fr +0 -0
  758. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_nl +0 -0
  759. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_en +0 -0
  760. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_fr +0 -0
  761. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_en +0 -0
  762. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_es +0 -0
  763. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_en +0 -0
  764. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_pt +0 -0
  765. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_de +0 -0
  766. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_en +0 -0
  767. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_fr +0 -0
  768. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/353_en +0 -0
  769. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/354_en +0 -0
  770. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/355_en +0 -0
  771. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_en +0 -0
  772. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_fi +0 -0
  773. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_se +0 -0
  774. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_bg +0 -0
  775. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_en +0 -0
  776. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_en +0 -0
  777. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_hu +0 -0
  778. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/370_en +0 -0
  779. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/371_en +0 -0
  780. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/372_en +0 -0
  781. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_en +0 -0
  782. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ro +0 -0
  783. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ru +0 -0
  784. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_am +0 -0
  785. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en +0 -0
  786. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_ru +0 -0
  787. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_be +0 -0
  788. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_en +0 -0
  789. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_ru +0 -0
  790. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_en +0 -0
  791. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_sr +0 -0
  792. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/389_en +0 -0
  793. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_en +0 -0
  794. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_it +0 -0
  795. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_en +0 -0
  796. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_ro +0 -0
  797. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_de +0 -0
  798. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_en +0 -0
  799. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_fr +0 -0
  800. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_it +0 -0
  801. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/420_en +0 -0
  802. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/421_en +0 -0
  803. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_de +0 -0
  804. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_en +0 -0
  805. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
  806. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_en +0 -0
  807. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_sv +0 -0
  808. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/47_en +0 -0
  809. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_en +0 -0
  810. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_pl +0 -0
  811. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_de +0 -0
  812. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_en +0 -0
  813. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/501_en +0 -0
  814. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/504_en +0 -0
  815. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/51_en +0 -0
  816. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
  817. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_en +0 -0
  818. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_es +0 -0
  819. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_en +0 -0
  820. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_pt +0 -0
  821. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_en +0 -0
  822. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_es +0 -0
  823. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/57_en +0 -0
  824. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_en +0 -0
  825. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_es +0 -0
  826. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/592_en +0 -0
  827. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/599_en +0 -0
  828. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en +0 -0
  829. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id +0 -0
  830. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/64_en +0 -0
  831. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_en +0 -0
  832. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_th +0 -0
  833. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/686_en +0 -0
  834. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/688_en +0 -0
  835. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_en +0 -0
  836. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_ru +0 -0
  837. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_en +0 -0
  838. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_ja +0 -0
  839. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ar +0 -0
  840. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_bg +0 -0
  841. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ca +0 -0
  842. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_cs +0 -0
  843. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_el +0 -0
  844. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_en +0 -0
  845. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_es +0 -0
  846. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fi +0 -0
  847. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fr +0 -0
  848. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hi +0 -0
  849. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hu +0 -0
  850. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_iw +0 -0
  851. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ja +0 -0
  852. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ko +0 -0
  853. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_tr +0 -0
  854. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh +0 -0
  855. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh_Hant +0 -0
  856. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en +0 -0
  857. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_vi +0 -0
  858. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_en +0 -0
  859. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_zh +0 -0
  860. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_en +0 -0
  861. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh +0 -0
  862. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh_Hant +0 -0
  863. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_en +0 -0
  864. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_tr +0 -0
  865. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/91_en +0 -0
  866. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_en +0 -0
  867. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_fa +0 -0
  868. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/94_en +0 -0
  869. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/95_en +0 -0
  870. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/962_en +0 -0
  871. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_ar +0 -0
  872. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_en +0 -0
  873. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/968_en +0 -0
  874. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/972_en +0 -0
  875. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/975_en +0 -0
  876. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_en +0 -0
  877. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_fa +0 -0
  878. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/992_en +0 -0
  879. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/994_en +0 -0
  880. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
  881. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
  882. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapperTest.java +0 -136
  883. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java +0 -170
  884. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de +0 -0
  885. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_en +0 -0
  886. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1212_en +0 -0
  887. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1617_en +0 -0
  888. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de +0 -0
  889. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_en +0 -0
  890. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1989_en +0 -0
  891. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/54_en +0 -0
  892. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_en +0 -0
  893. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko +0 -0
  894. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/config +0 -0
  895. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/timezones/testing_data/map_data +0 -0
  896. data/data/libphonenumber/java/internal/prefixmapper/pom.xml +0 -58
  897. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/DefaultMapStorage.java +0 -94
  898. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorage.java +0 -263
  899. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/MappingFileProvider.java +0 -229
  900. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMap.java +0 -216
  901. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy.java +0 -108
  902. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReader.java +0 -143
  903. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap.java +0 -126
  904. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorageTest.java +0 -107
  905. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/MappingFileProviderTest.java +0 -93
  906. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapTest.java +0 -193
  907. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReaderTest.java +0 -75
  908. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMapTest.java +0 -176
  909. data/data/libphonenumber/java/lib/junit-4.8.1.jar +0 -0
  910. data/data/libphonenumber/java/lib/protobuf-javanano-3.0.0-alpha-7.jar +0 -0
  911. data/data/libphonenumber/java/lib/protobuf-javanano-readme.md +0 -20
  912. data/data/libphonenumber/java/libphonenumber/pom.xml +0 -64
  913. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java +0 -79
  914. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +0 -664
  915. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java +0 -938
  916. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataLoader.java +0 -35
  917. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java +0 -183
  918. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java +0 -38
  919. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java +0 -133
  920. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/NumberParseException.java +0 -62
  921. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatch.java +0 -123
  922. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +0 -727
  923. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +0 -3312
  924. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonenumber.java +0 -285
  925. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/RegexCache.java +0 -78
  926. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +0 -608
  927. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java +0 -274
  928. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +0 -122
  929. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_255 +0 -0
  930. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_27 +0 -0
  931. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_30 +0 -0
  932. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_31 +0 -0
  933. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_34 +0 -0
  934. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_350 +0 -0
  935. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_351 +0 -0
  936. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_352 +0 -0
  937. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_358 +0 -0
  938. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_359 +0 -0
  939. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_36 +0 -0
  940. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_372 +0 -0
  941. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_373 +0 -0
  942. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_375 +0 -0
  943. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_380 +0 -0
  944. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_381 +0 -0
  945. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_385 +0 -0
  946. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_43 +0 -0
  947. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_44 +0 -0
  948. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_49 +0 -0
  949. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_505 +0 -0
  950. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_506 +0 -0
  951. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_54 +0 -0
  952. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_55 +0 -0
  953. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_58 +0 -0
  954. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_595 +0 -0
  955. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_61 +0 -0
  956. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_62 +0 -0
  957. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_63 +0 -0
  958. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_66 +0 -0
  959. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_675 +0 -0
  960. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_676 +0 -0
  961. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_679 +0 -0
  962. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_7 +0 -0
  963. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_81 +0 -0
  964. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
  965. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_855 +0 -0
  966. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_90 +0 -0
  967. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_91 +0 -0
  968. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_94 +0 -0
  969. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_95 +0 -0
  970. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_971 +0 -0
  971. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_972 +0 -0
  972. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_995 +0 -0
  973. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_800 +0 -0
  974. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_808 +0 -0
  975. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_870 +0 -0
  976. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_878 +0 -0
  977. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
  978. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_882 +0 -0
  979. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
  980. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_888 +0 -0
  981. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_979 +0 -0
  982. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC +0 -0
  983. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD +0 -0
  984. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE +0 -0
  985. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF +0 -0
  986. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG +0 -0
  987. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI +0 -0
  988. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL +0 -0
  989. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
  990. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO +0 -0
  991. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
  992. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS +0 -0
  993. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +0 -0
  994. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
  995. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW +0 -0
  996. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX +0 -0
  997. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ +0 -0
  998. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA +0 -0
  999. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +0 -0
  1000. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
  1001. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE +0 -0
  1002. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF +0 -0
  1003. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG +0 -0
  1004. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
  1005. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI +0 -0
  1006. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
  1007. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
  1008. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM +0 -0
  1009. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN +0 -0
  1010. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO +0 -0
  1011. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BQ +0 -0
  1012. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +0 -0
  1013. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +0 -0
  1014. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT +0 -0
  1015. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
  1016. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY +0 -0
  1017. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ +0 -0
  1018. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA +0 -0
  1019. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
  1020. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD +0 -0
  1021. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF +0 -0
  1022. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG +0 -0
  1023. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH +0 -0
  1024. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI +0 -0
  1025. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK +0 -0
  1026. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL +0 -0
  1027. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM +0 -0
  1028. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN +0 -0
  1029. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
  1030. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR +0 -0
  1031. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
  1032. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV +0 -0
  1033. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CW +0 -0
  1034. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
  1035. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY +0 -0
  1036. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ +0 -0
  1037. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE +0 -0
  1038. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ +0 -0
  1039. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK +0 -0
  1040. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM +0 -0
  1041. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO +0 -0
  1042. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ +0 -0
  1043. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC +0 -0
  1044. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
  1045. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
  1046. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
  1047. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER +0 -0
  1048. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES +0 -0
  1049. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET +0 -0
  1050. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI +0 -0
  1051. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ +0 -0
  1052. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK +0 -0
  1053. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM +0 -0
  1054. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO +0 -0
  1055. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
  1056. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA +0 -0
  1057. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
  1058. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD +0 -0
  1059. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
  1060. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
  1061. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG +0 -0
  1062. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH +0 -0
  1063. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI +0 -0
  1064. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
  1065. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM +0 -0
  1066. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN +0 -0
  1067. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
  1068. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ +0 -0
  1069. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR +0 -0
  1070. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
  1071. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
  1072. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +0 -0
  1073. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
  1074. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
  1075. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN +0 -0
  1076. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
  1077. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +0 -0
  1078. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU +0 -0
  1079. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +0 -0
  1080. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE +0 -0
  1081. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
  1082. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM +0 -0
  1083. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN +0 -0
  1084. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO +0 -0
  1085. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ +0 -0
  1086. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +0 -0
  1087. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS +0 -0
  1088. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT +0 -0
  1089. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE +0 -0
  1090. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
  1091. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO +0 -0
  1092. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
  1093. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE +0 -0
  1094. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
  1095. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH +0 -0
  1096. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI +0 -0
  1097. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM +0 -0
  1098. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN +0 -0
  1099. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP +0 -0
  1100. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
  1101. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +0 -0
  1102. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY +0 -0
  1103. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
  1104. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA +0 -0
  1105. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB +0 -0
  1106. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC +0 -0
  1107. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
  1108. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK +0 -0
  1109. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR +0 -0
  1110. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS +0 -0
  1111. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT +0 -0
  1112. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU +0 -0
  1113. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV +0 -0
  1114. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY +0 -0
  1115. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
  1116. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +0 -0
  1117. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +0 -0
  1118. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME +0 -0
  1119. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
  1120. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG +0 -0
  1121. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH +0 -0
  1122. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
  1123. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML +0 -0
  1124. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM +0 -0
  1125. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN +0 -0
  1126. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO +0 -0
  1127. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP +0 -0
  1128. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
  1129. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR +0 -0
  1130. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS +0 -0
  1131. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT +0 -0
  1132. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
  1133. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV +0 -0
  1134. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW +0 -0
  1135. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
  1136. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
  1137. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ +0 -0
  1138. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA +0 -0
  1139. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC +0 -0
  1140. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE +0 -0
  1141. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF +0 -0
  1142. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG +0 -0
  1143. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI +0 -0
  1144. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL +0 -0
  1145. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
  1146. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP +0 -0
  1147. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR +0 -0
  1148. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
  1149. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
  1150. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
  1151. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
  1152. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE +0 -0
  1153. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF +0 -0
  1154. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG +0 -0
  1155. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH +0 -0
  1156. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
  1157. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
  1158. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
  1159. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR +0 -0
  1160. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS +0 -0
  1161. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT +0 -0
  1162. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW +0 -0
  1163. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY +0 -0
  1164. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA +0 -0
  1165. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
  1166. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
  1167. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS +0 -0
  1168. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
  1169. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
  1170. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
  1171. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB +0 -0
  1172. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC +0 -0
  1173. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD +0 -0
  1174. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE +0 -0
  1175. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
  1176. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH +0 -0
  1177. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI +0 -0
  1178. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
  1179. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK +0 -0
  1180. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL +0 -0
  1181. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM +0 -0
  1182. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN +0 -0
  1183. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
  1184. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR +0 -0
  1185. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SS +0 -0
  1186. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST +0 -0
  1187. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
  1188. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX +0 -0
  1189. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY +0 -0
  1190. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ +0 -0
  1191. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TA +0 -0
  1192. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC +0 -0
  1193. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD +0 -0
  1194. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG +0 -0
  1195. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH +0 -0
  1196. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
  1197. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK +0 -0
  1198. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL +0 -0
  1199. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM +0 -0
  1200. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
  1201. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO +0 -0
  1202. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
  1203. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +0 -0
  1204. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV +0 -0
  1205. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW +0 -0
  1206. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ +0 -0
  1207. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA +0 -0
  1208. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
  1209. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
  1210. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
  1211. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
  1212. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA +0 -0
  1213. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC +0 -0
  1214. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE +0 -0
  1215. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG +0 -0
  1216. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI +0 -0
  1217. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
  1218. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +0 -0
  1219. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF +0 -0
  1220. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS +0 -0
  1221. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE +0 -0
  1222. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
  1223. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA +0 -0
  1224. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM +0 -0
  1225. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW +0 -0
  1226. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AC +0 -0
  1227. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AD +0 -0
  1228. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AE +0 -0
  1229. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AF +0 -0
  1230. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AG +0 -0
  1231. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AI +0 -0
  1232. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AL +0 -0
  1233. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM +0 -0
  1234. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AO +0 -0
  1235. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR +0 -0
  1236. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AS +0 -0
  1237. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AT +0 -0
  1238. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AU +0 -0
  1239. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AW +0 -0
  1240. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AX +0 -0
  1241. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AZ +0 -0
  1242. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BA +0 -0
  1243. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BB +0 -0
  1244. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD +0 -0
  1245. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BE +0 -0
  1246. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BF +0 -0
  1247. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BG +0 -0
  1248. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BH +0 -0
  1249. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BI +0 -0
  1250. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BJ +0 -0
  1251. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BL +0 -0
  1252. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BM +0 -0
  1253. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BN +0 -0
  1254. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BO +0 -0
  1255. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BQ +0 -0
  1256. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BR +0 -0
  1257. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BS +0 -0
  1258. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BT +0 -0
  1259. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BW +0 -0
  1260. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BY +0 -0
  1261. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BZ +0 -0
  1262. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CA +0 -0
  1263. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CC +0 -0
  1264. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CD +0 -0
  1265. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CF +0 -0
  1266. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CG +0 -0
  1267. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH +0 -0
  1268. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CI +0 -0
  1269. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CK +0 -0
  1270. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CL +0 -0
  1271. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CM +0 -0
  1272. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CN +0 -0
  1273. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CO +0 -0
  1274. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR +0 -0
  1275. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU +0 -0
  1276. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CV +0 -0
  1277. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CW +0 -0
  1278. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CX +0 -0
  1279. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CY +0 -0
  1280. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ +0 -0
  1281. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE +0 -0
  1282. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DJ +0 -0
  1283. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DK +0 -0
  1284. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DM +0 -0
  1285. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DO +0 -0
  1286. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DZ +0 -0
  1287. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EC +0 -0
  1288. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE +0 -0
  1289. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EG +0 -0
  1290. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EH +0 -0
  1291. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ER +0 -0
  1292. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ES +0 -0
  1293. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ET +0 -0
  1294. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FI +0 -0
  1295. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ +0 -0
  1296. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK +0 -0
  1297. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FM +0 -0
  1298. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO +0 -0
  1299. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR +0 -0
  1300. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GA +0 -0
  1301. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB +0 -0
  1302. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GD +0 -0
  1303. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GE +0 -0
  1304. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GF +0 -0
  1305. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG +0 -0
  1306. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GH +0 -0
  1307. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI +0 -0
  1308. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
  1309. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GM +0 -0
  1310. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GN +0 -0
  1311. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GP +0 -0
  1312. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GR +0 -0
  1313. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT +0 -0
  1314. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GU +0 -0
  1315. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GW +0 -0
  1316. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY +0 -0
  1317. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HK +0 -0
  1318. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HN +0 -0
  1319. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HR +0 -0
  1320. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT +0 -0
  1321. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HU +0 -0
  1322. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ID +0 -0
  1323. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IE +0 -0
  1324. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL +0 -0
  1325. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM +0 -0
  1326. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IN +0 -0
  1327. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IQ +0 -0
  1328. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IR +0 -0
  1329. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IS +0 -0
  1330. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT +0 -0
  1331. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE +0 -0
  1332. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JM +0 -0
  1333. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO +0 -0
  1334. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
  1335. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE +0 -0
  1336. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KG +0 -0
  1337. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KH +0 -0
  1338. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI +0 -0
  1339. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KM +0 -0
  1340. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KN +0 -0
  1341. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KP +0 -0
  1342. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KR +0 -0
  1343. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW +0 -0
  1344. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KY +0 -0
  1345. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KZ +0 -0
  1346. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LA +0 -0
  1347. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LB +0 -0
  1348. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LC +0 -0
  1349. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI +0 -0
  1350. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LK +0 -0
  1351. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LR +0 -0
  1352. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LS +0 -0
  1353. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LT +0 -0
  1354. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU +0 -0
  1355. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LV +0 -0
  1356. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LY +0 -0
  1357. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MA +0 -0
  1358. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MC +0 -0
  1359. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD +0 -0
  1360. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME +0 -0
  1361. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MF +0 -0
  1362. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MG +0 -0
  1363. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MH +0 -0
  1364. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MK +0 -0
  1365. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ML +0 -0
  1366. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MM +0 -0
  1367. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MN +0 -0
  1368. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MO +0 -0
  1369. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MP +0 -0
  1370. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MQ +0 -0
  1371. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MR +0 -0
  1372. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MS +0 -0
  1373. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MT +0 -0
  1374. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU +0 -0
  1375. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV +0 -0
  1376. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MW +0 -0
  1377. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MX +0 -0
  1378. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MY +0 -0
  1379. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ +0 -0
  1380. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA +0 -0
  1381. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC +0 -0
  1382. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NE +0 -0
  1383. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NF +0 -0
  1384. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NG +0 -0
  1385. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NI +0 -0
  1386. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL +0 -0
  1387. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NO +0 -0
  1388. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NP +0 -0
  1389. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR +0 -0
  1390. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NU +0 -0
  1391. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NZ +0 -0
  1392. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_OM +0 -0
  1393. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA +0 -0
  1394. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PE +0 -0
  1395. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PF +0 -0
  1396. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PG +0 -0
  1397. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PH +0 -0
  1398. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PK +0 -0
  1399. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PL +0 -0
  1400. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PM +0 -0
  1401. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PR +0 -0
  1402. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PT +0 -0
  1403. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PW +0 -0
  1404. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY +0 -0
  1405. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA +0 -0
  1406. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RE +0 -0
  1407. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RO +0 -0
  1408. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS +0 -0
  1409. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RU +0 -0
  1410. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RW +0 -0
  1411. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA +0 -0
  1412. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB +0 -0
  1413. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC +0 -0
  1414. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SD +0 -0
  1415. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SE +0 -0
  1416. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG +0 -0
  1417. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH +0 -0
  1418. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SI +0 -0
  1419. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SJ +0 -0
  1420. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SK +0 -0
  1421. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SL +0 -0
  1422. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SM +0 -0
  1423. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SN +0 -0
  1424. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SO +0 -0
  1425. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR +0 -0
  1426. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ST +0 -0
  1427. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SV +0 -0
  1428. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SX +0 -0
  1429. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SY +0 -0
  1430. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SZ +0 -0
  1431. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TC +0 -0
  1432. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TD +0 -0
  1433. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TG +0 -0
  1434. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TH +0 -0
  1435. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TJ +0 -0
  1436. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL +0 -0
  1437. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TM +0 -0
  1438. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TN +0 -0
  1439. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TO +0 -0
  1440. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TR +0 -0
  1441. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TT +0 -0
  1442. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TV +0 -0
  1443. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TW +0 -0
  1444. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TZ +0 -0
  1445. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UA +0 -0
  1446. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UG +0 -0
  1447. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_US +0 -0
  1448. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY +0 -0
  1449. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UZ +0 -0
  1450. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VA +0 -0
  1451. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VC +0 -0
  1452. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VE +0 -0
  1453. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VG +0 -0
  1454. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VI +0 -0
  1455. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VN +0 -0
  1456. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VU +0 -0
  1457. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WF +0 -0
  1458. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WS +0 -0
  1459. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YE +0 -0
  1460. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YT +0 -0
  1461. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZA +0 -0
  1462. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZM +0 -0
  1463. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZW +0 -0
  1464. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/MatcherApi.java +0 -38
  1465. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java +0 -52
  1466. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/nano/Phonemetadata.java +0 -1040
  1467. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java +0 -1173
  1468. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java +0 -146
  1469. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +0 -274
  1470. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +0 -51
  1471. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java +0 -67
  1472. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatchTest.java +0 -70
  1473. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java +0 -1090
  1474. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +0 -2591
  1475. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhonenumberTest.java +0 -112
  1476. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegexCacheTest.java +0 -55
  1477. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegionCode.java +0 -61
  1478. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ShortNumberInfoTest.java +0 -355
  1479. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java +0 -40
  1480. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +0 -47
  1481. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_800 +0 -0
  1482. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_979 +0 -0
  1483. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD +0 -0
  1484. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE +0 -0
  1485. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO +0 -0
  1486. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR +0 -0
  1487. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU +0 -0
  1488. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BB +0 -0
  1489. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BR +0 -0
  1490. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS +0 -0
  1491. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BY +0 -0
  1492. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CA +0 -0
  1493. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC +0 -0
  1494. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CN +0 -0
  1495. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX +0 -0
  1496. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE +0 -0
  1497. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_FR +0 -0
  1498. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB +0 -0
  1499. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GG +0 -0
  1500. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_HU +0 -0
  1501. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT +0 -0
  1502. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP +0 -0
  1503. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR +0 -0
  1504. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX +0 -0
  1505. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ +0 -0
  1506. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL +0 -0
  1507. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE +0 -0
  1508. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SE +0 -0
  1509. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG +0 -0
  1510. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US +0 -0
  1511. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT +0 -0
  1512. data/data/libphonenumber/java/pending_code_changes.txt +0 -1
  1513. data/data/libphonenumber/java/pom.xml +0 -185
  1514. data/data/libphonenumber/java/release_notes.txt +0 -1306
  1515. data/data/libphonenumber/javadoc/allclasses-frame.html +0 -49
  1516. data/data/libphonenumber/javadoc/allclasses-noframe.html +0 -49
  1517. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/AsYouTypeFormatter.html +0 -302
  1518. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.ErrorType.html +0 -369
  1519. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.html +0 -311
  1520. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberMatch.html +0 -378
  1521. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.Leniency.html +0 -330
  1522. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.MatchType.html +0 -373
  1523. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberFormat.html +0 -365
  1524. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberType.html +0 -469
  1525. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.ValidationResult.html +0 -357
  1526. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.html +0 -1405
  1527. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-frame.html +0 -68
  1528. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-summary.html +0 -211
  1529. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-tree.html +0 -161
  1530. data/data/libphonenumber/javadoc/constant-values.html +0 -142
  1531. data/data/libphonenumber/javadoc/deprecated-list.html +0 -142
  1532. data/data/libphonenumber/javadoc/help-doc.html +0 -209
  1533. data/data/libphonenumber/javadoc/index-all.html +0 -413
  1534. data/data/libphonenumber/javadoc/index.html +0 -36
  1535. data/data/libphonenumber/javadoc/overview-tree.html +0 -163
  1536. data/data/libphonenumber/javadoc/package-list +0 -1
  1537. data/data/libphonenumber/javadoc/resources/inherit.gif +0 -0
  1538. data/data/libphonenumber/javadoc/serialized-form.html +0 -184
  1539. data/data/libphonenumber/javadoc/stylesheet.css +0 -29
  1540. data/data/libphonenumber/javascript/README.md +0 -86
  1541. data/data/libphonenumber/javascript/build.xml +0 -137
  1542. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter.js +0 -1113
  1543. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.html +0 -38
  1544. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +0 -1207
  1545. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.html +0 -53
  1546. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +0 -459
  1547. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.html +0 -62
  1548. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.js +0 -161
  1549. data/data/libphonenumber/javascript/i18n/phonenumbers/metadata.js +0 -5234
  1550. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatafortesting.js +0 -632
  1551. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +0 -5234
  1552. data/data/libphonenumber/javascript/i18n/phonenumbers/phonemetadata.pb.js +0 -2443
  1553. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumber.pb.js +0 -536
  1554. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil.js +0 -4223
  1555. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.html +0 -37
  1556. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.js +0 -3330
  1557. data/data/libphonenumber/javascript/i18n/phonenumbers/regioncodefortesting.js +0 -66
  1558. data/data/libphonenumber/pom.xml +0 -26
  1559. data/data/libphonenumber/resources/PhoneNumberAlternateFormats.xml +0 -1869
  1560. data/data/libphonenumber/resources/PhoneNumberMetadata.xml +0 -25723
  1561. data/data/libphonenumber/resources/PhoneNumberMetadataForTesting.xml +0 -973
  1562. data/data/libphonenumber/resources/ShortNumberMetadata.xml +0 -9837
  1563. data/data/libphonenumber/resources/carrier/README +0 -2
  1564. data/data/libphonenumber/resources/carrier/ar/965.txt +0 -17
  1565. data/data/libphonenumber/resources/carrier/be/375.txt +0 -28
  1566. data/data/libphonenumber/resources/carrier/en/1.txt +0 -479
  1567. data/data/libphonenumber/resources/carrier/en/20.txt +0 -17
  1568. data/data/libphonenumber/resources/carrier/en/211.txt +0 -18
  1569. data/data/libphonenumber/resources/carrier/en/212.txt +0 -124
  1570. data/data/libphonenumber/resources/carrier/en/213.txt +0 -20
  1571. data/data/libphonenumber/resources/carrier/en/216.txt +0 -28
  1572. data/data/libphonenumber/resources/carrier/en/220.txt +0 -19
  1573. data/data/libphonenumber/resources/carrier/en/221.txt +0 -23
  1574. data/data/libphonenumber/resources/carrier/en/222.txt +0 -19
  1575. data/data/libphonenumber/resources/carrier/en/223.txt +0 -31
  1576. data/data/libphonenumber/resources/carrier/en/224.txt +0 -21
  1577. data/data/libphonenumber/resources/carrier/en/225.txt +0 -56
  1578. data/data/libphonenumber/resources/carrier/en/226.txt +0 -36
  1579. data/data/libphonenumber/resources/carrier/en/227.txt +0 -26
  1580. data/data/libphonenumber/resources/carrier/en/228.txt +0 -16
  1581. data/data/libphonenumber/resources/carrier/en/229.txt +0 -29
  1582. data/data/libphonenumber/resources/carrier/en/230.txt +0 -63
  1583. data/data/libphonenumber/resources/carrier/en/231.txt +0 -22
  1584. data/data/libphonenumber/resources/carrier/en/232.txt +0 -31
  1585. data/data/libphonenumber/resources/carrier/en/233.txt +0 -28
  1586. data/data/libphonenumber/resources/carrier/en/234.txt +0 -257
  1587. data/data/libphonenumber/resources/carrier/en/235.txt +0 -17
  1588. data/data/libphonenumber/resources/carrier/en/236.txt +0 -18
  1589. data/data/libphonenumber/resources/carrier/en/237.txt +0 -28
  1590. data/data/libphonenumber/resources/carrier/en/238.txt +0 -20
  1591. data/data/libphonenumber/resources/carrier/en/239.txt +0 -17
  1592. data/data/libphonenumber/resources/carrier/en/240.txt +0 -17
  1593. data/data/libphonenumber/resources/carrier/en/241.txt +0 -35
  1594. data/data/libphonenumber/resources/carrier/en/242.txt +0 -19
  1595. data/data/libphonenumber/resources/carrier/en/243.txt +0 -23
  1596. data/data/libphonenumber/resources/carrier/en/244.txt +0 -19
  1597. data/data/libphonenumber/resources/carrier/en/245.txt +0 -18
  1598. data/data/libphonenumber/resources/carrier/en/248.txt +0 -18
  1599. data/data/libphonenumber/resources/carrier/en/249.txt +0 -20
  1600. data/data/libphonenumber/resources/carrier/en/250.txt +0 -15
  1601. data/data/libphonenumber/resources/carrier/en/251.txt +0 -21
  1602. data/data/libphonenumber/resources/carrier/en/252.txt +0 -34
  1603. data/data/libphonenumber/resources/carrier/en/253.txt +0 -17
  1604. data/data/libphonenumber/resources/carrier/en/254.txt +0 -63
  1605. data/data/libphonenumber/resources/carrier/en/255.txt +0 -29
  1606. data/data/libphonenumber/resources/carrier/en/256.txt +0 -26
  1607. data/data/libphonenumber/resources/carrier/en/257.txt +0 -28
  1608. data/data/libphonenumber/resources/carrier/en/258.txt +0 -18
  1609. data/data/libphonenumber/resources/carrier/en/260.txt +0 -17
  1610. data/data/libphonenumber/resources/carrier/en/261.txt +0 -18
  1611. data/data/libphonenumber/resources/carrier/en/263.txt +0 -18
  1612. data/data/libphonenumber/resources/carrier/en/265.txt +0 -16
  1613. data/data/libphonenumber/resources/carrier/en/267.txt +0 -57
  1614. data/data/libphonenumber/resources/carrier/en/268.txt +0 -15
  1615. data/data/libphonenumber/resources/carrier/en/27.txt +0 -70
  1616. data/data/libphonenumber/resources/carrier/en/297.txt +0 -29
  1617. data/data/libphonenumber/resources/carrier/en/298.txt +0 -18
  1618. data/data/libphonenumber/resources/carrier/en/299.txt +0 -17
  1619. data/data/libphonenumber/resources/carrier/en/30.txt +0 -20
  1620. data/data/libphonenumber/resources/carrier/en/31.txt +0 -65
  1621. data/data/libphonenumber/resources/carrier/en/32.txt +0 -36
  1622. data/data/libphonenumber/resources/carrier/en/33.txt +0 -72
  1623. data/data/libphonenumber/resources/carrier/en/350.txt +0 -19
  1624. data/data/libphonenumber/resources/carrier/en/351.txt +0 -26
  1625. data/data/libphonenumber/resources/carrier/en/352.txt +0 -27
  1626. data/data/libphonenumber/resources/carrier/en/353.txt +0 -20
  1627. data/data/libphonenumber/resources/carrier/en/354.txt +0 -55
  1628. data/data/libphonenumber/resources/carrier/en/355.txt +0 -18
  1629. data/data/libphonenumber/resources/carrier/en/356.txt +0 -27
  1630. data/data/libphonenumber/resources/carrier/en/357.txt +0 -20
  1631. data/data/libphonenumber/resources/carrier/en/358.txt +0 -44
  1632. data/data/libphonenumber/resources/carrier/en/359.txt +0 -19
  1633. data/data/libphonenumber/resources/carrier/en/36.txt +0 -17
  1634. data/data/libphonenumber/resources/carrier/en/370.txt +0 -50
  1635. data/data/libphonenumber/resources/carrier/en/372.txt +0 -30
  1636. data/data/libphonenumber/resources/carrier/en/373.txt +0 -44
  1637. data/data/libphonenumber/resources/carrier/en/374.txt +0 -29
  1638. data/data/libphonenumber/resources/carrier/en/375.txt +0 -28
  1639. data/data/libphonenumber/resources/carrier/en/376.txt +0 -15
  1640. data/data/libphonenumber/resources/carrier/en/380.txt +0 -26
  1641. data/data/libphonenumber/resources/carrier/en/381.txt +0 -23
  1642. data/data/libphonenumber/resources/carrier/en/382.txt +0 -29
  1643. data/data/libphonenumber/resources/carrier/en/385.txt +0 -22
  1644. data/data/libphonenumber/resources/carrier/en/386.txt +0 -23
  1645. data/data/libphonenumber/resources/carrier/en/387.txt +0 -20
  1646. data/data/libphonenumber/resources/carrier/en/389.txt +0 -23
  1647. data/data/libphonenumber/resources/carrier/en/39.txt +0 -23
  1648. data/data/libphonenumber/resources/carrier/en/40.txt +0 -21
  1649. data/data/libphonenumber/resources/carrier/en/41.txt +0 -18
  1650. data/data/libphonenumber/resources/carrier/en/420.txt +0 -32
  1651. data/data/libphonenumber/resources/carrier/en/421.txt +0 -38
  1652. data/data/libphonenumber/resources/carrier/en/43.txt +0 -26
  1653. data/data/libphonenumber/resources/carrier/en/45.txt +0 -599
  1654. data/data/libphonenumber/resources/carrier/en/47.txt +0 -239
  1655. data/data/libphonenumber/resources/carrier/en/48.txt +0 -118
  1656. data/data/libphonenumber/resources/carrier/en/49.txt +0 -50
  1657. data/data/libphonenumber/resources/carrier/en/501.txt +0 -16
  1658. data/data/libphonenumber/resources/carrier/en/505.txt +0 -101
  1659. data/data/libphonenumber/resources/carrier/en/506.txt +0 -50
  1660. data/data/libphonenumber/resources/carrier/en/507.txt +0 -84
  1661. data/data/libphonenumber/resources/carrier/en/509.txt +0 -24
  1662. data/data/libphonenumber/resources/carrier/en/51.txt +0 -584
  1663. data/data/libphonenumber/resources/carrier/en/53.txt +0 -15
  1664. data/data/libphonenumber/resources/carrier/en/54.txt +0 -98
  1665. data/data/libphonenumber/resources/carrier/en/55.txt +0 -9479
  1666. data/data/libphonenumber/resources/carrier/en/56.txt +0 -538
  1667. data/data/libphonenumber/resources/carrier/en/57.txt +0 -38
  1668. data/data/libphonenumber/resources/carrier/en/58.txt +0 -18
  1669. data/data/libphonenumber/resources/carrier/en/591.txt +0 -51
  1670. data/data/libphonenumber/resources/carrier/en/592.txt +0 -15
  1671. data/data/libphonenumber/resources/carrier/en/595.txt +0 -19
  1672. data/data/libphonenumber/resources/carrier/en/597.txt +0 -33
  1673. data/data/libphonenumber/resources/carrier/en/598.txt +0 -25
  1674. data/data/libphonenumber/resources/carrier/en/599.txt +0 -49
  1675. data/data/libphonenumber/resources/carrier/en/60.txt +0 -301
  1676. data/data/libphonenumber/resources/carrier/en/61.txt +0 -95
  1677. data/data/libphonenumber/resources/carrier/en/62.txt +0 -702
  1678. data/data/libphonenumber/resources/carrier/en/63.txt +0 -55
  1679. data/data/libphonenumber/resources/carrier/en/64.txt +0 -22
  1680. data/data/libphonenumber/resources/carrier/en/65.txt +0 -591
  1681. data/data/libphonenumber/resources/carrier/en/66.txt +0 -48
  1682. data/data/libphonenumber/resources/carrier/en/670.txt +0 -16
  1683. data/data/libphonenumber/resources/carrier/en/673.txt +0 -22
  1684. data/data/libphonenumber/resources/carrier/en/675.txt +0 -30
  1685. data/data/libphonenumber/resources/carrier/en/676.txt +0 -39
  1686. data/data/libphonenumber/resources/carrier/en/677.txt +0 -44
  1687. data/data/libphonenumber/resources/carrier/en/678.txt +0 -35
  1688. data/data/libphonenumber/resources/carrier/en/679.txt +0 -23
  1689. data/data/libphonenumber/resources/carrier/en/685.txt +0 -17
  1690. data/data/libphonenumber/resources/carrier/en/686.txt +0 -20
  1691. data/data/libphonenumber/resources/carrier/en/689.txt +0 -16
  1692. data/data/libphonenumber/resources/carrier/en/7.txt +0 -25
  1693. data/data/libphonenumber/resources/carrier/en/84.txt +0 -27
  1694. data/data/libphonenumber/resources/carrier/en/852.txt +0 -282
  1695. data/data/libphonenumber/resources/carrier/en/853.txt +0 -326
  1696. data/data/libphonenumber/resources/carrier/en/855.txt +0 -36
  1697. data/data/libphonenumber/resources/carrier/en/856.txt +0 -18
  1698. data/data/libphonenumber/resources/carrier/en/86.txt +0 -64
  1699. data/data/libphonenumber/resources/carrier/en/880.txt +0 -20
  1700. data/data/libphonenumber/resources/carrier/en/90.txt +0 -26
  1701. data/data/libphonenumber/resources/carrier/en/91.txt +0 -2883
  1702. data/data/libphonenumber/resources/carrier/en/92.txt +0 -51
  1703. data/data/libphonenumber/resources/carrier/en/93.txt +0 -24
  1704. data/data/libphonenumber/resources/carrier/en/94.txt +0 -22
  1705. data/data/libphonenumber/resources/carrier/en/95.txt +0 -46
  1706. data/data/libphonenumber/resources/carrier/en/960.txt +0 -16
  1707. data/data/libphonenumber/resources/carrier/en/961.txt +0 -35
  1708. data/data/libphonenumber/resources/carrier/en/962.txt +0 -20
  1709. data/data/libphonenumber/resources/carrier/en/963.txt +0 -50
  1710. data/data/libphonenumber/resources/carrier/en/964.txt +0 -27
  1711. data/data/libphonenumber/resources/carrier/en/965.txt +0 -17
  1712. data/data/libphonenumber/resources/carrier/en/966.txt +0 -27
  1713. data/data/libphonenumber/resources/carrier/en/967.txt +0 -21
  1714. data/data/libphonenumber/resources/carrier/en/968.txt +0 -34
  1715. data/data/libphonenumber/resources/carrier/en/970.txt +0 -16
  1716. data/data/libphonenumber/resources/carrier/en/971.txt +0 -19
  1717. data/data/libphonenumber/resources/carrier/en/972.txt +0 -40
  1718. data/data/libphonenumber/resources/carrier/en/973.txt +0 -32
  1719. data/data/libphonenumber/resources/carrier/en/974.txt +0 -18
  1720. data/data/libphonenumber/resources/carrier/en/975.txt +0 -17
  1721. data/data/libphonenumber/resources/carrier/en/976.txt +0 -21
  1722. data/data/libphonenumber/resources/carrier/en/977.txt +0 -26
  1723. data/data/libphonenumber/resources/carrier/en/98.txt +0 -30
  1724. data/data/libphonenumber/resources/carrier/en/992.txt +0 -27
  1725. data/data/libphonenumber/resources/carrier/en/993.txt +0 -19
  1726. data/data/libphonenumber/resources/carrier/en/994.txt +0 -23
  1727. data/data/libphonenumber/resources/carrier/en/995.txt +0 -34
  1728. data/data/libphonenumber/resources/carrier/en/996.txt +0 -22
  1729. data/data/libphonenumber/resources/carrier/en/998.txt +0 -33
  1730. data/data/libphonenumber/resources/carrier/fa/93.txt +0 -24
  1731. data/data/libphonenumber/resources/carrier/fa/98.txt +0 -30
  1732. data/data/libphonenumber/resources/carrier/ru/374.txt +0 -28
  1733. data/data/libphonenumber/resources/carrier/ru/375.txt +0 -28
  1734. data/data/libphonenumber/resources/carrier/zh/852.txt +0 -283
  1735. data/data/libphonenumber/resources/carrier/zh/86.txt +0 -64
  1736. data/data/libphonenumber/resources/carrier/zh_Hant/852.txt +0 -283
  1737. data/data/libphonenumber/resources/carrier/zh_Hant/86.txt +0 -64
  1738. data/data/libphonenumber/resources/geocoding/am/374.txt +0 -177
  1739. data/data/libphonenumber/resources/geocoding/ar/82.txt +0 -34
  1740. data/data/libphonenumber/resources/geocoding/ar/966.txt +0 -27
  1741. data/data/libphonenumber/resources/geocoding/be/375.txt +0 -144
  1742. data/data/libphonenumber/resources/geocoding/bg/359.txt +0 -2105
  1743. data/data/libphonenumber/resources/geocoding/bg/82.txt +0 -34
  1744. data/data/libphonenumber/resources/geocoding/ca/82.txt +0 -34
  1745. data/data/libphonenumber/resources/geocoding/cs/82.txt +0 -35
  1746. data/data/libphonenumber/resources/geocoding/de/32.txt +0 -59
  1747. data/data/libphonenumber/resources/geocoding/de/352.txt +0 -229
  1748. data/data/libphonenumber/resources/geocoding/de/41.txt +0 -37
  1749. data/data/libphonenumber/resources/geocoding/de/43.txt +0 -1037
  1750. data/data/libphonenumber/resources/geocoding/de/49.txt +0 -5219
  1751. data/data/libphonenumber/resources/geocoding/el/30.txt +0 -259
  1752. data/data/libphonenumber/resources/geocoding/el/82.txt +0 -28
  1753. data/data/libphonenumber/resources/geocoding/en/1.txt +0 -36238
  1754. data/data/libphonenumber/resources/geocoding/en/20.txt +0 -45
  1755. data/data/libphonenumber/resources/geocoding/en/212.txt +0 -86
  1756. data/data/libphonenumber/resources/geocoding/en/213.txt +0 -30
  1757. data/data/libphonenumber/resources/geocoding/en/216.txt +0 -26
  1758. data/data/libphonenumber/resources/geocoding/en/220.txt +0 -59
  1759. data/data/libphonenumber/resources/geocoding/en/221.txt +0 -19
  1760. data/data/libphonenumber/resources/geocoding/en/222.txt +0 -28
  1761. data/data/libphonenumber/resources/geocoding/en/223.txt +0 -37
  1762. data/data/libphonenumber/resources/geocoding/en/224.txt +0 -38
  1763. data/data/libphonenumber/resources/geocoding/en/225.txt +0 -28
  1764. data/data/libphonenumber/resources/geocoding/en/226.txt +0 -50
  1765. data/data/libphonenumber/resources/geocoding/en/228.txt +0 -24
  1766. data/data/libphonenumber/resources/geocoding/en/229.txt +0 -52
  1767. data/data/libphonenumber/resources/geocoding/en/230.txt +0 -25
  1768. data/data/libphonenumber/resources/geocoding/en/232.txt +0 -20
  1769. data/data/libphonenumber/resources/geocoding/en/233.txt +0 -86
  1770. data/data/libphonenumber/resources/geocoding/en/234.txt +0 -79
  1771. data/data/libphonenumber/resources/geocoding/en/237.txt +0 -125
  1772. data/data/libphonenumber/resources/geocoding/en/238.txt +0 -54
  1773. data/data/libphonenumber/resources/geocoding/en/239.txt +0 -35
  1774. data/data/libphonenumber/resources/geocoding/en/241.txt +0 -48
  1775. data/data/libphonenumber/resources/geocoding/en/242.txt +0 -23
  1776. data/data/libphonenumber/resources/geocoding/en/243.txt +0 -22
  1777. data/data/libphonenumber/resources/geocoding/en/244.txt +0 -54
  1778. data/data/libphonenumber/resources/geocoding/en/245.txt +0 -38
  1779. data/data/libphonenumber/resources/geocoding/en/247.txt +0 -27
  1780. data/data/libphonenumber/resources/geocoding/en/249.txt +0 -28
  1781. data/data/libphonenumber/resources/geocoding/en/251.txt +0 -386
  1782. data/data/libphonenumber/resources/geocoding/en/252.txt +0 -21
  1783. data/data/libphonenumber/resources/geocoding/en/254.txt +0 -46
  1784. data/data/libphonenumber/resources/geocoding/en/256.txt +0 -30
  1785. data/data/libphonenumber/resources/geocoding/en/257.txt +0 -28
  1786. data/data/libphonenumber/resources/geocoding/en/258.txt +0 -27
  1787. data/data/libphonenumber/resources/geocoding/en/260.txt +0 -26
  1788. data/data/libphonenumber/resources/geocoding/en/261.txt +0 -40
  1789. data/data/libphonenumber/resources/geocoding/en/263.txt +0 -134
  1790. data/data/libphonenumber/resources/geocoding/en/264.txt +0 -1047
  1791. data/data/libphonenumber/resources/geocoding/en/266.txt +0 -18
  1792. data/data/libphonenumber/resources/geocoding/en/267.txt +0 -35
  1793. data/data/libphonenumber/resources/geocoding/en/268.txt +0 -54
  1794. data/data/libphonenumber/resources/geocoding/en/269.txt +0 -32
  1795. data/data/libphonenumber/resources/geocoding/en/27.txt +0 -57
  1796. data/data/libphonenumber/resources/geocoding/en/290.txt +0 -24
  1797. data/data/libphonenumber/resources/geocoding/en/299.txt +0 -43
  1798. data/data/libphonenumber/resources/geocoding/en/30.txt +0 -261
  1799. data/data/libphonenumber/resources/geocoding/en/31.txt +0 -137
  1800. data/data/libphonenumber/resources/geocoding/en/32.txt +0 -59
  1801. data/data/libphonenumber/resources/geocoding/en/33.txt +0 -5592
  1802. data/data/libphonenumber/resources/geocoding/en/34.txt +0 -123
  1803. data/data/libphonenumber/resources/geocoding/en/351.txt +0 -67
  1804. data/data/libphonenumber/resources/geocoding/en/352.txt +0 -229
  1805. data/data/libphonenumber/resources/geocoding/en/353.txt +0 -71
  1806. data/data/libphonenumber/resources/geocoding/en/354.txt +0 -23
  1807. data/data/libphonenumber/resources/geocoding/en/355.txt +0 -188
  1808. data/data/libphonenumber/resources/geocoding/en/358.txt +0 -74
  1809. data/data/libphonenumber/resources/geocoding/en/359.txt +0 -2102
  1810. data/data/libphonenumber/resources/geocoding/en/36.txt +0 -70
  1811. data/data/libphonenumber/resources/geocoding/en/370.txt +0 -64
  1812. data/data/libphonenumber/resources/geocoding/en/371.txt +0 -56
  1813. data/data/libphonenumber/resources/geocoding/en/372.txt +0 -35
  1814. data/data/libphonenumber/resources/geocoding/en/373.txt +0 -62
  1815. data/data/libphonenumber/resources/geocoding/en/374.txt +0 -184
  1816. data/data/libphonenumber/resources/geocoding/en/375.txt +0 -142
  1817. data/data/libphonenumber/resources/geocoding/en/381.txt +0 -50
  1818. data/data/libphonenumber/resources/geocoding/en/389.txt +0 -28
  1819. data/data/libphonenumber/resources/geocoding/en/39.txt +0 -137
  1820. data/data/libphonenumber/resources/geocoding/en/40.txt +0 -98
  1821. data/data/libphonenumber/resources/geocoding/en/41.txt +0 -37
  1822. data/data/libphonenumber/resources/geocoding/en/420.txt +0 -37
  1823. data/data/libphonenumber/resources/geocoding/en/421.txt +0 -42
  1824. data/data/libphonenumber/resources/geocoding/en/43.txt +0 -1036
  1825. data/data/libphonenumber/resources/geocoding/en/44.txt +0 -870
  1826. data/data/libphonenumber/resources/geocoding/en/46.txt +0 -280
  1827. data/data/libphonenumber/resources/geocoding/en/47.txt +0 -49
  1828. data/data/libphonenumber/resources/geocoding/en/48.txt +0 -65
  1829. data/data/libphonenumber/resources/geocoding/en/49.txt +0 -5218
  1830. data/data/libphonenumber/resources/geocoding/en/501.txt +0 -23
  1831. data/data/libphonenumber/resources/geocoding/en/504.txt +0 -19
  1832. data/data/libphonenumber/resources/geocoding/en/51.txt +0 -42
  1833. data/data/libphonenumber/resources/geocoding/en/53.txt +0 -33
  1834. data/data/libphonenumber/resources/geocoding/en/54.txt +0 -236
  1835. data/data/libphonenumber/resources/geocoding/en/55.txt +0 -15271
  1836. data/data/libphonenumber/resources/geocoding/en/56.txt +0 -41
  1837. data/data/libphonenumber/resources/geocoding/en/57.txt +0 -186
  1838. data/data/libphonenumber/resources/geocoding/en/58.txt +0 -73
  1839. data/data/libphonenumber/resources/geocoding/en/592.txt +0 -82
  1840. data/data/libphonenumber/resources/geocoding/en/599.txt +0 -22
  1841. data/data/libphonenumber/resources/geocoding/en/62.txt +0 -325
  1842. data/data/libphonenumber/resources/geocoding/en/64.txt +0 -124
  1843. data/data/libphonenumber/resources/geocoding/en/66.txt +0 -40
  1844. data/data/libphonenumber/resources/geocoding/en/686.txt +0 -50
  1845. data/data/libphonenumber/resources/geocoding/en/688.txt +0 -25
  1846. data/data/libphonenumber/resources/geocoding/en/7.txt +0 -355
  1847. data/data/libphonenumber/resources/geocoding/en/81.txt +0 -1547
  1848. data/data/libphonenumber/resources/geocoding/en/82.txt +0 -35
  1849. data/data/libphonenumber/resources/geocoding/en/84.txt +0 -88
  1850. data/data/libphonenumber/resources/geocoding/en/86.txt +0 -154830
  1851. data/data/libphonenumber/resources/geocoding/en/886.txt +0 -30
  1852. data/data/libphonenumber/resources/geocoding/en/90.txt +0 -182
  1853. data/data/libphonenumber/resources/geocoding/en/91.txt +0 -2666
  1854. data/data/libphonenumber/resources/geocoding/en/93.txt +0 -52
  1855. data/data/libphonenumber/resources/geocoding/en/94.txt +0 -46
  1856. data/data/libphonenumber/resources/geocoding/en/95.txt +0 -17
  1857. data/data/libphonenumber/resources/geocoding/en/962.txt +0 -32
  1858. data/data/libphonenumber/resources/geocoding/en/966.txt +0 -29
  1859. data/data/libphonenumber/resources/geocoding/en/968.txt +0 -18
  1860. data/data/libphonenumber/resources/geocoding/en/972.txt +0 -20
  1861. data/data/libphonenumber/resources/geocoding/en/975.txt +0 -21
  1862. data/data/libphonenumber/resources/geocoding/en/98.txt +0 -51
  1863. data/data/libphonenumber/resources/geocoding/en/992.txt +0 -77
  1864. data/data/libphonenumber/resources/geocoding/en/994.txt +0 -98
  1865. data/data/libphonenumber/resources/geocoding/es/228.txt +0 -23
  1866. data/data/libphonenumber/resources/geocoding/es/230.txt +0 -23
  1867. data/data/libphonenumber/resources/geocoding/es/34.txt +0 -124
  1868. data/data/libphonenumber/resources/geocoding/es/54.txt +0 -238
  1869. data/data/libphonenumber/resources/geocoding/es/56.txt +0 -43
  1870. data/data/libphonenumber/resources/geocoding/es/57.txt +0 -186
  1871. data/data/libphonenumber/resources/geocoding/es/58.txt +0 -72
  1872. data/data/libphonenumber/resources/geocoding/es/82.txt +0 -33
  1873. data/data/libphonenumber/resources/geocoding/fa/93.txt +0 -53
  1874. data/data/libphonenumber/resources/geocoding/fa/98.txt +0 -48
  1875. data/data/libphonenumber/resources/geocoding/fi/358.txt +0 -74
  1876. data/data/libphonenumber/resources/geocoding/fi/82.txt +0 -34
  1877. data/data/libphonenumber/resources/geocoding/fr/212.txt +0 -85
  1878. data/data/libphonenumber/resources/geocoding/fr/222.txt +0 -29
  1879. data/data/libphonenumber/resources/geocoding/fr/225.txt +0 -30
  1880. data/data/libphonenumber/resources/geocoding/fr/228.txt +0 -24
  1881. data/data/libphonenumber/resources/geocoding/fr/229.txt +0 -55
  1882. data/data/libphonenumber/resources/geocoding/fr/230.txt +0 -23
  1883. data/data/libphonenumber/resources/geocoding/fr/242.txt +0 -25
  1884. data/data/libphonenumber/resources/geocoding/fr/243.txt +0 -24
  1885. data/data/libphonenumber/resources/geocoding/fr/269.txt +0 -34
  1886. data/data/libphonenumber/resources/geocoding/fr/290.txt +0 -24
  1887. data/data/libphonenumber/resources/geocoding/fr/32.txt +0 -59
  1888. data/data/libphonenumber/resources/geocoding/fr/33.txt +0 -5593
  1889. data/data/libphonenumber/resources/geocoding/fr/352.txt +0 -231
  1890. data/data/libphonenumber/resources/geocoding/fr/41.txt +0 -37
  1891. data/data/libphonenumber/resources/geocoding/fr/82.txt +0 -33
  1892. data/data/libphonenumber/resources/geocoding/hi/82.txt +0 -36
  1893. data/data/libphonenumber/resources/geocoding/hu/36.txt +0 -71
  1894. data/data/libphonenumber/resources/geocoding/hu/82.txt +0 -35
  1895. data/data/libphonenumber/resources/geocoding/id/62.txt +0 -326
  1896. data/data/libphonenumber/resources/geocoding/it/39.txt +0 -248
  1897. data/data/libphonenumber/resources/geocoding/it/41.txt +0 -37
  1898. data/data/libphonenumber/resources/geocoding/iw/82.txt +0 -37
  1899. data/data/libphonenumber/resources/geocoding/ja/81.txt +0 -1546
  1900. data/data/libphonenumber/resources/geocoding/ja/82.txt +0 -35
  1901. data/data/libphonenumber/resources/geocoding/ko/82.txt +0 -35
  1902. data/data/libphonenumber/resources/geocoding/nl/31.txt +0 -145
  1903. data/data/libphonenumber/resources/geocoding/nl/32.txt +0 -59
  1904. data/data/libphonenumber/resources/geocoding/pl/48.txt +0 -66
  1905. data/data/libphonenumber/resources/geocoding/pt/238.txt +0 -58
  1906. data/data/libphonenumber/resources/geocoding/pt/239.txt +0 -37
  1907. data/data/libphonenumber/resources/geocoding/pt/244.txt +0 -59
  1908. data/data/libphonenumber/resources/geocoding/pt/245.txt +0 -37
  1909. data/data/libphonenumber/resources/geocoding/pt/258.txt +0 -29
  1910. data/data/libphonenumber/resources/geocoding/pt/351.txt +0 -69
  1911. data/data/libphonenumber/resources/geocoding/pt/55.txt +0 -15269
  1912. data/data/libphonenumber/resources/geocoding/ro/373.txt +0 -61
  1913. data/data/libphonenumber/resources/geocoding/ro/40.txt +0 -99
  1914. data/data/libphonenumber/resources/geocoding/ru/373.txt +0 -61
  1915. data/data/libphonenumber/resources/geocoding/ru/374.txt +0 -177
  1916. data/data/libphonenumber/resources/geocoding/ru/375.txt +0 -143
  1917. data/data/libphonenumber/resources/geocoding/ru/7.txt +0 -108
  1918. data/data/libphonenumber/resources/geocoding/se/358.txt +0 -74
  1919. data/data/libphonenumber/resources/geocoding/sr/381.txt +0 -51
  1920. data/data/libphonenumber/resources/geocoding/sv/46.txt +0 -266
  1921. data/data/libphonenumber/resources/geocoding/th/66.txt +0 -39
  1922. data/data/libphonenumber/resources/geocoding/tr/82.txt +0 -35
  1923. data/data/libphonenumber/resources/geocoding/tr/90.txt +0 -182
  1924. data/data/libphonenumber/resources/geocoding/vi/84.txt +0 -80
  1925. data/data/libphonenumber/resources/geocoding/zh/82.txt +0 -35
  1926. data/data/libphonenumber/resources/geocoding/zh/86.txt +0 -154830
  1927. data/data/libphonenumber/resources/geocoding/zh/886.txt +0 -30
  1928. data/data/libphonenumber/resources/geocoding/zh_Hant/82.txt +0 -35
  1929. data/data/libphonenumber/resources/geocoding/zh_Hant/886.txt +0 -30
  1930. data/data/libphonenumber/resources/phonemetadata.proto +0 -282
  1931. data/data/libphonenumber/resources/phonenumber.proto +0 -124
  1932. data/data/libphonenumber/resources/test/carrier/en/1.txt +0 -16
  1933. data/data/libphonenumber/resources/test/carrier/en/244.txt +0 -16
  1934. data/data/libphonenumber/resources/test/carrier/en/44.txt +0 -17
  1935. data/data/libphonenumber/resources/test/carrier/sv/44.txt +0 -15
  1936. data/data/libphonenumber/resources/test/geocoding/de/1.txt +0 -16
  1937. data/data/libphonenumber/resources/test/geocoding/en/1.txt +0 -21
  1938. data/data/libphonenumber/resources/test/geocoding/en/54.txt +0 -15
  1939. data/data/libphonenumber/resources/test/geocoding/en/82.txt +0 -31
  1940. data/data/libphonenumber/resources/test/geocoding/ko/82.txt +0 -29
  1941. data/data/libphonenumber/resources/test/timezones/map_data.txt +0 -24
  1942. data/data/libphonenumber/resources/timezones/map_data.txt +0 -2070
  1943. data/data/libphonenumber/tools/cpp/CMakeLists.txt +0 -57
  1944. data/data/libphonenumber/tools/cpp/gtest.cmake +0 -47
  1945. data/data/libphonenumber/tools/cpp/src/base/basictypes.h +0 -330
  1946. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.cc +0 -655
  1947. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.h +0 -37
  1948. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data_main.cc +0 -21
  1949. data/data/libphonenumber/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc +0 -39
  1950. data/data/libphonenumber/tools/cpp/test/cpp-build/run_tests.cc +0 -21
  1951. data/data/libphonenumber/tools/java/common/pom.xml +0 -69
  1952. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +0 -530
  1953. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/Command.java +0 -51
  1954. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CommandDispatcher.java +0 -78
  1955. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CopyrightNotice.java +0 -66
  1956. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/FileUtils.java +0 -52
  1957. data/data/libphonenumber/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +0 -654
  1958. data/data/libphonenumber/tools/java/cpp-build/pom.xml +0 -114
  1959. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/BuildMetadataCppFromXml.java +0 -230
  1960. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/CppMetadataGenerator.java +0 -197
  1961. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -33
  1962. data/data/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1963. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/BuildMetadataCppFromXmlTest.java +0 -185
  1964. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/CppMetadataGeneratorTest.java +0 -122
  1965. data/data/libphonenumber/tools/java/data/README +0 -16
  1966. data/data/libphonenumber/tools/java/data/pom.xml +0 -101
  1967. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoData.java +0 -287
  1968. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoDataServlet.java +0 -46
  1969. data/data/libphonenumber/tools/java/data/test/com/google/i18n/phonenumbers/CombineGeoDataTest.java +0 -233
  1970. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/appengine-web.xml +0 -8
  1971. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/logging.properties +0 -13
  1972. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/web.xml +0 -18
  1973. data/data/libphonenumber/tools/java/data/webapp/index.html +0 -22
  1974. data/data/libphonenumber/tools/java/java-build/pom.xml +0 -121
  1975. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +0 -397
  1976. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +0 -381
  1977. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -39
  1978. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/JSArrayBuilder.java +0 -142
  1979. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/AbstractPhonePrefixDataIOHandler.java +0 -62
  1980. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixData.java +0 -483
  1981. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataEntryPoint.java +0 -58
  1982. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapData.java +0 -143
  1983. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataEntryPoint.java +0 -60
  1984. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/PhonePrefixDataIOHandler.java +0 -59
  1985. data/data/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1986. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataTest.java +0 -291
  1987. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataTest.java +0 -136
  1988. data/data/libphonenumber/tools/java/pom.xml +0 -29
  1989. data/data/libphonenumber/tools/script/continuous-integration.sh +0 -96
@@ -1,201 +0,0 @@
1
- // Copyright (C) 2011 The Libphonenumber Authors
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- //
15
- // Author: Lara Rennie
16
- // Author: Tao Huang
17
- //
18
- // This is a direct port from PhoneNumberMatcher.java.
19
- // Changes to this class should also happen to the Java version, whenever it
20
- // makes sense.
21
-
22
- #ifndef I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
23
- #define I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
24
-
25
- #include <string>
26
- #include <vector>
27
-
28
- #include "phonenumbers/base/basictypes.h"
29
- #include "phonenumbers/base/memory/scoped_ptr.h"
30
- #include "phonenumbers/callback.h"
31
- #include "phonenumbers/regexp_adapter.h"
32
-
33
- namespace i18n {
34
- namespace phonenumbers {
35
-
36
- template <class R, class A1, class A2, class A3, class A4>
37
- class ResultCallback4;
38
-
39
- using std::string;
40
- using std::vector;
41
-
42
- class AlternateFormats;
43
- class NumberFormat;
44
- class PhoneNumber;
45
- class PhoneNumberMatch;
46
- class PhoneNumberMatcherRegExps;
47
- class PhoneNumberUtil;
48
-
49
- class PhoneNumberMatcher {
50
- friend class PhoneNumberMatcherTest;
51
- public:
52
- // Leniency when finding potential phone numbers in text segments. The levels
53
- // here are ordered in increasing strictness.
54
- enum Leniency {
55
- // Phone numbers accepted are possible, but not necessarily valid.
56
- POSSIBLE,
57
- // Phone numbers accepted are possible and valid.
58
- VALID,
59
- // Phone numbers accepted are valid and are grouped in a possible way for
60
- // this locale. For example, a US number written as "65 02 53 00 00" is not
61
- // accepted at this leniency level, whereas "650 253 0000" or "6502530000"
62
- // are. Numbers with more than one '/' symbol are also dropped at this
63
- // level.
64
- // Warning: The next two levels might result in lower coverage especially
65
- // for regions outside of country code "+1". If you are not sure about which
66
- // level to use, you can send an e-mail to the discussion group
67
- // http://groups.google.com/group/libphonenumber-discuss/
68
- STRICT_GROUPING,
69
- // Phone numbers accepted are valid and are grouped in the same way that we
70
- // would have formatted it, or as a single block. For example, a US number
71
- // written as "650 2530000" is not accepted at this leniency level, whereas
72
- // "650 253 0000" or "6502530000" are.
73
- EXACT_GROUPING,
74
- };
75
-
76
- // Constructs a phone number matcher.
77
- PhoneNumberMatcher(const PhoneNumberUtil& util,
78
- const string& text,
79
- const string& region_code,
80
- Leniency leniency,
81
- int max_tries);
82
-
83
- // Wrapper to construct a phone number matcher, with no limitation on the
84
- // number of retries and VALID Leniency.
85
- PhoneNumberMatcher(const string& text,
86
- const string& region_code);
87
-
88
- ~PhoneNumberMatcher();
89
-
90
- // Returns true if the text sequence has another match.
91
- bool HasNext();
92
-
93
- // Gets next match from text sequence.
94
- bool Next(PhoneNumberMatch* match);
95
-
96
- private:
97
- // The potential states of a PhoneNumberMatcher.
98
- enum State {
99
- NOT_READY,
100
- READY,
101
- DONE,
102
- };
103
-
104
- // Attempts to extract a match from a candidate string. Returns true if a
105
- // match is found, otherwise returns false. The value "offset" refers to the
106
- // start index of the candidate string within the overall text.
107
- bool Find(int index, PhoneNumberMatch* match);
108
-
109
- // Checks a number was formatted with a national prefix, if the number was
110
- // found in national format, and a national prefix is required for that
111
- // number. Returns false if the number needed to have a national prefix and
112
- // none was found.
113
- bool IsNationalPrefixPresentIfRequired(const PhoneNumber& number) const;
114
-
115
- // Attempts to extract a match from candidate. Returns true if the match was
116
- // found, otherwise returns false.
117
- bool ExtractMatch(const string& candidate, int offset,
118
- PhoneNumberMatch* match);
119
-
120
- // Attempts to extract a match from a candidate string if the whole candidate
121
- // does not qualify as a match. Returns true if a match is found, otherwise
122
- // returns false.
123
- bool ExtractInnerMatch(const string& candidate, int offset,
124
- PhoneNumberMatch* match);
125
-
126
- // Parses a phone number from the candidate using PhoneNumberUtil::Parse() and
127
- // verifies it matches the requested leniency. If parsing and verification
128
- // succeed, returns true, otherwise this method returns false;
129
- bool ParseAndVerify(const string& candidate, int offset,
130
- PhoneNumberMatch* match);
131
-
132
- bool CheckNumberGroupingIsValid(
133
- const PhoneNumber& phone_number,
134
- const string& candidate,
135
- ResultCallback4<bool, const PhoneNumberUtil&, const PhoneNumber&,
136
- const string&, const vector<string>&>* checker) const;
137
-
138
- void GetNationalNumberGroups(
139
- const PhoneNumber& number,
140
- const NumberFormat* formatting_pattern,
141
- vector<string>* digit_blocks) const;
142
-
143
- bool AllNumberGroupsAreExactlyPresent(
144
- const PhoneNumberUtil& util,
145
- const PhoneNumber& phone_number,
146
- const string& normalized_candidate,
147
- const vector<string>& formatted_number_groups) const;
148
-
149
- bool VerifyAccordingToLeniency(Leniency leniency, const PhoneNumber& number,
150
- const string& candidate) const;
151
-
152
- // In interface for testing purposes.
153
- static bool ContainsMoreThanOneSlashInNationalNumber(
154
- const PhoneNumber& number,
155
- const string& candidate,
156
- const PhoneNumberUtil& util);
157
-
158
- // Helper method to determine if a character is a Latin-script letter or not.
159
- // For our purposes, combining marks should also return true since we assume
160
- // they have been added to a preceding Latin character.
161
- static bool IsLatinLetter(char32 letter);
162
-
163
- // Helper class holding useful regular expressions.
164
- const PhoneNumberMatcherRegExps* reg_exps_;
165
-
166
- // Helper class holding loaded data containing alternate ways phone numbers
167
- // might be formatted for certain regions.
168
- const AlternateFormats* alternate_formats_;
169
-
170
- // The phone number utility;
171
- const PhoneNumberUtil& phone_util_;
172
-
173
- // The text searched for phone numbers;
174
- const string text_;
175
-
176
- // The region(country) to assume for phone numbers without an international
177
- // prefix.
178
- const string preferred_region_;
179
-
180
- // The degree of validation requested.
181
- Leniency leniency_;
182
-
183
- // The maximum number of retries after matching an invalid number.
184
- int max_tries_;
185
-
186
- // The iteration tristate.
187
- State state_;
188
-
189
- // The last successful match, NULL unless in State.READY.
190
- scoped_ptr<PhoneNumberMatch> last_match_;
191
-
192
- // The next index to start searching at. Undefined in State.DONE.
193
- int search_index_;
194
-
195
- DISALLOW_COPY_AND_ASSIGN(PhoneNumberMatcher);
196
- };
197
-
198
- } // namespace phonenumbers
199
- } // namespace i18n
200
-
201
- #endif // I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
@@ -1,2926 +0,0 @@
1
- // Copyright (C) 2009 The Libphonenumber Authors
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- // Author: Shaopeng Jia
16
- // Open-sourced by: Philippe Liard
17
-
18
- #include "phonenumbers/phonenumberutil.h"
19
-
20
- #include <string.h>
21
- #include <algorithm>
22
- #include <cctype>
23
- #include <iterator>
24
- #include <map>
25
- #include <utility>
26
- #include <vector>
27
-
28
- #include <google/protobuf/message_lite.h>
29
- #include <unicode/uchar.h>
30
- #include <unicode/utf8.h>
31
-
32
- #include "phonenumbers/asyoutypeformatter.h"
33
- #include "phonenumbers/base/basictypes.h"
34
- #include "phonenumbers/base/logging.h"
35
- #include "phonenumbers/base/memory/singleton.h"
36
- #include "phonenumbers/default_logger.h"
37
- #include "phonenumbers/encoding_utils.h"
38
- #include "phonenumbers/metadata.h"
39
- #include "phonenumbers/normalize_utf8.h"
40
- #include "phonenumbers/phonemetadata.pb.h"
41
- #include "phonenumbers/phonenumber.h"
42
- #include "phonenumbers/phonenumber.pb.h"
43
- #include "phonenumbers/regexp_adapter.h"
44
- #include "phonenumbers/regexp_cache.h"
45
- #include "phonenumbers/regexp_factory.h"
46
- #include "phonenumbers/region_code.h"
47
- #include "phonenumbers/stl_util.h"
48
- #include "phonenumbers/stringutil.h"
49
- #include "phonenumbers/utf/unicodetext.h"
50
- #include "phonenumbers/utf/utf.h"
51
-
52
- namespace i18n {
53
- namespace phonenumbers {
54
-
55
- using google::protobuf::RepeatedPtrField;
56
-
57
- // static constants
58
- const size_t PhoneNumberUtil::kMinLengthForNsn;
59
- const size_t PhoneNumberUtil::kMaxLengthForNsn;
60
- const size_t PhoneNumberUtil::kMaxLengthCountryCode;
61
- const int PhoneNumberUtil::kNanpaCountryCode;
62
-
63
- // static
64
- const char PhoneNumberUtil::kPlusChars[] = "+\xEF\xBC\x8B"; /* "++" */
65
- // To find out the unicode code-point of the characters below in vim, highlight
66
- // the character and type 'ga'. Note that the - is used to express ranges of
67
- // full-width punctuation below, as well as being present in the expression
68
- // itself. In emacs, you can use M-x unicode-what to query information about the
69
- // unicode character.
70
- // static
71
- const char PhoneNumberUtil::kValidPunctuation[] =
72
- /* "-x‐-―−ー--/  ­<U+200B><U+2060> ()()[].\\[\\]/~⁓∼" */
73
- "-x\xE2\x80\x90-\xE2\x80\x95\xE2\x88\x92\xE3\x83\xBC\xEF\xBC\x8D-\xEF\xBC"
74
- "\x8F \xC2\xA0\xC2\xAD\xE2\x80\x8B\xE2\x81\xA0\xE3\x80\x80()\xEF\xBC\x88"
75
- "\xEF\xBC\x89\xEF\xBC\xBB\xEF\xBC\xBD.\\[\\]/~\xE2\x81\x93\xE2\x88\xBC";
76
-
77
- // static
78
- const char PhoneNumberUtil::kCaptureUpToSecondNumberStart[] = "(.*)[\\\\/] *x";
79
-
80
- // static
81
- const char PhoneNumberUtil::kRegionCodeForNonGeoEntity[] = "001";
82
-
83
- namespace {
84
-
85
- // The prefix that needs to be inserted in front of a Colombian landline
86
- // number when dialed from a mobile phone in Colombia.
87
- const char kColombiaMobileToFixedLinePrefix[] = "3";
88
-
89
- // The kPlusSign signifies the international prefix.
90
- const char kPlusSign[] = "+";
91
-
92
- const char kStarSign[] = "*";
93
-
94
- const char kRfc3966ExtnPrefix[] = ";ext=";
95
- const char kRfc3966Prefix[] = "tel:";
96
- const char kRfc3966PhoneContext[] = ";phone-context=";
97
- const char kRfc3966IsdnSubaddress[] = ";isub=";
98
-
99
- const char kDigits[] = "\\p{Nd}";
100
- // We accept alpha characters in phone numbers, ASCII only. We store lower-case
101
- // here only since our regular expressions are case-insensitive.
102
- const char kValidAlpha[] = "a-z";
103
-
104
- // Default extension prefix to use when formatting. This will be put in front of
105
- // any extension component of the number, after the main national number is
106
- // formatted. For example, if you wish the default extension formatting to be "
107
- // extn: 3456", then you should specify " extn: " here as the default extension
108
- // prefix. This can be overridden by region-specific preferences.
109
- const char kDefaultExtnPrefix[] = " ext. ";
110
-
111
- // One-character symbols that can be used to indicate an extension.
112
- const char kSingleExtnSymbolsForMatching[] =
113
- "x\xEF\xBD\x98#\xEF\xBC\x83~\xEF\xBD\x9E";
114
-
115
- bool LoadCompiledInMetadata(PhoneMetadataCollection* metadata) {
116
- if (!metadata->ParseFromArray(metadata_get(), metadata_size())) {
117
- LOG(ERROR) << "Could not parse binary data.";
118
- return false;
119
- }
120
- return true;
121
- }
122
-
123
- // Returns a pointer to the description inside the metadata of the appropriate
124
- // type.
125
- const PhoneNumberDesc* GetNumberDescByType(
126
- const PhoneMetadata& metadata,
127
- PhoneNumberUtil::PhoneNumberType type) {
128
- switch (type) {
129
- case PhoneNumberUtil::PREMIUM_RATE:
130
- return &metadata.premium_rate();
131
- case PhoneNumberUtil::TOLL_FREE:
132
- return &metadata.toll_free();
133
- case PhoneNumberUtil::MOBILE:
134
- return &metadata.mobile();
135
- case PhoneNumberUtil::FIXED_LINE:
136
- case PhoneNumberUtil::FIXED_LINE_OR_MOBILE:
137
- return &metadata.fixed_line();
138
- case PhoneNumberUtil::SHARED_COST:
139
- return &metadata.shared_cost();
140
- case PhoneNumberUtil::VOIP:
141
- return &metadata.voip();
142
- case PhoneNumberUtil::PERSONAL_NUMBER:
143
- return &metadata.personal_number();
144
- case PhoneNumberUtil::PAGER:
145
- return &metadata.pager();
146
- case PhoneNumberUtil::UAN:
147
- return &metadata.uan();
148
- case PhoneNumberUtil::VOICEMAIL:
149
- return &metadata.voicemail();
150
- default:
151
- return &metadata.general_desc();
152
- }
153
- }
154
-
155
- // A helper function that is used by Format and FormatByPattern.
156
- void PrefixNumberWithCountryCallingCode(
157
- int country_calling_code,
158
- PhoneNumberUtil::PhoneNumberFormat number_format,
159
- string* formatted_number) {
160
- switch (number_format) {
161
- case PhoneNumberUtil::E164:
162
- formatted_number->insert(0, StrCat(kPlusSign, country_calling_code));
163
- return;
164
- case PhoneNumberUtil::INTERNATIONAL:
165
- formatted_number->insert(0, StrCat(kPlusSign, country_calling_code, " "));
166
- return;
167
- case PhoneNumberUtil::RFC3966:
168
- formatted_number->insert(0, StrCat(kRfc3966Prefix, kPlusSign,
169
- country_calling_code, "-"));
170
- return;
171
- case PhoneNumberUtil::NATIONAL:
172
- default:
173
- // Do nothing.
174
- return;
175
- }
176
- }
177
-
178
- // Returns true when one national number is the suffix of the other or both are
179
- // the same.
180
- bool IsNationalNumberSuffixOfTheOther(const PhoneNumber& first_number,
181
- const PhoneNumber& second_number) {
182
- const string& first_number_national_number =
183
- SimpleItoa(static_cast<uint64>(first_number.national_number()));
184
- const string& second_number_national_number =
185
- SimpleItoa(static_cast<uint64>(second_number.national_number()));
186
- // Note that HasSuffixString returns true if the numbers are equal.
187
- return HasSuffixString(first_number_national_number,
188
- second_number_national_number) ||
189
- HasSuffixString(second_number_national_number,
190
- first_number_national_number);
191
- }
192
-
193
- char32 ToUnicodeCodepoint(const char* unicode_char) {
194
- char32 codepoint;
195
- EncodingUtils::DecodeUTF8Char(unicode_char, &codepoint);
196
- return codepoint;
197
- }
198
-
199
- // Helper initialiser method to create the regular-expression pattern to match
200
- // extensions, allowing the one-codepoint extension symbols provided by
201
- // single_extn_symbols.
202
- // Note that there are currently three capturing groups for the extension itself
203
- // - if this number is changed, MaybeStripExtension needs to be updated.
204
- string CreateExtnPattern(const string& single_extn_symbols) {
205
- static const string capturing_extn_digits = StrCat("([", kDigits, "]{1,7})");
206
- // The first regular expression covers RFC 3966 format, where the extension is
207
- // added using ";ext=". The second more generic one starts with optional white
208
- // space and ends with an optional full stop (.), followed by zero or more
209
- // spaces/tabs and then the numbers themselves. The third one covers the
210
- // special case of American numbers where the extension is written with a hash
211
- // at the end, such as "- 503#".
212
- // Note that the only capturing groups should be around the digits that you
213
- // want to capture as part of the extension, or else parsing will fail!
214
- // Canonical-equivalence doesn't seem to be an option with RE2, so we allow
215
- // two options for representing the ó - the character itself, and one in the
216
- // unicode decomposed form with the combining acute accent.
217
- return (StrCat(
218
- kRfc3966ExtnPrefix, capturing_extn_digits, "|"
219
- /* "[  \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|single_extn_symbols|"
220
- "int|int|anexo)"
221
- "[:\\..]?[  \\t,-]*", capturing_extn_digits, "#?|" */
222
- "[ \xC2\xA0\\t,]*(?:e?xt(?:ensi(?:o\xCC\x81?|\xC3\xB3))?n?|"
223
- "(?:\xEF\xBD\x85)?\xEF\xBD\x98\xEF\xBD\x94(?:\xEF\xBD\x8E)?|"
224
- "[", single_extn_symbols, "]|int|"
225
- "\xEF\xBD\x89\xEF\xBD\x8E\xEF\xBD\x94|anexo)"
226
- "[:\\.\xEF\xBC\x8E]?[ \xC2\xA0\\t,-]*", capturing_extn_digits,
227
- "#?|[- ]+([", kDigits, "]{1,5})#"));
228
- }
229
-
230
- // Normalizes a string of characters representing a phone number by replacing
231
- // all characters found in the accompanying map with the values therein, and
232
- // stripping all other characters if remove_non_matches is true.
233
- // Parameters:
234
- // number - a pointer to a string of characters representing a phone number to
235
- // be normalized.
236
- // normalization_replacements - a mapping of characters to what they should be
237
- // replaced by in the normalized version of the phone number
238
- // remove_non_matches - indicates whether characters that are not able to be
239
- // replaced should be stripped from the number. If this is false, they will be
240
- // left unchanged in the number.
241
- void NormalizeHelper(const map<char32, char>& normalization_replacements,
242
- bool remove_non_matches,
243
- string* number) {
244
- DCHECK(number);
245
- UnicodeText number_as_unicode;
246
- number_as_unicode.PointToUTF8(number->data(), number->size());
247
- string normalized_number;
248
- char unicode_char[5];
249
- for (UnicodeText::const_iterator it = number_as_unicode.begin();
250
- it != number_as_unicode.end();
251
- ++it) {
252
- map<char32, char>::const_iterator found_glyph_pair =
253
- normalization_replacements.find(*it);
254
- if (found_glyph_pair != normalization_replacements.end()) {
255
- normalized_number.push_back(found_glyph_pair->second);
256
- } else if (!remove_non_matches) {
257
- // Find out how long this unicode char is so we can append it all.
258
- int char_len = it.get_utf8(unicode_char);
259
- normalized_number.append(unicode_char, char_len);
260
- }
261
- // If neither of the above are true, we remove this character.
262
- }
263
- number->assign(normalized_number);
264
- }
265
-
266
- PhoneNumberUtil::ValidationResult TestNumberLengthAgainstPattern(
267
- const RegExp& number_pattern, const string& number) {
268
- string extracted_number;
269
- if (number_pattern.FullMatch(number, &extracted_number)) {
270
- return PhoneNumberUtil::IS_POSSIBLE;
271
- }
272
- if (number_pattern.PartialMatch(number, &extracted_number)) {
273
- return PhoneNumberUtil::TOO_LONG;
274
- } else {
275
- return PhoneNumberUtil::TOO_SHORT;
276
- }
277
- }
278
-
279
- } // namespace
280
-
281
- void PhoneNumberUtil::SetLogger(Logger* logger) {
282
- logger_.reset(logger);
283
- Logger::set_logger_impl(logger_.get());
284
- }
285
-
286
- class PhoneNumberRegExpsAndMappings {
287
- private:
288
- void InitializeMapsAndSets() {
289
- diallable_char_mappings_.insert(std::make_pair('+', '+'));
290
- diallable_char_mappings_.insert(std::make_pair('*', '*'));
291
- // Here we insert all punctuation symbols that we wish to respect when
292
- // formatting alpha numbers, as they show the intended number groupings.
293
- all_plus_number_grouping_symbols_.insert(
294
- std::make_pair(ToUnicodeCodepoint("-"), '-'));
295
- all_plus_number_grouping_symbols_.insert(
296
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8D" /* "-" */), '-'));
297
- all_plus_number_grouping_symbols_.insert(
298
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x90" /* "‐" */), '-'));
299
- all_plus_number_grouping_symbols_.insert(
300
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x91" /* "‑" */), '-'));
301
- all_plus_number_grouping_symbols_.insert(
302
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x92" /* "‒" */), '-'));
303
- all_plus_number_grouping_symbols_.insert(
304
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x93" /* "–" */), '-'));
305
- all_plus_number_grouping_symbols_.insert(
306
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x94" /* "—" */), '-'));
307
- all_plus_number_grouping_symbols_.insert(
308
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x95" /* "―" */), '-'));
309
- all_plus_number_grouping_symbols_.insert(
310
- std::make_pair(ToUnicodeCodepoint("\xE2\x88\x92" /* "−" */), '-'));
311
- all_plus_number_grouping_symbols_.insert(
312
- std::make_pair(ToUnicodeCodepoint("/"), '/'));
313
- all_plus_number_grouping_symbols_.insert(
314
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8F" /* "/" */), '/'));
315
- all_plus_number_grouping_symbols_.insert(
316
- std::make_pair(ToUnicodeCodepoint(" "), ' '));
317
- all_plus_number_grouping_symbols_.insert(
318
- std::make_pair(ToUnicodeCodepoint("\xE3\x80\x80" /* " " */), ' '));
319
- all_plus_number_grouping_symbols_.insert(
320
- std::make_pair(ToUnicodeCodepoint("\xE2\x81\xA0"), ' '));
321
- all_plus_number_grouping_symbols_.insert(
322
- std::make_pair(ToUnicodeCodepoint("."), '.'));
323
- all_plus_number_grouping_symbols_.insert(
324
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8E" /* "." */), '.'));
325
- // Only the upper-case letters are added here - the lower-case versions are
326
- // added programmatically.
327
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("A"), '2'));
328
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("B"), '2'));
329
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("C"), '2'));
330
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("D"), '3'));
331
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("E"), '3'));
332
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("F"), '3'));
333
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("G"), '4'));
334
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("H"), '4'));
335
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("I"), '4'));
336
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("J"), '5'));
337
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("K"), '5'));
338
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("L"), '5'));
339
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("M"), '6'));
340
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("N"), '6'));
341
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("O"), '6'));
342
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("P"), '7'));
343
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Q"), '7'));
344
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("R"), '7'));
345
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("S"), '7'));
346
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("T"), '8'));
347
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("U"), '8'));
348
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("V"), '8'));
349
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("W"), '9'));
350
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("X"), '9'));
351
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Y"), '9'));
352
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Z"), '9'));
353
- map<char32, char> lower_case_mappings;
354
- map<char32, char> alpha_letters;
355
- for (map<char32, char>::const_iterator it = alpha_mappings_.begin();
356
- it != alpha_mappings_.end();
357
- ++it) {
358
- // Convert all the upper-case ASCII letters to lower-case.
359
- if (it->first < 128) {
360
- char letter_as_upper = static_cast<char>(it->first);
361
- char32 letter_as_lower = static_cast<char32>(tolower(letter_as_upper));
362
- lower_case_mappings.insert(std::make_pair(letter_as_lower, it->second));
363
- // Add the letters in both variants to the alpha_letters map. This just
364
- // pairs each letter with its upper-case representation so that it can
365
- // be retained when normalising alpha numbers.
366
- alpha_letters.insert(std::make_pair(letter_as_lower, letter_as_upper));
367
- alpha_letters.insert(std::make_pair(it->first, letter_as_upper));
368
- }
369
- }
370
- // In the Java version we don't insert the lower-case mappings in the map,
371
- // because we convert to upper case on the fly. Doing this here would
372
- // involve pulling in all of ICU, which we don't want to do if we don't have
373
- // to.
374
- alpha_mappings_.insert(lower_case_mappings.begin(),
375
- lower_case_mappings.end());
376
- alpha_phone_mappings_.insert(alpha_mappings_.begin(),
377
- alpha_mappings_.end());
378
- all_plus_number_grouping_symbols_.insert(alpha_letters.begin(),
379
- alpha_letters.end());
380
- // Add the ASCII digits so that they don't get deleted by NormalizeHelper().
381
- for (char c = '0'; c <= '9'; ++c) {
382
- diallable_char_mappings_.insert(std::make_pair(c, c));
383
- alpha_phone_mappings_.insert(std::make_pair(c, c));
384
- all_plus_number_grouping_symbols_.insert(std::make_pair(c, c));
385
- }
386
-
387
- mobile_token_mappings_.insert(std::make_pair(52, '1'));
388
- mobile_token_mappings_.insert(std::make_pair(54, '9'));
389
- geo_mobile_countries_without_mobile_area_codes_.insert(86); // China
390
- geo_mobile_countries_.insert(52); // Mexico
391
- geo_mobile_countries_.insert(54); // Argentina
392
- geo_mobile_countries_.insert(55); // Brazil
393
- // Indonesia: some prefixes only (fixed CMDA wireless)
394
- geo_mobile_countries_.insert(62);
395
- geo_mobile_countries_.insert(
396
- geo_mobile_countries_without_mobile_area_codes_.begin(),
397
- geo_mobile_countries_without_mobile_area_codes_.end());
398
- }
399
-
400
- // Small string helpers since StrCat has a maximum number of arguments. These
401
- // are both used to build valid_phone_number_.
402
- const string punctuation_and_star_sign_;
403
- const string min_length_phone_number_pattern_;
404
-
405
- // Regular expression of viable phone numbers. This is location independent.
406
- // Checks we have at least three leading digits, and only valid punctuation,
407
- // alpha characters and digits in the phone number. Does not include extension
408
- // data. The symbol 'x' is allowed here as valid punctuation since it is often
409
- // used as a placeholder for carrier codes, for example in Brazilian phone
410
- // numbers. We also allow multiple plus-signs at the start.
411
- // Corresponds to the following:
412
- // [digits]{minLengthNsn}|
413
- // plus_sign*(([punctuation]|[star])*[digits]){3,}
414
- // ([punctuation]|[star]|[digits]|[alpha])*
415
- //
416
- // The first reg-ex is to allow short numbers (two digits long) to be parsed
417
- // if they are entered as "15" etc, but only if there is no punctuation in
418
- // them. The second expression restricts the number of digits to three or
419
- // more, but then allows them to be in international form, and to have
420
- // alpha-characters and punctuation.
421
- const string valid_phone_number_;
422
-
423
- // Regexp of all possible ways to write extensions, for use when parsing. This
424
- // will be run as a case-insensitive regexp match. Wide character versions are
425
- // also provided after each ASCII version.
426
- // For parsing, we are slightly more lenient in our interpretation than for
427
- // matching. Here we allow a "comma" as a possible extension indicator. When
428
- // matching, this is hardly ever used to indicate this.
429
- const string extn_patterns_for_parsing_;
430
-
431
- public:
432
- scoped_ptr<const AbstractRegExpFactory> regexp_factory_;
433
- scoped_ptr<RegExpCache> regexp_cache_;
434
-
435
- // A map that contains characters that are essential when dialling. That means
436
- // any of the characters in this map must not be removed from a number when
437
- // dialing, otherwise the call will not reach the intended destination.
438
- map<char32, char> diallable_char_mappings_;
439
- // These mappings map a character (key) to a specific digit that should
440
- // replace it for normalization purposes.
441
- map<char32, char> alpha_mappings_;
442
- // For performance reasons, store a map of combining alpha_mappings with ASCII
443
- // digits.
444
- map<char32, char> alpha_phone_mappings_;
445
-
446
- // Separate map of all symbols that we wish to retain when formatting alpha
447
- // numbers. This includes digits, ascii letters and number grouping symbols
448
- // such as "-" and " ".
449
- map<char32, char> all_plus_number_grouping_symbols_;
450
-
451
- // Map of country calling codes that use a mobile token before the area code.
452
- // One example of when this is relevant is when determining the length of the
453
- // national destination code, which should be the length of the area code plus
454
- // the length of the mobile token.
455
- map<int, char> mobile_token_mappings_;
456
-
457
- // Set of country codes that have geographically assigned mobile numbers (see
458
- // geo_mobile_countries_ below) which are not based on *area codes*. For
459
- // example, in China mobile numbers start with a carrier indicator, and beyond
460
- // that are geographically assigned: this carrier indicator is not considered
461
- // to be an area code.
462
- set<int> geo_mobile_countries_without_mobile_area_codes_;
463
-
464
- // Set of country calling codes that have geographically assigned mobile
465
- // numbers. This may not be complete; we add calling codes case by case, as we
466
- // find geographical mobile numbers or hear from user reports.
467
- set<int> geo_mobile_countries_;
468
-
469
- // Pattern that makes it easy to distinguish whether a region has a unique
470
- // international dialing prefix or not. If a region has a unique international
471
- // prefix (e.g. 011 in USA), it will be represented as a string that contains
472
- // a sequence of ASCII digits. If there are multiple available international
473
- // prefixes in a region, they will be represented as a regex string that
474
- // always contains character(s) other than ASCII digits.
475
- // Note this regex also includes tilde, which signals waiting for the tone.
476
- scoped_ptr<const RegExp> unique_international_prefix_;
477
-
478
- scoped_ptr<const RegExp> digits_pattern_;
479
- scoped_ptr<const RegExp> capturing_digit_pattern_;
480
- scoped_ptr<const RegExp> capturing_ascii_digits_pattern_;
481
-
482
- // Regular expression of acceptable characters that may start a phone number
483
- // for the purposes of parsing. This allows us to strip away meaningless
484
- // prefixes to phone numbers that may be mistakenly given to us. This consists
485
- // of digits, the plus symbol and arabic-indic digits. This does not contain
486
- // alpha characters, although they may be used later in the number. It also
487
- // does not include other punctuation, as this will be stripped later during
488
- // parsing and is of no information value when parsing a number. The string
489
- // starting with this valid character is captured.
490
- // This corresponds to VALID_START_CHAR in the java version.
491
- scoped_ptr<const RegExp> valid_start_char_pattern_;
492
-
493
- // Regular expression of valid characters before a marker that might indicate
494
- // a second number.
495
- scoped_ptr<const RegExp> capture_up_to_second_number_start_pattern_;
496
-
497
- // Regular expression of trailing characters that we want to remove. We remove
498
- // all characters that are not alpha or numerical characters. The hash
499
- // character is retained here, as it may signify the previous block was an
500
- // extension. Note the capturing block at the start to capture the rest of the
501
- // number if this was a match.
502
- // This corresponds to UNWANTED_END_CHAR_PATTERN in the java version.
503
- scoped_ptr<const RegExp> unwanted_end_char_pattern_;
504
-
505
- // Regular expression of groups of valid punctuation characters.
506
- scoped_ptr<const RegExp> separator_pattern_;
507
-
508
- // Regexp of all possible ways to write extensions, for use when finding phone
509
- // numbers in text. This will be run as a case-insensitive regexp match. Wide
510
- // character versions are also provided after each ASCII version.
511
- const string extn_patterns_for_matching_;
512
-
513
- // Regexp of all known extension prefixes used by different regions followed
514
- // by 1 or more valid digits, for use when parsing.
515
- scoped_ptr<const RegExp> extn_pattern_;
516
-
517
- // We append optionally the extension pattern to the end here, as a valid
518
- // phone number may have an extension prefix appended, followed by 1 or more
519
- // digits.
520
- scoped_ptr<const RegExp> valid_phone_number_pattern_;
521
-
522
- // We use this pattern to check if the phone number has at least three letters
523
- // in it - if so, then we treat it as a number where some phone-number digits
524
- // are represented by letters.
525
- scoped_ptr<const RegExp> valid_alpha_phone_pattern_;
526
-
527
- scoped_ptr<const RegExp> first_group_capturing_pattern_;
528
-
529
- scoped_ptr<const RegExp> carrier_code_pattern_;
530
-
531
- scoped_ptr<const RegExp> plus_chars_pattern_;
532
-
533
- PhoneNumberRegExpsAndMappings()
534
- : punctuation_and_star_sign_(StrCat(PhoneNumberUtil::kValidPunctuation,
535
- kStarSign)),
536
- min_length_phone_number_pattern_(
537
- StrCat(kDigits, "{", PhoneNumberUtil::kMinLengthForNsn, "}")),
538
- valid_phone_number_(
539
- StrCat(min_length_phone_number_pattern_, "|[",
540
- PhoneNumberUtil::kPlusChars, "]*(?:[",
541
- punctuation_and_star_sign_, "]*",
542
- kDigits, "){3,}[", kValidAlpha,
543
- punctuation_and_star_sign_, kDigits,
544
- "]*")),
545
- extn_patterns_for_parsing_(
546
- CreateExtnPattern(StrCat(",", kSingleExtnSymbolsForMatching))),
547
- regexp_factory_(new RegExpFactory()),
548
- regexp_cache_(new RegExpCache(*regexp_factory_.get(), 128)),
549
- diallable_char_mappings_(),
550
- alpha_mappings_(),
551
- alpha_phone_mappings_(),
552
- all_plus_number_grouping_symbols_(),
553
- mobile_token_mappings_(),
554
- geo_mobile_countries_without_mobile_area_codes_(),
555
- geo_mobile_countries_(),
556
- unique_international_prefix_(regexp_factory_->CreateRegExp(
557
- /* "[\\d]+(?:[~⁓∼~][\\d]+)?" */
558
- "[\\d]+(?:[~\xE2\x81\x93\xE2\x88\xBC\xEF\xBD\x9E][\\d]+)?")),
559
- digits_pattern_(
560
- regexp_factory_->CreateRegExp(StrCat("[", kDigits, "]*"))),
561
- capturing_digit_pattern_(
562
- regexp_factory_->CreateRegExp(StrCat("([", kDigits, "])"))),
563
- capturing_ascii_digits_pattern_(
564
- regexp_factory_->CreateRegExp("(\\d+)")),
565
- valid_start_char_pattern_(regexp_factory_->CreateRegExp(
566
- StrCat("[", PhoneNumberUtil::kPlusChars, kDigits, "]"))),
567
- capture_up_to_second_number_start_pattern_(
568
- regexp_factory_->CreateRegExp(
569
- PhoneNumberUtil::kCaptureUpToSecondNumberStart)),
570
- unwanted_end_char_pattern_(
571
- regexp_factory_->CreateRegExp("[^\\p{N}\\p{L}#]")),
572
- separator_pattern_(
573
- regexp_factory_->CreateRegExp(
574
- StrCat("[", PhoneNumberUtil::kValidPunctuation, "]+"))),
575
- extn_patterns_for_matching_(
576
- CreateExtnPattern(kSingleExtnSymbolsForMatching)),
577
- extn_pattern_(regexp_factory_->CreateRegExp(
578
- StrCat("(?i)(?:", extn_patterns_for_parsing_, ")$"))),
579
- valid_phone_number_pattern_(regexp_factory_->CreateRegExp(
580
- StrCat("(?i)", valid_phone_number_,
581
- "(?:", extn_patterns_for_parsing_, ")?"))),
582
- valid_alpha_phone_pattern_(regexp_factory_->CreateRegExp(
583
- StrCat("(?i)(?:.*?[", kValidAlpha, "]){3}"))),
584
- // The first_group_capturing_pattern was originally set to $1 but there
585
- // are some countries for which the first group is not used in the
586
- // national pattern (e.g. Argentina) so the $1 group does not match
587
- // correctly. Therefore, we use \d, so that the first group actually
588
- // used in the pattern will be matched.
589
- first_group_capturing_pattern_(
590
- regexp_factory_->CreateRegExp("(\\$\\d)")),
591
- carrier_code_pattern_(regexp_factory_->CreateRegExp("\\$CC")),
592
- plus_chars_pattern_(
593
- regexp_factory_->CreateRegExp(
594
- StrCat("[", PhoneNumberUtil::kPlusChars, "]+"))) {
595
- InitializeMapsAndSets();
596
- }
597
-
598
- private:
599
- DISALLOW_COPY_AND_ASSIGN(PhoneNumberRegExpsAndMappings);
600
- };
601
-
602
- // Private constructor. Also takes care of initialisation.
603
- PhoneNumberUtil::PhoneNumberUtil()
604
- : logger_(Logger::set_logger_impl(new NullLogger())),
605
- reg_exps_(new PhoneNumberRegExpsAndMappings),
606
- country_calling_code_to_region_code_map_(new vector<IntRegionsPair>()),
607
- nanpa_regions_(new set<string>()),
608
- region_to_metadata_map_(new map<string, PhoneMetadata>()),
609
- country_code_to_non_geographical_metadata_map_(
610
- new map<int, PhoneMetadata>) {
611
- Logger::set_logger_impl(logger_.get());
612
- // TODO: Update the java version to put the contents of the init
613
- // method inside the constructor as well to keep both in sync.
614
- PhoneMetadataCollection metadata_collection;
615
- if (!LoadCompiledInMetadata(&metadata_collection)) {
616
- LOG(DFATAL) << "Could not parse compiled-in metadata.";
617
- return;
618
- }
619
- // Storing data in a temporary map to make it easier to find other regions
620
- // that share a country calling code when inserting data.
621
- map<int, list<string>* > country_calling_code_to_region_map;
622
- for (RepeatedPtrField<PhoneMetadata>::const_iterator it =
623
- metadata_collection.metadata().begin();
624
- it != metadata_collection.metadata().end();
625
- ++it) {
626
- const string& region_code = it->id();
627
- if (region_code == RegionCode::GetUnknown()) {
628
- continue;
629
- }
630
-
631
- int country_calling_code = it->country_code();
632
- if (kRegionCodeForNonGeoEntity == region_code) {
633
- country_code_to_non_geographical_metadata_map_->insert(
634
- std::make_pair(country_calling_code, *it));
635
- } else {
636
- region_to_metadata_map_->insert(std::make_pair(region_code, *it));
637
- }
638
- map<int, list<string>* >::iterator calling_code_in_map =
639
- country_calling_code_to_region_map.find(country_calling_code);
640
- if (calling_code_in_map != country_calling_code_to_region_map.end()) {
641
- if (it->main_country_for_code()) {
642
- calling_code_in_map->second->push_front(region_code);
643
- } else {
644
- calling_code_in_map->second->push_back(region_code);
645
- }
646
- } else {
647
- // For most country calling codes, there will be only one region code.
648
- list<string>* list_with_region_code = new list<string>();
649
- list_with_region_code->push_back(region_code);
650
- country_calling_code_to_region_map.insert(
651
- std::make_pair(country_calling_code, list_with_region_code));
652
- }
653
- if (country_calling_code == kNanpaCountryCode) {
654
- nanpa_regions_->insert(region_code);
655
- }
656
- }
657
-
658
- country_calling_code_to_region_code_map_->insert(
659
- country_calling_code_to_region_code_map_->begin(),
660
- country_calling_code_to_region_map.begin(),
661
- country_calling_code_to_region_map.end());
662
- // Sort all the pairs in ascending order according to country calling code.
663
- std::sort(country_calling_code_to_region_code_map_->begin(),
664
- country_calling_code_to_region_code_map_->end(),
665
- OrderByFirst());
666
- }
667
-
668
- PhoneNumberUtil::~PhoneNumberUtil() {
669
- STLDeleteContainerPairSecondPointers(
670
- country_calling_code_to_region_code_map_->begin(),
671
- country_calling_code_to_region_code_map_->end());
672
- }
673
-
674
- void PhoneNumberUtil::GetSupportedRegions(set<string>* regions) const {
675
- DCHECK(regions);
676
- for (map<string, PhoneMetadata>::const_iterator it =
677
- region_to_metadata_map_->begin(); it != region_to_metadata_map_->end();
678
- ++it) {
679
- regions->insert(it->first);
680
- }
681
- }
682
-
683
- void PhoneNumberUtil::GetSupportedGlobalNetworkCallingCodes(
684
- set<int>* calling_codes) const {
685
- DCHECK(calling_codes);
686
- for (map<int, PhoneMetadata>::const_iterator it =
687
- country_code_to_non_geographical_metadata_map_->begin();
688
- it != country_code_to_non_geographical_metadata_map_->end(); ++it) {
689
- calling_codes->insert(it->first);
690
- }
691
- }
692
-
693
- // Public wrapper function to get a PhoneNumberUtil instance with the default
694
- // metadata file.
695
- // static
696
- PhoneNumberUtil* PhoneNumberUtil::GetInstance() {
697
- return Singleton<PhoneNumberUtil>::GetInstance();
698
- }
699
-
700
- const string& PhoneNumberUtil::GetExtnPatternsForMatching() const {
701
- return reg_exps_->extn_patterns_for_matching_;
702
- }
703
-
704
- bool PhoneNumberUtil::StartsWithPlusCharsPattern(const string& number)
705
- const {
706
- const scoped_ptr<RegExpInput> number_string_piece(
707
- reg_exps_->regexp_factory_->CreateInput(number));
708
- return reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get());
709
- }
710
-
711
- bool PhoneNumberUtil::ContainsOnlyValidDigits(const string& s) const {
712
- return reg_exps_->digits_pattern_->FullMatch(s);
713
- }
714
-
715
- void PhoneNumberUtil::TrimUnwantedEndChars(string* number) const {
716
- DCHECK(number);
717
- UnicodeText number_as_unicode;
718
- number_as_unicode.PointToUTF8(number->data(), number->size());
719
- char current_char[5];
720
- int len;
721
- UnicodeText::const_reverse_iterator reverse_it(number_as_unicode.end());
722
- for (; reverse_it.base() != number_as_unicode.begin(); ++reverse_it) {
723
- len = reverse_it.get_utf8(current_char);
724
- current_char[len] = '\0';
725
- if (!reg_exps_->unwanted_end_char_pattern_->FullMatch(current_char)) {
726
- break;
727
- }
728
- }
729
-
730
- number->assign(UnicodeText::UTF8Substring(number_as_unicode.begin(),
731
- reverse_it.base()));
732
- }
733
-
734
- bool PhoneNumberUtil::IsFormatEligibleForAsYouTypeFormatter(
735
- const string& format) const {
736
- // A pattern that is used to determine if a numberFormat under
737
- // availableFormats is eligible to be used by the AYTF. It is eligible when
738
- // the format element under numberFormat contains groups of the dollar sign
739
- // followed by a single digit, separated by valid phone number punctuation.
740
- // This prevents invalid punctuation (such as the star sign in Israeli star
741
- // numbers) getting into the output of the AYTF.
742
- const RegExp& eligible_format_pattern = reg_exps_->regexp_cache_->GetRegExp(
743
- StrCat("[", kValidPunctuation, "]*", "(\\$\\d", "[",
744
- kValidPunctuation, "]*)+"));
745
- return eligible_format_pattern.FullMatch(format);
746
- }
747
-
748
- bool PhoneNumberUtil::FormattingRuleHasFirstGroupOnly(
749
- const string& national_prefix_formatting_rule) const {
750
- // A pattern that is used to determine if the national prefix formatting rule
751
- // has the first group only, i.e., does not start with the national prefix.
752
- // Note that the pattern explicitly allows for unbalanced parentheses.
753
- const RegExp& first_group_only_prefix_pattern =
754
- reg_exps_->regexp_cache_->GetRegExp("\\(?\\$1\\)?");
755
- return national_prefix_formatting_rule.empty() ||
756
- first_group_only_prefix_pattern.FullMatch(
757
- national_prefix_formatting_rule);
758
- }
759
-
760
- void PhoneNumberUtil::GetNddPrefixForRegion(const string& region_code,
761
- bool strip_non_digits,
762
- string* national_prefix) const {
763
- DCHECK(national_prefix);
764
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
765
- if (!metadata) {
766
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
767
- << ") provided.";
768
- return;
769
- }
770
- national_prefix->assign(metadata->national_prefix());
771
- if (strip_non_digits) {
772
- // Note: if any other non-numeric symbols are ever used in national
773
- // prefixes, these would have to be removed here as well.
774
- strrmm(national_prefix, "~");
775
- }
776
- }
777
-
778
- bool PhoneNumberUtil::IsValidRegionCode(const string& region_code) const {
779
- return (region_to_metadata_map_->find(region_code) !=
780
- region_to_metadata_map_->end());
781
- }
782
-
783
- bool PhoneNumberUtil::HasValidCountryCallingCode(
784
- int country_calling_code) const {
785
- // Create an IntRegionsPair with the country_code passed in, and use it to
786
- // locate the pair with the same country_code in the sorted vector.
787
- IntRegionsPair target_pair;
788
- target_pair.first = country_calling_code;
789
- return (binary_search(country_calling_code_to_region_code_map_->begin(),
790
- country_calling_code_to_region_code_map_->end(),
791
- target_pair, OrderByFirst()));
792
- }
793
-
794
- // Returns a pointer to the phone metadata for the appropriate region or NULL
795
- // if the region code is invalid or unknown.
796
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForRegion(
797
- const string& region_code) const {
798
- map<string, PhoneMetadata>::const_iterator it =
799
- region_to_metadata_map_->find(region_code);
800
- if (it != region_to_metadata_map_->end()) {
801
- return &it->second;
802
- }
803
- return NULL;
804
- }
805
-
806
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForNonGeographicalRegion(
807
- int country_calling_code) const {
808
- map<int, PhoneMetadata>::const_iterator it =
809
- country_code_to_non_geographical_metadata_map_->find(
810
- country_calling_code);
811
- if (it != country_code_to_non_geographical_metadata_map_->end()) {
812
- return &it->second;
813
- }
814
- return NULL;
815
- }
816
-
817
- void PhoneNumberUtil::Format(const PhoneNumber& number,
818
- PhoneNumberFormat number_format,
819
- string* formatted_number) const {
820
- DCHECK(formatted_number);
821
- if (number.national_number() == 0) {
822
- const string& raw_input = number.raw_input();
823
- if (!raw_input.empty()) {
824
- // Unparseable numbers that kept their raw input just use that.
825
- // This is the only case where a number can be formatted as E164 without a
826
- // leading '+' symbol (but the original number wasn't parseable anyway).
827
- // TODO: Consider removing the 'if' above so that unparseable
828
- // strings without raw input format to the empty string instead of "+00".
829
- formatted_number->assign(raw_input);
830
- return;
831
- }
832
- }
833
- int country_calling_code = number.country_code();
834
- string national_significant_number;
835
- GetNationalSignificantNumber(number, &national_significant_number);
836
- if (number_format == E164) {
837
- // Early exit for E164 case (even if the country calling code is invalid)
838
- // since no formatting of the national number needs to be applied.
839
- // Extensions are not formatted.
840
- formatted_number->assign(national_significant_number);
841
- PrefixNumberWithCountryCallingCode(country_calling_code, E164,
842
- formatted_number);
843
- return;
844
- }
845
- if (!HasValidCountryCallingCode(country_calling_code)) {
846
- formatted_number->assign(national_significant_number);
847
- return;
848
- }
849
- // Note here that all NANPA formatting rules are contained by US, so we use
850
- // that to format NANPA numbers. The same applies to Russian Fed regions -
851
- // rules are contained by Russia. French Indian Ocean country rules are
852
- // contained by Réunion.
853
- string region_code;
854
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
855
- // Metadata cannot be NULL because the country calling code is valid (which
856
- // means that the region code cannot be ZZ and must be one of our supported
857
- // region codes).
858
- const PhoneMetadata* metadata =
859
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
860
- FormatNsn(national_significant_number, *metadata, number_format,
861
- formatted_number);
862
- MaybeAppendFormattedExtension(number, *metadata, number_format,
863
- formatted_number);
864
- PrefixNumberWithCountryCallingCode(country_calling_code, number_format,
865
- formatted_number);
866
- }
867
-
868
- void PhoneNumberUtil::FormatByPattern(
869
- const PhoneNumber& number,
870
- PhoneNumberFormat number_format,
871
- const RepeatedPtrField<NumberFormat>& user_defined_formats,
872
- string* formatted_number) const {
873
- DCHECK(formatted_number);
874
- int country_calling_code = number.country_code();
875
- // Note GetRegionCodeForCountryCode() is used because formatting information
876
- // for regions which share a country calling code is contained by only one
877
- // region for performance reasons. For example, for NANPA regions it will be
878
- // contained in the metadata for US.
879
- string national_significant_number;
880
- GetNationalSignificantNumber(number, &national_significant_number);
881
- if (!HasValidCountryCallingCode(country_calling_code)) {
882
- formatted_number->assign(national_significant_number);
883
- return;
884
- }
885
- string region_code;
886
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
887
- // Metadata cannot be NULL because the country calling code is valid.
888
- const PhoneMetadata* metadata =
889
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
890
- const NumberFormat* formatting_pattern =
891
- ChooseFormattingPatternForNumber(user_defined_formats,
892
- national_significant_number);
893
- if (!formatting_pattern) {
894
- // If no pattern above is matched, we format the number as a whole.
895
- formatted_number->assign(national_significant_number);
896
- } else {
897
- NumberFormat num_format_copy;
898
- // Before we do a replacement of the national prefix pattern $NP with the
899
- // national prefix, we need to copy the rule so that subsequent replacements
900
- // for different numbers have the appropriate national prefix.
901
- num_format_copy.MergeFrom(*formatting_pattern);
902
- string national_prefix_formatting_rule(
903
- formatting_pattern->national_prefix_formatting_rule());
904
- if (!national_prefix_formatting_rule.empty()) {
905
- const string& national_prefix = metadata->national_prefix();
906
- if (!national_prefix.empty()) {
907
- // Replace $NP with national prefix and $FG with the first group ($1).
908
- GlobalReplaceSubstring("$NP", national_prefix,
909
- &national_prefix_formatting_rule);
910
- GlobalReplaceSubstring("$FG", "$1",
911
- &national_prefix_formatting_rule);
912
- num_format_copy.set_national_prefix_formatting_rule(
913
- national_prefix_formatting_rule);
914
- } else {
915
- // We don't want to have a rule for how to format the national prefix if
916
- // there isn't one.
917
- num_format_copy.clear_national_prefix_formatting_rule();
918
- }
919
- }
920
- FormatNsnUsingPattern(national_significant_number, num_format_copy,
921
- number_format, formatted_number);
922
- }
923
- MaybeAppendFormattedExtension(number, *metadata, NATIONAL, formatted_number);
924
- PrefixNumberWithCountryCallingCode(country_calling_code, number_format,
925
- formatted_number);
926
- }
927
-
928
- void PhoneNumberUtil::FormatNationalNumberWithCarrierCode(
929
- const PhoneNumber& number,
930
- const string& carrier_code,
931
- string* formatted_number) const {
932
- int country_calling_code = number.country_code();
933
- string national_significant_number;
934
- GetNationalSignificantNumber(number, &national_significant_number);
935
- if (!HasValidCountryCallingCode(country_calling_code)) {
936
- formatted_number->assign(national_significant_number);
937
- return;
938
- }
939
-
940
- // Note GetRegionCodeForCountryCode() is used because formatting information
941
- // for regions which share a country calling code is contained by only one
942
- // region for performance reasons. For example, for NANPA regions it will be
943
- // contained in the metadata for US.
944
- string region_code;
945
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
946
- // Metadata cannot be NULL because the country calling code is valid.
947
- const PhoneMetadata* metadata =
948
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
949
- FormatNsnWithCarrier(national_significant_number, *metadata, NATIONAL,
950
- carrier_code, formatted_number);
951
- MaybeAppendFormattedExtension(number, *metadata, NATIONAL, formatted_number);
952
- PrefixNumberWithCountryCallingCode(country_calling_code, NATIONAL,
953
- formatted_number);
954
- }
955
-
956
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForRegionOrCallingCode(
957
- int country_calling_code, const string& region_code) const {
958
- return kRegionCodeForNonGeoEntity == region_code
959
- ? GetMetadataForNonGeographicalRegion(country_calling_code)
960
- : GetMetadataForRegion(region_code);
961
- }
962
-
963
- void PhoneNumberUtil::FormatNationalNumberWithPreferredCarrierCode(
964
- const PhoneNumber& number,
965
- const string& fallback_carrier_code,
966
- string* formatted_number) const {
967
- FormatNationalNumberWithCarrierCode(
968
- number,
969
- number.has_preferred_domestic_carrier_code()
970
- ? number.preferred_domestic_carrier_code()
971
- : fallback_carrier_code,
972
- formatted_number);
973
- }
974
-
975
- void PhoneNumberUtil::FormatNumberForMobileDialing(
976
- const PhoneNumber& number,
977
- const string& calling_from,
978
- bool with_formatting,
979
- string* formatted_number) const {
980
- int country_calling_code = number.country_code();
981
- if (!HasValidCountryCallingCode(country_calling_code)) {
982
- formatted_number->assign(number.has_raw_input() ? number.raw_input() : "");
983
- return;
984
- }
985
-
986
- formatted_number->assign("");
987
- // Clear the extension, as that part cannot normally be dialed together with
988
- // the main number.
989
- PhoneNumber number_no_extension(number);
990
- number_no_extension.clear_extension();
991
- string region_code;
992
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
993
- PhoneNumberType number_type = GetNumberType(number_no_extension);
994
- bool is_valid_number = (number_type != UNKNOWN);
995
- if (calling_from == region_code) {
996
- bool is_fixed_line_or_mobile =
997
- (number_type == FIXED_LINE) || (number_type == MOBILE) ||
998
- (number_type == FIXED_LINE_OR_MOBILE);
999
- // Carrier codes may be needed in some countries. We handle this here.
1000
- if ((region_code == "CO") && (number_type == FIXED_LINE)) {
1001
- FormatNationalNumberWithCarrierCode(
1002
- number_no_extension, kColombiaMobileToFixedLinePrefix,
1003
- formatted_number);
1004
- } else if ((region_code == "BR") && (is_fixed_line_or_mobile)) {
1005
- if (number_no_extension.has_preferred_domestic_carrier_code()) {
1006
- FormatNationalNumberWithPreferredCarrierCode(number_no_extension, "",
1007
- formatted_number);
1008
- } else {
1009
- // Brazilian fixed line and mobile numbers need to be dialed with a
1010
- // carrier code when called within Brazil. Without that, most of the
1011
- // carriers won't connect the call. Because of that, we return an empty
1012
- // string here.
1013
- formatted_number->assign("");
1014
- }
1015
- } else if (is_valid_number && region_code == "HU") {
1016
- // The national format for HU numbers doesn't contain the national prefix,
1017
- // because that is how numbers are normally written down. However, the
1018
- // national prefix is obligatory when dialing from a mobile phone, except
1019
- // for short numbers. As a result, we add it back here if it is a valid
1020
- // regular length phone number.
1021
- Format(number_no_extension, NATIONAL, formatted_number);
1022
- string hu_national_prefix;
1023
- GetNddPrefixForRegion(region_code, true /* strip non-digits */,
1024
- &hu_national_prefix);
1025
- formatted_number->assign(
1026
- StrCat(hu_national_prefix, " ", *formatted_number));
1027
- } else if (country_calling_code == kNanpaCountryCode) {
1028
- // For NANPA countries, we output international format for numbers that
1029
- // can be dialed internationally, since that always works, except for
1030
- // numbers which might potentially be short numbers, which are always
1031
- // dialled in national format.
1032
- const PhoneMetadata* region_metadata = GetMetadataForRegion(calling_from);
1033
- string national_number;
1034
- GetNationalSignificantNumber(number_no_extension, &national_number);
1035
- if (CanBeInternationallyDialled(number_no_extension) &&
1036
- !IsShorterThanPossibleNormalNumber(region_metadata,
1037
- national_number)) {
1038
- Format(number_no_extension, INTERNATIONAL, formatted_number);
1039
- } else {
1040
- Format(number_no_extension, NATIONAL, formatted_number);
1041
- }
1042
- } else {
1043
- // For non-geographical countries, and Mexican and Chilean fixed line and
1044
- // mobile numbers, we output international format for numbers that can be
1045
- // dialed internationally as that always works.
1046
- if ((region_code == kRegionCodeForNonGeoEntity ||
1047
- // MX fixed line and mobile numbers should always be formatted in
1048
- // international format, even when dialed within MX. For national
1049
- // format to work, a carrier code needs to be used, and the correct
1050
- // carrier code depends on if the caller and callee are from the same
1051
- // local area. It is trickier to get that to work correctly than
1052
- // using international format, which is tested to work fine on all
1053
- // carriers.
1054
- // CL fixed line numbers need the national prefix when dialing in the
1055
- // national format, but don't have it when used for display. The
1056
- // reverse is true for mobile numbers. As a result, we output them in
1057
- // the international format to make it work.
1058
- ((region_code == "MX" || region_code == "CL") &&
1059
- is_fixed_line_or_mobile)) &&
1060
- CanBeInternationallyDialled(number_no_extension)) {
1061
- Format(number_no_extension, INTERNATIONAL, formatted_number);
1062
- } else {
1063
- Format(number_no_extension, NATIONAL, formatted_number);
1064
- }
1065
- }
1066
- } else if (is_valid_number &&
1067
- CanBeInternationallyDialled(number_no_extension)) {
1068
- // We assume that short numbers are not diallable from outside their
1069
- // region, so if a number is not a valid regular length phone number, we
1070
- // treat it as if it cannot be internationally dialled.
1071
- with_formatting
1072
- ? Format(number_no_extension, INTERNATIONAL, formatted_number)
1073
- : Format(number_no_extension, E164, formatted_number);
1074
- return;
1075
- }
1076
- if (!with_formatting) {
1077
- NormalizeDiallableCharsOnly(formatted_number);
1078
- }
1079
- }
1080
-
1081
- void PhoneNumberUtil::FormatOutOfCountryCallingNumber(
1082
- const PhoneNumber& number,
1083
- const string& calling_from,
1084
- string* formatted_number) const {
1085
- DCHECK(formatted_number);
1086
- if (!IsValidRegionCode(calling_from)) {
1087
- VLOG(1) << "Trying to format number from invalid region " << calling_from
1088
- << ". International formatting applied.";
1089
- Format(number, INTERNATIONAL, formatted_number);
1090
- return;
1091
- }
1092
- int country_code = number.country_code();
1093
- string national_significant_number;
1094
- GetNationalSignificantNumber(number, &national_significant_number);
1095
- if (!HasValidCountryCallingCode(country_code)) {
1096
- formatted_number->assign(national_significant_number);
1097
- return;
1098
- }
1099
- if (country_code == kNanpaCountryCode) {
1100
- if (IsNANPACountry(calling_from)) {
1101
- // For NANPA regions, return the national format for these regions but
1102
- // prefix it with the country calling code.
1103
- Format(number, NATIONAL, formatted_number);
1104
- formatted_number->insert(0, StrCat(country_code, " "));
1105
- return;
1106
- }
1107
- } else if (country_code == GetCountryCodeForValidRegion(calling_from)) {
1108
- // If neither region is a NANPA region, then we check to see if the
1109
- // country calling code of the number and the country calling code of the
1110
- // region we are calling from are the same.
1111
- // For regions that share a country calling code, the country calling code
1112
- // need not be dialled. This also applies when dialling within a region, so
1113
- // this if clause covers both these cases.
1114
- // Technically this is the case for dialling from la Réunion to other
1115
- // overseas departments of France (French Guiana, Martinique, Guadeloupe),
1116
- // but not vice versa - so we don't cover this edge case for now and for
1117
- // those cases return the version including country calling code.
1118
- // Details here:
1119
- // http://www.petitfute.com/voyage/225-info-pratiques-reunion
1120
- Format(number, NATIONAL, formatted_number);
1121
- return;
1122
- }
1123
- // Metadata cannot be NULL because we checked 'IsValidRegionCode()' above.
1124
- const PhoneMetadata* metadata_calling_from =
1125
- GetMetadataForRegion(calling_from);
1126
- const string& international_prefix =
1127
- metadata_calling_from->international_prefix();
1128
-
1129
- // For regions that have multiple international prefixes, the international
1130
- // format of the number is returned, unless there is a preferred international
1131
- // prefix.
1132
- const string international_prefix_for_formatting(
1133
- reg_exps_->unique_international_prefix_->FullMatch(international_prefix)
1134
- ? international_prefix
1135
- : metadata_calling_from->preferred_international_prefix());
1136
-
1137
- string region_code;
1138
- GetRegionCodeForCountryCode(country_code, &region_code);
1139
- // Metadata cannot be NULL because the country_code is valid.
1140
- const PhoneMetadata* metadata_for_region =
1141
- GetMetadataForRegionOrCallingCode(country_code, region_code);
1142
- FormatNsn(national_significant_number, *metadata_for_region, INTERNATIONAL,
1143
- formatted_number);
1144
- MaybeAppendFormattedExtension(number, *metadata_for_region, INTERNATIONAL,
1145
- formatted_number);
1146
- if (!international_prefix_for_formatting.empty()) {
1147
- formatted_number->insert(
1148
- 0, StrCat(international_prefix_for_formatting, " ", country_code, " "));
1149
- } else {
1150
- PrefixNumberWithCountryCallingCode(country_code, INTERNATIONAL,
1151
- formatted_number);
1152
- }
1153
- }
1154
-
1155
- void PhoneNumberUtil::FormatInOriginalFormat(const PhoneNumber& number,
1156
- const string& region_calling_from,
1157
- string* formatted_number) const {
1158
- DCHECK(formatted_number);
1159
-
1160
- if (number.has_raw_input() &&
1161
- (HasUnexpectedItalianLeadingZero(number) ||
1162
- !HasFormattingPatternForNumber(number))) {
1163
- // We check if we have the formatting pattern because without that, we might
1164
- // format the number as a group without national prefix.
1165
- formatted_number->assign(number.raw_input());
1166
- return;
1167
- }
1168
- if (!number.has_country_code_source()) {
1169
- Format(number, NATIONAL, formatted_number);
1170
- return;
1171
- }
1172
- switch (number.country_code_source()) {
1173
- case PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN:
1174
- Format(number, INTERNATIONAL, formatted_number);
1175
- break;
1176
- case PhoneNumber::FROM_NUMBER_WITH_IDD:
1177
- FormatOutOfCountryCallingNumber(number, region_calling_from,
1178
- formatted_number);
1179
- break;
1180
- case PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN:
1181
- Format(number, INTERNATIONAL, formatted_number);
1182
- formatted_number->erase(formatted_number->begin());
1183
- break;
1184
- case PhoneNumber::FROM_DEFAULT_COUNTRY:
1185
- // Fall-through to default case.
1186
- default:
1187
- string region_code;
1188
- GetRegionCodeForCountryCode(number.country_code(), &region_code);
1189
- // We strip non-digits from the NDD here, and from the raw input later, so
1190
- // that we can compare them easily.
1191
- string national_prefix;
1192
- GetNddPrefixForRegion(region_code, true /* strip non-digits */,
1193
- &national_prefix);
1194
- if (national_prefix.empty()) {
1195
- // If the region doesn't have a national prefix at all, we can safely
1196
- // return the national format without worrying about a national prefix
1197
- // being added.
1198
- Format(number, NATIONAL, formatted_number);
1199
- break;
1200
- }
1201
- // Otherwise, we check if the original number was entered with a national
1202
- // prefix.
1203
- if (RawInputContainsNationalPrefix(number.raw_input(), national_prefix,
1204
- region_code)) {
1205
- // If so, we can safely return the national format.
1206
- Format(number, NATIONAL, formatted_number);
1207
- break;
1208
- }
1209
- // Metadata cannot be NULL here because GetNddPrefixForRegion() (above)
1210
- // leaves the prefix empty if there is no metadata for the region.
1211
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
1212
- string national_number;
1213
- GetNationalSignificantNumber(number, &national_number);
1214
- // This shouldn't be NULL, because we have checked that above with
1215
- // HasFormattingPatternForNumber.
1216
- const NumberFormat* format_rule =
1217
- ChooseFormattingPatternForNumber(metadata->number_format(),
1218
- national_number);
1219
- // The format rule could still be NULL here if the national number was 0
1220
- // and there was no raw input (this should not be possible for numbers
1221
- // generated by the phonenumber library as they would also not have a
1222
- // country calling code and we would have exited earlier).
1223
- if (!format_rule) {
1224
- Format(number, NATIONAL, formatted_number);
1225
- break;
1226
- }
1227
- // When the format we apply to this number doesn't contain national
1228
- // prefix, we can just return the national format.
1229
- // TODO: Refactor the code below with the code in
1230
- // IsNationalPrefixPresentIfRequired.
1231
- string candidate_national_prefix_rule(
1232
- format_rule->national_prefix_formatting_rule());
1233
- // We assume that the first-group symbol will never be _before_ the
1234
- // national prefix.
1235
- if (!candidate_national_prefix_rule.empty()) {
1236
- candidate_national_prefix_rule.erase(
1237
- candidate_national_prefix_rule.find("$1"));
1238
- NormalizeDigitsOnly(&candidate_national_prefix_rule);
1239
- }
1240
- if (candidate_national_prefix_rule.empty()) {
1241
- // National prefix not used when formatting this number.
1242
- Format(number, NATIONAL, formatted_number);
1243
- break;
1244
- }
1245
- // Otherwise, we need to remove the national prefix from our output.
1246
- RepeatedPtrField<NumberFormat> number_formats;
1247
- NumberFormat* number_format = number_formats.Add();
1248
- number_format->MergeFrom(*format_rule);
1249
- number_format->clear_national_prefix_formatting_rule();
1250
- FormatByPattern(number, NATIONAL, number_formats, formatted_number);
1251
- break;
1252
- }
1253
- // If no digit is inserted/removed/modified as a result of our formatting, we
1254
- // return the formatted phone number; otherwise we return the raw input the
1255
- // user entered.
1256
- if (!formatted_number->empty() && !number.raw_input().empty()) {
1257
- string normalized_formatted_number(*formatted_number);
1258
- NormalizeDiallableCharsOnly(&normalized_formatted_number);
1259
- string normalized_raw_input(number.raw_input());
1260
- NormalizeDiallableCharsOnly(&normalized_raw_input);
1261
- if (normalized_formatted_number != normalized_raw_input) {
1262
- formatted_number->assign(number.raw_input());
1263
- }
1264
- }
1265
- }
1266
-
1267
- // Check if raw_input, which is assumed to be in the national format, has a
1268
- // national prefix. The national prefix is assumed to be in digits-only form.
1269
- bool PhoneNumberUtil::RawInputContainsNationalPrefix(
1270
- const string& raw_input,
1271
- const string& national_prefix,
1272
- const string& region_code) const {
1273
- string normalized_national_number(raw_input);
1274
- NormalizeDigitsOnly(&normalized_national_number);
1275
- if (HasPrefixString(normalized_national_number, national_prefix)) {
1276
- // Some Japanese numbers (e.g. 00777123) might be mistaken to contain
1277
- // the national prefix when written without it (e.g. 0777123) if we just
1278
- // do prefix matching. To tackle that, we check the validity of the
1279
- // number if the assumed national prefix is removed (777123 won't be
1280
- // valid in Japan).
1281
- PhoneNumber number_without_national_prefix;
1282
- if (Parse(normalized_national_number.substr(national_prefix.length()),
1283
- region_code, &number_without_national_prefix)
1284
- == NO_PARSING_ERROR) {
1285
- return IsValidNumber(number_without_national_prefix);
1286
- }
1287
- }
1288
- return false;
1289
- }
1290
-
1291
- bool PhoneNumberUtil::HasUnexpectedItalianLeadingZero(
1292
- const PhoneNumber& number) const {
1293
- return number.has_italian_leading_zero() &&
1294
- !IsLeadingZeroPossible(number.country_code());
1295
- }
1296
-
1297
- bool PhoneNumberUtil::HasFormattingPatternForNumber(
1298
- const PhoneNumber& number) const {
1299
- int country_calling_code = number.country_code();
1300
- string region_code;
1301
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
1302
- const PhoneMetadata* metadata =
1303
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
1304
- if (!metadata) {
1305
- return false;
1306
- }
1307
- string national_number;
1308
- GetNationalSignificantNumber(number, &national_number);
1309
- const NumberFormat* format_rule =
1310
- ChooseFormattingPatternForNumber(metadata->number_format(),
1311
- national_number);
1312
- return format_rule;
1313
- }
1314
-
1315
- void PhoneNumberUtil::FormatOutOfCountryKeepingAlphaChars(
1316
- const PhoneNumber& number,
1317
- const string& calling_from,
1318
- string* formatted_number) const {
1319
- // If there is no raw input, then we can't keep alpha characters because there
1320
- // aren't any. In this case, we return FormatOutOfCountryCallingNumber.
1321
- if (number.raw_input().empty()) {
1322
- FormatOutOfCountryCallingNumber(number, calling_from, formatted_number);
1323
- return;
1324
- }
1325
- int country_code = number.country_code();
1326
- if (!HasValidCountryCallingCode(country_code)) {
1327
- formatted_number->assign(number.raw_input());
1328
- return;
1329
- }
1330
- // Strip any prefix such as country calling code, IDD, that was present. We do
1331
- // this by comparing the number in raw_input with the parsed number.
1332
- string raw_input_copy(number.raw_input());
1333
- // Normalize punctuation. We retain number grouping symbols such as " " only.
1334
- NormalizeHelper(reg_exps_->all_plus_number_grouping_symbols_, true,
1335
- &raw_input_copy);
1336
- // Now we trim everything before the first three digits in the parsed number.
1337
- // We choose three because all valid alpha numbers have 3 digits at the start
1338
- // - if it does not, then we don't trim anything at all. Similarly, if the
1339
- // national number was less than three digits, we don't trim anything at all.
1340
- string national_number;
1341
- GetNationalSignificantNumber(number, &national_number);
1342
- if (national_number.length() > 3) {
1343
- size_t first_national_number_digit =
1344
- raw_input_copy.find(national_number.substr(0, 3));
1345
- if (first_national_number_digit != string::npos) {
1346
- raw_input_copy = raw_input_copy.substr(first_national_number_digit);
1347
- }
1348
- }
1349
- const PhoneMetadata* metadata = GetMetadataForRegion(calling_from);
1350
- if (country_code == kNanpaCountryCode) {
1351
- if (IsNANPACountry(calling_from)) {
1352
- StrAppend(formatted_number, country_code, " ", raw_input_copy);
1353
- return;
1354
- }
1355
- } else if (metadata &&
1356
- country_code == GetCountryCodeForValidRegion(calling_from)) {
1357
- const NumberFormat* formatting_pattern =
1358
- ChooseFormattingPatternForNumber(metadata->number_format(),
1359
- national_number);
1360
- if (!formatting_pattern) {
1361
- // If no pattern above is matched, we format the original input.
1362
- formatted_number->assign(raw_input_copy);
1363
- return;
1364
- }
1365
- NumberFormat new_format;
1366
- new_format.MergeFrom(*formatting_pattern);
1367
- // The first group is the first group of digits that the user wrote
1368
- // together.
1369
- new_format.set_pattern("(\\d+)(.*)");
1370
- // Here we just concatenate them back together after the national prefix
1371
- // has been fixed.
1372
- new_format.set_format("$1$2");
1373
- // Now we format using this pattern instead of the default pattern, but
1374
- // with the national prefix prefixed if necessary.
1375
- // This will not work in the cases where the pattern (and not the
1376
- // leading digits) decide whether a national prefix needs to be used, since
1377
- // we have overridden the pattern to match anything, but that is not the
1378
- // case in the metadata to date.
1379
- FormatNsnUsingPattern(raw_input_copy, new_format, NATIONAL,
1380
- formatted_number);
1381
- return;
1382
- }
1383
-
1384
- string international_prefix_for_formatting;
1385
- // If an unsupported region-calling-from is entered, or a country with
1386
- // multiple international prefixes, the international format of the number is
1387
- // returned, unless there is a preferred international prefix.
1388
- if (metadata) {
1389
- const string& international_prefix = metadata->international_prefix();
1390
- international_prefix_for_formatting =
1391
- reg_exps_->unique_international_prefix_->FullMatch(international_prefix)
1392
- ? international_prefix
1393
- : metadata->preferred_international_prefix();
1394
- }
1395
- if (!international_prefix_for_formatting.empty()) {
1396
- StrAppend(formatted_number, international_prefix_for_formatting, " ",
1397
- country_code, " ", raw_input_copy);
1398
- } else {
1399
- // Invalid region entered as country-calling-from (so no metadata was found
1400
- // for it) or the region chosen has multiple international dialling
1401
- // prefixes.
1402
- if (!IsValidRegionCode(calling_from)) {
1403
- VLOG(1) << "Trying to format number from invalid region " << calling_from
1404
- << ". International formatting applied.";
1405
- }
1406
- formatted_number->assign(raw_input_copy);
1407
- PrefixNumberWithCountryCallingCode(country_code, INTERNATIONAL,
1408
- formatted_number);
1409
- }
1410
- }
1411
-
1412
- const NumberFormat* PhoneNumberUtil::ChooseFormattingPatternForNumber(
1413
- const RepeatedPtrField<NumberFormat>& available_formats,
1414
- const string& national_number) const {
1415
- for (RepeatedPtrField<NumberFormat>::const_iterator
1416
- it = available_formats.begin(); it != available_formats.end(); ++it) {
1417
- int size = it->leading_digits_pattern_size();
1418
- if (size > 0) {
1419
- const scoped_ptr<RegExpInput> number_copy(
1420
- reg_exps_->regexp_factory_->CreateInput(national_number));
1421
- // We always use the last leading_digits_pattern, as it is the most
1422
- // detailed.
1423
- if (!reg_exps_->regexp_cache_->GetRegExp(
1424
- it->leading_digits_pattern(size - 1)).Consume(
1425
- number_copy.get())) {
1426
- continue;
1427
- }
1428
- }
1429
- const RegExp& pattern_to_match(
1430
- reg_exps_->regexp_cache_->GetRegExp(it->pattern()));
1431
- if (pattern_to_match.FullMatch(national_number)) {
1432
- return &(*it);
1433
- }
1434
- }
1435
- return NULL;
1436
- }
1437
-
1438
- // Note that carrier_code is optional - if an empty string, no carrier code
1439
- // replacement will take place.
1440
- void PhoneNumberUtil::FormatNsnUsingPatternWithCarrier(
1441
- const string& national_number,
1442
- const NumberFormat& formatting_pattern,
1443
- PhoneNumberUtil::PhoneNumberFormat number_format,
1444
- const string& carrier_code,
1445
- string* formatted_number) const {
1446
- DCHECK(formatted_number);
1447
- string number_format_rule(formatting_pattern.format());
1448
- if (number_format == PhoneNumberUtil::NATIONAL &&
1449
- carrier_code.length() > 0 &&
1450
- formatting_pattern.domestic_carrier_code_formatting_rule().length() > 0) {
1451
- // Replace the $CC in the formatting rule with the desired carrier code.
1452
- string carrier_code_formatting_rule =
1453
- formatting_pattern.domestic_carrier_code_formatting_rule();
1454
- reg_exps_->carrier_code_pattern_->Replace(&carrier_code_formatting_rule,
1455
- carrier_code);
1456
- reg_exps_->first_group_capturing_pattern_->
1457
- Replace(&number_format_rule, carrier_code_formatting_rule);
1458
- } else {
1459
- // Use the national prefix formatting rule instead.
1460
- string national_prefix_formatting_rule =
1461
- formatting_pattern.national_prefix_formatting_rule();
1462
- if (number_format == PhoneNumberUtil::NATIONAL &&
1463
- national_prefix_formatting_rule.length() > 0) {
1464
- // Apply the national_prefix_formatting_rule as the formatting_pattern
1465
- // contains only information on how the national significant number
1466
- // should be formatted at this point.
1467
- reg_exps_->first_group_capturing_pattern_->Replace(
1468
- &number_format_rule, national_prefix_formatting_rule);
1469
- }
1470
- }
1471
- formatted_number->assign(national_number);
1472
-
1473
- const RegExp& pattern_to_match(
1474
- reg_exps_->regexp_cache_->GetRegExp(formatting_pattern.pattern()));
1475
- pattern_to_match.GlobalReplace(formatted_number, number_format_rule);
1476
-
1477
- if (number_format == RFC3966) {
1478
- // First consume any leading punctuation, if any was present.
1479
- const scoped_ptr<RegExpInput> number(
1480
- reg_exps_->regexp_factory_->CreateInput(*formatted_number));
1481
- if (reg_exps_->separator_pattern_->Consume(number.get())) {
1482
- formatted_number->assign(number->ToString());
1483
- }
1484
- // Then replace all separators with a "-".
1485
- reg_exps_->separator_pattern_->GlobalReplace(formatted_number, "-");
1486
- }
1487
- }
1488
-
1489
- // Simple wrapper of FormatNsnUsingPatternWithCarrier for the common case of
1490
- // no carrier code.
1491
- void PhoneNumberUtil::FormatNsnUsingPattern(
1492
- const string& national_number,
1493
- const NumberFormat& formatting_pattern,
1494
- PhoneNumberUtil::PhoneNumberFormat number_format,
1495
- string* formatted_number) const {
1496
- DCHECK(formatted_number);
1497
- FormatNsnUsingPatternWithCarrier(national_number, formatting_pattern,
1498
- number_format, "", formatted_number);
1499
- }
1500
-
1501
- void PhoneNumberUtil::FormatNsn(const string& number,
1502
- const PhoneMetadata& metadata,
1503
- PhoneNumberFormat number_format,
1504
- string* formatted_number) const {
1505
- DCHECK(formatted_number);
1506
- FormatNsnWithCarrier(number, metadata, number_format, "", formatted_number);
1507
- }
1508
-
1509
- // Note in some regions, the national number can be written in two completely
1510
- // different ways depending on whether it forms part of the NATIONAL format or
1511
- // INTERNATIONAL format. The number_format parameter here is used to specify
1512
- // which format to use for those cases. If a carrier_code is specified, this
1513
- // will be inserted into the formatted string to replace $CC.
1514
- void PhoneNumberUtil::FormatNsnWithCarrier(const string& number,
1515
- const PhoneMetadata& metadata,
1516
- PhoneNumberFormat number_format,
1517
- const string& carrier_code,
1518
- string* formatted_number) const {
1519
- DCHECK(formatted_number);
1520
- // When the intl_number_formats exists, we use that to format national number
1521
- // for the INTERNATIONAL format instead of using the number_formats.
1522
- const RepeatedPtrField<NumberFormat> available_formats =
1523
- (metadata.intl_number_format_size() == 0 || number_format == NATIONAL)
1524
- ? metadata.number_format()
1525
- : metadata.intl_number_format();
1526
- const NumberFormat* formatting_pattern =
1527
- ChooseFormattingPatternForNumber(available_formats, number);
1528
- if (!formatting_pattern) {
1529
- formatted_number->assign(number);
1530
- } else {
1531
- FormatNsnUsingPatternWithCarrier(number, *formatting_pattern, number_format,
1532
- carrier_code, formatted_number);
1533
- }
1534
- }
1535
-
1536
- // Appends the formatted extension of a phone number, if the phone number had an
1537
- // extension specified.
1538
- void PhoneNumberUtil::MaybeAppendFormattedExtension(
1539
- const PhoneNumber& number,
1540
- const PhoneMetadata& metadata,
1541
- PhoneNumberFormat number_format,
1542
- string* formatted_number) const {
1543
- DCHECK(formatted_number);
1544
- if (number.has_extension() && number.extension().length() > 0) {
1545
- if (number_format == RFC3966) {
1546
- StrAppend(formatted_number, kRfc3966ExtnPrefix, number.extension());
1547
- } else {
1548
- if (metadata.has_preferred_extn_prefix()) {
1549
- StrAppend(formatted_number, metadata.preferred_extn_prefix(),
1550
- number.extension());
1551
- } else {
1552
- StrAppend(formatted_number, kDefaultExtnPrefix, number.extension());
1553
- }
1554
- }
1555
- }
1556
- }
1557
-
1558
- bool PhoneNumberUtil::IsNANPACountry(const string& region_code) const {
1559
- return nanpa_regions_->find(region_code) != nanpa_regions_->end();
1560
- }
1561
-
1562
- // Returns the region codes that matches the specific country calling code. In
1563
- // the case of no region code being found, region_codes will be left empty.
1564
- void PhoneNumberUtil::GetRegionCodesForCountryCallingCode(
1565
- int country_calling_code,
1566
- list<string>* region_codes) const {
1567
- DCHECK(region_codes);
1568
- // Create a IntRegionsPair with the country_code passed in, and use it to
1569
- // locate the pair with the same country_code in the sorted vector.
1570
- IntRegionsPair target_pair;
1571
- target_pair.first = country_calling_code;
1572
- typedef vector<IntRegionsPair>::const_iterator ConstIterator;
1573
- pair<ConstIterator, ConstIterator> range = equal_range(
1574
- country_calling_code_to_region_code_map_->begin(),
1575
- country_calling_code_to_region_code_map_->end(),
1576
- target_pair, OrderByFirst());
1577
- if (range.first != range.second) {
1578
- region_codes->insert(region_codes->begin(),
1579
- range.first->second->begin(),
1580
- range.first->second->end());
1581
- }
1582
- }
1583
-
1584
- // Returns the region code that matches the specific country calling code. In
1585
- // the case of no region code being found, the unknown region code will be
1586
- // returned.
1587
- void PhoneNumberUtil::GetRegionCodeForCountryCode(
1588
- int country_calling_code,
1589
- string* region_code) const {
1590
- DCHECK(region_code);
1591
- list<string> region_codes;
1592
-
1593
- GetRegionCodesForCountryCallingCode(country_calling_code, &region_codes);
1594
- *region_code = (region_codes.size() > 0) ?
1595
- region_codes.front() : RegionCode::GetUnknown();
1596
- }
1597
-
1598
- void PhoneNumberUtil::GetRegionCodeForNumber(const PhoneNumber& number,
1599
- string* region_code) const {
1600
- DCHECK(region_code);
1601
- int country_calling_code = number.country_code();
1602
- list<string> region_codes;
1603
- GetRegionCodesForCountryCallingCode(country_calling_code, &region_codes);
1604
- if (region_codes.size() == 0) {
1605
- string number_string;
1606
- GetNationalSignificantNumber(number, &number_string);
1607
- VLOG(1) << "Missing/invalid country calling code ("
1608
- << country_calling_code
1609
- << ") for number " << number_string;
1610
- *region_code = RegionCode::GetUnknown();
1611
- return;
1612
- }
1613
- if (region_codes.size() == 1) {
1614
- *region_code = region_codes.front();
1615
- } else {
1616
- GetRegionCodeForNumberFromRegionList(number, region_codes, region_code);
1617
- }
1618
- }
1619
-
1620
- void PhoneNumberUtil::GetRegionCodeForNumberFromRegionList(
1621
- const PhoneNumber& number, const list<string>& region_codes,
1622
- string* region_code) const {
1623
- DCHECK(region_code);
1624
- string national_number;
1625
- GetNationalSignificantNumber(number, &national_number);
1626
- for (list<string>::const_iterator it = region_codes.begin();
1627
- it != region_codes.end(); ++it) {
1628
- // Metadata cannot be NULL because the region codes come from the country
1629
- // calling code map.
1630
- const PhoneMetadata* metadata = GetMetadataForRegion(*it);
1631
- if (metadata->has_leading_digits()) {
1632
- const scoped_ptr<RegExpInput> number(
1633
- reg_exps_->regexp_factory_->CreateInput(national_number));
1634
- if (reg_exps_->regexp_cache_->
1635
- GetRegExp(metadata->leading_digits()).Consume(number.get())) {
1636
- *region_code = *it;
1637
- return;
1638
- }
1639
- } else if (GetNumberTypeHelper(national_number, *metadata) != UNKNOWN) {
1640
- *region_code = *it;
1641
- return;
1642
- }
1643
- }
1644
- *region_code = RegionCode::GetUnknown();
1645
- }
1646
-
1647
- int PhoneNumberUtil::GetCountryCodeForRegion(const string& region_code) const {
1648
- if (!IsValidRegionCode(region_code)) {
1649
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1650
- << ") provided.";
1651
- return 0;
1652
- }
1653
- return GetCountryCodeForValidRegion(region_code);
1654
- }
1655
-
1656
- int PhoneNumberUtil::GetCountryCodeForValidRegion(
1657
- const string& region_code) const {
1658
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
1659
- return metadata->country_code();
1660
- }
1661
-
1662
- // Gets a valid fixed-line number for the specified region_code. Returns false
1663
- // if the region was unknown or 001 (representing non-geographical regions), or
1664
- // if no number exists.
1665
- bool PhoneNumberUtil::GetExampleNumber(const string& region_code,
1666
- PhoneNumber* number) const {
1667
- DCHECK(number);
1668
- return GetExampleNumberForType(region_code, FIXED_LINE, number);
1669
- }
1670
-
1671
- bool PhoneNumberUtil::GetInvalidExampleNumber(const string& region_code,
1672
- PhoneNumber* number) const {
1673
- DCHECK(number);
1674
- if (!IsValidRegionCode(region_code)) {
1675
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1676
- << ") provided.";
1677
- return false;
1678
- }
1679
- // We start off with a valid fixed-line number since every country supports
1680
- // this. Alternatively we could start with a different number type, since
1681
- // fixed-line numbers typically have a wide breadth of valid number lengths
1682
- // and we may have to make it very short before we get an invalid number.
1683
- const PhoneMetadata* region_metadata = GetMetadataForRegion(region_code);
1684
- const PhoneNumberDesc* desc =
1685
- GetNumberDescByType(*region_metadata, FIXED_LINE);
1686
- if (!desc->has_example_number()) {
1687
- // This shouldn't happen - we have a test for this.
1688
- return false;
1689
- }
1690
- const string& example_number = desc->example_number();
1691
- // Try and make the number invalid. We do this by changing the length. We try
1692
- // reducing the length of the number, since currently no region has a number
1693
- // that is the same length as kMinLengthForNsn. This is probably quicker than
1694
- // making the number longer, which is another alternative. We could also use
1695
- // the possible number pattern to extract the possible lengths of the number
1696
- // to make this faster, but this method is only for unit-testing so simplicity
1697
- // is preferred to performance.
1698
- // We don't want to return a number that can't be parsed, so we check the
1699
- // number is long enough. We try all possible lengths because phone number
1700
- // plans often have overlapping prefixes so the number 123456 might be valid
1701
- // as a fixed-line number, and 12345 as a mobile number. It would be faster to
1702
- // loop in a different order, but we prefer numbers that look closer to real
1703
- // numbers (and it gives us a variety of different lengths for the resulting
1704
- // phone numbers - otherwise they would all be kMinLengthForNsn digits long.)
1705
- for (size_t phone_number_length = example_number.length() - 1;
1706
- phone_number_length >= kMinLengthForNsn;
1707
- phone_number_length--) {
1708
- string number_to_try = example_number.substr(0, phone_number_length);
1709
- PhoneNumber possibly_valid_number;
1710
- Parse(number_to_try, region_code, &possibly_valid_number);
1711
- // We don't check the return value since we have already checked the
1712
- // length, we know example numbers have only valid digits, and we know the
1713
- // region code is fine.
1714
- if (!IsValidNumber(possibly_valid_number)) {
1715
- number->MergeFrom(possibly_valid_number);
1716
- return true;
1717
- }
1718
- }
1719
- // We have a test to check that this doesn't happen for any of our supported
1720
- // regions.
1721
- return false;
1722
- }
1723
-
1724
- // Gets a valid number for the specified region_code and type. Returns false if
1725
- // the country was unknown or 001 (representing non-geographical regions), or if
1726
- // no number exists.
1727
- bool PhoneNumberUtil::GetExampleNumberForType(
1728
- const string& region_code,
1729
- PhoneNumberUtil::PhoneNumberType type,
1730
- PhoneNumber* number) const {
1731
- DCHECK(number);
1732
- if (!IsValidRegionCode(region_code)) {
1733
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1734
- << ") provided.";
1735
- return false;
1736
- }
1737
- const PhoneMetadata* region_metadata = GetMetadataForRegion(region_code);
1738
- const PhoneNumberDesc* desc = GetNumberDescByType(*region_metadata, type);
1739
- if (desc && desc->has_example_number()) {
1740
- ErrorType success = Parse(desc->example_number(), region_code, number);
1741
- if (success == NO_PARSING_ERROR) {
1742
- return true;
1743
- } else {
1744
- LOG(ERROR) << "Error parsing example number ("
1745
- << static_cast<int>(success) << ")";
1746
- }
1747
- }
1748
- return false;
1749
- }
1750
-
1751
- bool PhoneNumberUtil::GetExampleNumberForType(
1752
- PhoneNumberUtil::PhoneNumberType type,
1753
- PhoneNumber* number) const {
1754
- DCHECK(number);
1755
- set<string> regions;
1756
- GetSupportedRegions(&regions);
1757
- for (set<string>::const_iterator it = regions.begin();
1758
- it != regions.end(); ++it) {
1759
- if (GetExampleNumberForType(*it, type, number)) {
1760
- return true;
1761
- }
1762
- }
1763
- // If there wasn't an example number for a region, try the non-geographical
1764
- // entities.
1765
- set<int> global_network_calling_codes;
1766
- GetSupportedGlobalNetworkCallingCodes(&global_network_calling_codes);
1767
- for (set<int>::const_iterator it = global_network_calling_codes.begin();
1768
- it != global_network_calling_codes.end(); ++it) {
1769
- int country_calling_code = *it;
1770
- const PhoneMetadata* metadata =
1771
- GetMetadataForNonGeographicalRegion(country_calling_code);
1772
- const PhoneNumberDesc& desc = metadata->general_desc();
1773
- if (desc.has_example_number()) {
1774
- ErrorType success = Parse(StrCat(kPlusSign,
1775
- country_calling_code,
1776
- desc.example_number()),
1777
- RegionCode::GetUnknown(), number);
1778
- if (success == NO_PARSING_ERROR) {
1779
- return true;
1780
- } else {
1781
- LOG(ERROR) << "Error parsing example number ("
1782
- << static_cast<int>(success) << ")";
1783
- }
1784
- }
1785
- }
1786
- // There are no example numbers of this type for any country in the library.
1787
- return false;
1788
- }
1789
-
1790
- bool PhoneNumberUtil::GetExampleNumberForNonGeoEntity(
1791
- int country_calling_code, PhoneNumber* number) const {
1792
- DCHECK(number);
1793
- const PhoneMetadata* metadata =
1794
- GetMetadataForNonGeographicalRegion(country_calling_code);
1795
- if (metadata) {
1796
- const PhoneNumberDesc& desc = metadata->general_desc();
1797
- if (desc.has_example_number()) {
1798
- ErrorType success = Parse(StrCat(kPlusSign,
1799
- SimpleItoa(country_calling_code),
1800
- desc.example_number()),
1801
- RegionCode::GetUnknown(), number);
1802
- if (success == NO_PARSING_ERROR) {
1803
- return true;
1804
- } else {
1805
- LOG(ERROR) << "Error parsing example number ("
1806
- << static_cast<int>(success) << ")";
1807
- }
1808
- }
1809
- } else {
1810
- LOG(WARNING) << "Invalid or unknown country calling code provided: "
1811
- << country_calling_code;
1812
- }
1813
- return false;
1814
- }
1815
-
1816
- PhoneNumberUtil::ErrorType PhoneNumberUtil::Parse(const string& number_to_parse,
1817
- const string& default_region,
1818
- PhoneNumber* number) const {
1819
- DCHECK(number);
1820
- return ParseHelper(number_to_parse, default_region, false, true, number);
1821
- }
1822
-
1823
- PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseAndKeepRawInput(
1824
- const string& number_to_parse,
1825
- const string& default_region,
1826
- PhoneNumber* number) const {
1827
- DCHECK(number);
1828
- return ParseHelper(number_to_parse, default_region, true, true, number);
1829
- }
1830
-
1831
- // Checks to see that the region code used is valid, or if it is not valid, that
1832
- // the number to parse starts with a + symbol so that we can attempt to infer
1833
- // the country from the number. Returns false if it cannot use the region
1834
- // provided and the region cannot be inferred.
1835
- bool PhoneNumberUtil::CheckRegionForParsing(
1836
- const string& number_to_parse,
1837
- const string& default_region) const {
1838
- if (!IsValidRegionCode(default_region) && !number_to_parse.empty()) {
1839
- const scoped_ptr<RegExpInput> number(
1840
- reg_exps_->regexp_factory_->CreateInput(number_to_parse));
1841
- if (!reg_exps_->plus_chars_pattern_->Consume(number.get())) {
1842
- return false;
1843
- }
1844
- }
1845
- return true;
1846
- }
1847
-
1848
- // Converts number_to_parse to a form that we can parse and write it to
1849
- // national_number if it is written in RFC3966; otherwise extract a possible
1850
- // number out of it and write to national_number.
1851
- void PhoneNumberUtil::BuildNationalNumberForParsing(
1852
- const string& number_to_parse, string* national_number) const {
1853
- size_t index_of_phone_context = number_to_parse.find(kRfc3966PhoneContext);
1854
- if (index_of_phone_context != string::npos) {
1855
- int phone_context_start =
1856
- index_of_phone_context + strlen(kRfc3966PhoneContext);
1857
- // If the phone context contains a phone number prefix, we need to capture
1858
- // it, whereas domains will be ignored.
1859
- if (number_to_parse.at(phone_context_start) == kPlusSign[0]) {
1860
- // Additional parameters might follow the phone context. If so, we will
1861
- // remove them here because the parameters after phone context are not
1862
- // important for parsing the phone number.
1863
- size_t phone_context_end = number_to_parse.find(';', phone_context_start);
1864
- if (phone_context_end != string::npos) {
1865
- StrAppend(
1866
- national_number, number_to_parse.substr(
1867
- phone_context_start, phone_context_end - phone_context_start));
1868
- } else {
1869
- StrAppend(national_number, number_to_parse.substr(phone_context_start));
1870
- }
1871
- }
1872
-
1873
- // Now append everything between the "tel:" prefix and the phone-context.
1874
- // This should include the national number, an optional extension or
1875
- // isdn-subaddress component. Note we also handle the case when "tel:" is
1876
- // missing, as we have seen in some of the phone number inputs. In that
1877
- // case, we append everything from the beginning.
1878
- size_t index_of_rfc_prefix = number_to_parse.find(kRfc3966Prefix);
1879
- int index_of_national_number = (index_of_rfc_prefix != string::npos) ?
1880
- index_of_rfc_prefix + strlen(kRfc3966Prefix) : 0;
1881
- StrAppend(
1882
- national_number,
1883
- number_to_parse.substr(
1884
- index_of_national_number,
1885
- index_of_phone_context - index_of_national_number));
1886
- } else {
1887
- // Extract a possible number from the string passed in (this strips leading
1888
- // characters that could not be the start of a phone number.)
1889
- ExtractPossibleNumber(number_to_parse, national_number);
1890
- }
1891
-
1892
- // Delete the isdn-subaddress and everything after it if it is present. Note
1893
- // extension won't appear at the same time with isdn-subaddress according to
1894
- // paragraph 5.3 of the RFC3966 spec.
1895
- size_t index_of_isdn = national_number->find(kRfc3966IsdnSubaddress);
1896
- if (index_of_isdn != string::npos) {
1897
- national_number->erase(index_of_isdn);
1898
- }
1899
- // If both phone context and isdn-subaddress are absent but other parameters
1900
- // are present, the parameters are left in nationalNumber. This is because
1901
- // we are concerned about deleting content from a potential number string
1902
- // when there is no strong evidence that the number is actually written in
1903
- // RFC3966.
1904
- }
1905
-
1906
- PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseHelper(
1907
- const string& number_to_parse,
1908
- const string& default_region,
1909
- bool keep_raw_input,
1910
- bool check_region,
1911
- PhoneNumber* phone_number) const {
1912
- DCHECK(phone_number);
1913
-
1914
- string national_number;
1915
- BuildNationalNumberForParsing(number_to_parse, &national_number);
1916
-
1917
- if (!IsViablePhoneNumber(national_number)) {
1918
- VLOG(2) << "The string supplied did not seem to be a phone number.";
1919
- return NOT_A_NUMBER;
1920
- }
1921
-
1922
- if (check_region &&
1923
- !CheckRegionForParsing(national_number, default_region)) {
1924
- VLOG(1) << "Missing or invalid default country.";
1925
- return INVALID_COUNTRY_CODE_ERROR;
1926
- }
1927
- PhoneNumber temp_number;
1928
- if (keep_raw_input) {
1929
- temp_number.set_raw_input(number_to_parse);
1930
- }
1931
- // Attempt to parse extension first, since it doesn't require country-specific
1932
- // data and we want to have the non-normalised number here.
1933
- string extension;
1934
- MaybeStripExtension(&national_number, &extension);
1935
- if (!extension.empty()) {
1936
- temp_number.set_extension(extension);
1937
- }
1938
- const PhoneMetadata* country_metadata = GetMetadataForRegion(default_region);
1939
- // Check to see if the number is given in international format so we know
1940
- // whether this number is from the default country or not.
1941
- string normalized_national_number(national_number);
1942
- ErrorType country_code_error =
1943
- MaybeExtractCountryCode(country_metadata, keep_raw_input,
1944
- &normalized_national_number, &temp_number);
1945
- if (country_code_error != NO_PARSING_ERROR) {
1946
- const scoped_ptr<RegExpInput> number_string_piece(
1947
- reg_exps_->regexp_factory_->CreateInput(national_number));
1948
- if ((country_code_error == INVALID_COUNTRY_CODE_ERROR) &&
1949
- (reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get()))) {
1950
- normalized_national_number.assign(number_string_piece->ToString());
1951
- // Strip the plus-char, and try again.
1952
- MaybeExtractCountryCode(country_metadata,
1953
- keep_raw_input,
1954
- &normalized_national_number,
1955
- &temp_number);
1956
- if (temp_number.country_code() == 0) {
1957
- return INVALID_COUNTRY_CODE_ERROR;
1958
- }
1959
- } else {
1960
- return country_code_error;
1961
- }
1962
- }
1963
- int country_code = temp_number.country_code();
1964
- if (country_code != 0) {
1965
- string phone_number_region;
1966
- GetRegionCodeForCountryCode(country_code, &phone_number_region);
1967
- if (phone_number_region != default_region) {
1968
- country_metadata =
1969
- GetMetadataForRegionOrCallingCode(country_code, phone_number_region);
1970
- }
1971
- } else if (country_metadata) {
1972
- // If no extracted country calling code, use the region supplied instead.
1973
- // Note that the national number was already normalized by
1974
- // MaybeExtractCountryCode.
1975
- country_code = country_metadata->country_code();
1976
- }
1977
- if (normalized_national_number.length() < kMinLengthForNsn) {
1978
- VLOG(2) << "The string supplied is too short to be a phone number.";
1979
- return TOO_SHORT_NSN;
1980
- }
1981
- if (country_metadata) {
1982
- string carrier_code;
1983
- string potential_national_number(normalized_national_number);
1984
- MaybeStripNationalPrefixAndCarrierCode(*country_metadata,
1985
- &potential_national_number,
1986
- &carrier_code);
1987
- // We require that the NSN remaining after stripping the national prefix
1988
- // and carrier code be of a possible length for the region. Otherwise, we
1989
- // don't do the stripping, since the original number could be a valid short
1990
- // number.
1991
- if (!IsShorterThanPossibleNormalNumber(country_metadata,
1992
- potential_national_number)) {
1993
- normalized_national_number.assign(potential_national_number);
1994
- if (keep_raw_input) {
1995
- temp_number.set_preferred_domestic_carrier_code(carrier_code);
1996
- }
1997
- }
1998
- }
1999
- size_t normalized_national_number_length =
2000
- normalized_national_number.length();
2001
- if (normalized_national_number_length < kMinLengthForNsn) {
2002
- VLOG(2) << "The string supplied is too short to be a phone number.";
2003
- return TOO_SHORT_NSN;
2004
- }
2005
- if (normalized_national_number_length > kMaxLengthForNsn) {
2006
- VLOG(2) << "The string supplied is too long to be a phone number.";
2007
- return TOO_LONG_NSN;
2008
- }
2009
- temp_number.set_country_code(country_code);
2010
- SetItalianLeadingZerosForPhoneNumber(normalized_national_number,
2011
- &temp_number);
2012
- uint64 number_as_int;
2013
- safe_strtou64(normalized_national_number, &number_as_int);
2014
- temp_number.set_national_number(number_as_int);
2015
- phone_number->Swap(&temp_number);
2016
- return NO_PARSING_ERROR;
2017
- }
2018
-
2019
- // Attempts to extract a possible number from the string passed in. This
2020
- // currently strips all leading characters that could not be used to start a
2021
- // phone number. Characters that can be used to start a phone number are
2022
- // defined in the valid_start_char_pattern. If none of these characters are
2023
- // found in the number passed in, an empty string is returned. This function
2024
- // also attempts to strip off any alternative extensions or endings if two or
2025
- // more are present, such as in the case of: (530) 583-6985 x302/x2303. The
2026
- // second extension here makes this actually two phone numbers, (530) 583-6985
2027
- // x302 and (530) 583-6985 x2303. We remove the second extension so that the
2028
- // first number is parsed correctly.
2029
- void PhoneNumberUtil::ExtractPossibleNumber(const string& number,
2030
- string* extracted_number) const {
2031
- DCHECK(extracted_number);
2032
-
2033
- UnicodeText number_as_unicode;
2034
- number_as_unicode.PointToUTF8(number.data(), number.size());
2035
- char current_char[5];
2036
- int len;
2037
- UnicodeText::const_iterator it;
2038
- for (it = number_as_unicode.begin(); it != number_as_unicode.end(); ++it) {
2039
- len = it.get_utf8(current_char);
2040
- current_char[len] = '\0';
2041
- if (reg_exps_->valid_start_char_pattern_->FullMatch(current_char)) {
2042
- break;
2043
- }
2044
- }
2045
-
2046
- if (it == number_as_unicode.end()) {
2047
- // No valid start character was found. extracted_number should be set to
2048
- // empty string.
2049
- extracted_number->assign("");
2050
- return;
2051
- }
2052
-
2053
- extracted_number->assign(
2054
- UnicodeText::UTF8Substring(it, number_as_unicode.end()));
2055
- TrimUnwantedEndChars(extracted_number);
2056
- if (extracted_number->length() == 0) {
2057
- return;
2058
- }
2059
-
2060
- VLOG(3) << "After stripping starting and trailing characters, left with: "
2061
- << *extracted_number;
2062
-
2063
- // Now remove any extra numbers at the end.
2064
- reg_exps_->capture_up_to_second_number_start_pattern_->
2065
- PartialMatch(*extracted_number, extracted_number);
2066
- }
2067
-
2068
- bool PhoneNumberUtil::IsPossibleNumber(const PhoneNumber& number) const {
2069
- return IsPossibleNumberWithReason(number) == IS_POSSIBLE;
2070
- }
2071
-
2072
- bool PhoneNumberUtil::IsPossibleNumberForString(
2073
- const string& number,
2074
- const string& region_dialing_from) const {
2075
- PhoneNumber number_proto;
2076
- if (Parse(number, region_dialing_from, &number_proto) == NO_PARSING_ERROR) {
2077
- return IsPossibleNumber(number_proto);
2078
- } else {
2079
- return false;
2080
- }
2081
- }
2082
-
2083
- PhoneNumberUtil::ValidationResult PhoneNumberUtil::IsPossibleNumberWithReason(
2084
- const PhoneNumber& number) const {
2085
- string national_number;
2086
- GetNationalSignificantNumber(number, &national_number);
2087
- int country_code = number.country_code();
2088
- // Note: For Russian Fed and NANPA numbers, we just use the rules from the
2089
- // default region (US or Russia) since the GetRegionCodeForNumber will not
2090
- // work if the number is possible but not valid. This would need to be
2091
- // revisited if the possible number pattern ever differed between various
2092
- // regions within those plans.
2093
- if (!HasValidCountryCallingCode(country_code)) {
2094
- return INVALID_COUNTRY_CODE;
2095
- }
2096
- string region_code;
2097
- GetRegionCodeForCountryCode(country_code, &region_code);
2098
- // Metadata cannot be NULL because the country calling code is valid.
2099
- const PhoneMetadata* metadata =
2100
- GetMetadataForRegionOrCallingCode(country_code, region_code);
2101
- const RegExp& possible_number_pattern = reg_exps_->regexp_cache_->GetRegExp(
2102
- StrCat("(", metadata->general_desc().possible_number_pattern(), ")"));
2103
- return TestNumberLengthAgainstPattern(possible_number_pattern,
2104
- national_number);
2105
- }
2106
-
2107
- bool PhoneNumberUtil::TruncateTooLongNumber(PhoneNumber* number) const {
2108
- if (IsValidNumber(*number)) {
2109
- return true;
2110
- }
2111
- PhoneNumber number_copy(*number);
2112
- uint64 national_number = number->national_number();
2113
- do {
2114
- national_number /= 10;
2115
- number_copy.set_national_number(national_number);
2116
- if (IsPossibleNumberWithReason(number_copy) == TOO_SHORT ||
2117
- national_number == 0) {
2118
- return false;
2119
- }
2120
- } while (!IsValidNumber(number_copy));
2121
- number->set_national_number(national_number);
2122
- return true;
2123
- }
2124
-
2125
- PhoneNumberUtil::PhoneNumberType PhoneNumberUtil::GetNumberType(
2126
- const PhoneNumber& number) const {
2127
- string region_code;
2128
- GetRegionCodeForNumber(number, &region_code);
2129
- const PhoneMetadata* metadata =
2130
- GetMetadataForRegionOrCallingCode(number.country_code(), region_code);
2131
- if (!metadata) {
2132
- return UNKNOWN;
2133
- }
2134
- string national_significant_number;
2135
- GetNationalSignificantNumber(number, &national_significant_number);
2136
- return GetNumberTypeHelper(national_significant_number, *metadata);
2137
- }
2138
-
2139
- bool PhoneNumberUtil::IsValidNumber(const PhoneNumber& number) const {
2140
- string region_code;
2141
- GetRegionCodeForNumber(number, &region_code);
2142
- return IsValidNumberForRegion(number, region_code);
2143
- }
2144
-
2145
- bool PhoneNumberUtil::IsValidNumberForRegion(const PhoneNumber& number,
2146
- const string& region_code) const {
2147
- int country_code = number.country_code();
2148
- const PhoneMetadata* metadata =
2149
- GetMetadataForRegionOrCallingCode(country_code, region_code);
2150
- if (!metadata ||
2151
- ((kRegionCodeForNonGeoEntity != region_code) &&
2152
- country_code != GetCountryCodeForValidRegion(region_code))) {
2153
- // Either the region code was invalid, or the country calling code for this
2154
- // number does not match that of the region code.
2155
- return false;
2156
- }
2157
- string national_number;
2158
- GetNationalSignificantNumber(number, &national_number);
2159
-
2160
- return GetNumberTypeHelper(national_number, *metadata) != UNKNOWN;
2161
- }
2162
-
2163
- bool PhoneNumberUtil::IsNumberGeographical(
2164
- const PhoneNumber& phone_number) const {
2165
- return IsNumberGeographical(GetNumberType(phone_number),
2166
- phone_number.country_code());
2167
- }
2168
-
2169
- bool PhoneNumberUtil::IsNumberGeographical(
2170
- PhoneNumberType number_type, int country_calling_code) const {
2171
- return number_type == PhoneNumberUtil::FIXED_LINE ||
2172
- number_type == PhoneNumberUtil::FIXED_LINE_OR_MOBILE ||
2173
- (reg_exps_->geo_mobile_countries_.find(country_calling_code)
2174
- != reg_exps_->geo_mobile_countries_.end() &&
2175
- number_type == PhoneNumberUtil::MOBILE);
2176
- }
2177
-
2178
- bool PhoneNumberUtil::IsLeadingZeroPossible(int country_calling_code) const {
2179
- string region_code;
2180
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
2181
- const PhoneMetadata* main_metadata_for_calling_code =
2182
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
2183
- if (!main_metadata_for_calling_code) return false;
2184
- return main_metadata_for_calling_code->leading_zero_possible();
2185
- }
2186
-
2187
- // A helper function to set the values related to leading zeros in a
2188
- // PhoneNumber.
2189
- void PhoneNumberUtil::SetItalianLeadingZerosForPhoneNumber(
2190
- const string& national_number, PhoneNumber* phone_number) const {
2191
- if (national_number.length() > 1 && national_number[0] == '0') {
2192
- phone_number->set_italian_leading_zero(true);
2193
- size_t number_of_leading_zeros = 1;
2194
- // Note that if the national number is all "0"s, the last "0" is not
2195
- // counted as a leading zero.
2196
- while (number_of_leading_zeros < national_number.length() - 1 &&
2197
- national_number[number_of_leading_zeros] == '0') {
2198
- number_of_leading_zeros++;
2199
- }
2200
- if (number_of_leading_zeros != 1) {
2201
- phone_number->set_number_of_leading_zeros(number_of_leading_zeros);
2202
- }
2203
- }
2204
- }
2205
-
2206
- bool PhoneNumberUtil::IsNumberPossibleForDesc(
2207
- const string& national_number, const PhoneNumberDesc& number_desc) const {
2208
- return reg_exps_->regexp_cache_.get()->
2209
- GetRegExp(number_desc.possible_number_pattern())
2210
- .FullMatch(national_number);
2211
- }
2212
-
2213
- bool PhoneNumberUtil::IsNumberMatchingDesc(
2214
- const string& national_number, const PhoneNumberDesc& number_desc) const {
2215
- return IsNumberPossibleForDesc(national_number, number_desc) &&
2216
- reg_exps_->regexp_cache_.get()->
2217
- GetRegExp(number_desc.national_number_pattern())
2218
- .FullMatch(national_number);
2219
- }
2220
-
2221
- PhoneNumberUtil::PhoneNumberType PhoneNumberUtil::GetNumberTypeHelper(
2222
- const string& national_number, const PhoneMetadata& metadata) const {
2223
- if (!IsNumberMatchingDesc(national_number, metadata.general_desc())) {
2224
- VLOG(4) << "Number type unknown - doesn't match general national number"
2225
- << " pattern.";
2226
- return PhoneNumberUtil::UNKNOWN;
2227
- }
2228
- if (IsNumberMatchingDesc(national_number, metadata.premium_rate())) {
2229
- VLOG(4) << "Number is a premium number.";
2230
- return PhoneNumberUtil::PREMIUM_RATE;
2231
- }
2232
- if (IsNumberMatchingDesc(national_number, metadata.toll_free())) {
2233
- VLOG(4) << "Number is a toll-free number.";
2234
- return PhoneNumberUtil::TOLL_FREE;
2235
- }
2236
- if (IsNumberMatchingDesc(national_number, metadata.shared_cost())) {
2237
- VLOG(4) << "Number is a shared cost number.";
2238
- return PhoneNumberUtil::SHARED_COST;
2239
- }
2240
- if (IsNumberMatchingDesc(national_number, metadata.voip())) {
2241
- VLOG(4) << "Number is a VOIP (Voice over IP) number.";
2242
- return PhoneNumberUtil::VOIP;
2243
- }
2244
- if (IsNumberMatchingDesc(national_number, metadata.personal_number())) {
2245
- VLOG(4) << "Number is a personal number.";
2246
- return PhoneNumberUtil::PERSONAL_NUMBER;
2247
- }
2248
- if (IsNumberMatchingDesc(national_number, metadata.pager())) {
2249
- VLOG(4) << "Number is a pager number.";
2250
- return PhoneNumberUtil::PAGER;
2251
- }
2252
- if (IsNumberMatchingDesc(national_number, metadata.uan())) {
2253
- VLOG(4) << "Number is a UAN.";
2254
- return PhoneNumberUtil::UAN;
2255
- }
2256
- if (IsNumberMatchingDesc(national_number, metadata.voicemail())) {
2257
- VLOG(4) << "Number is a voicemail number.";
2258
- return PhoneNumberUtil::VOICEMAIL;
2259
- }
2260
-
2261
- bool is_fixed_line =
2262
- IsNumberMatchingDesc(national_number, metadata.fixed_line());
2263
- if (is_fixed_line) {
2264
- if (metadata.same_mobile_and_fixed_line_pattern()) {
2265
- VLOG(4) << "Fixed-line and mobile patterns equal, number is fixed-line"
2266
- << " or mobile";
2267
- return PhoneNumberUtil::FIXED_LINE_OR_MOBILE;
2268
- } else if (IsNumberMatchingDesc(national_number, metadata.mobile())) {
2269
- VLOG(4) << "Fixed-line and mobile patterns differ, but number is "
2270
- << "still fixed-line or mobile";
2271
- return PhoneNumberUtil::FIXED_LINE_OR_MOBILE;
2272
- }
2273
- VLOG(4) << "Number is a fixed line number.";
2274
- return PhoneNumberUtil::FIXED_LINE;
2275
- }
2276
- // Otherwise, test to see if the number is mobile. Only do this if certain
2277
- // that the patterns for mobile and fixed line aren't the same.
2278
- if (!metadata.same_mobile_and_fixed_line_pattern() &&
2279
- IsNumberMatchingDesc(national_number, metadata.mobile())) {
2280
- VLOG(4) << "Number is a mobile number.";
2281
- return PhoneNumberUtil::MOBILE;
2282
- }
2283
- VLOG(4) << "Number type unknown - doesn\'t match any specific number type"
2284
- << " pattern.";
2285
- return PhoneNumberUtil::UNKNOWN;
2286
- }
2287
-
2288
- void PhoneNumberUtil::GetNationalSignificantNumber(
2289
- const PhoneNumber& number,
2290
- string* national_number) const {
2291
- DCHECK(national_number);
2292
- // If leading zero(s) have been set, we prefix this now. Note this is not a
2293
- // national prefix.
2294
- StrAppend(national_number, number.italian_leading_zero() ?
2295
- string(number.number_of_leading_zeros(), '0') : "");
2296
- StrAppend(national_number, number.national_number());
2297
- }
2298
-
2299
- int PhoneNumberUtil::GetLengthOfGeographicalAreaCode(
2300
- const PhoneNumber& number) const {
2301
- string region_code;
2302
- GetRegionCodeForNumber(number, &region_code);
2303
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
2304
- if (!metadata) {
2305
- return 0;
2306
- }
2307
- // If a country doesn't use a national prefix, and this number doesn't have an
2308
- // Italian leading zero, we assume it is a closed dialling plan with no area
2309
- // codes.
2310
- if (!metadata->has_national_prefix() && !number.italian_leading_zero()) {
2311
- return 0;
2312
- }
2313
-
2314
- PhoneNumberType type = GetNumberType(number);
2315
- int country_calling_code = number.country_code();
2316
- if (type == PhoneNumberUtil::MOBILE &&
2317
- reg_exps_->geo_mobile_countries_without_mobile_area_codes_.find(
2318
- country_calling_code) !=
2319
- reg_exps_->geo_mobile_countries_without_mobile_area_codes_.end()) {
2320
- return 0;
2321
- }
2322
-
2323
- if (!IsNumberGeographical(type, country_calling_code)) {
2324
- return 0;
2325
- }
2326
-
2327
- return GetLengthOfNationalDestinationCode(number);
2328
- }
2329
-
2330
- int PhoneNumberUtil::GetLengthOfNationalDestinationCode(
2331
- const PhoneNumber& number) const {
2332
- PhoneNumber copied_proto(number);
2333
- if (number.has_extension()) {
2334
- // Clear the extension so it's not included when formatting.
2335
- copied_proto.clear_extension();
2336
- }
2337
-
2338
- string formatted_number;
2339
- Format(copied_proto, INTERNATIONAL, &formatted_number);
2340
- const scoped_ptr<RegExpInput> i18n_number(
2341
- reg_exps_->regexp_factory_->CreateInput(formatted_number));
2342
- string digit_group;
2343
- string ndc;
2344
- string third_group;
2345
- for (int i = 0; i < 3; ++i) {
2346
- if (!reg_exps_->capturing_ascii_digits_pattern_->FindAndConsume(
2347
- i18n_number.get(), &digit_group)) {
2348
- // We should find at least three groups.
2349
- return 0;
2350
- }
2351
- if (i == 1) {
2352
- ndc = digit_group;
2353
- } else if (i == 2) {
2354
- third_group = digit_group;
2355
- }
2356
- }
2357
-
2358
- if (GetNumberType(number) == MOBILE) {
2359
- // For example Argentinian mobile numbers, when formatted in the
2360
- // international format, are in the form of +54 9 NDC XXXX.... As a result,
2361
- // we take the length of the third group (NDC) and add the length of the
2362
- // mobile token, which also forms part of the national significant number.
2363
- // This assumes that the mobile token is always formatted separately from
2364
- // the rest of the phone number.
2365
- string mobile_token;
2366
- GetCountryMobileToken(number.country_code(), &mobile_token);
2367
- if (!mobile_token.empty()) {
2368
- return third_group.size() + mobile_token.size();
2369
- }
2370
- }
2371
- return ndc.size();
2372
- }
2373
-
2374
- void PhoneNumberUtil::GetCountryMobileToken(int country_calling_code,
2375
- string* mobile_token) const {
2376
- DCHECK(mobile_token);
2377
- map<int, char>::iterator it = reg_exps_->mobile_token_mappings_.find(
2378
- country_calling_code);
2379
- if (it != reg_exps_->mobile_token_mappings_.end()) {
2380
- *mobile_token = it->second;
2381
- } else {
2382
- mobile_token->assign("");
2383
- }
2384
- }
2385
-
2386
- void PhoneNumberUtil::NormalizeDigitsOnly(string* number) const {
2387
- DCHECK(number);
2388
- const RegExp& non_digits_pattern = reg_exps_->regexp_cache_->GetRegExp(
2389
- StrCat("[^", kDigits, "]"));
2390
- // Delete everything that isn't valid digits.
2391
- non_digits_pattern.GlobalReplace(number, "");
2392
- // Normalize all decimal digits to ASCII digits.
2393
- number->assign(NormalizeUTF8::NormalizeDecimalDigits(*number));
2394
- }
2395
-
2396
- void PhoneNumberUtil::NormalizeDiallableCharsOnly(string* number) const {
2397
- DCHECK(number);
2398
- NormalizeHelper(reg_exps_->diallable_char_mappings_,
2399
- true /* remove non matches */, number);
2400
- }
2401
-
2402
- bool PhoneNumberUtil::IsAlphaNumber(const string& number) const {
2403
- if (!IsViablePhoneNumber(number)) {
2404
- // Number is too short, or doesn't match the basic phone number pattern.
2405
- return false;
2406
- }
2407
- // Copy the number, since we are going to try and strip the extension from it.
2408
- string number_copy(number);
2409
- string extension;
2410
- MaybeStripExtension(&number_copy, &extension);
2411
- return reg_exps_->valid_alpha_phone_pattern_->FullMatch(number_copy);
2412
- }
2413
-
2414
- void PhoneNumberUtil::ConvertAlphaCharactersInNumber(string* number) const {
2415
- DCHECK(number);
2416
- NormalizeHelper(reg_exps_->alpha_phone_mappings_, false, number);
2417
- }
2418
-
2419
- // Normalizes a string of characters representing a phone number. This performs
2420
- // the following conversions:
2421
- // - Punctuation is stripped.
2422
- // For ALPHA/VANITY numbers:
2423
- // - Letters are converted to their numeric representation on a telephone
2424
- // keypad. The keypad used here is the one defined in ITU Recommendation
2425
- // E.161. This is only done if there are 3 or more letters in the number, to
2426
- // lessen the risk that such letters are typos.
2427
- // For other numbers:
2428
- // - Wide-ascii digits are converted to normal ASCII (European) digits.
2429
- // - Arabic-Indic numerals are converted to European numerals.
2430
- // - Spurious alpha characters are stripped.
2431
- void PhoneNumberUtil::Normalize(string* number) const {
2432
- DCHECK(number);
2433
- if (reg_exps_->valid_alpha_phone_pattern_->PartialMatch(*number)) {
2434
- NormalizeHelper(reg_exps_->alpha_phone_mappings_, true, number);
2435
- }
2436
- NormalizeDigitsOnly(number);
2437
- }
2438
-
2439
- // Checks to see if the string of characters could possibly be a phone number at
2440
- // all. At the moment, checks to see that the string begins with at least 3
2441
- // digits, ignoring any punctuation commonly found in phone numbers. This
2442
- // method does not require the number to be normalized in advance - but does
2443
- // assume that leading non-number symbols have been removed, such as by the
2444
- // method ExtractPossibleNumber.
2445
- bool PhoneNumberUtil::IsViablePhoneNumber(const string& number) const {
2446
- if (number.length() < kMinLengthForNsn) {
2447
- VLOG(2) << "Number too short to be viable:" << number;
2448
- return false;
2449
- }
2450
- return reg_exps_->valid_phone_number_pattern_->FullMatch(number);
2451
- }
2452
-
2453
- // Strips the IDD from the start of the number if present. Helper function used
2454
- // by MaybeStripInternationalPrefixAndNormalize.
2455
- bool PhoneNumberUtil::ParsePrefixAsIdd(const RegExp& idd_pattern,
2456
- string* number) const {
2457
- DCHECK(number);
2458
- const scoped_ptr<RegExpInput> number_copy(
2459
- reg_exps_->regexp_factory_->CreateInput(*number));
2460
- // First attempt to strip the idd_pattern at the start, if present. We make a
2461
- // copy so that we can revert to the original string if necessary.
2462
- if (idd_pattern.Consume(number_copy.get())) {
2463
- // Only strip this if the first digit after the match is not a 0, since
2464
- // country calling codes cannot begin with 0.
2465
- string extracted_digit;
2466
- if (reg_exps_->capturing_digit_pattern_->PartialMatch(
2467
- number_copy->ToString(), &extracted_digit)) {
2468
- NormalizeDigitsOnly(&extracted_digit);
2469
- if (extracted_digit == "0") {
2470
- return false;
2471
- }
2472
- }
2473
- number->assign(number_copy->ToString());
2474
- return true;
2475
- }
2476
- return false;
2477
- }
2478
-
2479
- // Strips any international prefix (such as +, 00, 011) present in the number
2480
- // provided, normalizes the resulting number, and indicates if an international
2481
- // prefix was present.
2482
- //
2483
- // possible_idd_prefix represents the international direct dialing prefix from
2484
- // the region we think this number may be dialed in.
2485
- // Returns true if an international dialing prefix could be removed from the
2486
- // number, otherwise false if the number did not seem to be in international
2487
- // format.
2488
- PhoneNumber::CountryCodeSource
2489
- PhoneNumberUtil::MaybeStripInternationalPrefixAndNormalize(
2490
- const string& possible_idd_prefix,
2491
- string* number) const {
2492
- DCHECK(number);
2493
- if (number->empty()) {
2494
- return PhoneNumber::FROM_DEFAULT_COUNTRY;
2495
- }
2496
- const scoped_ptr<RegExpInput> number_string_piece(
2497
- reg_exps_->regexp_factory_->CreateInput(*number));
2498
- if (reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get())) {
2499
- number->assign(number_string_piece->ToString());
2500
- // Can now normalize the rest of the number since we've consumed the "+"
2501
- // sign at the start.
2502
- Normalize(number);
2503
- return PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN;
2504
- }
2505
- // Attempt to parse the first digits as an international prefix.
2506
- const RegExp& idd_pattern =
2507
- reg_exps_->regexp_cache_->GetRegExp(possible_idd_prefix);
2508
- Normalize(number);
2509
- return ParsePrefixAsIdd(idd_pattern, number)
2510
- ? PhoneNumber::FROM_NUMBER_WITH_IDD
2511
- : PhoneNumber::FROM_DEFAULT_COUNTRY;
2512
- }
2513
-
2514
- // Strips any national prefix (such as 0, 1) present in the number provided.
2515
- // The number passed in should be the normalized telephone number that we wish
2516
- // to strip any national dialing prefix from. The metadata should be for the
2517
- // region that we think this number is from. Returns true if a national prefix
2518
- // and/or carrier code was stripped.
2519
- bool PhoneNumberUtil::MaybeStripNationalPrefixAndCarrierCode(
2520
- const PhoneMetadata& metadata,
2521
- string* number,
2522
- string* carrier_code) const {
2523
- DCHECK(number);
2524
- string carrier_code_temp;
2525
- const string& possible_national_prefix =
2526
- metadata.national_prefix_for_parsing();
2527
- if (number->empty() || possible_national_prefix.empty()) {
2528
- // Early return for numbers of zero length or with no national prefix
2529
- // possible.
2530
- return false;
2531
- }
2532
- // We use two copies here since Consume modifies the phone number, and if the
2533
- // first if-clause fails the number will already be changed.
2534
- const scoped_ptr<RegExpInput> number_copy(
2535
- reg_exps_->regexp_factory_->CreateInput(*number));
2536
- const scoped_ptr<RegExpInput> number_copy_without_transform(
2537
- reg_exps_->regexp_factory_->CreateInput(*number));
2538
- string number_string_copy(*number);
2539
- string captured_part_of_prefix;
2540
- const RegExp& national_number_rule = reg_exps_->regexp_cache_->GetRegExp(
2541
- metadata.general_desc().national_number_pattern());
2542
- // Check if the original number is viable.
2543
- bool is_viable_original_number = national_number_rule.FullMatch(*number);
2544
- // Attempt to parse the first digits as a national prefix. We make a
2545
- // copy so that we can revert to the original string if necessary.
2546
- const string& transform_rule = metadata.national_prefix_transform_rule();
2547
- const RegExp& possible_national_prefix_pattern =
2548
- reg_exps_->regexp_cache_->GetRegExp(possible_national_prefix);
2549
- if (!transform_rule.empty() &&
2550
- (possible_national_prefix_pattern.Consume(
2551
- number_copy.get(), &carrier_code_temp, &captured_part_of_prefix) ||
2552
- possible_national_prefix_pattern.Consume(
2553
- number_copy.get(), &captured_part_of_prefix)) &&
2554
- !captured_part_of_prefix.empty()) {
2555
- // If this succeeded, then we must have had a transform rule and there must
2556
- // have been some part of the prefix that we captured.
2557
- // We make the transformation and check that the resultant number is still
2558
- // viable. If so, replace the number and return.
2559
- possible_national_prefix_pattern.Replace(&number_string_copy,
2560
- transform_rule);
2561
- if (is_viable_original_number &&
2562
- !national_number_rule.FullMatch(number_string_copy)) {
2563
- return false;
2564
- }
2565
- number->assign(number_string_copy);
2566
- if (carrier_code) {
2567
- carrier_code->assign(carrier_code_temp);
2568
- }
2569
- } else if (possible_national_prefix_pattern.Consume(
2570
- number_copy_without_transform.get(), &carrier_code_temp) ||
2571
- possible_national_prefix_pattern.Consume(
2572
- number_copy_without_transform.get())) {
2573
- VLOG(4) << "Parsed the first digits as a national prefix.";
2574
- // If captured_part_of_prefix is empty, this implies nothing was captured by
2575
- // the capturing groups in possible_national_prefix; therefore, no
2576
- // transformation is necessary, and we just remove the national prefix.
2577
- const string number_copy_as_string =
2578
- number_copy_without_transform->ToString();
2579
- if (is_viable_original_number &&
2580
- !national_number_rule.FullMatch(number_copy_as_string)) {
2581
- return false;
2582
- }
2583
- number->assign(number_copy_as_string);
2584
- if (carrier_code) {
2585
- carrier_code->assign(carrier_code_temp);
2586
- }
2587
- } else {
2588
- return false;
2589
- VLOG(4) << "The first digits did not match the national prefix.";
2590
- }
2591
- return true;
2592
- }
2593
-
2594
- // Strips any extension (as in, the part of the number dialled after the call is
2595
- // connected, usually indicated with extn, ext, x or similar) from the end of
2596
- // the number, and returns it. The number passed in should be non-normalized.
2597
- bool PhoneNumberUtil::MaybeStripExtension(string* number, string* extension)
2598
- const {
2599
- DCHECK(number);
2600
- DCHECK(extension);
2601
- // There are three extension capturing groups in the regular expression.
2602
- string possible_extension_one;
2603
- string possible_extension_two;
2604
- string possible_extension_three;
2605
- string number_copy(*number);
2606
- const scoped_ptr<RegExpInput> number_copy_as_regexp_input(
2607
- reg_exps_->regexp_factory_->CreateInput(number_copy));
2608
- if (reg_exps_->extn_pattern_->Consume(number_copy_as_regexp_input.get(),
2609
- false,
2610
- &possible_extension_one,
2611
- &possible_extension_two,
2612
- &possible_extension_three)) {
2613
- // Replace the extensions in the original string here.
2614
- reg_exps_->extn_pattern_->Replace(&number_copy, "");
2615
- VLOG(4) << "Found an extension. Possible extension one: "
2616
- << possible_extension_one
2617
- << ". Possible extension two: " << possible_extension_two
2618
- << ". Possible extension three: " << possible_extension_three
2619
- << ". Remaining number: " << number_copy;
2620
- // If we find a potential extension, and the number preceding this is a
2621
- // viable number, we assume it is an extension.
2622
- if ((!possible_extension_one.empty() || !possible_extension_two.empty() ||
2623
- !possible_extension_three.empty()) &&
2624
- IsViablePhoneNumber(number_copy)) {
2625
- number->assign(number_copy);
2626
- if (!possible_extension_one.empty()) {
2627
- extension->assign(possible_extension_one);
2628
- } else if (!possible_extension_two.empty()) {
2629
- extension->assign(possible_extension_two);
2630
- } else if (!possible_extension_three.empty()) {
2631
- extension->assign(possible_extension_three);
2632
- }
2633
- return true;
2634
- }
2635
- }
2636
- return false;
2637
- }
2638
-
2639
- // Extracts country calling code from national_number, and returns it. It
2640
- // assumes that the leading plus sign or IDD has already been removed. Returns 0
2641
- // if national_number doesn't start with a valid country calling code, and
2642
- // leaves national_number unmodified. Assumes the national_number is at least 3
2643
- // characters long.
2644
- int PhoneNumberUtil::ExtractCountryCode(string* national_number) const {
2645
- int potential_country_code;
2646
- if (national_number->empty() || (national_number->at(0) == '0')) {
2647
- // Country codes do not begin with a '0'.
2648
- return 0;
2649
- }
2650
- for (size_t i = 1; i <= kMaxLengthCountryCode; ++i) {
2651
- safe_strto32(national_number->substr(0, i), &potential_country_code);
2652
- string region_code;
2653
- GetRegionCodeForCountryCode(potential_country_code, &region_code);
2654
- if (region_code != RegionCode::GetUnknown()) {
2655
- national_number->erase(0, i);
2656
- return potential_country_code;
2657
- }
2658
- }
2659
- return 0;
2660
- }
2661
-
2662
- // Tries to extract a country calling code from a number. Country calling codes
2663
- // are extracted in the following ways:
2664
- // - by stripping the international dialing prefix of the region the person
2665
- // is dialing from, if this is present in the number, and looking at the next
2666
- // digits
2667
- // - by stripping the '+' sign if present and then looking at the next digits
2668
- // - by comparing the start of the number and the country calling code of the
2669
- // default region. If the number is not considered possible for the numbering
2670
- // plan of the default region initially, but starts with the country calling
2671
- // code of this region, validation will be reattempted after stripping this
2672
- // country calling code. If this number is considered a possible number, then
2673
- // the first digits will be considered the country calling code and removed as
2674
- // such.
2675
- //
2676
- // Returns NO_PARSING_ERROR if a country calling code was successfully
2677
- // extracted or none was present, or the appropriate error otherwise, such as
2678
- // if a + was present but it was not followed by a valid country calling code.
2679
- // If NO_PARSING_ERROR is returned, the national_number without the country
2680
- // calling code is populated, and the country_code of the phone_number passed
2681
- // in is set to the country calling code if found, otherwise to 0.
2682
- PhoneNumberUtil::ErrorType PhoneNumberUtil::MaybeExtractCountryCode(
2683
- const PhoneMetadata* default_region_metadata,
2684
- bool keep_raw_input,
2685
- string* national_number,
2686
- PhoneNumber* phone_number) const {
2687
- DCHECK(national_number);
2688
- DCHECK(phone_number);
2689
- // Set the default prefix to be something that will never match if there is no
2690
- // default region.
2691
- string possible_country_idd_prefix = default_region_metadata
2692
- ? default_region_metadata->international_prefix()
2693
- : "NonMatch";
2694
- PhoneNumber::CountryCodeSource country_code_source =
2695
- MaybeStripInternationalPrefixAndNormalize(possible_country_idd_prefix,
2696
- national_number);
2697
- if (keep_raw_input) {
2698
- phone_number->set_country_code_source(country_code_source);
2699
- }
2700
- if (country_code_source != PhoneNumber::FROM_DEFAULT_COUNTRY) {
2701
- if (national_number->length() <= kMinLengthForNsn) {
2702
- VLOG(2) << "Phone number had an IDD, but after this was not "
2703
- << "long enough to be a viable phone number.";
2704
- return TOO_SHORT_AFTER_IDD;
2705
- }
2706
- int potential_country_code = ExtractCountryCode(national_number);
2707
- if (potential_country_code != 0) {
2708
- phone_number->set_country_code(potential_country_code);
2709
- return NO_PARSING_ERROR;
2710
- }
2711
- // If this fails, they must be using a strange country calling code that we
2712
- // don't recognize, or that doesn't exist.
2713
- return INVALID_COUNTRY_CODE_ERROR;
2714
- } else if (default_region_metadata) {
2715
- // Check to see if the number starts with the country calling code for the
2716
- // default region. If so, we remove the country calling code, and do some
2717
- // checks on the validity of the number before and after.
2718
- int default_country_code = default_region_metadata->country_code();
2719
- string default_country_code_string(SimpleItoa(default_country_code));
2720
- VLOG(4) << "Possible country calling code: " << default_country_code_string;
2721
- string potential_national_number;
2722
- if (TryStripPrefixString(*national_number,
2723
- default_country_code_string,
2724
- &potential_national_number)) {
2725
- const PhoneNumberDesc& general_num_desc =
2726
- default_region_metadata->general_desc();
2727
- const RegExp& valid_number_pattern =
2728
- reg_exps_->regexp_cache_->GetRegExp(
2729
- general_num_desc.national_number_pattern());
2730
- MaybeStripNationalPrefixAndCarrierCode(*default_region_metadata,
2731
- &potential_national_number,
2732
- NULL);
2733
- VLOG(4) << "Number without country calling code prefix: "
2734
- << potential_national_number;
2735
- const RegExp& possible_number_pattern =
2736
- reg_exps_->regexp_cache_->GetRegExp(
2737
- StrCat("(", general_num_desc.possible_number_pattern(), ")"));
2738
- // If the number was not valid before but is valid now, or if it was too
2739
- // long before, we consider the number with the country code stripped to
2740
- // be a better result and keep that instead.
2741
- if ((!valid_number_pattern.FullMatch(*national_number) &&
2742
- valid_number_pattern.FullMatch(potential_national_number)) ||
2743
- TestNumberLengthAgainstPattern(possible_number_pattern,
2744
- *national_number) == TOO_LONG) {
2745
- national_number->assign(potential_national_number);
2746
- if (keep_raw_input) {
2747
- phone_number->set_country_code_source(
2748
- PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN);
2749
- }
2750
- phone_number->set_country_code(default_country_code);
2751
- return NO_PARSING_ERROR;
2752
- }
2753
- }
2754
- }
2755
- // No country calling code present. Set the country_code to 0.
2756
- phone_number->set_country_code(0);
2757
- return NO_PARSING_ERROR;
2758
- }
2759
-
2760
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatch(
2761
- const PhoneNumber& first_number_in,
2762
- const PhoneNumber& second_number_in) const {
2763
- // Make copies of the phone number so that the numbers passed in are not
2764
- // edited.
2765
- PhoneNumber first_number(first_number_in);
2766
- PhoneNumber second_number(second_number_in);
2767
- // First clear raw_input and country_code_source and
2768
- // preferred_domestic_carrier_code fields and any empty-string extensions so
2769
- // that we can use the proto-buffer equality method.
2770
- first_number.clear_raw_input();
2771
- first_number.clear_country_code_source();
2772
- first_number.clear_preferred_domestic_carrier_code();
2773
- second_number.clear_raw_input();
2774
- second_number.clear_country_code_source();
2775
- second_number.clear_preferred_domestic_carrier_code();
2776
- if (first_number.extension().empty()) {
2777
- first_number.clear_extension();
2778
- }
2779
- if (second_number.extension().empty()) {
2780
- second_number.clear_extension();
2781
- }
2782
- // Early exit if both had extensions and these are different.
2783
- if (first_number.has_extension() && second_number.has_extension() &&
2784
- first_number.extension() != second_number.extension()) {
2785
- return NO_MATCH;
2786
- }
2787
- int first_number_country_code = first_number.country_code();
2788
- int second_number_country_code = second_number.country_code();
2789
- // Both had country calling code specified.
2790
- if (first_number_country_code != 0 && second_number_country_code != 0) {
2791
- if (ExactlySameAs(first_number, second_number)) {
2792
- return EXACT_MATCH;
2793
- } else if (first_number_country_code == second_number_country_code &&
2794
- IsNationalNumberSuffixOfTheOther(first_number, second_number)) {
2795
- // A SHORT_NSN_MATCH occurs if there is a difference because of the
2796
- // presence or absence of an 'Italian leading zero', the presence or
2797
- // absence of an extension, or one NSN being a shorter variant of the
2798
- // other.
2799
- return SHORT_NSN_MATCH;
2800
- }
2801
- // This is not a match.
2802
- return NO_MATCH;
2803
- }
2804
- // Checks cases where one or both country calling codes were not specified. To
2805
- // make equality checks easier, we first set the country_code fields to be
2806
- // equal.
2807
- first_number.set_country_code(second_number_country_code);
2808
- // If all else was the same, then this is an NSN_MATCH.
2809
- if (ExactlySameAs(first_number, second_number)) {
2810
- return NSN_MATCH;
2811
- }
2812
- if (IsNationalNumberSuffixOfTheOther(first_number, second_number)) {
2813
- return SHORT_NSN_MATCH;
2814
- }
2815
- return NO_MATCH;
2816
- }
2817
-
2818
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithTwoStrings(
2819
- const string& first_number,
2820
- const string& second_number) const {
2821
- PhoneNumber first_number_as_proto;
2822
- ErrorType error_type =
2823
- Parse(first_number, RegionCode::GetUnknown(), &first_number_as_proto);
2824
- if (error_type == NO_PARSING_ERROR) {
2825
- return IsNumberMatchWithOneString(first_number_as_proto, second_number);
2826
- }
2827
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2828
- PhoneNumber second_number_as_proto;
2829
- ErrorType error_type = Parse(second_number, RegionCode::GetUnknown(),
2830
- &second_number_as_proto);
2831
- if (error_type == NO_PARSING_ERROR) {
2832
- return IsNumberMatchWithOneString(second_number_as_proto, first_number);
2833
- }
2834
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2835
- error_type = ParseHelper(first_number, RegionCode::GetUnknown(), false,
2836
- false, &first_number_as_proto);
2837
- if (error_type == NO_PARSING_ERROR) {
2838
- error_type = ParseHelper(second_number, RegionCode::GetUnknown(), false,
2839
- false, &second_number_as_proto);
2840
- if (error_type == NO_PARSING_ERROR) {
2841
- return IsNumberMatch(first_number_as_proto, second_number_as_proto);
2842
- }
2843
- }
2844
- }
2845
- }
2846
- // One or more of the phone numbers we are trying to match is not a viable
2847
- // phone number.
2848
- return INVALID_NUMBER;
2849
- }
2850
-
2851
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithOneString(
2852
- const PhoneNumber& first_number,
2853
- const string& second_number) const {
2854
- // First see if the second number has an implicit country calling code, by
2855
- // attempting to parse it.
2856
- PhoneNumber second_number_as_proto;
2857
- ErrorType error_type =
2858
- Parse(second_number, RegionCode::GetUnknown(), &second_number_as_proto);
2859
- if (error_type == NO_PARSING_ERROR) {
2860
- return IsNumberMatch(first_number, second_number_as_proto);
2861
- }
2862
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2863
- // The second number has no country calling code. EXACT_MATCH is no longer
2864
- // possible. We parse it as if the region was the same as that for the
2865
- // first number, and if EXACT_MATCH is returned, we replace this with
2866
- // NSN_MATCH.
2867
- string first_number_region;
2868
- GetRegionCodeForCountryCode(first_number.country_code(),
2869
- &first_number_region);
2870
- if (first_number_region != RegionCode::GetUnknown()) {
2871
- PhoneNumber second_number_with_first_number_region;
2872
- Parse(second_number, first_number_region,
2873
- &second_number_with_first_number_region);
2874
- MatchType match = IsNumberMatch(first_number,
2875
- second_number_with_first_number_region);
2876
- if (match == EXACT_MATCH) {
2877
- return NSN_MATCH;
2878
- }
2879
- return match;
2880
- } else {
2881
- // If the first number didn't have a valid country calling code, then we
2882
- // parse the second number without one as well.
2883
- error_type = ParseHelper(second_number, RegionCode::GetUnknown(), false,
2884
- false, &second_number_as_proto);
2885
- if (error_type == NO_PARSING_ERROR) {
2886
- return IsNumberMatch(first_number, second_number_as_proto);
2887
- }
2888
- }
2889
- }
2890
- // One or more of the phone numbers we are trying to match is not a viable
2891
- // phone number.
2892
- return INVALID_NUMBER;
2893
- }
2894
-
2895
- AsYouTypeFormatter* PhoneNumberUtil::GetAsYouTypeFormatter(
2896
- const string& region_code) const {
2897
- return new AsYouTypeFormatter(region_code);
2898
- }
2899
-
2900
- bool PhoneNumberUtil::IsShorterThanPossibleNormalNumber(
2901
- const PhoneMetadata* country_metadata, const string& number) const {
2902
- const RegExp& possible_number_pattern =
2903
- reg_exps_->regexp_cache_->GetRegExp(StrCat("(",
2904
- country_metadata->general_desc().possible_number_pattern(), ")"));
2905
- return TestNumberLengthAgainstPattern(possible_number_pattern, number) ==
2906
- PhoneNumberUtil::TOO_SHORT;
2907
- }
2908
-
2909
- bool PhoneNumberUtil::CanBeInternationallyDialled(
2910
- const PhoneNumber& number) const {
2911
- string region_code;
2912
- GetRegionCodeForNumber(number, &region_code);
2913
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
2914
- if (!metadata) {
2915
- // Note numbers belonging to non-geographical entities (e.g. +800 numbers)
2916
- // are always internationally diallable, and will be caught here.
2917
- return true;
2918
- }
2919
- string national_significant_number;
2920
- GetNationalSignificantNumber(number, &national_significant_number);
2921
- return !IsNumberMatchingDesc(
2922
- national_significant_number, metadata->no_international_dialling());
2923
- }
2924
-
2925
- } // namespace phonenumbers
2926
- } // namespace i18n