New Upstream Release - python-phonenumbers

Ready changes

Summary

Merged new upstream version: 8.13.14 (was: 8.13.2).

Resulting package

Built on 2023-06-23T03:11 (took 8m51s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases python3-phonenumbers

Diff

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 50e102f6..cb74ecdc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -6,15 +6,15 @@ permissions:
 jobs:
   build:
 
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [2.7, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", pypy2, pypy3]
+        python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", 3.11, pypy2.7, pypy3.9]
 
     steps:
-    - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
+    - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@f38219332975fe8f9c04cca981d674bf22aea1d3 # v2
+      uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
       with:
         python-version: ${{ matrix.python-version }}
     - name: Install dependencies
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index b90c3a97..894dfc3c 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -8,9 +8,9 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-    - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
+    - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
     - name: Set up latest Python 3
-      uses: actions/setup-python@f38219332975fe8f9c04cca981d674bf22aea1d3 # v2
+      uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
       with:
         python-version: 3
     - name: Install dependencies
diff --git a/debian/changelog b/debian/changelog
index 726b735c..5e0bda76 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+python-phonenumbers (8.13.14-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Fri, 23 Jun 2023 03:05:25 -0000
+
 python-phonenumbers (8.12.57-4) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/patches/0001-Use-setuptools-instead-of-distutils.patch b/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
index 659f1521..ad768f9b 100644
--- a/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
+++ b/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
@@ -8,10 +8,10 @@ Bug-Debian: https://bugs.debian.org/1022438
  python/setup.py | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/python/setup.py b/python/setup.py
-index 8885c3e..ee10bd7 100755
---- a/python/setup.py
-+++ b/python/setup.py
+Index: python-phonenumbers.git/python/setup.py
+===================================================================
+--- python-phonenumbers.git.orig/python/setup.py
++++ python-phonenumbers.git/python/setup.py
 @@ -15,7 +15,7 @@
  # See the License for the specific language governing permissions and
  # limitations under the License.
diff --git a/python/HISTORY.md b/python/HISTORY.md
index 0aecc5ef..62d16b70 100644
--- a/python/HISTORY.md
+++ b/python/HISTORY.md
@@ -12,6 +12,24 @@ This file does not generally include descriptions of patch releases (vX.Y.Z
 changes.  (Metadata updates are best checked
 [upstream](https://github.com/google/libphonenumber/blob/master/release_notes.txt).)
 
+What's new in 8.13.8
+--------------------
+
+Merge to
+[upstream commit 07cd7bbb8a2f](https://github.com/google/libphonenumber/commit/07cd7bbb8a2f);
+relevant code changes:
+
+- Added a check to phonenumberutil.py that the value of the `phone-context` parameter of the tel URI follows the correct
+  syntax as defined in [RFC3966](https://www.rfc-editor.org/rfc/rfc3966#section-3).
+
+What's new in 8.13.0
+--------------------
+
+Merge to [upstream commit
+185004cabd1bb4d3](https://github.com/google/libphonenumber/commit/185004cabd1bb4d3).  Upstream has
+removed the `leading_zero_possible` field from the `PhoneMetadata` type as part of this version;
+however, this change is *not* mirrored in the Python code due to back-compatibility concerns.
+
 What's new in 8.12.40
 ---------------------
 
diff --git a/python/appspot.py b/python/appspot.py
new file mode 100755
index 00000000..854a4e33
--- /dev/null
+++ b/python/appspot.py
@@ -0,0 +1,129 @@
+#!/usr/bin/env python
+"""
+Script for comparison with https://phonenumber.appspot.com
+"""
+import getopt
+import phonenumbers
+import phonenumbers.carrier
+import phonenumbers.geocoder
+import phonenumbers.timezone
+from phonenumbers import PhoneNumberFormat
+import sys
+import urllib.parse
+
+def interactive_query():
+    number = prompt("Specify a Phone Number: ")
+    country = prompt_or_default("Specify a Default Country: ", None)
+    locale = prompt_or_default("Specify a locale for phone number geocoding: ", "en")
+    return (number, country, locale)
+
+def prompt(msg):
+    result = input(msg)
+    return result.strip()
+
+def prompt_or_default(msg, default):
+    result = prompt(msg)
+    if not result:
+        return default
+    else:
+        return result
+
+
+def blank_if_none(val):
+    if val is None:
+        return ""
+    else:
+        return val
+
+def appspot(number, country, locale):
+    print("\n\nPhone Number entered: %s" % number)
+    print("Default country entered: %s" % country)
+    print("Language entered: %s" % locale)
+    country = "ZZ" if country is None else country
+
+    numobj = phonenumbers.parse(number, country, keep_raw_input=True)
+    print("\nParsing result (parse(keep_raw_input=True))")
+    print("country_code                   : %s" % blank_if_none(numobj.country_code))
+    print("national_number                : %s" % blank_if_none(numobj.national_number))
+    print("extension                      : %s" % blank_if_none(numobj.extension))
+    print("country_code_source            : %s" % blank_if_none(phonenumbers.CountryCodeSource.to_string(numobj.country_code_source)))
+    print("italian_leading_zero           : %s" % blank_if_none(numobj.italian_leading_zero))
+    print("number_of_leading_zeros        : %s" % blank_if_none(numobj.number_of_leading_zeros))
+    print("raw_input                      : %s" % blank_if_none(numobj.raw_input))
+    print("preferred_domestic_carrier_code: %s" % blank_if_none(numobj.preferred_domestic_carrier_code))
+
+    valid = phonenumbers.is_valid_number(numobj)
+    print("\nValidation Results")
+    print("Result from isPossibleNumber()      : %s" % phonenumbers.is_possible_number(numobj))
+    print("Result from isValidNumber()         : %s" % valid)
+    if valid and country != "ZZ":
+        print("Result from isValidNumberForRegion(): %s" % phonenumbers.is_valid_number_for_region(numobj, country))
+    print("Phone Number region                 : %s" % phonenumbers.region_code_for_number(numobj))
+    print("Result from getNumberType()         : %s" % phonenumbers.PhoneNumberType.to_string(phonenumbers.number_type(numobj)))
+
+
+    print("\nFormatting Results")
+    print("E164 format                                            : %s" % (phonenumbers.format_number(numobj, PhoneNumberFormat.E164) if valid else "invalid"))
+    print("Original format                                        : %s" % phonenumbers.format_in_original_format(numobj, country))
+    print("National format                                        : %s" % phonenumbers.format_number(numobj, PhoneNumberFormat.NATIONAL))
+    print("International format                                   : %s" % (phonenumbers.format_number(numobj, PhoneNumberFormat.INTERNATIONAL) if valid else "invalid"))
+    print("Out-of-country format from US                          : %s" % (phonenumbers.format_out_of_country_calling_number(numobj, "US") if valid else "invalid"))
+    print("Out-of-country format from CH                          : %s" % (phonenumbers.format_out_of_country_calling_number(numobj, "CH") if valid else "invalid"))
+    print("Format number for mobile dialing (calling from US)     : %s" % (phonenumbers.format_number_for_mobile_dialing(numobj, "US", True) if valid else "invalid"))
+    print("Format for national dialing with preferred carrier code: %s" % (phonenumbers.format_national_number_with_carrier_code(numobj, "") if valid else "invalid"))
+    print("   and empty fallback carrier code")
+
+
+    print("\nAsYouTypeFormatter Results")
+    formatter = phonenumbers.AsYouTypeFormatter(country)
+    for i in range(len(number)):
+        input_char = number[i]
+        print("Char entered '%s' Output: %s" % (input_char, formatter.input_digit(input_char)))
+
+    if valid:
+        print("\nPhoneNumberOfflineGeocoder Results")
+        print("Location: %s" % phonenumbers.geocoder.description_for_number(numobj, locale))
+
+        print("\nPhoneNumberToTimeZonesMapper Results")
+        print("Time zone(s): [%s]" % ", ".join(phonenumbers.timezone.time_zones_for_number(numobj)))
+
+        print("\nPhoneNumberToCarrierMapper Results")
+        print("Carrier: %s" % phonenumbers.carrier.name_for_number(numobj, locale))
+
+    print("\nPython library version: %s" % phonenumbers.__version__)
+    print("\nCompare with: https://libphonenumber.appspot.com/phonenumberparser?number=%s&country=%s" % (urllib.parse.quote_plus(number), country))
+
+
+def usage():
+    print("./appspot.py [opts]")
+    print("  --number <val>  / -n <val>  : number to parse")
+    print("  --country <val> / -c <val>  : default country for parsing (default None)")
+    print("  --locale <val>  / -l <val>  : language (default None)")
+    print("  --help          / -h        : show this message")
+
+
+if __name__ == '__main__':
+    number = None
+    country = None
+    locale = None
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "hn:c:l:", ["help", "number=", "country=", "locale="])
+    except getopt.GetoptError as err:
+        print(err)  # will print something like "option -a not recognized"
+        usage()
+        sys.exit(2)
+    for o, a in opts:
+        if o in ("-h", "--help"):
+            usage()
+            sys.exit()
+        elif o in ("-n", "--number"):
+            number = a
+        elif o in ("-c", "--country"):
+            country = a
+        elif o in ("-l", "--locale"):
+            locale = a
+        else:
+            assert False, "unhandled option"
+    if number is None:
+        (number, country, locale) = interactive_query()
+    appspot(number, country, locale)
diff --git a/python/phonenumbers/__init__.py b/python/phonenumbers/__init__.py
index 21949da3..f8c45882 100644
--- a/python/phonenumbers/__init__.py
+++ b/python/phonenumbers/__init__.py
@@ -146,7 +146,7 @@ from .phonenumbermatcher import PhoneNumberMatch, PhoneNumberMatcher, Leniency
 
 # Version number is taken from the upstream libphonenumber version
 # together with an indication of the version of the Python-specific code.
-__version__ = "8.12.57"
+__version__ = "8.13.14"
 
 __all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
            'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat', 'PhoneNumberDesc', 'PhoneMetadata',
diff --git a/python/phonenumbers/asyoutypeformatter.py b/python/phonenumbers/asyoutypeformatter.py
index 87eee02b..3fd42676 100644
--- a/python/phonenumbers/asyoutypeformatter.py
+++ b/python/phonenumbers/asyoutypeformatter.py
@@ -89,7 +89,7 @@ class AsYouTypeFormatter(object):
         Arguments:
         region_code -- The region where the phone number is being entered
 
-        Return an AsYouTypeFormatter} object, which could be used to format
+        Return an AsYouTypeFormatter object, which could be used to format
         phone numbers in the specific region "as you type"
         """
         self._clear()
diff --git a/python/phonenumbers/carrierdata/__init__.py b/python/phonenumbers/carrierdata/__init__.py
index 4887668d..3f037fe2 100644
--- a/python/phonenumbers/carrierdata/__init__.py
+++ b/python/phonenumbers/carrierdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/carrierdata/data0.py b/python/phonenumbers/carrierdata/data0.py
index d59ce155..bb716c13 100644
--- a/python/phonenumbers/carrierdata/data0.py
+++ b/python/phonenumbers/carrierdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -48,23 +48,23 @@ data = {
  '124272':{'en': 'BaTelCo'},
  '124273':{'en': 'aliv'},
  '12428':{'en': 'aliv'},
- '124623':{'en': 'LIME'},
- '124624':{'en': 'LIME'},
- '124625':{'en': 'LIME'},
+ '124623':{'en': 'Cable & Wireless'},
+ '124624':{'en': 'Cable & Wireless'},
+ '124625':{'en': 'Cable & Wireless'},
  '1246256':{'en': 'Digicel'},
  '1246257':{'en': 'Digicel'},
  '1246258':{'en': 'Digicel'},
  '1246259':{'en': 'Digicel'},
  '124626':{'en': 'Digicel'},
  '124628':{'en': 'Cable & Wireless'},
- '124635':{'en': 'LIME'},
- '1246360':{'en': 'LIME'},
- '1246361':{'en': 'LIME'},
- '1246362':{'en': 'LIME'},
- '1246363':{'en': 'LIME'},
- '1246364':{'en': 'LIME'},
- '1246365':{'en': 'LIME'},
- '1246366':{'en': 'LIME'},
+ '124635':{'en': 'Cable & Wireless'},
+ '1246360':{'en': 'Cable & Wireless'},
+ '1246361':{'en': 'Cable & Wireless'},
+ '1246362':{'en': 'Cable & Wireless'},
+ '1246363':{'en': 'Cable & Wireless'},
+ '1246364':{'en': 'Cable & Wireless'},
+ '1246365':{'en': 'Cable & Wireless'},
+ '1246366':{'en': 'Cable & Wireless'},
  '1246446':{'en': 'Neptune Communications'},
  '124645':{'en': 'Sunbeach Communications'},
  '12465211':{'en': 'Digicel'},
@@ -107,10 +107,7 @@ data = {
  '128439':{'en': 'Digicel'},
  '128444':{'en': 'CCT'},
  '12844689':{'en': 'CCT'},
- '12844966':{'en': 'CCT'},
- '12844967':{'en': 'CCT'},
- '12844968':{'en': 'CCT'},
- '12844969':{'en': 'CCT'},
+ '1284496':{'en': 'CCT'},
  '1284499':{'en': 'CCT'},
  '1284546':{'en': 'Cable & Wireless'},
  '128456':{'en': 'Cable & Wireless'},
@@ -142,6 +139,7 @@ data = {
  '144159':{'en': 'Digicel Bermuda'},
  '14417':{'en': 'Cellular One'},
  '14418':{'en': 'Cellular One'},
+ '14419':{'en': 'Deltronics'},
  '1473402':{'en': 'Affordable Island Communications'},
  '147341':{'en': 'Digicel Grenada'},
  '147342':{'en': 'Digicel Grenada'},
@@ -171,7 +169,13 @@ data = {
  '166434':{'en': 'Cable & Wireless'},
  '166439':{'en': 'Digicel'},
  '1670284':{'en': 'PTI PACIFICA'},
- '167148':{'en': 'GTA'},
+ '1671480':{'en': 'GTA'},
+ '1671482':{'en': 'GTA'},
+ '1671483':{'en': 'GTA'},
+ '1671486':{'en': 'GTA'},
+ '1671487':{'en': 'GTA'},
+ '1671488':{'en': 'GTA'},
+ '1671489':{'en': 'GTA'},
  '167174':{'en': 'PTI PACIFICA'},
  '167183':{'en': 'i CAN_GSM'},
  '167184':{'en': 'i CAN_GSM'},
@@ -808,6 +812,7 @@ data = {
  '22051':{'en': 'QCell'},
  '22052':{'en': 'QCell'},
  '22053':{'en': 'QCell'},
+ '22054':{'en': 'QCell'},
  '22058':{'en': 'QCell'},
  '22059':{'en': 'QCell'},
  '2206':{'en': 'Comium'},
@@ -935,6 +940,7 @@ data = {
  '22798':{'en': 'Airtel'},
  '22799':{'en': 'Airtel'},
  '22870':{'en': 'TOGOCEL'},
+ '22871':{'en': 'TOGOCEL'},
  '22879':{'en': 'Moov'},
  '22890':{'en': 'TOGOCEL'},
  '22891':{'en': 'TOGOCEL'},
@@ -944,7 +950,12 @@ data = {
  '22897':{'en': 'TOGOCEL'},
  '22898':{'en': 'Moov'},
  '22899':{'en': 'Moov'},
- '2294':{'en': 'SBIN'},
+ '22940':{'en': 'SBIN'},
+ '22941':{'en': 'SBIN'},
+ '22942':{'en': 'MTN'},
+ '22943':{'en': 'SBIN'},
+ '22945':{'en': 'SBIN'},
+ '22946':{'en': 'MTN'},
  '2295':{'en': 'MTN'},
  '22955':{'en': 'Moov'},
  '22956':{'en': 'Moov'},
@@ -976,6 +987,7 @@ data = {
  '2305471':{'en': 'Cellplus'},
  '23055':{'en': 'Emtel'},
  '230550':{'en': 'Cellplus'},
+ '230552':{'en': 'MTML'},
  '23057':{'en': 'Cellplus'},
  '230571':{'en': 'Emtel'},
  '230572':{'en': 'Emtel'},
@@ -1004,6 +1016,13 @@ data = {
  '230596':{'en': 'MTML'},
  '230597':{'en': 'Emtel'},
  '230598':{'en': 'Emtel'},
+ '230700':{'en': 'Cellplus'},
+ '230701':{'en': 'Emtel'},
+ '230702':{'en': 'MTML'},
+ '230730':{'en': 'Emtel'},
+ '230731':{'en': 'MTML'},
+ '230733':{'en': 'Cellplus'},
+ '231220':{'en': 'Liberia Telecom'},
  '231330':{'en': 'West Africa Telecom'},
  '231555':{'en': 'Lonestar Cell'},
  '2316':{'en': 'Lonestar Cell'},
@@ -1022,18 +1041,19 @@ data = {
  '2328':{'en': 'Africell'},
  '2329':{'en': 'Africell'},
  '23320':{'en': 'Vodafone'},
- '23323':{'en': 'Globacom (Zain)'},
+ '23323':{'en': 'airteltiGO'},
  '23324':{'en': 'MTN'},
  '23325':{'en': 'MTN'},
- '23326':{'en': 'Airtel'},
- '23327':{'en': 'tiGO'},
+ '23326':{'en': 'airteltiGO'},
+ '23327':{'en': 'airteltiGO'},
  '23328':{'en': 'Expresso'},
  '23329':{'en': 'National Security'},
  '23350':{'en': 'Vodafone'},
+ '23353':{'en': 'MTN'},
  '23354':{'en': 'MTN'},
  '23355':{'en': 'MTN'},
- '23356':{'en': 'Airtel'},
- '23357':{'en': 'tiGO'},
+ '23356':{'en': 'airteltiGO'},
+ '23357':{'en': 'airteltiGO'},
  '23359':{'en': 'MTN'},
  '234701':{'en': 'Airtel'},
  '2347020':{'en': 'Smile'},
@@ -1051,7 +1071,7 @@ data = {
  '234706':{'en': 'MTN'},
  '234708':{'en': 'Airtel'},
  '234709':{'en': 'Multilinks'},
- '234801':{'en': 'Megatech'},
+ '234801':{'en': 'MAFAB'},
  '234802':{'en': 'Airtel'},
  '234803':{'en': 'MTN'},
  '234804':{'en': 'Ntel'},
@@ -1079,17 +1099,24 @@ data = {
  '234907':{'en': 'Airtel'},
  '234908':{'en': '9mobile'},
  '234909':{'en': '9mobile'},
+ '234911':{'en': 'Airtel'},
  '234912':{'en': 'Airtel'},
  '234913':{'en': 'MTN'},
  '234915':{'en': 'Glo'},
  '234916':{'en': 'MTN'},
- '2356':{'en': 'Airtel'},
+ '23560':{'en': 'Airtel'},
+ '23562':{'en': 'Airtel'},
+ '23563':{'en': 'Airtel'},
+ '23565':{'en': 'Airtel'},
+ '23566':{'en': 'Airtel'},
+ '23568':{'en': 'Airtel'},
  '2357':{'en': 'Sotel'},
  '2359':{'en': 'Tigo'},
  '23670':{'en': 'A-Cell'},
  '23672':{'en': 'Orange'},
  '23674':{'en': 'Orange'},
  '23675':{'en': 'Telecel'},
+ '23676':{'en': 'Telecel'},
  '23677':{'en': 'Nationlink'},
  '23762':{'en': 'Camtel'},
  '237650':{'en': 'MTN Cameroon'},
@@ -1209,6 +1236,7 @@ data = {
  '25239':{'en': 'AirSom'},
  '25248':{'en': 'AirSom'},
  '25249':{'en': 'AirSom'},
+ '252604':{'en': 'Golis Telecom'},
  '252605':{'en': 'Golis Telecom'},
  '252606':{'en': 'Golis Telecom'},
  '252607':{'en': 'Golis Telecom'},
@@ -1307,9 +1335,11 @@ data = {
  '26095':{'en': 'ZAMTEL'},
  '26096':{'en': 'MTN'},
  '26097':{'en': 'Airtel'},
+ '26098':{'en': 'Beeline Telecoms'},
  '26132':{'en': 'Orange'},
  '26133':{'en': 'Airtel'},
  '26134':{'en': 'Telma'},
+ '26137':{'en': 'Orange'},
  '26138':{'en': 'Telma'},
  '26139':{'en': 'Blueline'},
  '26263900':{'en': 'Orange'},
@@ -1590,7 +1620,6 @@ data = {
  '2772':{'en': 'Vodacom'},
  '2773':{'en': 'MTN'},
  '2774':{'en': 'Cell C'},
- '27741':{'en': 'Virgin Mobile'},
  '2776':{'en': 'Vodacom'},
  '2778':{'en': 'MTN'},
  '2779':{'en': 'Vodacom'},
@@ -1663,7 +1692,7 @@ data = {
  '2987':{'en': 'Vodafone'},
  '29878':{'en': 'Faroese Telecom'},
  '29879':{'en': 'Faroese Telecom'},
- '29891':{'en': 'Tosa'},
+ '29891':{'en': 'Faroese Telecom'},
  '29896':{'en': 'Faroese Telecom'},
  '2992':{'en': 'TELE Greenland A/S'},
  '2994':{'en': 'TELE Greenland A/S'},
@@ -1820,16 +1849,10 @@ data = {
  '32456':{'en': 'Mobile Vikings/JIM Mobile'},
  '32460':{'en': 'Proximus'},
  '324618':{'en': 'N.M.B.S.'},
- '324630':{'en': 'TISMI BV'},
- '324651':{'en': 'Lycamobile'},
- '324652':{'en': 'Lycamobile'},
- '324653':{'en': 'Lycamobile'},
- '324654':{'en': 'Lycamobile'},
- '324655':{'en': 'Lycamobile'},
- '324656':{'en': 'Lycamobile'},
- '324657':{'en': 'Lycamobile'},
- '324658':{'en': 'Lycamobile'},
- '324659':{'en': 'Lycamobile'},
+ '324630':{'en': 'Lancelot Telecom'},
+ '324631':{'en': 'Lancelot Telecom'},
+ '32465':{'en': 'Lycamobile'},
+ '324650':{'en': 'Telenet'},
  '324660':{'en': 'Lycamobile'},
  '324661':{'en': 'Lycamobile'},
  '324662':{'en': 'Lycamobile'},
@@ -1850,13 +1873,15 @@ data = {
  '324679':{'en': 'Interactive Digital Media GmbH'},
  '32468':{'en': 'Telenet'},
  '324686':{'en': u('OnOff T\u00e9l\u00e9com SASU')},
- '324687':{'en': 'Premium Routing GmbH'},
- '324688':{'en': 'Premium Routing GmbH'},
+ '324687':{'en': 'Lancelot Telecom'},
+ '324688':{'en': 'Lancelot Telecom'},
  '324689':{'en': 'Febo Telecom'},
  '32469':{'en': 'Telenet'},
  '3247':{'en': 'Proximus'},
  '324802':{'en': 'TISMI BV'},
+ '324803':{'en': 'Lancelot Telecom'},
  '324805':{'en': 'Voyacom SPRL'},
+ '324806':{'en': 'Telenet'},
  '324807':{'en': 'MessageBird BV'},
  '324809':{'en': 'Ericsson NV'},
  '32483':{'en': 'Telenet'},
@@ -2025,15 +2050,9 @@ data = {
  '3366':{'en': 'Bouygues'},
  '3367':{'en': 'Orange France'},
  '3368':{'en': 'Orange France'},
+ '33695':{'en': 'Free Mobile'},
  '33698':{'en': 'Bouygues'},
  '33699':{'en': 'Bouygues'},
- '33700000':{'en': 'Orange France'},
- '33700001':{'en': 'SFR'},
- '33700002':{'en': 'Mobiquithings'},
- '33700003':{'en': 'Bouygues'},
- '33700004':{'en': 'Afone'},
- '33700005':{'en': 'Coriolis Telecom'},
- '33700006':{'en': 'Mobiquithings'},
  '337500':{'en': 'Euroinformation Telecom'},
  '337501':{'en': 'SFR'},
  '337502':{'en': 'SFR'},
@@ -2140,6 +2159,8 @@ data = {
  '3375705':{'en': 'Mobiweb telecom limited'},
  '3375706':{'en': 'Nordnet'},
  '3375707':{'en': 'Keyyo'},
+ '3375714':{'en': 'AIF'},
+ '3375715':{'en': 'AIF'},
  '3375717':{'en': 'Keyyo'},
  '337572':{'en': 'Mobiquithings'},
  '337573':{'en': 'Mobiquithings'},
@@ -2158,6 +2179,7 @@ data = {
  '3375774':{'en': 'SFR'},
  '3375777':{'en': 'Euroinformation Telecom'},
  '3375779':{'en': 'Halys'},
+ '3375786':{'en': 'Orange France'},
  '3375787':{'en': 'Euroinformation Telecom'},
  '3375788':{'en': 'BJT'},
  '3375789':{'en': 'BJT'},
@@ -2249,9 +2271,9 @@ data = {
  '3460228':{'en': 'Orange'},
  '3460229':{'en': 'Boutique'},
  '346023':{'en': 'Lycamobile'},
- '346024':{'en': 'Lebara'},
- '346025':{'en': 'Lebara'},
- '346026':{'en': 'Lebara'},
+ '346024':{'en': 'Yoigo'},
+ '346025':{'en': 'Yoigo'},
+ '346026':{'en': 'Yoigo'},
  '346027':{'en': 'Lebara'},
  '346028':{'en': 'Lycamobile'},
  '346029':{'en': 'DIA'},
@@ -2265,18 +2287,25 @@ data = {
  '3460307':{'en': 'Lebara'},
  '3460308':{'en': 'Lebara'},
  '3460309':{'en': 'Lebara'},
- '346031':{'en': 'Lebara'},
- '346032':{'en': 'Lebara'},
- '346033':{'en': 'Lebara'},
+ '346031':{'en': 'Yoigo'},
+ '346032':{'en': 'Yoigo'},
+ '346033':{'en': 'Yoigo'},
  '346034':{'en': 'Vodafone'},
  '346035':{'en': 'Vodafone'},
  '346036':{'en': 'Vodafone'},
  '346037':{'en': 'Vodafone'},
  '346038':{'en': 'Vodafone'},
  '346039':{'en': 'Lebara'},
- '34604':{'en': 'Lebara'},
  '346040':{'en': 'Orange'},
+ '346041':{'en': 'Yoigo'},
+ '346042':{'en': 'Yoigo'},
+ '346043':{'en': 'Yoigo'},
+ '346044':{'en': 'Lebara'},
  '346045':{'en': 'Orange'},
+ '346046':{'en': 'Lebara'},
+ '346047':{'en': 'Lebara'},
+ '346048':{'en': 'Lebara'},
+ '346049':{'en': 'Lebara'},
  '34605':{'en': 'Orange'},
  '3460529':{'en': 'MasMovil'},
  '34606':{'en': 'Movistar'},
@@ -2286,8 +2315,8 @@ data = {
  '34610':{'en': 'Vodafone'},
  '34611':{'en': 'Republica Movil'},
  '346110':{'en': 'Orange'},
- '346112':{'en': 'Lebara'},
- '346113':{'en': 'Lebara'},
+ '346112':{'en': 'Yoigo'},
+ '346113':{'en': 'Yoigo'},
  '34612':{'en': 'Syma'},
  '346122':{'en': 'Lycamobile'},
  '346124':{'en': 'Lycamobile'},
@@ -2509,8 +2538,14 @@ data = {
  '347446':{'en': 'PTV'},
  '347477':{'en': 'Orange'},
  '347478':{'en': 'Orange'},
- '3505':{'en': 'GibTel'},
- '3506':{'en': 'GibTel'},
+ '35051':{'en': 'Gibfibre'},
+ '35052':{'en': 'Gibfibre'},
+ '35054':{'en': 'GibTel'},
+ '35056':{'en': 'GibTel'},
+ '35057':{'en': 'GibTel'},
+ '35058':{'en': 'GibTel'},
+ '350601':{'en': 'Melmasti'},
+ '350606':{'en': 'GibTel'},
  '3511':{'en': 'NOS'},
  '351609230':{'en': 'NOS'},
  '35160929':{'en': 'NOS'},
@@ -2652,6 +2687,7 @@ data = {
  '356988':{'en': 'GO Mobile'},
  '356989':{'en': 'epic'},
  '35699':{'en': 'epic'},
+ '35791':{'en': 'Cytamobile-Vodafone'},
  '35794':{'en': 'Lemontel'},
  '35795':{'en': 'PrimeTel'},
  '35796':{'en': 'MTN'},
@@ -2711,8 +2747,25 @@ data = {
  '35989':{'en': 'Telenor'},
  '359988':{'en': 'Bob'},
  '359989':{'en': 'A1'},
- '359996':{'en': 'Bulsatcom'},
- '359999':{'en': 'MAX'},
+ '3599960':{'en': 'A1'},
+ '3599961':{'en': 'A1'},
+ '3599962':{'en': 'A1'},
+ '3599964':{'en': 'Telenor'},
+ '3599965':{'en': 'Telenor'},
+ '3599966':{'en': 'Telenor'},
+ '3599967':{'en': 'Vivacom'},
+ '3599968':{'en': 'Vivacom'},
+ '3599969':{'en': 'Vivacom'},
+ '3599990':{'en': 'A1'},
+ '3599991':{'en': 'A1'},
+ '3599992':{'en': 'A1'},
+ '3599993':{'en': 'A1'},
+ '3599994':{'en': 'Telenor'},
+ '3599995':{'en': 'Telenor'},
+ '3599996':{'en': 'Vivacom'},
+ '3599997':{'en': 'Vivacom'},
+ '3599998':{'en': 'Vivacom'},
+ '3599999':{'en': 'Vivacom'},
  '3620':{'en': 'Yettel Hungary'},
  '3630':{'en': 'Magyar Telekom'},
  '36312000':{'en': 'Netfone Telecom'},
@@ -2768,8 +2821,8 @@ data = {
  '36509':{'en': 'MVM Net'},
  '3670':{'en': 'Vodafone'},
  '37060':{'en': 'Tele 2'},
- '37061':{'en': 'Omnitel'},
- '37062':{'en': 'Omnitel'},
+ '37061':{'en': 'Telia'},
+ '37062':{'en': 'Telia'},
  '37063':{'en': u('BIT\u0116')},
  '37064':{'en': u('BIT\u0116')},
  '370645':{'en': 'Tele 2'},
@@ -2780,7 +2833,9 @@ data = {
  '370660':{'en': u('BIT\u0116')},
  '370661':{'en': u('BIT\u0116')},
  '3706610':{'en': 'Tele 2'},
- '370662':{'en': 'Omnitel'},
+ '37066186':{'en': 'Lancelot Telecom'},
+ '370662':{'en': 'Telia'},
+ '3706630':{'en': 'Telia'},
  '37066313':{'en': u('BIT\u0116')},
  '37066314':{'en': u('BIT\u0116')},
  '37066315':{'en': u('BIT\u0116')},
@@ -2789,10 +2844,28 @@ data = {
  '37066318':{'en': u('BIT\u0116')},
  '37066319':{'en': u('BIT\u0116')},
  '37066320':{'en': u('BIT\u0116')},
+ '37066321':{'en': 'Lancelot Telecom'},
  '37066323':{'en': u('BIT\u0116')},
- '37066522':{'en': u('BIT\u0116')},
+ '37066324':{'en': 'Lancelot Telecom'},
+ '37066325':{'en': 'Lancelot Telecom'},
+ '37066326':{'en': 'Lancelot Telecom'},
+ '37066327':{'en': 'Lancelot Telecom'},
+ '37066328':{'en': 'Lancelot Telecom'},
+ '37066329':{'en': 'Lancelot Telecom'},
+ '3706650':{'en': 'Telia'},
+ '3706651':{'en': 'Telia'},
+ '37066522':{'en': 'Telia'},
+ '37066523':{'en': 'Telia'},
+ '37066524':{'en': 'Telia'},
+ '37066525':{'en': 'Telia'},
+ '37066526':{'en': 'Telia'},
+ '37066527':{'en': 'Telia'},
+ '37066528':{'en': 'Telia'},
+ '37066529':{'en': 'Telia'},
+ '3706653':{'en': 'Telia'},
  '3706660':{'en': u('BIT\u0116')},
  '3706661':{'en': u('BIT\u0116')},
+ '37066621':{'en': 'Telia'},
  '37066622':{'en': u('BIT\u0116')},
  '37066623':{'en': u('BIT\u0116')},
  '37066624':{'en': u('BIT\u0116')},
@@ -2801,6 +2874,8 @@ data = {
  '37066627':{'en': u('BIT\u0116')},
  '37066628':{'en': u('BIT\u0116')},
  '37066629':{'en': u('BIT\u0116')},
+ '3706663':{'en': 'Telia'},
+ '3706664':{'en': 'Telia'},
  '3706665':{'en': u('BIT\u0116')},
  '3706666':{'en': 'Tele 2'},
  '3706667':{'en': u('BIT\u0116')},
@@ -2828,28 +2903,42 @@ data = {
  '37066865':{'en': 'Tele 2'},
  '37066876':{'en': u('BIT\u0116')},
  '37066877':{'en': u('BIT\u0116')},
- '370669':{'en': 'Omnitel'},
+ '370669':{'en': 'Telia'},
  '37067':{'en': 'Tele 2'},
- '370680':{'en': 'Omnitel'},
+ '370680':{'en': 'Telia'},
  '370681':{'en': u('BIT\u0116')},
- '370682':{'en': 'Omnitel'},
+ '370682':{'en': 'Telia'},
  '370683':{'en': 'Tele 2'},
  '370684':{'en': 'Tele 2'},
  '370685':{'en': u('BIT\u0116')},
- '370686':{'en': 'Omnitel'},
- '370687':{'en': 'Omnitel'},
- '370688':{'en': 'Omnitel'},
+ '370686':{'en': 'Telia'},
+ '370687':{'en': 'Telia'},
+ '370688':{'en': 'Telia'},
  '370689':{'en': u('BIT\u0116')},
  '370690':{'en': u('BIT\u0116')},
  '370691':{'en': u('BIT\u0116')},
- '370692':{'en': 'Omnitel'},
- '370693':{'en': 'Omnitel'},
- '370694':{'en': 'Omnitel'},
- '370695':{'en': 'Omnitel'},
- '370696':{'en': 'Omnitel'},
+ '370692':{'en': 'Telia'},
+ '370693':{'en': 'Telia'},
+ '370694':{'en': 'Telia'},
+ '370695':{'en': 'Telia'},
+ '370696':{'en': 'Telia'},
+ '3706970':{'en': 'Telia'},
+ '3706971':{'en': 'Telia'},
+ '3706972':{'en': 'Telia'},
+ '3706973':{'en': 'Telia'},
+ '37069740':{'en': 'Telia'},
+ '37069741':{'en': 'Telia'},
  '37069742':{'en': u('BIT\u0116')},
  '37069743':{'en': u('BIT\u0116')},
- '370698':{'en': 'Omnitel'},
+ '37069744':{'en': 'Telia'},
+ '37069747':{'en': 'Telia'},
+ '37069748':{'en': 'Telia'},
+ '37069749':{'en': 'Telia'},
+ '3706975':{'en': 'Telia'},
+ '3706976':{'en': 'Lancelot Telecom'},
+ '3706977':{'en': 'Telia'},
+ '3706979':{'en': 'Telia'},
+ '370698':{'en': 'Telia'},
  '370699':{'en': u('BIT\u0116')},
  '371200':{'en': 'Tele2'},
  '3712010':{'en': 'Bite Latvia'},
@@ -3069,6 +3158,7 @@ data = {
  '37281':{'en': 'Telia Eesti AS'},
  '3728110':{'en': 'Tele 2'},
  '3728111':{'en': 'Elisa'},
+ '3728123':{'en': 'Elisa'},
  '37282':{'en': 'Elisa'},
  '3728200':{'en': 'Telia Eesti AS'},
  '3728203':{'en': 'Telia Eesti AS'},
@@ -3082,7 +3172,10 @@ data = {
  '3728217':{'en': 'Tele 2'},
  '3728218':{'en': 'Tele 2'},
  '37282199':{'en': 'Tele 2'},
- '3728273':{'en': 'Tele 2'},
+ '3728270':{'en': 'Telia Eesti AS'},
+ '3728271':{'en': 'Telia Eesti AS'},
+ '3728272':{'en': 'Telia Eesti AS'},
+ '3728273':{'en': 'Telia Eesti AS'},
  '3728282':{'en': 'Telia Eesti AS'},
  '3728285':{'en': 'Tele 2'},
  '3728286':{'en': 'Tele 2'},
@@ -3161,8 +3254,8 @@ data = {
  '38097':{'en': 'Kyivstar', 'uk': u('\u041a\u0438\u0457\u0432\u0441\u0442\u0430\u0440')},
  '38098':{'en': 'Kyivstar', 'uk': u('\u041a\u0438\u0457\u0432\u0441\u0442\u0430\u0440')},
  '38099':{'en': 'Vodafone', 'uk': u('Vodafone \u0423\u043a\u0440\u0430\u0457\u043d\u0430')},
- '38160':{'en': 'VIP'},
- '38161':{'en': 'VIP'},
+ '38160':{'en': 'A1'},
+ '38161':{'en': 'A1'},
  '38162':{'en': 'Telenor'},
  '38163':{'en': 'Telenor'},
  '38164':{'en': 'Telekom Srbija a.d.'},
@@ -3171,7 +3264,7 @@ data = {
  '381676':{'en': 'GLOBALTEL'},
  '381677':{'en': 'GLOBALTEL'},
  '381678':{'en': 'Vectone Mobile'},
- '38168':{'en': 'VIP'},
+ '38168':{'en': 'A1'},
  '38169':{'en': 'Telenor'},
  '38260':{'en': 'm:tel'},
  '38263':{'en': 'Telenor'},
@@ -3190,7 +3283,15 @@ data = {
  '383457':{'en': 'vala'},
  '383458':{'en': 'vala'},
  '383459':{'en': 'vala'},
- '383461':{'en': 'Z Mobile'},
+ '383461':{'en': 'vala'},
+ '383462':{'en': 'vala'},
+ '383463':{'en': 'vala'},
+ '383464':{'en': 'vala'},
+ '383465':{'en': 'vala'},
+ '383466':{'en': 'vala'},
+ '383467':{'en': 'vala'},
+ '383468':{'en': 'vala'},
+ '383469':{'en': 'vala'},
  '38347':{'en': 'mts d.o.o.'},
  '38348':{'en': 'IPKO'},
  '38349':{'en': 'IPKO'},
@@ -3199,7 +3300,9 @@ data = {
  '38592':{'en': 'A1 Telekom'},
  '38595':{'en': 'Tele2'},
  '385970':{'en': 'Hrvatski Telekom'},
+ '3859750':{'en': 'Lancelot Telecom'},
  '3859751':{'en': 'Telefocus'},
+ '3859754':{'en': 'Lancelot Telecom'},
  '3859757':{'en': 'Mobile One'},
  '38597596':{'en': 'Altavox'},
  '38597597':{'en': 'INNOVAC'},
@@ -3217,12 +3320,15 @@ data = {
  '38651':{'en': 'Telekom Slovenije'},
  '38664':{'en': 'T-2'},
  '386651':{'en': u('S\u017d - Infrastruktura')},
- '386655':{'en': 'Telekom Slovenije'},
+ '3866555':{'en': 'Telekom Slovenije'},
+ '3866556':{'en': 'Sloexport'},
  '386656':{'en': 'SoftNet'},
  '386657':{'en': 'Novatel'},
+ '386658':{'en': 'Novatel'},
  '38668':{'en': 'A1'},
  '38669':{'en': 'A1'},
  '3866910':{'en': 'Compatel'},
+ '386695':{'en': 'Novatel'},
  '38670':{'en': 'Telemach'},
  '38671':{'en': 'Telemach'},
  '38760':{'en': 'BH Telecom'},
@@ -3236,16 +3342,9 @@ data = {
  '38970':{'en': 'T-Mobile'},
  '38971':{'en': 'T-Mobile'},
  '38972':{'en': 'T-Mobile'},
- '389731':{'en': 'A1'},
- '389732':{'en': 'A1'},
- '389733':{'en': 'A1'},
- '389734':{'en': 'A1'},
- '389735':{'en': 'A1'},
+ '38973':{'en': 'A1'},
  '3897370':{'en': 'T-Mobile'},
  '3897371':{'en': 'T-Mobile'},
- '3897375':{'en': 'A1'},
- '3897377':{'en': 'A1'},
- '3897378':{'en': 'A1'},
  '389742':{'en': 'T-Mobile'},
  '3897421':{'en': 'Mobik'},
  '389746':{'en': 'T-Mobile'},
@@ -3260,9 +3359,16 @@ data = {
  '38976':{'en': 'A1'},
  '38977':{'en': 'A1'},
  '38978':{'en': 'A1'},
- '38979':{'en': 'A1'},
+ '389790':{'en': 'A1'},
+ '389791':{'en': 'A1'},
+ '389792':{'en': 'Lyca Mobile'},
+ '389793':{'en': 'Lyca Mobile'},
+ '389794':{'en': 'Lyca Mobile'},
+ '389795':{'en': 'Lyca Mobile'},
  '3897970':{'en': 'T-Mobile'},
  '3897971':{'en': 'T-Mobile'},
+ '3897975':{'en': 'A1'},
+ '389799':{'en': 'A1'},
  '39319':{'en': 'Intermatica'},
  '3932':{'en': 'WIND'},
  '3933':{'en': 'TIM'},
@@ -3307,11 +3413,8 @@ data = {
  '417508':{'en': 'Swisscom'},
  '417509':{'en': 'Swisscom'},
  '417519':{'en': 'Swisscom'},
- '417520':{'en': 'Swisscom'},
- '417521':{'en': 'Swisscom'},
- '417522':{'en': 'Swisscom'},
- '417523':{'en': 'Swisscom'},
- '417524':{'en': 'Swisscom'},
+ '41752':{'en': 'Swisscom'},
+ '41753':{'en': 'Swisscom'},
  '41754':{'en': 'Swisscom'},
  '417550':{'en': 'Swisscom'},
  '417551':{'en': 'Swisscom'},
@@ -3461,10 +3564,10 @@ data = {
  '4207702':{'en': 'Vodafone'},
  '4207703':{'en': 'Vodafone'},
  '4207704':{'en': 'Vodafone'},
+ '4207705':{'en': 'O2'},
  '42077050':{'en': 'Compatel'},
  '42077051':{'en': '3ton s.r.o.'},
  '42077052':{'en': '3ton s.r.o.'},
- '42077055':{'en': 'ASTELNET'},
  '4207706':{'en': 'Vodafone'},
  '42077070':{'en': 'O2'},
  '42077071':{'en': 'Cesky bezdrat'},
@@ -3525,6 +3628,12 @@ data = {
  '42079191':{'en': 'T-Mobile'},
  '42079192':{'en': '3ton s.r.o.'},
  '42079193':{'en': 'GOPE Systems a.s.'},
+ '42079194':{'en': 'O2'},
+ '42079195':{'en': 'O2'},
+ '42079196':{'en': 'O2'},
+ '42079197':{'en': 'O2'},
+ '42079198':{'en': 'O2'},
+ '42079199':{'en': 'O2'},
  '420792':{'en': 'O2'},
  '42079234':{'en': 'Tesco Mobile CR'},
  '42079235':{'en': 'Tesco Mobile CR'},
@@ -3549,6 +3658,8 @@ data = {
  '4207948':{'en': 'O2'},
  '4207950':{'en': 'Vectone Distribution Czech Republic s.r.o(Mundio)'},
  '4207951':{'en': 'Vectone Distribution Czech Republic s.r.o(Mundio)'},
+ '4207952':{'en': 'O2'},
+ '4207953':{'en': 'O2'},
  '42079750':{'en': 'Dial Telecom'},
  '4207976':{'en': 'T-Mobile'},
  '42079770':{'en': 'T-Mobile'},
@@ -3570,6 +3681,7 @@ data = {
  '42079954':{'en': 'T-Mobile'},
  '42079955':{'en': 'GoMobil'},
  '42079956':{'en': 'GoMobil'},
+ '42079957':{'en': 'T-Mobile'},
  '42079979':{'en': 'miniTEL'},
  '42079999':{'en': 'T-Mobile'},
  '421901':{'en': 'T-Mobile (Slovak Telekom)'},
@@ -3665,6 +3777,8 @@ data = {
  '4473684':{'en': 'Sky'},
  '4473685':{'en': 'Sky'},
  '4473686':{'en': 'Sky'},
+ '4473690':{'en': 'Telet Research'},
+ '4473692':{'en': 'Sky'},
  '4473699':{'en': 'Anywhere Sim'},
  '447375':{'en': 'EE'},
  '447376':{'en': 'EE'},
@@ -3823,7 +3937,7 @@ data = {
  '4474579':{'en': 'CardBoardFish'},
  '4474580':{'en': 'Gamma Telecom'},
  '4474581':{'en': 'Gamma Telecom'},
- '4474582':{'en': 'Premium Routing'},
+ '4474582':{'en': 'Lancelot Telecom'},
  '4474583':{'en': 'Virgin Mobile'},
  '4474584':{'en': 'Airwave'},
  '4474585':{'en': 'Marathon Telecom'},
@@ -4519,7 +4633,7 @@ data = {
  '45458':{'en': 'telenor'},
  '45459':{'en': 'telenor'},
  '45461':{'en': 'telenor'},
- '45462':{'en': 'telenor'},
+ '454626':{'en': 'Lancelot Telecom'},
  '45463':{'en': 'telenor'},
  '45464':{'en': 'telenor'},
  '45465':{'en': 'telenor'},
@@ -5602,7 +5716,12 @@ data = {
  '46726006':{'en': 'Telavox AB'},
  '46726008':{'en': 'Global Telefoni Sve'},
  '4672601':{'en': 'Telavox AB'},
+ '4672603':{'en': 'Tele2 Sverige'},
+ '4672604':{'en': 'Tele2 Sverige'},
+ '4672605':{'en': 'Tele2 Sverige'},
  '4672606':{'en': 'Tele2 Sverige'},
+ '4672607':{'en': 'Tele2 Sverige'},
+ '4672608':{'en': 'Tele2 Sverige'},
  '467261':{'en': 'GLOBETOUCH AB'},
  '467262':{'en': 'GLOBETOUCH AB'},
  '467263':{'en': 'GLOBETOUCH AB'},
@@ -5654,6 +5773,7 @@ data = {
  '4672754':{'en': 'Telenor Sverige'},
  '4672755':{'en': 'FINK TELECOM SERVIC'},
  '4672756':{'en': 'FINK TELECOM SERVIC'},
+ '4672758':{'en': 'Lancelot Telecom'},
  '467276':{'en': 'Lycamobile Sweden'},
  '467277':{'en': 'Lycamobile Sweden'},
  '467278':{'en': 'Lycamobile Sweden'},
@@ -5747,6 +5867,7 @@ data = {
  '46734527':{'en': 'Soatso AB'},
  '46734528':{'en': 'Soatso AB'},
  '46734529':{'en': 'Soatso AB'},
+ '4673453':{'en': 'TeliaSonera'},
  '4673454':{'en': 'Tele2 Sverige'},
  '4673455':{'en': 'Viatel Sweden'},
  '4673456':{'en': 'Svea Billing System'},
@@ -6309,6 +6430,7 @@ data = {
  '474898':{'en': 'telenor norge'},
  '474899':{'en': 'telia'},
  '47591':{'en': 'telenor norge'},
+ '47596':{'en': 'ice norge'},
  '4790':{'en': 'telenor norge'},
  '479042':{'en': 'svea billing services'},
  '479043':{'en': 'svea billing services'},
@@ -6404,9 +6526,9 @@ data = {
  '479441':{'en': 'telenor norge'},
  '479442':{'en': 'telia'},
  '479443':{'en': 'telia'},
- '479444':{'en': 'telenor norge'},
- '479445':{'en': 'telenor norge'},
- '479446':{'en': 'telenor norge'},
+ '479444':{'en': 'ice norge'},
+ '479445':{'en': 'ice norge'},
+ '479446':{'en': 'ice norge'},
  '479447':{'en': 'telia'},
  '479448':{'en': 'telia'},
  '479449':{'en': 'telia'},
@@ -6526,6 +6648,7 @@ data = {
  '482115':{'en': 'Plus'},
  '48212':{'en': 'Orange'},
  '48450':{'en': 'Play'},
+ '48454':{'en': 'Orange'},
  '484590':{'en': 'Play'},
  '4845910':{'en': 'Play'},
  '4845911':{'en': 'Play'},
@@ -6750,6 +6873,7 @@ data = {
  '487864':{'en': 'Orange'},
  '487865':{'en': 'Orange'},
  '487866':{'en': 'Orange'},
+ '4878670':{'en': 'Lancelot Telecom'},
  '4878671':{'en': 'Plus'},
  '4878672':{'en': 'Plus'},
  '4878673':{'en': 'Plus'},
@@ -7320,13 +7444,10 @@ data = {
  '50850':{'en': 'Keyyo'},
  '50855':{'en': 'SPM Telecom'},
  '50856':{'en': 'Kav El International'},
- '50930':{'en': 'Digicel'},
- '50931':{'en': 'Digicel'},
- '50934':{'en': 'Digicel'},
- '50936':{'en': 'Digicel'},
- '50937':{'en': 'Digicel'},
- '50938':{'en': 'Digicel'},
- '50939':{'en': 'Digicel'},
+ '5093':{'en': 'Digicel'},
+ '50932':{'en': 'Natcom'},
+ '50933':{'en': 'Natcom'},
+ '50935':{'en': 'Natcom'},
  '50940':{'en': 'Natcom'},
  '50941':{'en': 'Natcom'},
  '50942':{'en': 'Natcom'},
@@ -7336,8 +7457,14 @@ data = {
  '50947':{'en': 'Digicel'},
  '50948':{'en': 'Digicel'},
  '50949':{'en': 'Digicel'},
+ '5095':{'en': 'Natcom'},
  '51900':{'en': 'Claro'},
  '51901':{'en': 'Claro'},
+ '51904':{'en': 'Entel'},
+ '51905':{'en': 'Entel'},
+ '51906':{'en': 'Entel'},
+ '51907':{'en': 'Entel'},
+ '51908':{'en': 'Entel'},
  '51910':{'en': 'Claro'},
  '51912':{'en': 'Entel'},
  '51913':{'en': 'Claro'},
@@ -9892,131 +10019,4 @@ data = {
  '553199679':{'en': 'Telemig Celular'},
  '553199681':{'en': 'Telemig Celular'},
  '553199682':{'en': 'Telemig Celular'},
- '553199683':{'en': 'Telemig Celular'},
- '553199684':{'en': 'Telemig Celular'},
- '553199685':{'en': 'Telemig Celular'},
- '553199686':{'en': 'Telemig Celular'},
- '553199687':{'en': 'Telemig Celular'},
- '553199688':{'en': 'Telemig Celular'},
- '553199689':{'en': 'Telemig Celular'},
- '553199691':{'en': 'Telemig Celular'},
- '553199692':{'en': 'Telemig Celular'},
- '553199693':{'en': 'Telemig Celular'},
- '553199694':{'en': 'Telemig Celular'},
- '553199695':{'en': 'Telemig Celular'},
- '553199696':{'en': 'Telemig Celular'},
- '553199697':{'en': 'Telemig Celular'},
- '553199698':{'en': 'Telemig Celular'},
- '553199699':{'en': 'Telemig Celular'},
- '553199701':{'en': 'Telemig Celular'},
- '553199702':{'en': 'Telemig Celular'},
- '553199703':{'en': 'Telemig Celular'},
- '553199704':{'en': 'Telemig Celular'},
- '553199705':{'en': 'Telemig Celular'},
- '553199706':{'en': 'Telemig Celular'},
- '553199707':{'en': 'Telemig Celular'},
- '553199708':{'en': 'Telemig Celular'},
- '553199709':{'en': 'Telemig Celular'},
- '553199711':{'en': 'Telemig Celular'},
- '553199712':{'en': 'Telemig Celular'},
- '553199713':{'en': 'Telemig Celular'},
- '553199714':{'en': 'Telemig Celular'},
- '553199715':{'en': 'Telemig Celular'},
- '553199717':{'en': 'Telemig Celular'},
- '553199718':{'en': 'Telemig Celular'},
- '553199719':{'en': 'Telemig Celular'},
- '553199721':{'en': 'Telemig Celular'},
- '553199722':{'en': 'Telemig Celular'},
- '553199723':{'en': 'Telemig Celular'},
- '553199724':{'en': 'Telemig Celular'},
- '553199725':{'en': 'Telemig Celular'},
- '553199726':{'en': 'Telemig Celular'},
- '553199728':{'en': 'Telemig Celular'},
- '553199729':{'en': 'Telemig Celular'},
- '553199731':{'en': 'Telemig Celular'},
- '553199732':{'en': 'Telemig Celular'},
- '553199733':{'en': 'Telemig Celular'},
- '553199734':{'en': 'Telemig Celular'},
- '553199735':{'en': 'Telemig Celular'},
- '553199736':{'en': 'Telemig Celular'},
- '553199737':{'en': 'Telemig Celular'},
- '553199738':{'en': 'Telemig Celular'},
- '553199739':{'en': 'Telemig Celular'},
- '553199741':{'en': 'Telemig Celular'},
- '553199742':{'en': 'Telemig Celular'},
- '553199743':{'en': 'Telemig Celular'},
- '553199744':{'en': 'Telemig Celular'},
- '553199745':{'en': 'Telemig Celular'},
- '553199746':{'en': 'Telemig Celular'},
- '553199747':{'en': 'Telemig Celular'},
- '553199748':{'en': 'Telemig Celular'},
- '553199749':{'en': 'Telemig Celular'},
- '553199751':{'en': 'Telemig Celular'},
- '553199752':{'en': 'Telemig Celular'},
- '553199753':{'en': 'Telemig Celular'},
- '553199755':{'en': 'Telemig Celular'},
- '553199756':{'en': 'Telemig Celular'},
- '553199757':{'en': 'Telemig Celular'},
- '553199758':{'en': 'Telemig Celular'},
- '553199759':{'en': 'Telemig Celular'},
- '553199761':{'en': 'Telemig Celular'},
- '553199762':{'en': 'Telemig Celular'},
- '553199763':{'en': 'Telemig Celular'},
- '553199764':{'en': 'Telemig Celular'},
- '553199765':{'en': 'Telemig Celular'},
- '553199766':{'en': 'Telemig Celular'},
- '553199767':{'en': 'Telemig Celular'},
- '553199768':{'en': 'Telemig Celular'},
- '553199769':{'en': 'Telemig Celular'},
- '553199771':{'en': 'Telemig Celular'},
- '553199772':{'en': 'Telemig Celular'},
- '553199773':{'en': 'Telemig Celular'},
- '553199774':{'en': 'Telemig Celular'},
- '553199775':{'en': 'Telemig Celular'},
- '553199776':{'en': 'Telemig Celular'},
- '553199777':{'en': 'Telemig Celular'},
- '553199778':{'en': 'Telemig Celular'},
- '553199779':{'en': 'Telemig Celular'},
- '553199781':{'en': 'Telemig Celular'},
- '553199782':{'en': 'Telemig Celular'},
- '553199783':{'en': 'Telemig Celular'},
- '553199784':{'en': 'Telemig Celular'},
- '553199785':{'en': 'Telemig Celular'},
- '553199786':{'en': 'Telemig Celular'},
- '553199787':{'en': 'Telemig Celular'},
- '553199788':{'en': 'Telemig Celular'},
- '553199789':{'en': 'Telemig Celular'},
- '553199791':{'en': 'Telemig Celular'},
- '553199792':{'en': 'Telemig Celular'},
- '553199793':{'en': 'Telemig Celular'},
- '553199794':{'en': 'Telemig Celular'},
- '553199795':{'en': 'Telemig Celular'},
- '553199796':{'en': 'Telemig Celular'},
- '553199797':{'en': 'Telemig Celular'},
- '553199798':{'en': 'Telemig Celular'},
- '553199799':{'en': 'Telemig Celular'},
- '5531998':{'en': 'Telemig Celular'},
- '553199800':{'en': 'TIM'},
- '553199810':{'en': 'TIM'},
- '553199820':{'en': 'TIM'},
- '553199830':{'en': 'TIM'},
- '553199840':{'en': 'TIM'},
- '553199850':{'en': 'TIM'},
- '553199860':{'en': 'TIM'},
- '553199870':{'en': 'TIM'},
- '553199880':{'en': 'TIM'},
- '553199890':{'en': 'TIM'},
- '553199901':{'en': 'Telemig Celular'},
- '553199902':{'en': 'Telemig Celular'},
- '553199903':{'en': 'Telemig Celular'},
- '553199904':{'en': 'Telemig Celular'},
- '553199905':{'en': 'Telemig Celular'},
- '553199906':{'en': 'Telemig Celular'},
- '553199907':{'en': 'Telemig Celular'},
- '553199908':{'en': 'Telemig Celular'},
- '553199909':{'en': 'Telemig Celular'},
- '553199911':{'en': 'Telemig Celular'},
- '553199912':{'en': 'Telemig Celular'},
- '553199913':{'en': 'Telemig Celular'},
- '553199914':{'en': 'Telemig Celular'},
 }
diff --git a/python/phonenumbers/carrierdata/data1.py b/python/phonenumbers/carrierdata/data1.py
index a8057174..c35241a1 100644
--- a/python/phonenumbers/carrierdata/data1.py
+++ b/python/phonenumbers/carrierdata/data1.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,133 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '553199683':{'en': 'Telemig Celular'},
+ '553199684':{'en': 'Telemig Celular'},
+ '553199685':{'en': 'Telemig Celular'},
+ '553199686':{'en': 'Telemig Celular'},
+ '553199687':{'en': 'Telemig Celular'},
+ '553199688':{'en': 'Telemig Celular'},
+ '553199689':{'en': 'Telemig Celular'},
+ '553199691':{'en': 'Telemig Celular'},
+ '553199692':{'en': 'Telemig Celular'},
+ '553199693':{'en': 'Telemig Celular'},
+ '553199694':{'en': 'Telemig Celular'},
+ '553199695':{'en': 'Telemig Celular'},
+ '553199696':{'en': 'Telemig Celular'},
+ '553199697':{'en': 'Telemig Celular'},
+ '553199698':{'en': 'Telemig Celular'},
+ '553199699':{'en': 'Telemig Celular'},
+ '553199701':{'en': 'Telemig Celular'},
+ '553199702':{'en': 'Telemig Celular'},
+ '553199703':{'en': 'Telemig Celular'},
+ '553199704':{'en': 'Telemig Celular'},
+ '553199705':{'en': 'Telemig Celular'},
+ '553199706':{'en': 'Telemig Celular'},
+ '553199707':{'en': 'Telemig Celular'},
+ '553199708':{'en': 'Telemig Celular'},
+ '553199709':{'en': 'Telemig Celular'},
+ '553199711':{'en': 'Telemig Celular'},
+ '553199712':{'en': 'Telemig Celular'},
+ '553199713':{'en': 'Telemig Celular'},
+ '553199714':{'en': 'Telemig Celular'},
+ '553199715':{'en': 'Telemig Celular'},
+ '553199717':{'en': 'Telemig Celular'},
+ '553199718':{'en': 'Telemig Celular'},
+ '553199719':{'en': 'Telemig Celular'},
+ '553199721':{'en': 'Telemig Celular'},
+ '553199722':{'en': 'Telemig Celular'},
+ '553199723':{'en': 'Telemig Celular'},
+ '553199724':{'en': 'Telemig Celular'},
+ '553199725':{'en': 'Telemig Celular'},
+ '553199726':{'en': 'Telemig Celular'},
+ '553199728':{'en': 'Telemig Celular'},
+ '553199729':{'en': 'Telemig Celular'},
+ '553199731':{'en': 'Telemig Celular'},
+ '553199732':{'en': 'Telemig Celular'},
+ '553199733':{'en': 'Telemig Celular'},
+ '553199734':{'en': 'Telemig Celular'},
+ '553199735':{'en': 'Telemig Celular'},
+ '553199736':{'en': 'Telemig Celular'},
+ '553199737':{'en': 'Telemig Celular'},
+ '553199738':{'en': 'Telemig Celular'},
+ '553199739':{'en': 'Telemig Celular'},
+ '553199741':{'en': 'Telemig Celular'},
+ '553199742':{'en': 'Telemig Celular'},
+ '553199743':{'en': 'Telemig Celular'},
+ '553199744':{'en': 'Telemig Celular'},
+ '553199745':{'en': 'Telemig Celular'},
+ '553199746':{'en': 'Telemig Celular'},
+ '553199747':{'en': 'Telemig Celular'},
+ '553199748':{'en': 'Telemig Celular'},
+ '553199749':{'en': 'Telemig Celular'},
+ '553199751':{'en': 'Telemig Celular'},
+ '553199752':{'en': 'Telemig Celular'},
+ '553199753':{'en': 'Telemig Celular'},
+ '553199755':{'en': 'Telemig Celular'},
+ '553199756':{'en': 'Telemig Celular'},
+ '553199757':{'en': 'Telemig Celular'},
+ '553199758':{'en': 'Telemig Celular'},
+ '553199759':{'en': 'Telemig Celular'},
+ '553199761':{'en': 'Telemig Celular'},
+ '553199762':{'en': 'Telemig Celular'},
+ '553199763':{'en': 'Telemig Celular'},
+ '553199764':{'en': 'Telemig Celular'},
+ '553199765':{'en': 'Telemig Celular'},
+ '553199766':{'en': 'Telemig Celular'},
+ '553199767':{'en': 'Telemig Celular'},
+ '553199768':{'en': 'Telemig Celular'},
+ '553199769':{'en': 'Telemig Celular'},
+ '553199771':{'en': 'Telemig Celular'},
+ '553199772':{'en': 'Telemig Celular'},
+ '553199773':{'en': 'Telemig Celular'},
+ '553199774':{'en': 'Telemig Celular'},
+ '553199775':{'en': 'Telemig Celular'},
+ '553199776':{'en': 'Telemig Celular'},
+ '553199777':{'en': 'Telemig Celular'},
+ '553199778':{'en': 'Telemig Celular'},
+ '553199779':{'en': 'Telemig Celular'},
+ '553199781':{'en': 'Telemig Celular'},
+ '553199782':{'en': 'Telemig Celular'},
+ '553199783':{'en': 'Telemig Celular'},
+ '553199784':{'en': 'Telemig Celular'},
+ '553199785':{'en': 'Telemig Celular'},
+ '553199786':{'en': 'Telemig Celular'},
+ '553199787':{'en': 'Telemig Celular'},
+ '553199788':{'en': 'Telemig Celular'},
+ '553199789':{'en': 'Telemig Celular'},
+ '553199791':{'en': 'Telemig Celular'},
+ '553199792':{'en': 'Telemig Celular'},
+ '553199793':{'en': 'Telemig Celular'},
+ '553199794':{'en': 'Telemig Celular'},
+ '553199795':{'en': 'Telemig Celular'},
+ '553199796':{'en': 'Telemig Celular'},
+ '553199797':{'en': 'Telemig Celular'},
+ '553199798':{'en': 'Telemig Celular'},
+ '553199799':{'en': 'Telemig Celular'},
+ '5531998':{'en': 'Telemig Celular'},
+ '553199800':{'en': 'TIM'},
+ '553199810':{'en': 'TIM'},
+ '553199820':{'en': 'TIM'},
+ '553199830':{'en': 'TIM'},
+ '553199840':{'en': 'TIM'},
+ '553199850':{'en': 'TIM'},
+ '553199860':{'en': 'TIM'},
+ '553199870':{'en': 'TIM'},
+ '553199880':{'en': 'TIM'},
+ '553199890':{'en': 'TIM'},
+ '553199901':{'en': 'Telemig Celular'},
+ '553199902':{'en': 'Telemig Celular'},
+ '553199903':{'en': 'Telemig Celular'},
+ '553199904':{'en': 'Telemig Celular'},
+ '553199905':{'en': 'Telemig Celular'},
+ '553199906':{'en': 'Telemig Celular'},
+ '553199907':{'en': 'Telemig Celular'},
+ '553199908':{'en': 'Telemig Celular'},
+ '553199909':{'en': 'Telemig Celular'},
+ '553199911':{'en': 'Telemig Celular'},
+ '553199912':{'en': 'Telemig Celular'},
+ '553199913':{'en': 'Telemig Celular'},
+ '553199914':{'en': 'Telemig Celular'},
  '553199915':{'en': 'Telemig Celular'},
  '553199916':{'en': 'Telemig Celular'},
  '553199917':{'en': 'Telemig Celular'},
@@ -7195,7 +7322,12 @@ data = {
  '5623351':{'en': 'Claro'},
  '5623352':{'en': 'Claro'},
  '562336':{'en': 'Movistar'},
- '562337':{'en': 'Movistar'},
+ '562337':{'en': 'Claro'},
+ '5623370':{'en': 'Movistar'},
+ '5623371':{'en': 'Movistar'},
+ '5623372':{'en': 'Movistar'},
+ '5623373':{'en': 'Movistar'},
+ '562338':{'en': 'Claro'},
  '56236':{'en': 'Entel'},
  '56322162':{'en': 'Entel'},
  '56322163':{'en': 'Entel'},
@@ -7531,24 +7663,7 @@ data = {
  '5641219':{'en': 'Entel'},
  '564122':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '5641229':{'en': 'Gtd Telesat S.A.'},
- '5641230':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641231':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641232':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641233':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641234':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641235':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641236':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641237':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412380':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412381':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412382':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412383':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412384':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412385':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412386':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412387':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412388':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641239':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
+ '564123':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '564124':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '5641246':{'en': 'Telefonica Del Sur S.A.'},
  '564125':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
@@ -7650,6 +7765,9 @@ data = {
  '56413383':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '56413384':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '5641339':{'en': 'Telefonica Del Sur S.A.'},
+ '5641350':{'en': 'Entel'},
+ '5641351':{'en': 'Entel'},
+ '5641352':{'en': 'Entel'},
  '5641355':{'en': 'Claro'},
  '5641356':{'en': 'Claro'},
  '5641357':{'en': 'Claro'},
@@ -8456,6 +8574,10 @@ data = {
  '5657281':{'en': 'Gtd Telesat S.A.'},
  '5657283':{'en': 'Movistar'},
  '5657284':{'en': 'Gtd Manquehue S.A.'},
+ '5657285':{'en': 'Entel'},
+ '5657286':{'en': 'Entel'},
+ '5657287':{'en': 'Entel'},
+ '5657288':{'en': 'Entel'},
  '565822':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '5658231':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
  '5658232':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
@@ -8975,6 +9097,10 @@ data = {
  '5671274':{'en': 'Entel'},
  '5671277':{'en': 'Telestar'},
  '5671279':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
+ '5671280':{'en': 'Entel'},
+ '5671281':{'en': 'Entel'},
+ '5671282':{'en': 'Entel'},
+ '5671283':{'en': 'Entel'},
  '5671288':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
  '56712970':{'en': 'Comunicacion Y Telefonia Rural S.A.'},
  '56712971':{'en': 'Comunicacion Y Telefonia Rural S.A.'},
@@ -9893,130 +10019,4 @@ data = {
  '5730460':{'en': 'Tigo'},
  '5730461':{'en': 'Tigo'},
  '5730462':{'en': 'Tigo'},
- '5730463':{'en': 'Tigo'},
- '5730464':{'en': 'Tigo'},
- '5730465':{'en': 'Tigo'},
- '5730466':{'en': 'Tigo'},
- '5730467':{'en': 'Tigo'},
- '57304680':{'en': 'Tigo'},
- '57304681':{'en': 'Tigo'},
- '57304682':{'en': 'Tigo'},
- '57304683':{'en': 'Tigo'},
- '57304684':{'en': 'Tigo'},
- '573046851':{'en': 'Tigo'},
- '573046852':{'en': 'Tigo'},
- '573046853':{'en': 'Tigo'},
- '573046854':{'en': 'Tigo'},
- '573046855':{'en': 'Tigo'},
- '573046856':{'en': 'Tigo'},
- '573046857':{'en': 'Tigo'},
- '573046858':{'en': 'Tigo'},
- '573046859':{'en': 'Tigo'},
- '57304686':{'en': 'Tigo'},
- '57304687':{'en': 'Tigo'},
- '57304688':{'en': 'Tigo'},
- '57304689':{'en': 'Tigo'},
- '5730469':{'en': 'Tigo'},
- '5730470':{'en': 'Tigo'},
- '5730471':{'en': 'Tigo'},
- '5730472':{'en': 'Tigo'},
- '57304730':{'en': 'Tigo'},
- '57304731':{'en': 'Tigo'},
- '57304732':{'en': 'Tigo'},
- '57304733':{'en': 'Tigo'},
- '57304734':{'en': 'Tigo'},
- '57304735':{'en': 'Tigo'},
- '5730474':{'en': 'Tigo'},
- '5730475':{'en': 'Tigo'},
- '5730520':{'en': 'Tigo'},
- '57305210':{'en': 'Tigo'},
- '57305211':{'en': 'Tigo'},
- '57305212':{'en': 'Tigo'},
- '57305213':{'en': 'Tigo'},
- '57305214':{'en': 'Tigo'},
- '57305215':{'en': 'Tigo'},
- '57305216':{'en': 'Tigo'},
- '5730522':{'en': 'Tigo'},
- '5730523':{'en': 'Tigo'},
- '5730524':{'en': 'Tigo'},
- '5730525':{'en': 'Tigo'},
- '57305260':{'en': 'Tigo'},
- '57305261':{'en': 'Tigo'},
- '57305262':{'en': 'Tigo'},
- '57305263':{'en': 'Tigo'},
- '57305264':{'en': 'Tigo'},
- '57305265':{'en': 'Tigo'},
- '57305266':{'en': 'Tigo'},
- '573052670':{'en': 'Tigo'},
- '573052671':{'en': 'Tigo'},
- '5730527':{'en': 'Tigo'},
- '5730528':{'en': 'Tigo'},
- '5730529':{'en': 'Tigo'},
- '573053':{'en': 'Tigo'},
- '5730540':{'en': 'Movil Exito'},
- '5730541':{'en': 'Movil Exito'},
- '5730542':{'en': 'Movil Exito'},
- '5730543':{'en': 'Movil Exito'},
- '5730544':{'en': 'Movil Exito'},
- '5730545':{'en': 'Movil Exito'},
- '5730546':{'en': 'Movil Exito'},
- '5730547':{'en': 'Movil Exito'},
- '5730548':{'en': 'Movil Exito'},
- '5730550':{'en': 'Tigo'},
- '5730551':{'en': 'Tigo'},
- '5730552':{'en': 'Tigo'},
- '5730553':{'en': 'Tigo'},
- '5730554':{'en': 'Tigo'},
- '5730555':{'en': 'Tigo'},
- '5730556':{'en': 'Tigo'},
- '573057':{'en': 'Tigo'},
- '573058':{'en': 'Tigo'},
- '5730590':{'en': 'Tigo'},
- '5730591':{'en': 'Tigo'},
- '5730592':{'en': 'Tigo'},
- '5730593':{'en': 'Tigo'},
- '5730594':{'en': 'Tigo'},
- '5730595':{'en': 'Tigo'},
- '573102':{'en': 'Claro'},
- '573103':{'en': 'Claro'},
- '573104':{'en': 'Claro'},
- '573105':{'en': 'Claro'},
- '573106':{'en': 'Claro'},
- '573107':{'en': 'Claro'},
- '573108':{'en': 'Claro'},
- '5731091':{'en': 'Claro'},
- '5731092':{'en': 'Claro'},
- '5731093':{'en': 'Claro'},
- '57310990':{'en': 'Claro'},
- '57310991':{'en': 'Claro'},
- '573112':{'en': 'Claro'},
- '573113':{'en': 'Claro'},
- '573114':{'en': 'Claro'},
- '573115':{'en': 'Claro'},
- '573116':{'en': 'Claro'},
- '573117':{'en': 'Claro'},
- '573118':{'en': 'Claro'},
- '573122':{'en': 'Claro'},
- '573123':{'en': 'Claro'},
- '573124':{'en': 'Claro'},
- '573125':{'en': 'Claro'},
- '573126':{'en': 'Claro'},
- '573127':{'en': 'Claro'},
- '573128':{'en': 'Claro'},
- '573132':{'en': 'Claro'},
- '573133':{'en': 'Claro'},
- '573134':{'en': 'Claro'},
- '573135':{'en': 'Claro'},
- '573136':{'en': 'Claro'},
- '573137':{'en': 'Claro'},
- '573138':{'en': 'Claro'},
- '573142':{'en': 'Claro'},
- '573143':{'en': 'Claro'},
- '573144':{'en': 'Claro'},
- '573145':{'en': 'Claro'},
- '573146':{'en': 'Claro'},
- '573147':{'en': 'Claro'},
- '573148':{'en': 'Claro'},
- '57315':{'en': 'Movistar'},
- '57316':{'en': 'Movistar'},
 }
diff --git a/python/phonenumbers/carrierdata/data2.py b/python/phonenumbers/carrierdata/data2.py
index 8fc318ce..0391c519 100644
--- a/python/phonenumbers/carrierdata/data2.py
+++ b/python/phonenumbers/carrierdata/data2.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,132 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '5730463':{'en': 'Tigo'},
+ '5730464':{'en': 'Tigo'},
+ '5730465':{'en': 'Tigo'},
+ '5730466':{'en': 'Tigo'},
+ '5730467':{'en': 'Tigo'},
+ '57304680':{'en': 'Tigo'},
+ '57304681':{'en': 'Tigo'},
+ '57304682':{'en': 'Tigo'},
+ '57304683':{'en': 'Tigo'},
+ '57304684':{'en': 'Tigo'},
+ '573046851':{'en': 'Tigo'},
+ '573046852':{'en': 'Tigo'},
+ '573046853':{'en': 'Tigo'},
+ '573046854':{'en': 'Tigo'},
+ '573046855':{'en': 'Tigo'},
+ '573046856':{'en': 'Tigo'},
+ '573046857':{'en': 'Tigo'},
+ '573046858':{'en': 'Tigo'},
+ '573046859':{'en': 'Tigo'},
+ '57304686':{'en': 'Tigo'},
+ '57304687':{'en': 'Tigo'},
+ '57304688':{'en': 'Tigo'},
+ '57304689':{'en': 'Tigo'},
+ '5730469':{'en': 'Tigo'},
+ '5730470':{'en': 'Tigo'},
+ '5730471':{'en': 'Tigo'},
+ '5730472':{'en': 'Tigo'},
+ '57304730':{'en': 'Tigo'},
+ '57304731':{'en': 'Tigo'},
+ '57304732':{'en': 'Tigo'},
+ '57304733':{'en': 'Tigo'},
+ '57304734':{'en': 'Tigo'},
+ '57304735':{'en': 'Tigo'},
+ '5730474':{'en': 'Tigo'},
+ '5730475':{'en': 'Tigo'},
+ '5730520':{'en': 'Tigo'},
+ '57305210':{'en': 'Tigo'},
+ '57305211':{'en': 'Tigo'},
+ '57305212':{'en': 'Tigo'},
+ '57305213':{'en': 'Tigo'},
+ '57305214':{'en': 'Tigo'},
+ '57305215':{'en': 'Tigo'},
+ '57305216':{'en': 'Tigo'},
+ '5730522':{'en': 'Tigo'},
+ '5730523':{'en': 'Tigo'},
+ '5730524':{'en': 'Tigo'},
+ '5730525':{'en': 'Tigo'},
+ '57305260':{'en': 'Tigo'},
+ '57305261':{'en': 'Tigo'},
+ '57305262':{'en': 'Tigo'},
+ '57305263':{'en': 'Tigo'},
+ '57305264':{'en': 'Tigo'},
+ '57305265':{'en': 'Tigo'},
+ '57305266':{'en': 'Tigo'},
+ '573052670':{'en': 'Tigo'},
+ '573052671':{'en': 'Tigo'},
+ '5730527':{'en': 'Tigo'},
+ '5730528':{'en': 'Tigo'},
+ '5730529':{'en': 'Tigo'},
+ '573053':{'en': 'Tigo'},
+ '5730540':{'en': 'Movil Exito'},
+ '5730541':{'en': 'Movil Exito'},
+ '5730542':{'en': 'Movil Exito'},
+ '5730543':{'en': 'Movil Exito'},
+ '5730544':{'en': 'Movil Exito'},
+ '5730545':{'en': 'Movil Exito'},
+ '5730546':{'en': 'Movil Exito'},
+ '5730547':{'en': 'Movil Exito'},
+ '5730548':{'en': 'Movil Exito'},
+ '5730550':{'en': 'Tigo'},
+ '5730551':{'en': 'Tigo'},
+ '5730552':{'en': 'Tigo'},
+ '5730553':{'en': 'Tigo'},
+ '5730554':{'en': 'Tigo'},
+ '5730555':{'en': 'Tigo'},
+ '5730556':{'en': 'Tigo'},
+ '573057':{'en': 'Tigo'},
+ '573058':{'en': 'Tigo'},
+ '5730590':{'en': 'Tigo'},
+ '5730591':{'en': 'Tigo'},
+ '5730592':{'en': 'Tigo'},
+ '5730593':{'en': 'Tigo'},
+ '5730594':{'en': 'Tigo'},
+ '5730595':{'en': 'Tigo'},
+ '573102':{'en': 'Claro'},
+ '573103':{'en': 'Claro'},
+ '573104':{'en': 'Claro'},
+ '573105':{'en': 'Claro'},
+ '573106':{'en': 'Claro'},
+ '573107':{'en': 'Claro'},
+ '573108':{'en': 'Claro'},
+ '5731091':{'en': 'Claro'},
+ '5731092':{'en': 'Claro'},
+ '5731093':{'en': 'Claro'},
+ '57310990':{'en': 'Claro'},
+ '57310991':{'en': 'Claro'},
+ '573112':{'en': 'Claro'},
+ '573113':{'en': 'Claro'},
+ '573114':{'en': 'Claro'},
+ '573115':{'en': 'Claro'},
+ '573116':{'en': 'Claro'},
+ '573117':{'en': 'Claro'},
+ '573118':{'en': 'Claro'},
+ '573122':{'en': 'Claro'},
+ '573123':{'en': 'Claro'},
+ '573124':{'en': 'Claro'},
+ '573125':{'en': 'Claro'},
+ '573126':{'en': 'Claro'},
+ '573127':{'en': 'Claro'},
+ '573128':{'en': 'Claro'},
+ '573132':{'en': 'Claro'},
+ '573133':{'en': 'Claro'},
+ '573134':{'en': 'Claro'},
+ '573135':{'en': 'Claro'},
+ '573136':{'en': 'Claro'},
+ '573137':{'en': 'Claro'},
+ '573138':{'en': 'Claro'},
+ '573142':{'en': 'Claro'},
+ '573143':{'en': 'Claro'},
+ '573144':{'en': 'Claro'},
+ '573145':{'en': 'Claro'},
+ '573146':{'en': 'Claro'},
+ '573147':{'en': 'Claro'},
+ '573148':{'en': 'Claro'},
+ '57315':{'en': 'Movistar'},
+ '57316':{'en': 'Movistar'},
  '57317':{'en': 'Movistar'},
  '57318':{'en': 'Movistar'},
  '573192':{'en': 'Movistar'},
@@ -230,6 +356,8 @@ data = {
  '59269':{'en': 'Digicel Guyana'},
  '592700':{'en': 'Digicel Guyana'},
  '592701':{'en': 'Digicel Guyana'},
+ '592702':{'en': 'Digicel Guyana'},
+ '592703':{'en': 'Digicel Guyana'},
  '59393':{'en': 'Claro'},
  '5939586':{'en': 'Movistar'},
  '5939587':{'en': 'Movistar'},
@@ -663,6 +791,7 @@ data = {
  '601171':{'en': 'Celecom'},
  '6011710':{'en': 'DiGi'},
  '6011711':{'en': 'DiGi'},
+ '6011720':{'en': 'Celecom'},
  '6011721':{'en': 'Celecom'},
  '6011722':{'en': 'Maxis'},
  '6011723':{'en': 'Maxis'},
@@ -832,8 +961,7 @@ data = {
  '61476':{'en': 'Telstra'},
  '61477':{'en': 'Telstra'},
  '61478':{'en': 'Optus'},
- '614790':{'en': 'Optus'},
- '614791':{'en': 'Optus'},
+ '61479':{'en': 'Optus'},
  '614800':{'en': 'Pivotel Satellite'},
  '614801':{'en': 'Telstra'},
  '614803':{'en': 'Telstra'},
@@ -841,7 +969,12 @@ data = {
  '614808':{'en': 'Pivotel Satellite'},
  '61481':{'en': 'Optus'},
  '61482':{'en': 'Optus'},
- '61483':{'en': 'Telstra'},
+ '614830':{'en': 'Telstra'},
+ '614831':{'en': 'Telstra'},
+ '614832':{'en': 'Telstra'},
+ '614833':{'en': 'Telstra'},
+ '614838':{'en': 'Telstra'},
+ '614839':{'en': 'Optus'},
  '61484':{'en': 'Telstra'},
  '61485':{'en': 'TravelSIM'},
  '614858':{'en': 'Pivotel Satellite'},
@@ -856,9 +989,9 @@ data = {
  '62811':{'en': 'Telkomsel'},
  '62812':{'en': 'Telkomsel'},
  '62813':{'en': 'Telkomsel'},
- '62814':{'en': 'IM3'},
- '62815':{'en': 'IM3'},
- '62816':{'en': 'IM3'},
+ '62814':{'en': 'Indosat Ooredoo Hutchison'},
+ '62815':{'en': 'Indosat Ooredoo Hutchison'},
+ '62816':{'en': 'Indosat Ooredoo Hutchison'},
  '62817':{'en': 'XL'},
  '62818':{'en': 'XL'},
  '62819':{'en': 'XL'},
@@ -872,10 +1005,10 @@ data = {
  '62851':{'en': 'Telkomsel'},
  '62852':{'en': 'Telkomsel'},
  '62853':{'en': 'Telkomsel'},
- '62855':{'en': 'IM3'},
- '62856':{'en': 'IM3'},
- '62857':{'en': 'IM3'},
- '62858':{'en': 'IM3'},
+ '62855':{'en': 'Indosat Ooredoo Hutchison'},
+ '62856':{'en': 'Indosat Ooredoo Hutchison'},
+ '62857':{'en': 'Indosat Ooredoo Hutchison'},
+ '62858':{'en': 'Indosat Ooredoo Hutchison'},
  '62859':{'en': 'XL'},
  '62877':{'en': 'XL'},
  '62878':{'en': 'XL'},
@@ -886,11 +1019,11 @@ data = {
  '62887':{'en': 'Smartfren'},
  '62888':{'en': 'Smartfren'},
  '62889':{'en': 'Smartfren'},
- '62895':{'en': 'Hutchison'},
- '62896':{'en': '3'},
- '62897':{'en': '3'},
- '62898':{'en': '3'},
- '62899':{'en': '3'},
+ '62895':{'en': 'Indosat Ooredoo Hutchison'},
+ '62896':{'en': 'Indosat Ooredoo Hutchison'},
+ '62897':{'en': 'Indosat Ooredoo Hutchison'},
+ '62898':{'en': 'Indosat Ooredoo Hutchison'},
+ '62899':{'en': 'Indosat Ooredoo Hutchison'},
  '63813':{'en': 'Smart'},
  '6389':{'en': 'Dito'},
  '63905':{'en': 'Globe'},
@@ -1008,6 +1141,9 @@ data = {
  '658055':{'en': 'Geenet'},
  '658056':{'en': 'Simba'},
  '658057':{'en': 'Simba'},
+ '658058':{'en': 'Simba'},
+ '658059':{'en': 'M1'},
+ '65806':{'en': 'Simba'},
  '6581':{'en': 'StarHub'},
  '65810':{'en': 'M1'},
  '65812':{'en': 'SingTel'},
@@ -2122,9 +2258,174 @@ data = {
  '68587':{'en': 'Digicel'},
  '68662':{'en': 'Ocean Link'},
  '68663':{'en': 'Ocean Link'},
+ '68670':{'en': 'ATHKL'},
+ '68671':{'en': 'ATHKL'},
  '686720':{'en': 'ATHKL'},
+ '686721':{'en': 'ATHKL'},
+ '686722':{'en': 'ATHKL'},
+ '686723':{'en': 'ATHKL'},
+ '686724':{'en': 'ATHKL'},
+ '686725':{'en': 'ATHKL'},
+ '686726':{'en': 'ATHKL'},
+ '686728':{'en': 'ATHKL'},
+ '686729':{'en': 'ATHKL'},
  '686730':{'en': 'ATHKL'},
+ '68673101':{'en': 'ATHKL'},
+ '68673102':{'en': 'ATHKL'},
+ '68673103':{'en': 'ATHKL'},
+ '68673104':{'en': 'ATHKL'},
+ '68673105':{'en': 'ATHKL'},
+ '68673106':{'en': 'ATHKL'},
+ '68673107':{'en': 'ATHKL'},
+ '68673108':{'en': 'ATHKL'},
+ '68673109':{'en': 'ATHKL'},
+ '6867311':{'en': 'ATHKL'},
+ '6867312':{'en': 'ATHKL'},
+ '6867313':{'en': 'ATHKL'},
  '6867314':{'en': 'ATHKL'},
+ '6867315':{'en': 'ATHKL'},
+ '6867316':{'en': 'ATHKL'},
+ '6867317':{'en': 'ATHKL'},
+ '6867318':{'en': 'ATHKL'},
+ '6867319':{'en': 'ATHKL'},
+ '686732':{'en': 'ATHKL'},
+ '686733':{'en': 'ATHKL'},
+ '686734':{'en': 'ATHKL'},
+ '686735':{'en': 'ATHKL'},
+ '686736':{'en': 'ATHKL'},
+ '686737':{'en': 'ATHKL'},
+ '686738':{'en': 'ATHKL'},
+ '686739':{'en': 'ATHKL'},
+ '68674':{'en': 'ATHKL'},
+ '6867500':{'en': 'ATHKL'},
+ '6867501':{'en': 'ATHKL'},
+ '68675020':{'en': 'ATHKL'},
+ '68675023':{'en': 'ATHKL'},
+ '68675024':{'en': 'ATHKL'},
+ '68675025':{'en': 'ATHKL'},
+ '68675026':{'en': 'ATHKL'},
+ '68675027':{'en': 'ATHKL'},
+ '68675028':{'en': 'ATHKL'},
+ '68675029':{'en': 'ATHKL'},
+ '6867503':{'en': 'ATHKL'},
+ '6867504':{'en': 'ATHKL'},
+ '6867505':{'en': 'ATHKL'},
+ '6867506':{'en': 'ATHKL'},
+ '6867507':{'en': 'ATHKL'},
+ '6867508':{'en': 'ATHKL'},
+ '6867509':{'en': 'ATHKL'},
+ '6867510':{'en': 'ATHKL'},
+ '6867511':{'en': 'ATHKL'},
+ '68675120':{'en': 'ATHKL'},
+ '68675121':{'en': 'ATHKL'},
+ '68675122':{'en': 'ATHKL'},
+ '68675123':{'en': 'ATHKL'},
+ '68675124':{'en': 'ATHKL'},
+ '68675127':{'en': 'ATHKL'},
+ '68675128':{'en': 'ATHKL'},
+ '68675129':{'en': 'ATHKL'},
+ '6867513':{'en': 'ATHKL'},
+ '6867514':{'en': 'ATHKL'},
+ '6867515':{'en': 'ATHKL'},
+ '6867516':{'en': 'ATHKL'},
+ '6867517':{'en': 'ATHKL'},
+ '6867518':{'en': 'ATHKL'},
+ '6867519':{'en': 'ATHKL'},
+ '6867520':{'en': 'ATHKL'},
+ '6867521':{'en': 'ATHKL'},
+ '68675220':{'en': 'ATHKL'},
+ '68675221':{'en': 'ATHKL'},
+ '68675222':{'en': 'ATHKL'},
+ '68675223':{'en': 'ATHKL'},
+ '68675224':{'en': 'ATHKL'},
+ '68675225':{'en': 'ATHKL'},
+ '68675226':{'en': 'ATHKL'},
+ '68675227':{'en': 'ATHKL'},
+ '6867523':{'en': 'ATHKL'},
+ '6867524':{'en': 'ATHKL'},
+ '6867525':{'en': 'ATHKL'},
+ '6867526':{'en': 'ATHKL'},
+ '6867527':{'en': 'ATHKL'},
+ '6867528':{'en': 'ATHKL'},
+ '6867529':{'en': 'ATHKL'},
+ '68675301':{'en': 'ATHKL'},
+ '68675302':{'en': 'ATHKL'},
+ '68675303':{'en': 'ATHKL'},
+ '68675304':{'en': 'ATHKL'},
+ '68675305':{'en': 'ATHKL'},
+ '68675306':{'en': 'ATHKL'},
+ '68675307':{'en': 'ATHKL'},
+ '68675308':{'en': 'ATHKL'},
+ '68675309':{'en': 'ATHKL'},
+ '6867531':{'en': 'ATHKL'},
+ '6867532':{'en': 'ATHKL'},
+ '6867533':{'en': 'ATHKL'},
+ '6867534':{'en': 'ATHKL'},
+ '6867535':{'en': 'ATHKL'},
+ '6867536':{'en': 'ATHKL'},
+ '6867537':{'en': 'ATHKL'},
+ '68675380':{'en': 'ATHKL'},
+ '68675382':{'en': 'ATHKL'},
+ '68675383':{'en': 'ATHKL'},
+ '68675384':{'en': 'ATHKL'},
+ '68675385':{'en': 'ATHKL'},
+ '68675386':{'en': 'ATHKL'},
+ '68675387':{'en': 'ATHKL'},
+ '68675388':{'en': 'ATHKL'},
+ '68675389':{'en': 'ATHKL'},
+ '6867539':{'en': 'ATHKL'},
+ '68675401':{'en': 'ATHKL'},
+ '68675402':{'en': 'ATHKL'},
+ '68675403':{'en': 'ATHKL'},
+ '68675404':{'en': 'ATHKL'},
+ '68675405':{'en': 'ATHKL'},
+ '68675406':{'en': 'ATHKL'},
+ '68675407':{'en': 'ATHKL'},
+ '68675408':{'en': 'ATHKL'},
+ '68675409':{'en': 'ATHKL'},
+ '6867541':{'en': 'ATHKL'},
+ '6867542':{'en': 'ATHKL'},
+ '6867543':{'en': 'ATHKL'},
+ '6867544':{'en': 'ATHKL'},
+ '6867545':{'en': 'ATHKL'},
+ '6867546':{'en': 'ATHKL'},
+ '6867547':{'en': 'ATHKL'},
+ '68675480':{'en': 'ATHKL'},
+ '68675482':{'en': 'ATHKL'},
+ '68675483':{'en': 'ATHKL'},
+ '68675484':{'en': 'ATHKL'},
+ '68675485':{'en': 'ATHKL'},
+ '68675486':{'en': 'ATHKL'},
+ '68675487':{'en': 'ATHKL'},
+ '68675488':{'en': 'ATHKL'},
+ '68675489':{'en': 'ATHKL'},
+ '6867549':{'en': 'ATHKL'},
+ '68675501':{'en': 'ATHKL'},
+ '68675502':{'en': 'ATHKL'},
+ '68675503':{'en': 'ATHKL'},
+ '68675504':{'en': 'ATHKL'},
+ '68675505':{'en': 'ATHKL'},
+ '68675506':{'en': 'ATHKL'},
+ '68675507':{'en': 'ATHKL'},
+ '68675508':{'en': 'ATHKL'},
+ '68675509':{'en': 'ATHKL'},
+ '6867551':{'en': 'ATHKL'},
+ '6867552':{'en': 'ATHKL'},
+ '6867553':{'en': 'ATHKL'},
+ '6867554':{'en': 'ATHKL'},
+ '6867555':{'en': 'ATHKL'},
+ '6867556':{'en': 'ATHKL'},
+ '6867557':{'en': 'ATHKL'},
+ '6867558':{'en': 'ATHKL'},
+ '6867559':{'en': 'ATHKL'},
+ '686756':{'en': 'ATHKL'},
+ '686757':{'en': 'ATHKL'},
+ '686758':{'en': 'ATHKL'},
+ '686759':{'en': 'ATHKL'},
+ '68676':{'en': 'ATHKL'},
+ '68677':{'en': 'ATHKL'},
+ '68678':{'en': 'ATHKL'},
+ '68679':{'en': 'ATHKL'},
  '6875':{'en': 'OPT-NC'},
  '6877':{'en': 'OPT-NC'},
  '68780':{'en': 'OPT-NC'},
@@ -2159,7 +2460,9 @@ data = {
  '69197':{'en': 'FSMTC'},
  '69223':{'en': 'National Telecommunications Authority'},
  '6923':{'en': 'National Telecommunications Authority'},
- '6924':{'en': 'National Telecommunications Authority'},
+ '692453':{'en': 'National Telecommunications Authority'},
+ '692455':{'en': 'National Telecommunications Authority'},
+ '692456':{'en': 'National Telecommunications Authority'},
  '69254':{'en': 'National Telecommunications Authority'},
  '7700':{'en': 'Altel', 'ru': u('\u0410\u041b\u0422\u0415\u041b')},
  '7701':{'en': 'Kcell/Activ', 'ru': 'Kcell/Activ'},
@@ -2275,6 +2578,8 @@ data = {
  '79010134':{'en': 'Tele2', 'ru': 'Tele2'},
  '79010135':{'en': 'Tele2', 'ru': 'Tele2'},
  '79010136':{'en': 'Tele2', 'ru': 'Tele2'},
+ '79010138':{'en': 'Multiregional Transit Telecom (MTT)', 'ru': u('\u041e\u0410\u041e \u041c\u0422\u0422')},
+ '79010139':{'en': 'Multiregional Transit Telecom (MTT)', 'ru': u('\u041e\u0410\u041e \u041c\u0422\u0422')},
  '7901014':{'en': 'Tele2', 'ru': 'Tele2'},
  '7901015':{'en': 'Tele2', 'ru': 'Tele2'},
  '7901016':{'en': 'Tele2', 'ru': 'Tele2'},
@@ -3209,6 +3514,11 @@ data = {
  '817055':{'en': 'Softbank'},
  '817056':{'en': 'Softbank'},
  '8170581':{'en': 'Softbank'},
+ '8170585':{'en': 'KDDI'},
+ '8170586':{'en': 'KDDI'},
+ '8170587':{'en': 'KDDI'},
+ '8170588':{'en': 'KDDI'},
+ '8170589':{'en': 'KDDI'},
  '817059':{'en': 'KDDI'},
  '817061':{'en': 'Softbank'},
  '817062':{'en': 'Softbank'},
@@ -4278,7 +4588,8 @@ data = {
  '882342':{'en': 'BebbiCell AG'},
  '882347':{'en': 'BebbiCell AG'},
  '88237':{'en': 'AT&T Cingular Wireless Network'},
- '8824':{'en': 'Monaco Telecom'},
+ '88249':{'en': 'Monaco Telecom'},
+ '88250':{'en': 'Phonegroup'},
  '8864000':{'en': 'Chunghwa Telecom'},
  '886900':{'en': 'FarEasTone'},
  '8869006':{'en': 'Chunghwa Telecom'},
@@ -4454,6 +4765,7 @@ data = {
  '90510221':{'en': 'Netgsm'},
  '90510222':{'en': 'Netgsm'},
  '90510223':{'en': 'Netgsm'},
+ '90510227':{'en': 'Netgsm'},
  '90510232':{'en': 'Foniv Telecommunications Services'},
  '90510244':{'en': 'Nida Telekomunikasyon'},
  '90510255':{'en': 'TTM'},
@@ -7790,14 +8102,7 @@ data = {
  '95997':{'en': 'Ooredoo'},
  '95998':{'en': 'Ooredoo'},
  '9607':{'en': 'Dhiraagu'},
- '96091':{'en': 'Ooredoo'},
- '96093':{'en': 'Ooredoo'},
- '96094':{'en': 'Ooredoo'},
- '96095':{'en': 'Ooredoo'},
- '96096':{'en': 'Ooredoo'},
- '96097':{'en': 'Ooredoo'},
- '96098':{'en': 'Ooredoo'},
- '96099':{'en': 'Ooredoo'},
+ '9609':{'en': 'Ooredoo'},
  '96130':{'en': 'Touch'},
  '96131':{'en': 'Alfa'},
  '96132':{'en': 'Alfa'},
@@ -7914,6 +8219,7 @@ data = {
  '96771':{'en': 'SabaFon'},
  '96773':{'en': 'MTN'},
  '96777':{'en': 'Yemen Mobile'},
+ '96778':{'en': 'Yemen Mobile'},
  '9681':{'en': 'Ooredoo'},
  '96871':{'en': 'Omantel'},
  '96872':{'en': 'Omantel'},
@@ -8009,8 +8315,6 @@ data = {
  '9736675':{'en': 'Batelco'},
  '9736676':{'en': 'Batelco'},
  '973669':{'en': 'zain BH'},
- '97428':{'en': 'ooredoo'},
- '97429':{'en': 'Vodafone'},
  '97430':{'en': 'Vodafone'},
  '974310':{'en': 'Vodafone'},
  '974311':{'en': 'Vodafone'},
@@ -8043,7 +8347,9 @@ data = {
  '97577':{'en': 'TashiCell of Tashi InfoComm'},
  '97650':{'en': 'Unitel'},
  '97655':{'en': 'Unitel'},
- '9766':{'en': 'ONDO'},
+ '97660':{'en': 'ONDO'},
+ '97666':{'en': 'ONDO'},
+ '97669':{'en': 'Skytel'},
  '97680':{'en': 'Unitel'},
  '97681':{'en': 'ONDO'},
  '97683':{'en': 'G-Mobile'},
@@ -8089,6 +8395,7 @@ data = {
  '98994':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
  '98996':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
  '989981':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 \u0645\u0648\u0628\u0627\u06cc\u0644')},
+ '989982':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 \u0645\u0648\u0628\u0627\u06cc\u0644')},
  '9899900':{'en': 'LOTUSTEL', 'fa': u('\u0644\u0648\u062a\u0648\u0633\u200c\u062a\u0644')},
  '9899902':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
  '989991':{'en': 'Irancell', 'fa': u('\u0627\u06cc\u0631\u0627\u0646\u0633\u0644')},
@@ -8110,7 +8417,9 @@ data = {
  '99270':{'en': 'Tcell'},
  '99271':{'en': 'Babilon-M'},
  '99277':{'en': 'Tcell'},
+ '99278':{'en': 'Megafon'},
  '99280':{'en': 'Tacom'},
+ '99287':{'en': 'Megafon'},
  '99288':{'en': 'Megafon'},
  '99290':{'en': 'Megafon'},
  '99291':{'en': 'Tacom'},
@@ -8118,6 +8427,7 @@ data = {
  '99292':{'en': 'Tcell'},
  '99293':{'en': 'Tcell'},
  '99294':{'en': 'Babilon-M'},
+ '99297':{'en': 'Megafon'},
  '99298':{'en': 'Babilon-M'},
  '99299':{'en': 'Tcell'},
  '99361':{'en': 'TM-Cell'},
@@ -8139,30 +8449,49 @@ data = {
  '9946':{'en': 'Naxtel'},
  '9947':{'en': 'Nar Mobile'},
  '99499':{'en': 'Bakcell'},
- '9955000':{'en': 'Mobilaive'},
+ '9955000':{'en': 'Silknet'},
+ '9955004':{'en': 'Silknet'},
  '99550050':{'en': 'MagtiCom'},
  '99550055':{'en': 'Silknet'},
- '9955007':{'en': 'MyPhone'},
- '995505':{'en': 'MagtiCom'},
- '995511':{'en': 'MagtiCom'},
+ '99550070':{'en': 'MyPhone'},
+ '99550077':{'en': 'Silknet'},
+ '9955008':{'en': 'Silknet'},
+ '9955009':{'en': 'Silknet'},
+ '9955050':{'en': 'Silknet'},
+ '9955055':{'en': 'MagtiCom'},
+ '995510':{'en': 'Silknet'},
+ '99551100':{'en': 'MagtiCom'},
+ '99551107':{'en': 'Silknet'},
+ '9955111':{'en': 'MagtiCom'},
+ '9955112':{'en': 'MagtiCom'},
+ '9955113':{'en': 'MagtiCom'},
+ '9955114':{'en': 'MagtiCom'},
  '9955115':{'en': 'Silknet'},
- '995514':{'en': 'Geocell'},
+ '9955117':{'en': 'MagtiCom'},
+ '995514':{'en': 'Silknet'},
  '995515':{'en': 'MagtiCom'},
  '995517':{'en': 'MagtiCom'},
- '99552':{'en': 'MagtiCom'},
- '99553':{'en': 'MagtiCom'},
+ '995520':{'en': 'Silknet'},
+ '99552222':{'en': 'MagtiCom'},
+ '99552225':{'en': 'Silknet'},
+ '9955225':{'en': 'Silknet'},
+ '995530':{'en': 'Silknet'},
+ '9955333':{'en': 'MagtiCom'},
+ '9955335':{'en': 'Silknet'},
+ '995540':{'en': 'Silknet'},
  '99554444':{'en': 'MagtiCom'},
+ '9955445':{'en': 'Silknet'},
  '995550':{'en': 'MagtiCom'},
- '99555000':{'en': 'Geocell'},
- '99555005':{'en': 'Geocell'},
- '99555050':{'en': 'Geocell'},
+ '99555000':{'en': 'Silknet'},
+ '99555005':{'en': 'Silknet'},
+ '99555050':{'en': 'Silknet'},
  '99555055':{'en': 'Datacom'},
  '995551':{'en': 'MagtiCom'},
  '9955520':{'en': 'Premium Net International SRL'},
  '9955522':{'en': 'Asanet'},
- '995555':{'en': 'Geocell'},
- '995557':{'en': 'Geocell'},
- '995558':{'en': 'Geocell'},
+ '995555':{'en': 'Silknet'},
+ '995557':{'en': 'Silknet'},
+ '995558':{'en': 'Silknet'},
  '995559':{'en': 'Globalcell'},
  '995559995':{'en': 'DataHouse Global'},
  '995559996':{'en': 'DataHouse Global'},
@@ -8178,15 +8507,15 @@ data = {
  '99557575':{'en': 'Silknet'},
  '99557577':{'en': 'MagtiCom'},
  '99557578':{'en': 'MagtiCom'},
- '995577':{'en': 'Geocell'},
+ '995577':{'en': 'Silknet'},
  '995579':{'en': 'Veon'},
  '995580':{'en': 'Silknet'},
  '995585':{'en': 'MagtiCom'},
- '9955885':{'en': 'Silknet'},
- '9955888':{'en': 'Geocell'},
+ '995588':{'en': 'Silknet'},
+ '995590':{'en': 'Silknet'},
  '995591':{'en': 'MagtiCom'},
  '995592':{'en': 'Veon'},
- '995593':{'en': 'Geocell'},
+ '995593':{'en': 'Silknet'},
  '995595':{'en': 'MagtiCom'},
  '995596':{'en': 'MagtiCom'},
  '995597':{'en': 'Veon'},
@@ -8204,6 +8533,7 @@ data = {
  '99655':{'en': 'ALFA Telecom'},
  '99656':{'en': 'Winline'},
  '99657':{'en': 'Sotel'},
+ '996600':{'en': 'Sky mobile'},
  '99670':{'en': 'Nur Telecom'},
  '99675':{'en': 'ALFA Telecom'},
  '99677':{'en': 'Sky mobile'},
@@ -8214,8 +8544,8 @@ data = {
  '996997':{'en': 'ALFA Telecom'},
  '996998':{'en': 'ALFA Telecom'},
  '996999':{'en': 'ALFA Telecom'},
- '9983':{'en': 'Uzbektelecom'},
- '998555':{'en': 'Uzbektelecom'},
+ '9983':{'en': 'HUMANS'},
+ '99850':{'en': 'Ucell'},
  '99861220':{'en': 'MobiUZ'},
  '99861221':{'en': 'MobiUZ'},
  '9986129':{'en': 'MobiUZ'},
diff --git a/python/phonenumbers/data/__init__.py b/python/phonenumbers/data/__init__.py
index d3084f96..f087c57d 100644
--- a/python/phonenumbers/data/__init__.py
+++ b/python/phonenumbers/data/__init__.py
@@ -1,5 +1,5 @@
 """Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/data/alt_format_7.py b/python/phonenumbers/data/alt_format_7.py
index 9b9bd209..7e164e11 100644
--- a/python/phonenumbers/data/alt_format_7.py
+++ b/python/phonenumbers/data/alt_format_7.py
@@ -1,4 +1,4 @@
 """Auto-generated file, do not edit by hand. 7 metadata"""
 from ..phonemetadata import NumberFormat
 
-PHONE_ALT_FORMAT_7 = [NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3489]|7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))']), NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[3489]|7(?:1(?:[06][3-6]|[13-5][3-5]|2[35]|8[34])|2(?:[1-38][3-5]|[49][35]|5[3-6]|6|7[457]))']), NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1|2(?:[1-689]|7[2457]))']), NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]|7(?:[04-8]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{3})(\\d)(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[3489]|7(?:[04-8]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]'])]
+PHONE_ALT_FORMAT_7 = [NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3489]|7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))']), NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[3489]|72(?:6|7[457])|7(?:12|2[49])[35]|7(?:1[13-58]|2[1-38])[3-5]|7(?:1[06]|25)[3-6]']), NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1|2(?:[1-689]|7[2457]))']), NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]|7(?:[04-9]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{3})(\\d)(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[3489]|7(?:[04-9]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]'])]
diff --git a/python/phonenumbers/data/region_882.py b/python/phonenumbers/data/region_882.py
index 0872b09c..37b49156 100644
--- a/python/phonenumbers/data/region_882.py
+++ b/python/phonenumbers/data/region_882.py
@@ -2,15 +2,15 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_882 = PhoneMetadata(id='001', country_code=882, international_prefix=None,
-    general_desc=PhoneNumberDesc(national_number_pattern='[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|(?:[19]\\d|49)\\d{6}', possible_length=(7, 8, 9, 10, 11, 12)),
-    mobile=PhoneNumberDesc(national_number_pattern='342\\d{4}|(?:337|49)\\d{6}|3(?:2|47|7\\d{3})\\d{7}', example_number='3421234', possible_length=(7, 8, 9, 10, 12)),
-    voip=PhoneNumberDesc(national_number_pattern='1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}', example_number='390123456789', possible_length=(7, 8, 9, 10, 11, 12)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?', possible_length=(7, 8, 9, 10, 11, 12)),
+    mobile=PhoneNumberDesc(national_number_pattern='342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}', example_number='3421234', possible_length=(7, 8, 9, 10, 12)),
+    voip=PhoneNumberDesc(national_number_pattern='1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}', example_number='390123456789', possible_length=(7, 8, 9, 10, 11, 12)),
     voicemail=PhoneNumberDesc(national_number_pattern='348[57]\\d{7}', example_number='34851234567', possible_length=(11,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['16|342']),
-        NumberFormat(pattern='(\\d{2})(\\d{6})', format='\\1 \\2', leading_digits_pattern=['4']),
-        NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[19]']),
+        NumberFormat(pattern='(\\d{2})(\\d{6})', format='\\1 \\2', leading_digits_pattern=['49']),
+        NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1[36]|9']),
         NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['3[23]']),
-        NumberFormat(pattern='(\\d{2})(\\d{3,4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1']),
-        NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['34[57]']),
+        NumberFormat(pattern='(\\d{2})(\\d{3,4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['16']),
+        NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|23|3(?:[15]|4[57])|4|51']),
         NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['34']),
-        NumberFormat(pattern='(\\d{2})(\\d{4,5})(\\d{5})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-3]'])])
+        NumberFormat(pattern='(\\d{2})(\\d{4,5})(\\d{5})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-35]'])])
diff --git a/python/phonenumbers/data/region_883.py b/python/phonenumbers/data/region_883.py
index 05194d0d..dd2da957 100644
--- a/python/phonenumbers/data/region_883.py
+++ b/python/phonenumbers/data/region_883.py
@@ -2,9 +2,10 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_883 = PhoneMetadata(id='001', country_code=883, international_prefix=None,
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:210|370\\d\\d)\\d{7}|51\\d{7}(?:\\d{3})?', possible_length=(9, 10, 12)),
-    voip=PhoneNumberDesc(national_number_pattern='(?:210|(?:370[1-9]|51[013]0)\\d)\\d{7}|5100\\d{5}', example_number='510012345', possible_length=(9, 10, 12)),
-    number_format=[NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['510']),
-        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['2']),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:[1-4]\\d|51)\\d{6,10}', possible_length=(8, 9, 10, 11, 12)),
+    voip=PhoneNumberDesc(national_number_pattern='(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}', example_number='510012345', possible_length=(8, 9, 10, 11, 12)),
+    number_format=[NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2,8})', format='\\1 \\2 \\3', leading_digits_pattern=['[14]|2[24-689]|3[02-689]|51[24-9]']),
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['510']),
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['21']),
         NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['51[13]']),
-        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[35]'])])
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[235]'])])
diff --git a/python/phonenumbers/data/region_AG.py b/python/phonenumbers/data/region_AG.py
index 233ca09c..9ecfb0c9 100644
--- a/python/phonenumbers/data/region_AG.py
+++ b/python/phonenumbers/data/region_AG.py
@@ -7,11 +7,11 @@ PHONE_METADATA_AG = PhoneMetadata(id='AG', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}', example_number='2684641234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='26848[01]\\d{4}', example_number='2684801234', possible_length=(10,), possible_length_local_only=(7,)),
     pager=PhoneNumberDesc(national_number_pattern='26840[69]\\d{4}', example_number='2684061234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([457]\\d{6})$',
+    national_prefix_for_parsing='([457]\\d{6})$|1',
     national_prefix_transform_rule='268\\1',
     leading_digits='268',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_AI.py b/python/phonenumbers/data/region_AI.py
index a2f69bff..92c2d67a 100644
--- a/python/phonenumbers/data/region_AI.py
+++ b/python/phonenumbers/data/region_AI.py
@@ -7,10 +7,10 @@ PHONE_METADATA_AI = PhoneMetadata(id='AI', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}', example_number='2642351234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     pager=PhoneNumberDesc(national_number_pattern='264724\\d{4}', example_number='2647241234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2457]\\d{6})$',
+    national_prefix_for_parsing='([2457]\\d{6})$|1',
     national_prefix_transform_rule='264\\1',
     leading_digits='264',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_AS.py b/python/phonenumbers/data/region_AS.py
index 1801d1dc..358f0477 100644
--- a/python/phonenumbers/data/region_AS.py
+++ b/python/phonenumbers/data/region_AS.py
@@ -4,11 +4,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_AS = PhoneMetadata(id='AS', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|684|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='6846(?:22|33|44|55|77|88|9[19])\\d{4}', example_number='6846221234', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\d{4}', example_number='6847331234', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}', example_number='6847331234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([267]\\d{6})$',
+    national_prefix_for_parsing='([267]\\d{6})$|1',
     national_prefix_transform_rule='684\\1',
     leading_digits='684')
diff --git a/python/phonenumbers/data/region_AT.py b/python/phonenumbers/data/region_AT.py
index 0faedbb2..341c5e6d 100644
--- a/python/phonenumbers/data/region_AT.py
+++ b/python/phonenumbers/data/region_AT.py
@@ -11,7 +11,8 @@ PHONE_METADATA_AT = PhoneMetadata(id='AT', country_code=43, international_prefix
     voip=PhoneNumberDesc(national_number_pattern='5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}', example_number='780123456', possible_length=(5, 6, 7, 8, 9, 10, 11, 12, 13)),
     national_prefix='0',
     national_prefix_for_parsing='0',
-    number_format=[NumberFormat(pattern='(\\d)(\\d{3,12})', format='\\1 \\2', leading_digits_pattern=['1(?:11|[2-9])'], national_prefix_formatting_rule='0\\1'),
+    number_format=[NumberFormat(pattern='(\\d{4})', format='\\1', leading_digits_pattern=['14']),
+        NumberFormat(pattern='(\\d)(\\d{3,12})', format='\\1 \\2', leading_digits_pattern=['1(?:11|[2-9])'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{3})(\\d{2})', format='\\1 \\2', leading_digits_pattern=['517'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{3,5})', format='\\1 \\2', leading_digits_pattern=['5[079]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{6})', format='\\1', leading_digits_pattern=['[18]']),
diff --git a/python/phonenumbers/data/region_AU.py b/python/phonenumbers/data/region_AU.py
index 6ee2f123..f608a4b4 100644
--- a/python/phonenumbers/data/region_AU.py
+++ b/python/phonenumbers/data/region_AU.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}', possible_length=(5, 6, 7, 8, 9, 10, 12)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}', example_number='212345678', possible_length=(9,), possible_length_local_only=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
@@ -13,7 +13,7 @@ PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, international_prefix
     no_international_dialling=PhoneNumberDesc(national_number_pattern='1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}', possible_length=(6, 7, 8, 10, 12)),
     preferred_international_prefix='0011',
     national_prefix='0',
-    national_prefix_for_parsing='0|(183[12])',
+    national_prefix_for_parsing='(183[12])|0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{3,4})', format='\\1 \\2', leading_digits_pattern=['16'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['13']),
         NumberFormat(pattern='(\\d{3})(\\d{3})', format='\\1 \\2', leading_digits_pattern=['19']),
diff --git a/python/phonenumbers/data/region_BB.py b/python/phonenumbers/data/region_BB.py
index 2b100a6f..7e1ced08 100644
--- a/python/phonenumbers/data/region_BB.py
+++ b/python/phonenumbers/data/region_BB.py
@@ -7,11 +7,11 @@ PHONE_METADATA_BB = PhoneMetadata(id='BB', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}', example_number='2462501234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='(?:246976|900[2-9]\\d\\d)\\d{4}', example_number='9002123456', possible_length=(10,), possible_length_local_only=(7,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='24631\\d{5}', example_number='2463101234', possible_length=(10,), possible_length_local_only=(7,)),
     uan=PhoneNumberDesc(national_number_pattern='246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}', example_number='2464301234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-9]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='246\\1',
     leading_digits='246',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BD.py b/python/phonenumbers/data/region_BD.py
index fd05362b..6294d5b8 100644
--- a/python/phonenumbers/data/region_BD.py
+++ b/python/phonenumbers/data/region_BD.py
@@ -10,6 +10,6 @@ PHONE_METADATA_BD = PhoneMetadata(id='BD', country_code=880, international_prefi
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{4,6})', format='\\1-\\2', leading_digits_pattern=['31[5-8]|[459]1'], national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{3})(\\d{3,7})', format='\\1-\\2', leading_digits_pattern=['3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]'], national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{3})(\\d{3,7})', format='\\1-\\2', leading_digits_pattern=['3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{4})(\\d{3,6})', format='\\1-\\2', leading_digits_pattern=['[13-9]|22'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d)(\\d{7,8})', format='\\1-\\2', leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_BE.py b/python/phonenumbers/data/region_BE.py
index 7a6c843f..2ce759e4 100644
--- a/python/phonenumbers/data/region_BE.py
+++ b/python/phonenumbers/data/region_BE.py
@@ -6,7 +6,7 @@ PHONE_METADATA_BE = PhoneMetadata(id='BE', country_code=32, international_prefix
     fixed_line=PhoneNumberDesc(national_number_pattern='80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}', example_number='12345678', possible_length=(8,)),
     mobile=PhoneNumberDesc(national_number_pattern='4[5-9]\\d{7}', example_number='470123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800[1-9]\\d{4}', example_number='80012345', possible_length=(8,)),
-    premium_rate=PhoneNumberDesc(national_number_pattern='(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90(?:0[0-8]|1[36]|2[0-3568]|3[0-689]|[47][2-68]|5[1-68]|6[0-378]|9[34679]))\\d{4}', example_number='90012345', possible_length=(8,)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90\\d\\d)\\d{4}', example_number='90012345', possible_length=(8,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='7879\\d{4}', example_number='78791234', possible_length=(8,)),
     uan=PhoneNumberDesc(national_number_pattern='78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}', example_number='78102345', possible_length=(8,)),
     national_prefix='0',
diff --git a/python/phonenumbers/data/region_BG.py b/python/phonenumbers/data/region_BG.py
index 50459bc3..1fb048b3 100644
--- a/python/phonenumbers/data/region_BG.py
+++ b/python/phonenumbers/data/region_BG.py
@@ -2,10 +2,10 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BG = PhoneMetadata(id='BG', country_code=359, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}', possible_length=(6, 7, 8, 9), possible_length_local_only=(4, 5)),
+    general_desc=PhoneNumberDesc(national_number_pattern='00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}', possible_length=(6, 7, 8, 9, 12), possible_length_local_only=(4, 5)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}', example_number='2123456', possible_length=(6, 7, 8), possible_length_local_only=(4, 5)),
     mobile=PhoneNumberDesc(national_number_pattern='(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}', example_number='43012345', possible_length=(8, 9)),
-    toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='(?:00800\\d\\d|800)\\d{5}', example_number='80012345', possible_length=(8, 12)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{6}', example_number='90123456', possible_length=(8,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='700\\d{5}', example_number='70012345', possible_length=(8,)),
     national_prefix='0',
diff --git a/python/phonenumbers/data/region_BI.py b/python/phonenumbers/data/region_BI.py
index 9afb907e..eb40a76f 100644
--- a/python/phonenumbers/data/region_BI.py
+++ b/python/phonenumbers/data/region_BI.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_BI = PhoneMetadata(id='BI', country_code=257, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[267]\\d|31)\\d{6}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:22|31)\\d{6}', example_number='22201234', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:29|6[1257-9]|7[125-9])\\d{6}', example_number='79561234', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:29|[67][125-9])\\d{6}', example_number='79561234', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2367]'])])
diff --git a/python/phonenumbers/data/region_BJ.py b/python/phonenumbers/data/region_BJ.py
index 1aad6cc5..a8a0bea4 100644
--- a/python/phonenumbers/data/region_BJ.py
+++ b/python/phonenumbers/data/region_BJ.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BJ = PhoneMetadata(id='BJ', country_code=229, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:[25689]\\d|40)\\d{6}', possible_length=(8,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[24-689]\\d{7}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2(?:02|1[037]|2[45]|3[68]|4\\d)\\d{5}', example_number='20211234', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:40|5[1-9]|6\\d|9[013-9])\\d{6}', example_number='90011234', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:4[0-356]|[56]\\d|9[013-9])\\d{6}', example_number='90011234', possible_length=(8,)),
     voip=PhoneNumberDesc(national_number_pattern='857[58]\\d{4}', example_number='85751234', possible_length=(8,)),
     uan=PhoneNumberDesc(national_number_pattern='81\\d{6}', example_number='81123456', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[24-689]'])])
diff --git a/python/phonenumbers/data/region_BL.py b/python/phonenumbers/data/region_BL.py
index bc5ead81..517a607d 100644
--- a/python/phonenumbers/data/region_BL.py
+++ b/python/phonenumbers/data/region_BL.py
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BL = PhoneMetadata(id='BL', country_code=590, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='590(?:2[7-9]|5[12]|87)\\d{4}', example_number='590271234', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
-    voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BM.py b/python/phonenumbers/data/region_BM.py
index 62c075bf..a2664d85 100644
--- a/python/phonenumbers/data/region_BM.py
+++ b/python/phonenumbers/data/region_BM.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_BM = PhoneMetadata(id='BM', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:441|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}', example_number='4414123456', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='441(?:[2378]\\d|5[0-39])\\d{5}', example_number='4413701234', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='441(?:[2378]\\d|5[0-39]|92)\\d{5}', example_number='4413701234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-8]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='441\\1',
     leading_digits='441',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BS.py b/python/phonenumbers/data/region_BS.py
index 747be3b7..170f3894 100644
--- a/python/phonenumbers/data/region_BS.py
+++ b/python/phonenumbers/data/region_BS.py
@@ -3,14 +3,14 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BS = PhoneMetadata(id='BS', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:242|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}', example_number='2423456789', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}', example_number='2423456789', possible_length=(10,), possible_length_local_only=(7,)),
     mobile=PhoneNumberDesc(national_number_pattern='242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}', example_number='2423591234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,), possible_length_local_only=(7,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='242225\\d{4}', example_number='2422250123', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([3-8]\\d{6})$',
+    national_prefix_for_parsing='([3-8]\\d{6})$|1',
     national_prefix_transform_rule='242\\1',
     leading_digits='242',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BW.py b/python/phonenumbers/data/region_BW.py
index 402523bc..02a4c0ef 100644
--- a/python/phonenumbers/data/region_BW.py
+++ b/python/phonenumbers/data/region_BW.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_BW = PhoneMetadata(id='BW', country_code=267, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}', possible_length=(7, 8, 10)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}', example_number='2401234', possible_length=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:321|7(?:[1-7]\\d|8[01]))\\d{5}', example_number='71123456', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}', example_number='71123456', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:0800|800\\d)\\d{6}', example_number='0800012345', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{5}', example_number='9012345', possible_length=(7,)),
     voip=PhoneNumberDesc(national_number_pattern='79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}', example_number='79101234', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_CA.py b/python/phonenumbers/data/region_CA.py
index 7ba31722..6a7c2539 100644
--- a/python/phonenumbers/data/region_CA.py
+++ b/python/phonenumbers/data/region_CA.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_CA = PhoneMetadata(id='CA', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-8]\\d|90)\\d{8}|3\\d{6}', possible_length=(7, 10)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='600[2-9]\\d{6}', example_number='6002012345', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='310\\d{4}', example_number='3101234', possible_length=(7,)),
     national_prefix='1',
diff --git a/python/phonenumbers/data/region_CC.py b/python/phonenumbers/data/region_CC.py
index 910f6c2b..94067d84 100644
--- a/python/phonenumbers/data/region_CC.py
+++ b/python/phonenumbers/data/region_CC.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CC = PhoneMetadata(id='CC', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}', possible_length=(6, 7, 8, 9, 10, 12)),
     fixed_line=PhoneNumberDesc(national_number_pattern='8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}', example_number='891621234', possible_length=(9,), possible_length_local_only=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
     voip=PhoneNumberDesc(national_number_pattern='14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}', example_number='147101234', possible_length=(9,)),
     preferred_international_prefix='0011',
     national_prefix='0',
-    national_prefix_for_parsing='0|([59]\\d{7})$',
+    national_prefix_for_parsing='([59]\\d{7})$|0',
     national_prefix_transform_rule='8\\1')
diff --git a/python/phonenumbers/data/region_CF.py b/python/phonenumbers/data/region_CF.py
index c74d9839..72a0689e 100644
--- a/python/phonenumbers/data/region_CF.py
+++ b/python/phonenumbers/data/region_CF.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CF = PhoneMetadata(id='CF', country_code=236, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[27]\\d{3}|8776)\\d{4}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2[12]\\d{6}', example_number='21612345', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='7[02457]\\d{6}', example_number='70012345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='7[024-7]\\d{6}', example_number='70012345', possible_length=(8,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='8776\\d{4}', example_number='87761234', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[278]'])])
diff --git a/python/phonenumbers/data/region_CG.py b/python/phonenumbers/data/region_CG.py
index 099504be..f0953783 100644
--- a/python/phonenumbers/data/region_CG.py
+++ b/python/phonenumbers/data/region_CG.py
@@ -5,6 +5,6 @@ PHONE_METADATA_CG = PhoneMetadata(id='CG', country_code=242, international_prefi
     general_desc=PhoneNumberDesc(national_number_pattern='222\\d{6}|(?:0\\d|80)\\d{7}', possible_length=(9,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='222[1-589]\\d{5}', example_number='222123456', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}', example_number='061234567', possible_length=(9,)),
-    premium_rate=PhoneNumberDesc(national_number_pattern='80(?:0\\d\\d|120)\\d{4}', example_number='800123456', possible_length=(9,)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='80[0-2]\\d{6}', example_number='800123456', possible_length=(9,)),
     number_format=[NumberFormat(pattern='(\\d)(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[02]'])])
diff --git a/python/phonenumbers/data/region_CI.py b/python/phonenumbers/data/region_CI.py
index eb2a1369..f4641737 100644
--- a/python/phonenumbers/data/region_CI.py
+++ b/python/phonenumbers/data/region_CI.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CI = PhoneMetadata(id='CI', country_code=225, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[02]\\d{9}', possible_length=(10,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}', example_number='2123456789', possible_length=(10,)),
-    mobile=PhoneNumberDesc(national_number_pattern='0704[0-7]\\d{5}|0(?:[15]\\d\\d|7(?:0[0-37-9]|[4-9][7-9]))\\d{6}', example_number='0123456789', possible_length=(10,)),
+    mobile=PhoneNumberDesc(national_number_pattern='0[157]\\d{8}', example_number='0123456789', possible_length=(10,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d)(\\d{5})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['2']),
         NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['0'])])
diff --git a/python/phonenumbers/data/region_CL.py b/python/phonenumbers/data/region_CL.py
index 331ed9cf..9daac0a2 100644
--- a/python/phonenumbers/data/region_CL.py
+++ b/python/phonenumbers/data/region_CL.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_CL = PhoneMetadata(id='CL', country_code=56, international_prefix='(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0',
     general_desc=PhoneNumberDesc(national_number_pattern='12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}', possible_length=(9, 10, 11)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
-    mobile=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:123|8)00\\d{6}', example_number='800123456', possible_length=(9, 11)),
     shared_cost=PhoneNumberDesc(national_number_pattern='600\\d{7,8}', example_number='6001234567', possible_length=(10, 11)),
     voip=PhoneNumberDesc(national_number_pattern='44\\d{7}', example_number='441234567', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_CN.py b/python/phonenumbers/data/region_CN.py
index dbd8904d..92fe0628 100644
--- a/python/phonenumbers/data/region_CN.py
+++ b/python/phonenumbers/data/region_CN.py
@@ -7,17 +7,17 @@ PHONE_METADATA_CN = PhoneMetadata(id='CN', country_code=86, international_prefix
     mobile=PhoneNumberDesc(national_number_pattern='1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}', example_number='13123456789', possible_length=(11,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:(?:10|21)8|8)00\\d{7}', example_number='8001234567', possible_length=(10, 12)),
     premium_rate=PhoneNumberDesc(national_number_pattern='16[08]\\d{5}', example_number='16812345', possible_length=(8,)),
-    shared_cost=PhoneNumberDesc(national_number_pattern='400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}', example_number='4001234567', possible_length=(7, 8, 9, 10, 11), possible_length_local_only=(5, 6)),
+    shared_cost=PhoneNumberDesc(national_number_pattern='10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}', example_number='4001234567', possible_length=(7, 8, 9, 10, 11), possible_length_local_only=(5, 6)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}', possible_length=(10, 11, 12)),
     preferred_international_prefix='00',
     national_prefix='0',
-    national_prefix_for_parsing='0|(1(?:[12]\\d|79)\\d\\d)',
-    number_format=[NumberFormat(pattern='(\\d{5,6})', format='\\1', leading_digits_pattern=['96']),
-        NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '(?:10|2[0-57-9])(?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
-        NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
+    national_prefix_for_parsing='(1(?:[12]\\d|79)\\d\\d)|0',
+    number_format=[NumberFormat(pattern='(\\d{5,6})', format='\\1', leading_digits_pattern=['10|96']),
+        NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '10(?:10|9[56])|2[0-57-9](?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
+        NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '1(?:0(?:[0-8]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])|6)|[3-9]']),
         NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['16[08]']),
         NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]', '(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]', '85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])', '85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
-        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])', '26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
+        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]', '1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])', '1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['(?:4|80)0']),
         NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
@@ -26,7 +26,7 @@ PHONE_METADATA_CN = PhoneMetadata(id='CN', country_code=86, international_prefix
         NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[3-578]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
         NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1[3-9]'], domestic_carrier_code_formatting_rule='$CC \\1'),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[12]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True)],
-    intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '(?:10|2[0-57-9])(?:100|9[56])']),
+    intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '10(?:10|9[56])|2[0-57-9](?:100|9[56])']),
         NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]', '(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]', '85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])', '85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['(?:4|80)0']),
         NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])']),
diff --git a/python/phonenumbers/data/region_CX.py b/python/phonenumbers/data/region_CX.py
index 08d2c47c..b6963470 100644
--- a/python/phonenumbers/data/region_CX.py
+++ b/python/phonenumbers/data/region_CX.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CX = PhoneMetadata(id='CX', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}', possible_length=(6, 7, 8, 9, 10, 12)),
     fixed_line=PhoneNumberDesc(national_number_pattern='8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}', example_number='891641234', possible_length=(9,), possible_length_local_only=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
     voip=PhoneNumberDesc(national_number_pattern='14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}', example_number='147101234', possible_length=(9,)),
     preferred_international_prefix='0011',
     national_prefix='0',
-    national_prefix_for_parsing='0|([59]\\d{7})$',
+    national_prefix_for_parsing='([59]\\d{7})$|0',
     national_prefix_transform_rule='8\\1')
diff --git a/python/phonenumbers/data/region_CY.py b/python/phonenumbers/data/region_CY.py
index 345fe05e..0c723243 100644
--- a/python/phonenumbers/data/region_CY.py
+++ b/python/phonenumbers/data/region_CY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CY = PhoneMetadata(id='CY', country_code=357, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[279]\\d|[58]0)\\d{6}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2[2-6]\\d{6}', example_number='22345678', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='9[4-79]\\d{6}', example_number='96123456', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='9(?:10|[4-79]\\d)\\d{5}', example_number='96123456', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80001234', possible_length=(8,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90[09]\\d{5}', example_number='90012345', possible_length=(8,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='80[1-9]\\d{5}', example_number='80112345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_DM.py b/python/phonenumbers/data/region_DM.py
index 24c67c24..5c6e6137 100644
--- a/python/phonenumbers/data/region_DM.py
+++ b/python/phonenumbers/data/region_DM.py
@@ -7,9 +7,9 @@ PHONE_METADATA_DM = PhoneMetadata(id='DM', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}', example_number='7672251234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-7]\\d{6})$',
+    national_prefix_for_parsing='([2-7]\\d{6})$|1',
     national_prefix_transform_rule='767\\1',
     leading_digits='767',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_DO.py b/python/phonenumbers/data/region_DO.py
index a49505ae..711df1ac 100644
--- a/python/phonenumbers/data/region_DO.py
+++ b/python/phonenumbers/data/region_DO.py
@@ -7,7 +7,7 @@ PHONE_METADATA_DO = PhoneMetadata(id='DO', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='8[024]9[2-9]\\d{6}', example_number='8092345678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
     national_prefix_for_parsing='1',
     leading_digits='8001|8[024]9',
diff --git a/python/phonenumbers/data/region_EE.py b/python/phonenumbers/data/region_EE.py
index 8047975a..c9057e07 100644
--- a/python/phonenumbers/data/region_EE.py
+++ b/python/phonenumbers/data/region_EE.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_EE = PhoneMetadata(id='EE', country_code=372, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}', possible_length=(7, 8, 10)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}', example_number='3212345', possible_length=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)),
     toll_free=PhoneNumberDesc(national_number_pattern='800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}', example_number='80012345', possible_length=(7, 8, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='(?:40\\d\\d|900)\\d{4}', example_number='9001234', possible_length=(7, 8)),
     personal_number=PhoneNumberDesc(national_number_pattern='70[0-2]\\d{5}', example_number='70012345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_ET.py b/python/phonenumbers/data/region_ET.py
index c67139e4..8a793c15 100644
--- a/python/phonenumbers/data/region_ET.py
+++ b/python/phonenumbers/data/region_ET.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_ET = PhoneMetadata(id='ET', country_code=251, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:11|[2-579]\\d)\\d{7}', possible_length=(9,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}', example_number='111112345', possible_length=(9,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}', example_number='911234567', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}', example_number='111112345', possible_length=(9,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}', example_number='911234567', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-579]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_FR.py b/python/phonenumbers/data/region_FR.py
index 9403d840..df674bad 100644
--- a/python/phonenumbers/data/region_FR.py
+++ b/python/phonenumbers/data/region_FR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_FR = PhoneMetadata(id='FR', country_code=33, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{8}', possible_length=(9,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:[1-35]\\d|4[1-9])\\d{7}', example_number='123456789', possible_length=(9,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}', example_number='612345678', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}', example_number='612345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='801234567', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}', example_number='891123456', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='8(?:1[01]|2[0156]|4[02]|84)\\d{6}', example_number='884012345', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_GB.py b/python/phonenumbers/data/region_GB.py
index e13eacc7..989db913 100644
--- a/python/phonenumbers/data/region_GB.py
+++ b/python/phonenumbers/data/region_GB.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_GB = PhoneMetadata(id='GB', country_code=44, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}', possible_length=(7, 9, 10), possible_length_local_only=(4, 5, 6, 8)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[013579])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|8(?:[02]\\d|1[0-246-9])))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}', example_number='1212345678', possible_length=(9, 10), possible_length_local_only=(4, 5, 6, 7, 8)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[0-579])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-2]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}', example_number='1212345678', possible_length=(9, 10), possible_length_local_only=(4, 5, 6, 7, 8)),
     mobile=PhoneNumberDesc(national_number_pattern='7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}', example_number='7400123456', possible_length=(10,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[08]\\d{7}|800\\d{6}|8001111', example_number='8001234567', possible_length=(7, 9, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d', example_number='9012345678', possible_length=(7, 10)),
diff --git a/python/phonenumbers/data/region_GD.py b/python/phonenumbers/data/region_GD.py
index ad8274b2..3daabaaa 100644
--- a/python/phonenumbers/data/region_GD.py
+++ b/python/phonenumbers/data/region_GD.py
@@ -7,9 +7,9 @@ PHONE_METADATA_GD = PhoneMetadata(id='GD', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}', example_number='4734031234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-9]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='473\\1',
     leading_digits='473',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GE.py b/python/phonenumbers/data/region_GE.py
index 1036f78e..43428ce7 100644
--- a/python/phonenumbers/data/region_GE.py
+++ b/python/phonenumbers/data/region_GE.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_GE = PhoneMetadata(id='GE', country_code=995, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[3-57]\\d\\d|800)\\d{6}', possible_length=(9,), possible_length_local_only=(6, 7)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}', example_number='322123456', possible_length=(9,), possible_length_local_only=(6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}', example_number='555123456', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|(?:5(?:00(?:0\\d|44|5[05]|77|88|99)|1(?:1(?:00|[124]\\d|3[01])|4\\d\\d)|(?:44|68)\\d\\d|5(?:[0157-9]\\d\\d|200)|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}|5(?:0(?:070|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}', example_number='555123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', example_number='800123456', possible_length=(9,)),
     voip=PhoneNumberDesc(national_number_pattern='70[67]\\d{6}', example_number='706123456', possible_length=(9,)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='70[67]\\d{6}', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_GF.py b/python/phonenumbers/data/region_GF.py
index 764f4ab8..8b133590 100644
--- a/python/phonenumbers/data/region_GF.py
+++ b/python/phonenumbers/data/region_GF.py
@@ -2,13 +2,13 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_GF = PhoneMetadata(id='GF', country_code=594, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:[56]94|80\\d|976)\\d{6}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='594(?:[0239]\\d|1[0-2]|4[03-9]|5[6-9]|6[0-3]|80)\\d{4}', example_number='594101234', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[56]94\\d{6}|(?:80|9\\d)\\d{7}', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='594(?:[0239]\\d|[16][0-3]|4[03-9]|5[6-9]|80)\\d{4}', example_number='594101234', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='694(?:[0-249]\\d|3[0-8])\\d{4}', example_number='694201234', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
-    voip=PhoneNumberDesc(national_number_pattern='976\\d{6}', example_number='976012345', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='9(?:(?:396|76\\d)\\d|476[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
-    number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1')],
+    number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[56]|9[47]'], national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[89]'], national_prefix_formatting_rule='0\\1')],
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GG.py b/python/phonenumbers/data/region_GG.py
index 0ea7538f..184e1a50 100644
--- a/python/phonenumbers/data/region_GG.py
+++ b/python/phonenumbers/data/region_GG.py
@@ -12,5 +12,5 @@ PHONE_METADATA_GG = PhoneMetadata(id='GG', country_code=44, international_prefix
     pager=PhoneNumberDesc(national_number_pattern='76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}', example_number='7640123456', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='(?:3[0347]|55)\\d{8}', example_number='5512345678', possible_length=(10,)),
     national_prefix='0',
-    national_prefix_for_parsing='0|([25-9]\\d{5})$',
+    national_prefix_for_parsing='([25-9]\\d{5})$|0',
     national_prefix_transform_rule='1481\\1')
diff --git a/python/phonenumbers/data/region_GH.py b/python/phonenumbers/data/region_GH.py
index e2bf0cfa..ce0392d4 100644
--- a/python/phonenumbers/data/region_GH.py
+++ b/python/phonenumbers/data/region_GH.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_GH = PhoneMetadata(id='GH', country_code=233, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[235]\\d{3}|800)\\d{5}', possible_length=(8, 9), possible_length_local_only=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}', example_number='302345678', possible_length=(9,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-9]\\d|5[67])|5(?:[0457]\\d|6[01]|9[1-9]))\\d{6}', example_number='231234567', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}', example_number='231234567', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='800\\d{5}', possible_length=(8,)),
     national_prefix='0',
diff --git a/python/phonenumbers/data/region_GI.py b/python/phonenumbers/data/region_GI.py
index e2aa7a3e..07c898ae 100644
--- a/python/phonenumbers/data/region_GI.py
+++ b/python/phonenumbers/data/region_GI.py
@@ -2,8 +2,8 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_GI = PhoneMetadata(id='GI', country_code=350, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d\\d|606)\\d{5}', possible_length=(8,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='21(?:6[24-7]\\d|90[0-2])\\d{3}|2(?:00|2[25])\\d{5}', example_number='20012345', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:5[146-8]\\d|606)\\d{5}', example_number='57123456', possible_length=(8,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d|60)\\d{6}', possible_length=(8,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}', example_number='20012345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}', example_number='57123456', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['2'])],
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GM.py b/python/phonenumbers/data/region_GM.py
index 8b6ad911..bd8b3131 100644
--- a/python/phonenumbers/data/region_GM.py
+++ b/python/phonenumbers/data/region_GM.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_GM = PhoneMetadata(id='GM', country_code=220, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[2-9]\\d{6}', possible_length=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}', example_number='5661234', possible_length=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:[23679]\\d|5[0-389])\\d{5}', example_number='3012345', possible_length=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:[23679]\\d|5[0-489])\\d{5}', example_number='3012345', possible_length=(7,)),
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-9]'])])
diff --git a/python/phonenumbers/data/region_GP.py b/python/phonenumbers/data/region_GP.py
index 9a2eb446..6d086299 100644
--- a/python/phonenumbers/data/region_GP.py
+++ b/python/phonenumbers/data/region_GP.py
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_GP = PhoneMetadata(id='GP', country_code=590, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|6[0-289]|7[08]|8[0-689]|9\\d)\\d{4}', example_number='590201234', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}', example_number='590201234', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
-    voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_GU.py b/python/phonenumbers/data/region_GU.py
index abaf30b5..a2a4bfed 100644
--- a/python/phonenumbers/data/region_GU.py
+++ b/python/phonenumbers/data/region_GU.py
@@ -3,12 +3,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_GU = PhoneMetadata(id='GU', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|671|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([3-9]\\d{6})$',
+    national_prefix_for_parsing='([3-9]\\d{6})$|1',
     national_prefix_transform_rule='671\\1',
     leading_digits='671')
diff --git a/python/phonenumbers/data/region_GY.py b/python/phonenumbers/data/region_GY.py
index e634bf37..535a258f 100644
--- a/python/phonenumbers/data/region_GY.py
+++ b/python/phonenumbers/data/region_GY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_GY = PhoneMetadata(id='GY', country_code=592, international_prefix='001',
     general_desc=PhoneNumberDesc(national_number_pattern='9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}', possible_length=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}', example_number='2201234', possible_length=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:6\\d\\d|70[015-7])\\d{4}', example_number='6091234', possible_length=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:6\\d\\d|70[0-35-7])\\d{4}', example_number='6091234', possible_length=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:289|862)\\d{4}', example_number='2891234', possible_length=(7,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='9008\\d{3}', example_number='9008123', possible_length=(7,)),
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-46-9]'])])
diff --git a/python/phonenumbers/data/region_HN.py b/python/phonenumbers/data/region_HN.py
index fd632527..190e6ca6 100644
--- a/python/phonenumbers/data/region_HN.py
+++ b/python/phonenumbers/data/region_HN.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_HN = PhoneMetadata(id='HN', country_code=504, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='8\\d{10}|[237-9]\\d{7}', possible_length=(8, 11)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2(?:0[0-359]|1[1-367]|[23]\\d|4[03-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-9]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\d|6[014-6]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}', example_number='22123456', possible_length=(8,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}', example_number='22123456', possible_length=(8,)),
     mobile=PhoneNumberDesc(national_number_pattern='[37-9]\\d{7}', example_number='91234567', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8002\\d{7}', example_number='80021234567', possible_length=(11,)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='8002\\d{7}', possible_length=(11,)),
diff --git a/python/phonenumbers/data/region_HR.py b/python/phonenumbers/data/region_HR.py
index 7f48393e..1157247b 100644
--- a/python/phonenumbers/data/region_HR.py
+++ b/python/phonenumbers/data/region_HR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_HR = PhoneMetadata(id='HR', country_code=385, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}', possible_length=(6, 7, 8, 9)),
     fixed_line=PhoneNumberDesc(national_number_pattern='1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}', example_number='12345678', possible_length=(8, 9), possible_length_local_only=(6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='98\\d{6,7}|975(?:1\\d|77|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}', example_number='921234567', possible_length=(8, 9)),
+    mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|77|9[67])))\\d{4}|98\\d{6}', example_number='921234567', possible_length=(8, 9)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{4,6}', example_number='800123456', possible_length=(7, 8, 9)),
     premium_rate=PhoneNumberDesc(national_number_pattern='6[01459]\\d{6}|6[01]\\d{4,5}', example_number='611234', possible_length=(6, 7, 8)),
     personal_number=PhoneNumberDesc(national_number_pattern='7[45]\\d{6}', example_number='74123456', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_HT.py b/python/phonenumbers/data/region_HT.py
index 01c26efa..863c8dbc 100644
--- a/python/phonenumbers/data/region_HT.py
+++ b/python/phonenumbers/data/region_HT.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_HT = PhoneMetadata(id='HT', country_code=509, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='[2-489]\\d{7}', possible_length=(8,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-489]\\d|55)\\d{6}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2\\d|5[1-5]|81|9[149])\\d{5}', example_number='22453300', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='[34]\\d{7}', example_number='34101234', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:[34]\\d|55)\\d{6}', example_number='34101234', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8\\d{7}', example_number='80012345', possible_length=(8,)),
     voip=PhoneNumberDesc(national_number_pattern='9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}', example_number='98901234', possible_length=(8,)),
-    number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[2-489]'])])
+    number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[2-589]'])])
diff --git a/python/phonenumbers/data/region_IL.py b/python/phonenumbers/data/region_IL.py
index faa4d972..9819a058 100644
--- a/python/phonenumbers/data/region_IL.py
+++ b/python/phonenumbers/data/region_IL.py
@@ -8,7 +8,7 @@ PHONE_METADATA_IL = PhoneMetadata(id='IL', country_code=972, international_prefi
     toll_free=PhoneNumberDesc(national_number_pattern='1(?:255|80[019]\\d{3})\\d{3}', example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}', example_number='1919123456', possible_length=(8, 10)),
     shared_cost=PhoneNumberDesc(national_number_pattern='1700\\d{6}', example_number='1700123456', possible_length=(10,)),
-    voip=PhoneNumberDesc(national_number_pattern='7(?:380|8(?:33|55|77|81))\\d{5}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}', example_number='771234567', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='7(?:38(?:0\\d|5[09]|88)|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}', example_number='771234567', possible_length=(9,)),
     uan=PhoneNumberDesc(national_number_pattern='1599\\d{6}', example_number='1599123456', possible_length=(10,)),
     voicemail=PhoneNumberDesc(national_number_pattern='151\\d{8,9}', example_number='15112340000', possible_length=(11, 12)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='1700\\d{6}', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_IM.py b/python/phonenumbers/data/region_IM.py
index f2c221d7..d4d66e20 100644
--- a/python/phonenumbers/data/region_IM.py
+++ b/python/phonenumbers/data/region_IM.py
@@ -11,6 +11,6 @@ PHONE_METADATA_IM = PhoneMetadata(id='IM', country_code=44, international_prefix
     voip=PhoneNumberDesc(national_number_pattern='56\\d{8}', example_number='5612345678', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}', example_number='5512345678', possible_length=(10,)),
     national_prefix='0',
-    national_prefix_for_parsing='0|([25-8]\\d{5})$',
+    national_prefix_for_parsing='([25-8]\\d{5})$|0',
     national_prefix_transform_rule='1624\\1',
     leading_digits='74576|(?:16|7[56])24')
diff --git a/python/phonenumbers/data/region_IR.py b/python/phonenumbers/data/region_IR.py
index 95f5fca0..eb41cf91 100644
--- a/python/phonenumbers/data/region_IR.py
+++ b/python/phonenumbers/data/region_IR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_IR = PhoneMetadata(id='IR', country_code=98, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}', possible_length=(4, 5, 6, 7, 10), possible_length_local_only=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}', example_number='2123456789', possible_length=(6, 7, 10), possible_length_local_only=(4, 5, 8)),
-    mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}', example_number='9123456789', possible_length=(10,)),
+    mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}', example_number='9123456789', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])', example_number='9601', possible_length=(4, 5)),
     no_international_dialling=PhoneNumberDesc(national_number_pattern='9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))', possible_length=(4, 5, 10)),
     national_prefix='0',
diff --git a/python/phonenumbers/data/region_JE.py b/python/phonenumbers/data/region_JE.py
index fb24b3ff..6e865b9c 100644
--- a/python/phonenumbers/data/region_JE.py
+++ b/python/phonenumbers/data/region_JE.py
@@ -12,5 +12,5 @@ PHONE_METADATA_JE = PhoneMetadata(id='JE', country_code=44, international_prefix
     pager=PhoneNumberDesc(national_number_pattern='76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}', example_number='7640123456', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}', example_number='5512345678', possible_length=(10,)),
     national_prefix='0',
-    national_prefix_for_parsing='0|([0-24-8]\\d{5})$',
+    national_prefix_for_parsing='([0-24-8]\\d{5})$|0',
     national_prefix_transform_rule='1534\\1')
diff --git a/python/phonenumbers/data/region_JM.py b/python/phonenumbers/data/region_JM.py
index 437e7af7..4323f068 100644
--- a/python/phonenumbers/data/region_JM.py
+++ b/python/phonenumbers/data/region_JM.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_JM = PhoneMetadata(id='JM', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|658|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[02357-9]|[23]\\d|40|5[06]|6[2-589]|7[025-7]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}', example_number='8765230123', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[025-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}', example_number='8765230123', possible_length=(10,), possible_length_local_only=(7,)),
     mobile=PhoneNumberDesc(national_number_pattern='(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}', example_number='8762101234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
     national_prefix_for_parsing='1',
     leading_digits='658|876',
diff --git a/python/phonenumbers/data/region_KG.py b/python/phonenumbers/data/region_KG.py
index ed134d35..1ad9b52f 100644
--- a/python/phonenumbers/data/region_KG.py
+++ b/python/phonenumbers/data/region_KG.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_KG = PhoneMetadata(id='KG', country_code=996, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='8\\d{9}|(?:[235-8]\\d|99)\\d{7}', possible_length=(9, 10), possible_length_local_only=(5, 6)),
     fixed_line=PhoneNumberDesc(national_number_pattern='312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}', example_number='312123456', possible_length=(9,), possible_length_local_only=(5, 6)),
-    mobile=PhoneNumberDesc(national_number_pattern='312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}', example_number='700123456', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}', example_number='700123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6,7}', example_number='800123456', possible_length=(9, 10)),
     national_prefix='0',
     national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_KI.py b/python/phonenumbers/data/region_KI.py
index 86ee79aa..9ec937b0 100644
--- a/python/phonenumbers/data/region_KI.py
+++ b/python/phonenumbers/data/region_KI.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_KI = PhoneMetadata(id='KI', country_code=686, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}', possible_length=(5, 8)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}', example_number='31234', possible_length=(5, 8)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}', example_number='72001234', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}', example_number='72001234', possible_length=(8,)),
     voip=PhoneNumberDesc(national_number_pattern='30(?:0[01]\\d\\d|12(?:11|20))\\d\\d', example_number='30010000', possible_length=(8,)),
     national_prefix='0',
     national_prefix_for_parsing='0')
diff --git a/python/phonenumbers/data/region_KN.py b/python/phonenumbers/data/region_KN.py
index ee421360..e656b814 100644
--- a/python/phonenumbers/data/region_KN.py
+++ b/python/phonenumbers/data/region_KN.py
@@ -7,9 +7,9 @@ PHONE_METADATA_KN = PhoneMetadata(id='KN', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}', example_number='8697652917', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-7]\\d{6})$',
+    national_prefix_for_parsing='([2-7]\\d{6})$|1',
     national_prefix_transform_rule='869\\1',
     leading_digits='869',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_KW.py b/python/phonenumbers/data/region_KW.py
index 3d9b3a3e..577fe9df 100644
--- a/python/phonenumbers/data/region_KW.py
+++ b/python/phonenumbers/data/region_KW.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_KW = PhoneMetadata(id='KW', country_code=965, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='18\\d{5}|(?:[2569]\\d|41)\\d{6}', possible_length=(7, 8)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}', example_number='22345678', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}', example_number='50012345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}', example_number='50012345', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='18\\d{5}', example_number='1801234', possible_length=(7,)),
     number_format=[NumberFormat(pattern='(\\d{4})(\\d{3,4})', format='\\1 \\2', leading_digits_pattern=['[169]|2(?:[235]|4[1-35-9])|52']),
         NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[245]'])],
diff --git a/python/phonenumbers/data/region_KY.py b/python/phonenumbers/data/region_KY.py
index 2c94eb60..55c86810 100644
--- a/python/phonenumbers/data/region_KY.py
+++ b/python/phonenumbers/data/region_KY.py
@@ -7,10 +7,10 @@ PHONE_METADATA_KY = PhoneMetadata(id='KY', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}', example_number='3453231234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='(?:345976|900[2-9]\\d\\d)\\d{4}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     pager=PhoneNumberDesc(national_number_pattern='345849\\d{4}', example_number='3458491234', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-9]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='345\\1',
     leading_digits='345',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_KZ.py b/python/phonenumbers/data/region_KZ.py
index 8d3e8759..4e84bca2 100644
--- a/python/phonenumbers/data/region_KZ.py
+++ b/python/phonenumbers/data/region_KZ.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_KZ = PhoneMetadata(id='KZ', country_code=7, international_prefix='810',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:33622|8\\d{8})\\d{5}|[78]\\d{9}', possible_length=(10, 14), possible_length_local_only=(5, 6, 7)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}', example_number='7123456789', possible_length=(10,), possible_length_local_only=(5, 6, 7)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}', example_number='7123456789', possible_length=(10,), possible_length_local_only=(5, 6, 7)),
     mobile=PhoneNumberDesc(national_number_pattern='7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}', example_number='7710009998', possible_length=(10,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|108\\d{3})\\d{7}', example_number='8001234567', possible_length=(10, 14)),
     premium_rate=PhoneNumberDesc(national_number_pattern='809\\d{7}', example_number='8091234567', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_LA.py b/python/phonenumbers/data/region_LA.py
index a86de2ae..b0894fe4 100644
--- a/python/phonenumbers/data/region_LA.py
+++ b/python/phonenumbers/data/region_LA.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_LA = PhoneMetadata(id='LA', country_code=856, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}', possible_length=(8, 9, 10), possible_length_local_only=(6,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[13]|[35-7][14]|41|8[1468])\\d{6}', example_number='21212862', possible_length=(8,), possible_length_local_only=(6,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}', example_number='2023123456', possible_length=(10,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:20(?:[2359]\\d|7[6-8]|88)|302\\d)\\d{6}', example_number='2023123456', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='30[013-9]\\d{6}', example_number='301234567', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_LC.py b/python/phonenumbers/data/region_LC.py
index fd389421..71d66bd4 100644
--- a/python/phonenumbers/data/region_LC.py
+++ b/python/phonenumbers/data/region_LC.py
@@ -7,9 +7,9 @@ PHONE_METADATA_LC = PhoneMetadata(id='LC', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}', example_number='7582845678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-8]\\d{6})$',
+    national_prefix_for_parsing='([2-8]\\d{6})$|1',
     national_prefix_transform_rule='758\\1',
     leading_digits='758',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_LI.py b/python/phonenumbers/data/region_LI.py
index 2e2e323f..7fce6f32 100644
--- a/python/phonenumbers/data/region_LI.py
+++ b/python/phonenumbers/data/region_LI.py
@@ -10,7 +10,7 @@ PHONE_METADATA_LI = PhoneMetadata(id='LI', country_code=423, international_prefi
     uan=PhoneNumberDesc(national_number_pattern='870(?:28|87)\\d\\d', example_number='8702812', possible_length=(7,)),
     voicemail=PhoneNumberDesc(national_number_pattern='697(?:42|56|[78]\\d)\\d{4}', example_number='697861234', possible_length=(9,)),
     national_prefix='0',
-    national_prefix_for_parsing='0|(1001)',
+    national_prefix_for_parsing='(1001)|0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['[2379]|8(?:0[09]|7)', '[2379]|8(?:0(?:02|9)|7)'], domestic_carrier_code_formatting_rule='$CC \\1'),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['69'], domestic_carrier_code_formatting_rule='$CC \\1'),
diff --git a/python/phonenumbers/data/region_LR.py b/python/phonenumbers/data/region_LR.py
index 36cb8f5b..75b10b3c 100644
--- a/python/phonenumbers/data/region_LR.py
+++ b/python/phonenumbers/data/region_LR.py
@@ -2,12 +2,12 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_LR = PhoneMetadata(id='LR', country_code=231, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}', possible_length=(7, 8, 9)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:2\\d{3}|33333)\\d{4}', example_number='21234567', possible_length=(8, 9)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:330|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}', example_number='770123456', possible_length=(7, 9)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}', possible_length=(7, 8, 9)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2\\d{7}', example_number='21234567', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}', example_number='770123456', possible_length=(7, 9)),
     premium_rate=PhoneNumberDesc(national_number_pattern='332(?:02|[34]\\d)\\d{4}', example_number='332021234', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[4-6]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[3578]'], national_prefix_formatting_rule='0\\1')])
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[23578]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_MA.py b/python/phonenumbers/data/region_MA.py
index 6fa1ad96..a7bad350 100644
--- a/python/phonenumbers/data/region_MA.py
+++ b/python/phonenumbers/data/region_MA.py
@@ -3,14 +3,14 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MA = PhoneMetadata(id='MA', country_code=212, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[5-8]\\d{8}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='5(?:29(?:[189][05]|2[29]|3[01])|389[05])\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[08]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}', example_number='520123456', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='5293[01]\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}', example_number='520123456', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}', example_number='650123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='89\\d{7}', example_number='891234567', possible_length=(9,)),
     voip=PhoneNumberDesc(national_number_pattern='592(?:4[0-2]|93)\\d{4}', example_number='592401234', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
-    number_format=[NumberFormat(pattern='(\\d{5})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['5(?:29|38)', '5(?:29[89]|389)', '5(?:29[89]|389)0'], national_prefix_formatting_rule='0\\1'),
+    number_format=[NumberFormat(pattern='(\\d{5})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['5(?:29|38)', '5(?:29[1289]|389)', '529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['5[45]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{4})(\\d{5})', format='\\1-\\2', leading_digits_pattern=['5(?:2[2-489]|3[5-9]|9)|892', '5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{7})', format='\\1-\\2', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MF.py b/python/phonenumbers/data/region_MF.py
index 965db89d..c157ab03 100644
--- a/python/phonenumbers/data/region_MF.py
+++ b/python/phonenumbers/data/region_MF.py
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MF = PhoneMetadata(id='MF', country_code=590, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}', example_number='590271234', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
-    voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_MG.py b/python/phonenumbers/data/region_MG.py
index d56fada4..308a13af 100644
--- a/python/phonenumbers/data/region_MG.py
+++ b/python/phonenumbers/data/region_MG.py
@@ -4,9 +4,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_MG = PhoneMetadata(id='MG', country_code=261, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[23]\\d{8}', possible_length=(9,), possible_length_local_only=(7,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}', example_number='202123456', possible_length=(9,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='3[2-489]\\d{7}', example_number='321234567', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='3[2-47-9]\\d{7}', example_number='321234567', possible_length=(9,)),
     voip=PhoneNumberDesc(national_number_pattern='22\\d{7}', example_number='221234567', possible_length=(9,)),
     national_prefix='0',
-    national_prefix_for_parsing='0|([24-9]\\d{6})$',
+    national_prefix_for_parsing='([24-9]\\d{6})$|0',
     national_prefix_transform_rule='20\\1',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{3})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[23]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_MH.py b/python/phonenumbers/data/region_MH.py
index bfa4d109..1752e931 100644
--- a/python/phonenumbers/data/region_MH.py
+++ b/python/phonenumbers/data/region_MH.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MH = PhoneMetadata(id='MH', country_code=692, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='329\\d{4}|(?:[256]\\d|45)\\d{5}', possible_length=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:247|528|625)\\d{4}', example_number='2471234', possible_length=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:247|45[78]|528|625)\\d{4}', example_number='2471234', possible_length=(7,)),
     mobile=PhoneNumberDesc(national_number_pattern='(?:(?:23|54)5|329|45[356])\\d{4}', example_number='2351234', possible_length=(7,)),
     voip=PhoneNumberDesc(national_number_pattern='635\\d{4}', example_number='6351234', possible_length=(7,)),
     national_prefix='1',
diff --git a/python/phonenumbers/data/region_MK.py b/python/phonenumbers/data/region_MK.py
index 4ed784fc..1bdbb75f 100644
--- a/python/phonenumbers/data/region_MK.py
+++ b/python/phonenumbers/data/region_MK.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_MK = PhoneMetadata(id='MK', country_code=389, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[2-578]\\d{7}', possible_length=(8,), possible_length_local_only=(6, 7)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}', example_number='22012345', possible_length=(8,), possible_length_local_only=(6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='7(?:3555|4747|9(?:[019]77|42[0-4]))\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-4]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[23]\\d|4[01]|7[015]))\\d{4}', example_number='72345678', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}', example_number='72345678', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='5\\d{7}', example_number='50012345', possible_length=(8,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='8(?:0[1-9]|[1-9]\\d)\\d{5}', example_number='80123456', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_MM.py b/python/phonenumbers/data/region_MM.py
index f22a8f95..933ee312 100644
--- a/python/phonenumbers/data/region_MM.py
+++ b/python/phonenumbers/data/region_MM.py
@@ -3,9 +3,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MM = PhoneMetadata(id='MM', country_code=95, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}', possible_length=(6, 7, 8, 9, 10), possible_length_local_only=(5,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|2[246]|39|46|62|7[0-3]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[0-3])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|247[23]|3(?:20\\d|470)|4(?:2[04]\\d|47[23])|7(?:(?:3\\d|8[01459])\\d|4(?:39|60|7[013]))))\\d{4}|5(?:2(?:2\\d{5,6}|47[023]\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[0-2])|8(?:20\\d|47[02])|9(?:20\\d|47[01]))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:2\\d|4[1-9]|51)\\d|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}', example_number='1234567', possible_length=(6, 7, 8, 9), possible_length_local_only=(5,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}', example_number='92123456', possible_length=(7, 8, 9, 10)),
-    toll_free=PhoneNumberDesc(national_number_pattern='80080(?:[01][1-9]|2\\d)\\d{3}', example_number='8008001234', possible_length=(10,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[29]|62|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|[26]2|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:(?:3\\d|8[01459])\\d|4[67]0)))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}', example_number='1234567', possible_length=(6, 7, 8, 9), possible_length_local_only=(5,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}', example_number='92123456', possible_length=(7, 8, 9, 10)),
+    toll_free=PhoneNumberDesc(national_number_pattern='80080(?:0[1-9]|2\\d)\\d{3}', example_number='8008001234', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='1333\\d{4}|[12]468\\d{4}', example_number='13331234', possible_length=(8,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_MN.py b/python/phonenumbers/data/region_MN.py
index 1ed5f2a7..6f2b94aa 100644
--- a/python/phonenumbers/data/region_MN.py
+++ b/python/phonenumbers/data/region_MN.py
@@ -4,8 +4,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_MN = PhoneMetadata(id='MN', country_code=976, international_prefix='001',
     general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{7,9}|[5-9]\\d{7}', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
     fixed_line=PhoneNumberDesc(national_number_pattern='[12]2[1-3]\\d{5,6}|7(?:0[0-5]\\d|128)\\d{4}|(?:[12](?:1|27)|5[368])\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}', example_number='53123456', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:83[01]|920)\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
-    voip=PhoneNumberDesc(national_number_pattern='712[0-79]\\d{4}|7(?:1[013-9]|[25-8]\\d)\\d{5}', example_number='75123456', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:83[01]|92[039])\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
+    voip=PhoneNumberDesc(national_number_pattern='712[0-79]\\d{4}|7(?:1[013-9]|[25-9]\\d)\\d{5}', example_number='75123456', possible_length=(8,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[12]1'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MP.py b/python/phonenumbers/data/region_MP.py
index bb8676a5..c1803aa3 100644
--- a/python/phonenumbers/data/region_MP.py
+++ b/python/phonenumbers/data/region_MP.py
@@ -7,8 +7,8 @@ PHONE_METADATA_MP = PhoneMetadata(id='MP', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}', example_number='6702345678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-9]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='670\\1',
     leading_digits='670')
diff --git a/python/phonenumbers/data/region_MQ.py b/python/phonenumbers/data/region_MQ.py
index a6bce3e9..6dc91560 100644
--- a/python/phonenumbers/data/region_MQ.py
+++ b/python/phonenumbers/data/region_MQ.py
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MQ = PhoneMetadata(id='MQ', country_code=596, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:69|80)\\d{7}|(?:59|97)6\\d{6}', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='596\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='596(?:[03-7]\\d|10|2[7-9]|8[09]|9[4-9])\\d{4}', example_number='596301234', possible_length=(9,)),
     mobile=PhoneNumberDesc(national_number_pattern='69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}', example_number='696201234', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
-    voip=PhoneNumberDesc(national_number_pattern='976(?:6\\d|7[0-367])\\d{4}', example_number='976612345', possible_length=(9,)),
+    voip=PhoneNumberDesc(national_number_pattern='9(?:397[01]|477[0-2]|76(?:6\\d|7[0-367]))\\d{4}', example_number='976612345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MS.py b/python/phonenumbers/data/region_MS.py
index 0740cb41..28bc979c 100644
--- a/python/phonenumbers/data/region_MS.py
+++ b/python/phonenumbers/data/region_MS.py
@@ -7,9 +7,9 @@ PHONE_METADATA_MS = PhoneMetadata(id='MS', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='664(?:3(?:49|9[1-6])|49[2-6])\\d{4}', example_number='6644923456', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([34]\\d{6})$',
+    national_prefix_for_parsing='([34]\\d{6})$|1',
     national_prefix_transform_rule='664\\1',
     leading_digits='664',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_MU.py b/python/phonenumbers/data/region_MU.py
index 078eb484..b3dc3a3a 100644
--- a/python/phonenumbers/data/region_MU.py
+++ b/python/phonenumbers/data/region_MU.py
@@ -2,13 +2,13 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MU = PhoneMetadata(id='MU', country_code=230, international_prefix='0(?:0|[24-7]0|3[03])',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:5|8\\d\\d)\\d{7}|[2-468]\\d{6}', possible_length=(7, 8, 10)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}', possible_length=(7, 8, 10)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-7])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}', example_number='54480123', possible_length=(7, 8)),
-    mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])\\d{5}', example_number='52512345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-2]|3[013]))\\d{5}', example_number='52512345', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='802\\d{7}|80[0-2]\\d{4}', example_number='8001234', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='30\\d{5}', example_number='3012345', possible_length=(7,)),
     voip=PhoneNumberDesc(national_number_pattern='3(?:20|9\\d)\\d{4}', example_number='3201234', possible_length=(7,)),
     preferred_international_prefix='020',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-46]|8[013]']),
-        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['5']),
+        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[57]']),
         NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['8'])])
diff --git a/python/phonenumbers/data/region_MV.py b/python/phonenumbers/data/region_MV.py
index 4bf67c03..9edbcb69 100644
--- a/python/phonenumbers/data/region_MV.py
+++ b/python/phonenumbers/data/region_MV.py
@@ -4,10 +4,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_MV = PhoneMetadata(id='MV', country_code=960, international_prefix='0(?:0|19)',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}', possible_length=(7, 10)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:0[0-3]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}', example_number='6701234', possible_length=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='46[46]\\d{4}|(?:7\\d|9[13-9])\\d{5}', example_number='7712345', possible_length=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:46[46]|[79]\\d\\d)\\d{4}', example_number='7712345', possible_length=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7}', example_number='8001234567', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', example_number='9001234567', possible_length=(10,)),
     uan=PhoneNumberDesc(national_number_pattern='4(?:0[01]|50)\\d{4}', example_number='4001234', possible_length=(7,)),
     preferred_international_prefix='00',
-    number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['[3467]|9[13-9]']),
+    number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['[34679]']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[89]'])])
diff --git a/python/phonenumbers/data/region_MX.py b/python/phonenumbers/data/region_MX.py
index acc336fd..5c2f9567 100644
--- a/python/phonenumbers/data/region_MX.py
+++ b/python/phonenumbers/data/region_MX.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MX = PhoneMetadata(id='MX', country_code=52, international_prefix='0[09]',
-    general_desc=PhoneNumberDesc(national_number_pattern='1(?:(?:44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[017]\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}', possible_length=(10, 11), possible_length_local_only=(7, 8)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='2001234567', possible_length=(10,), possible_length_local_only=(7, 8)),
-    mobile=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='12221234567', possible_length=(10, 11), possible_length_local_only=(7, 8)),
+    general_desc=PhoneNumberDesc(national_number_pattern='1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}', possible_length=(10, 11), possible_length_local_only=(7, 8)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='2001234567', possible_length=(10,), possible_length_local_only=(7, 8)),
+    mobile=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='12221234567', possible_length=(10, 11), possible_length_local_only=(7, 8)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|88)\\d{7}', example_number='8001234567', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', example_number='9001234567', possible_length=(10,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='300\\d{7}', example_number='3001234567', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_MY.py b/python/phonenumbers/data/region_MY.py
index 1fe8a1a2..eed5a9d6 100644
--- a/python/phonenumbers/data/region_MY.py
+++ b/python/phonenumbers/data/region_MY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_MY = PhoneMetadata(id='MY', country_code=60, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='1\\d{8,9}|(?:3\\d|[4-9])\\d{7}', possible_length=(8, 9, 10), possible_length_local_only=(6, 7)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}', example_number='323856789', possible_length=(8, 9), possible_length_local_only=(6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}', example_number='123456789', possible_length=(9, 10)),
+    mobile=PhoneNumberDesc(national_number_pattern='1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}', example_number='123456789', possible_length=(9, 10)),
     toll_free=PhoneNumberDesc(national_number_pattern='1[378]00\\d{6}', example_number='1300123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1600\\d{6}', example_number='1600123456', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}', example_number='1546012345', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_NG.py b/python/phonenumbers/data/region_NG.py
index 5a295945..258e0646 100644
--- a/python/phonenumbers/data/region_NG.py
+++ b/python/phonenumbers/data/region_NG.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_NG = PhoneMetadata(id='NG', country_code=234, international_prefix='009',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}', possible_length=(7, 8, 10, 11, 12, 13, 14), possible_length_local_only=(5, 6)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}', example_number='18040123', possible_length=(7, 8), possible_length_local_only=(5, 6)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:702[0-24-9]|8(?:01|19)[01])\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[2356]))\\d{7}', example_number='8021234567', possible_length=(10,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}', example_number='8021234567', possible_length=(10,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7,11}', example_number='80017591759', possible_length=(10, 11, 12, 13, 14)),
     uan=PhoneNumberDesc(national_number_pattern='700\\d{7,11}', example_number='7001234567', possible_length=(10, 11, 12, 13, 14)),
     national_prefix='0',
diff --git a/python/phonenumbers/data/region_NO.py b/python/phonenumbers/data/region_NO.py
index 8742dd94..42933f3b 100644
--- a/python/phonenumbers/data/region_NO.py
+++ b/python/phonenumbers/data/region_NO.py
@@ -12,8 +12,8 @@ PHONE_METADATA_NO = PhoneMetadata(id='NO', country_code=47, international_prefix
     voip=PhoneNumberDesc(national_number_pattern='85[0-5]\\d{5}', example_number='85012345', possible_length=(8,)),
     uan=PhoneNumberDesc(national_number_pattern='(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}', example_number='02000', possible_length=(5, 8)),
     voicemail=PhoneNumberDesc(national_number_pattern='81[23]\\d{5}', example_number='81212345', possible_length=(8,)),
-    number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[489]|59']),
-        NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[235-7]'])],
+    number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
+        NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2-79]'])],
     main_country_for_code=True,
     leading_digits='[02-689]|7[0-8]',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_NZ.py b/python/phonenumbers/data/region_NZ.py
index 5dfdec3f..7b01997d 100644
--- a/python/phonenumbers/data/region_NZ.py
+++ b/python/phonenumbers/data/region_NZ.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_NZ = PhoneMetadata(id='NZ', country_code=64, international_prefix='0(?:0|161)',
     general_desc=PhoneNumberDesc(national_number_pattern='[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}', possible_length=(5, 6, 7, 8, 9, 10)),
     fixed_line=PhoneNumberDesc(national_number_pattern='24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}', example_number='32345678', possible_length=(8,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='2[0-27-9]\\d{7,8}|21\\d{6}', example_number='211234567', possible_length=(8, 9, 10)),
+    mobile=PhoneNumberDesc(national_number_pattern='2[0-27-9]\\d{7,8}|2(?:1\\d|75)\\d{5}', example_number='211234567', possible_length=(8, 9, 10)),
     toll_free=PhoneNumberDesc(national_number_pattern='508\\d{6,7}|80\\d{6,8}', example_number='800123456', possible_length=(8, 9, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='(?:11\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}', example_number='900123456', possible_length=(7, 8, 9, 10)),
     personal_number=PhoneNumberDesc(national_number_pattern='70\\d{7}', example_number='701234567', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_OM.py b/python/phonenumbers/data/region_OM.py
index d6a3bdab..e2d997db 100644
--- a/python/phonenumbers/data/region_OM.py
+++ b/python/phonenumbers/data/region_OM.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_OM = PhoneMetadata(id='OM', country_code=968, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}', possible_length=(7, 8, 9)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='2[2-6]\\d{6}', example_number='23123456', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='1505\\d{4}|(?:7(?:[1289]\\d|7[0-4])|9(?:0[1-9]|[1-9]\\d))\\d{5}', example_number='92123456', possible_length=(8,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2[1-6]\\d{6}', example_number='23123456', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='1505\\d{4}|(?:7(?:[1289]\\d|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}', example_number='92123456', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8007\\d{4,5}|(?:500|800[05])\\d{4}', example_number='80071234', possible_length=(7, 8, 9)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{5}', example_number='90012345', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4,6})', format='\\1 \\2', leading_digits_pattern=['[58]']),
diff --git a/python/phonenumbers/data/region_PM.py b/python/phonenumbers/data/region_PM.py
index ef71239b..a037a808 100644
--- a/python/phonenumbers/data/region_PM.py
+++ b/python/phonenumbers/data/region_PM.py
@@ -2,11 +2,12 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_PM = PhoneMetadata(id='PM', country_code=508, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:[45]|80\\d\\d)\\d{5}', possible_length=(6, 9)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[45]\\d{5}|(?:708|80\\d)\\d{6}', possible_length=(6, 9)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:4[1-356]|50)\\d{4}', example_number='430123', possible_length=(6,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:4[02-4]|5[056])\\d{4}', example_number='551234', possible_length=(6,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:4[02-4]|5[056]|708[45][0-5])\\d{4}', example_number='551234', possible_length=(6, 9)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['[45]'], national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
         NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_PR.py b/python/phonenumbers/data/region_PR.py
index 7b1434ab..cc3ad2c2 100644
--- a/python/phonenumbers/data/region_PR.py
+++ b/python/phonenumbers/data/region_PR.py
@@ -7,7 +7,7 @@ PHONE_METADATA_PR = PhoneMetadata(id='PR', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='(?:787|939)[2-9]\\d{6}', example_number='7872345678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
     national_prefix_for_parsing='1',
     leading_digits='787|939',
diff --git a/python/phonenumbers/data/region_PT.py b/python/phonenumbers/data/region_PT.py
index 29d64b52..d79a6e4a 100644
--- a/python/phonenumbers/data/region_PT.py
+++ b/python/phonenumbers/data/region_PT.py
@@ -11,7 +11,7 @@ PHONE_METADATA_PT = PhoneMetadata(id='PT', country_code=351, international_prefi
     personal_number=PhoneNumberDesc(national_number_pattern='884[0-4689]\\d{5}', example_number='884123456', possible_length=(9,)),
     voip=PhoneNumberDesc(national_number_pattern='30\\d{7}', example_number='301234567', possible_length=(9,)),
     pager=PhoneNumberDesc(national_number_pattern='6222\\d{5}', example_number='622212345', possible_length=(9,)),
-    uan=PhoneNumberDesc(national_number_pattern='70(?:7\\d|8[17])\\d{5}', example_number='707123456', possible_length=(9,)),
+    uan=PhoneNumberDesc(national_number_pattern='70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}', example_number='707123456', possible_length=(9,)),
     voicemail=PhoneNumberDesc(national_number_pattern='600\\d{6}|6[06]9233\\d{3}', example_number='600110000', possible_length=(9,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['2[12]']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['16|[236-9]'])],
diff --git a/python/phonenumbers/data/region_QA.py b/python/phonenumbers/data/region_QA.py
index 0f5d12f2..b55b65da 100644
--- a/python/phonenumbers/data/region_QA.py
+++ b/python/phonenumbers/data/region_QA.py
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_QA = PhoneMetadata(id='QA', country_code=974, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='[2-7]\\d{7}|800\\d{4}(?:\\d{2})?|2\\d{6}', possible_length=(7, 8, 9)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='414[1-4]\\d{4}|(?:23|4[04])\\d{6}', example_number='44123456', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:2[89]|[35-7]\\d)\\d{6}', example_number='33123456', possible_length=(8,)),
-    toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4}(?:\\d{2})?', example_number='8001234', possible_length=(7, 9)),
-    pager=PhoneNumberDesc(national_number_pattern='2(?:[12]\\d|61)\\d{4}', example_number='2123456', possible_length=(7,)),
-    number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['2[126]|8']),
-        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-7]'])],
+    general_desc=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}', possible_length=(7, 8, 9, 11)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}', example_number='44123456', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='[35-7]\\d{7}', example_number='33123456', possible_length=(8,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:0080[01]|800)\\d{6}', example_number='8001234', possible_length=(7, 9, 11)),
+    pager=PhoneNumberDesc(national_number_pattern='2[16]\\d{5}', example_number='2123456', possible_length=(7,)),
+    number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['2[16]|8']),
+        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[3-7]'])],
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_RE.py b/python/phonenumbers/data/region_RE.py
index 607e233f..4b9dc182 100644
--- a/python/phonenumbers/data/region_RE.py
+++ b/python/phonenumbers/data/region_RE.py
@@ -2,14 +2,13 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_RE = PhoneMetadata(id='RE', country_code=262, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='976\\d{6}|(?:26|[68]\\d)\\d{7}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='26(?:2\\d\\d|3(?:0\\d|1[01]))\\d{4}', example_number='262161234', possible_length=(9,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}', example_number='692123456', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:26|[689]\\d)\\d{7}', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='26(?:2\\d\\d|3(?:0\\d|1[0-3]))\\d{4}', example_number='262161234', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|9(?:399[0-3]|479[0-2]|76(?:2[27]|3[0-37]|9\\d)))\\d{4}', example_number='692123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='89[1-37-9]\\d{6}', example_number='891123456', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='8(?:1[019]|2[0156]|84|90)\\d{6}', example_number='810123456', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2689]'], national_prefix_formatting_rule='0\\1')],
-    main_country_for_code=True,
-    leading_digits='26[23]|69|[89]')
+    main_country_for_code=True)
diff --git a/python/phonenumbers/data/region_RO.py b/python/phonenumbers/data/region_RO.py
index 7d01a96a..86978b2e 100644
--- a/python/phonenumbers/data/region_RO.py
+++ b/python/phonenumbers/data/region_RO.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_RO = PhoneMetadata(id='RO', country_code=40, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:[2378]\\d|90)\\d{7}|[23]\\d{5}', possible_length=(6, 9)),
     fixed_line=PhoneNumberDesc(national_number_pattern='[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d', example_number='211234567', possible_length=(6, 9)),
-    mobile=PhoneNumberDesc(national_number_pattern='7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}', example_number='712034567', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-29])\\d{6}', example_number='712034567', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', example_number='800123456', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90[0136]\\d{6}', example_number='900123456', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='801\\d{6}', example_number='801123456', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_RU.py b/python/phonenumbers/data/region_RU.py
index 1d84ba62..64de98f2 100644
--- a/python/phonenumbers/data/region_RU.py
+++ b/python/phonenumbers/data/region_RU.py
@@ -12,12 +12,12 @@ PHONE_METADATA_RU = PhoneMetadata(id='RU', country_code=7, international_prefix=
     national_prefix='8',
     national_prefix_for_parsing='8',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})', format='\\1-\\2-\\3', leading_digits_pattern=['[0-79]']),
-        NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
+        NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{5})(\\d)(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-68]|2[1-9])', '7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))', '7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['7'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2-\\3-\\4', leading_digits_pattern=['[349]|8(?:[02-7]|1[1-8])'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='8 (\\1)')],
-    intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2']),
+    intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2']),
         NumberFormat(pattern='(\\d{5})(\\d)(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-68]|2[1-9])', '7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))', '7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2-\\3-\\4', leading_digits_pattern=['[349]|8(?:[02-7]|1[1-8])']),
diff --git a/python/phonenumbers/data/region_SG.py b/python/phonenumbers/data/region_SG.py
index 21aad1a1..5a791a0d 100644
--- a/python/phonenumbers/data/region_SG.py
+++ b/python/phonenumbers/data/region_SG.py
@@ -4,17 +4,17 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_SG = PhoneMetadata(id='SG', country_code=65, international_prefix='0[0-3]\\d',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}', possible_length=(8, 10, 11)),
     fixed_line=PhoneNumberDesc(national_number_pattern='662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}', example_number='61234567', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='8(?:05[0-7]|95[0-2])\\d{4}|(?:8(?:0[1-4]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}', example_number='81234567', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='8(?:06[0-689]|95[0-2])\\d{4}|(?:8(?:0[1-5]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}', example_number='81234567', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:18|8)00\\d{7}', example_number='18001234567', possible_length=(10, 11)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{7}', example_number='19001234567', possible_length=(11,)),
     voip=PhoneNumberDesc(national_number_pattern='(?:3[12]\\d|666)\\d{5}', example_number='31234567', possible_length=(8,)),
     uan=PhoneNumberDesc(national_number_pattern='7000\\d{7}', example_number='70001234567', possible_length=(11,)),
     number_format=[NumberFormat(pattern='(\\d{4,5})', format='\\1', leading_digits_pattern=['1[013-9]|77', '1(?:[013-8]|9(?:0[1-9]|[1-9]))|77']),
-        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-5]|[1-9])']),
+        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-6]|[1-9])']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
         NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
         NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1'])],
-    intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-5]|[1-9])']),
+    intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-6]|[1-9])']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
         NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
         NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1'])],
diff --git a/python/phonenumbers/data/region_SI.py b/python/phonenumbers/data/region_SI.py
index 150856ef..4da2dff8 100644
--- a/python/phonenumbers/data/region_SI.py
+++ b/python/phonenumbers/data/region_SI.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_SI = PhoneMetadata(id='SI', country_code=386, international_prefix='00|10(?:22|66|88|99)',
     general_desc=PhoneNumberDesc(national_number_pattern='[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}', possible_length=(5, 6, 7, 8)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:[1-357][2-8]|4[24-8])\\d{6}', example_number='12345678', possible_length=(8,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='65(?:1\\d|55|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}', example_number='31234567', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}', example_number='31234567', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80\\d{4,6}', example_number='80123456', possible_length=(6, 7, 8)),
     premium_rate=PhoneNumberDesc(national_number_pattern='89[1-3]\\d{2,5}|90\\d{4,6}', example_number='90123456', possible_length=(5, 6, 7, 8)),
     voip=PhoneNumberDesc(national_number_pattern='(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}', example_number='59012345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_SO.py b/python/phonenumbers/data/region_SO.py
index 31d834c3..40f89e74 100644
--- a/python/phonenumbers/data/region_SO.py
+++ b/python/phonenumbers/data/region_SO.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_SO = PhoneMetadata(id='SO', country_code=252, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}', possible_length=(6, 7, 8, 9)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}', example_number='4012345', possible_length=(6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|[67]\\d{7}', example_number='71123456', possible_length=(7, 8, 9)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}', example_number='71123456', possible_length=(7, 8, 9)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['8[125]']),
         NumberFormat(pattern='(\\d{6})', format='\\1', leading_digits_pattern=['[134]']),
         NumberFormat(pattern='(\\d)(\\d{6})', format='\\1 \\2', leading_digits_pattern=['[15]|2[0-79]|3[0-46-8]|4[0-7]']),
-        NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2', leading_digits_pattern=['24|[67]']),
+        NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2', leading_digits_pattern=['(?:2|90)4|[67]']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3478]|64|90']),
         NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2', leading_digits_pattern=['1|28|6(?:0[5-7]|[1-35-9])|9[2-9]'])])
diff --git a/python/phonenumbers/data/region_SX.py b/python/phonenumbers/data/region_SX.py
index 4381a170..45be8c13 100644
--- a/python/phonenumbers/data/region_SX.py
+++ b/python/phonenumbers/data/region_SX.py
@@ -7,9 +7,9 @@ PHONE_METADATA_SX = PhoneMetadata(id='SX', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}', example_number='7215205678', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|(5\\d{6})$',
+    national_prefix_for_parsing='(5\\d{6})$|1',
     national_prefix_transform_rule='721\\1',
     leading_digits='721',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_TC.py b/python/phonenumbers/data/region_TC.py
index 103cb009..c17fdcd8 100644
--- a/python/phonenumbers/data/region_TC.py
+++ b/python/phonenumbers/data/region_TC.py
@@ -7,10 +7,10 @@ PHONE_METADATA_TC = PhoneMetadata(id='TC', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}', example_number='6492311234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='649(?:71[01]|966)\\d{4}', example_number='6497101234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-479]\\d{6})$',
+    national_prefix_for_parsing='([2-479]\\d{6})$|1',
     national_prefix_transform_rule='649\\1',
     leading_digits='649',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_TD.py b/python/phonenumbers/data/region_TD.py
index eac05421..fdbc1f81 100644
--- a/python/phonenumbers/data/region_TD.py
+++ b/python/phonenumbers/data/region_TD.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_TD = PhoneMetadata(id='TD', country_code=235, international_prefix='00|16',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:22|[69]\\d|77)\\d{6}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='22(?:[37-9]0|5[0-5]|6[89])\\d{4}', example_number='22501234', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:6[023568]|77|9\\d)\\d{6}', example_number='63012345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:6[0235689]|77|9\\d)\\d{6}', example_number='63012345', possible_length=(8,)),
     preferred_international_prefix='00',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2679]'])])
diff --git a/python/phonenumbers/data/region_TG.py b/python/phonenumbers/data/region_TG.py
index 85e82851..7d759707 100644
--- a/python/phonenumbers/data/region_TG.py
+++ b/python/phonenumbers/data/region_TG.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_TG = PhoneMetadata(id='TG', country_code=228, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[279]\\d{7}', possible_length=(8,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}', example_number='22212345', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:7[09]|9[0-36-9])\\d{6}', example_number='90112345', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:7[019]|9[0-36-9])\\d{6}', example_number='90112345', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[279]'])])
diff --git a/python/phonenumbers/data/region_TJ.py b/python/phonenumbers/data/region_TJ.py
index 73b75a6e..18f49268 100644
--- a/python/phonenumbers/data/region_TJ.py
+++ b/python/phonenumbers/data/region_TJ.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_TJ = PhoneMetadata(id='TJ', country_code=992, international_prefix='810',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:00|[1-57-9]\\d)\\d{7}', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[0-57-9]\\d{8}', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}', example_number='372123456', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
-    mobile=PhoneNumberDesc(national_number_pattern='41[18]\\d{6}|(?:[034]0|[17][017]|2[02]|5[05]|8[08]|9\\d)\\d{7}', example_number='917123456', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='41[18]\\d{6}|(?:0[0-27]|1[017]|2[02]|[34]0|5[05]|7[0178]|8[078]|9\\d)\\d{7}', example_number='917123456', possible_length=(9,)),
     preferred_international_prefix='8~10',
     number_format=[NumberFormat(pattern='(\\d{6})(\\d)(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['331', '3317']),
         NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[34]7|91[78]']),
diff --git a/python/phonenumbers/data/region_TT.py b/python/phonenumbers/data/region_TT.py
index 46082da6..3024d45b 100644
--- a/python/phonenumbers/data/region_TT.py
+++ b/python/phonenumbers/data/region_TT.py
@@ -7,10 +7,10 @@ PHONE_METADATA_TT = PhoneMetadata(id='TT', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}', example_number='8682911234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voicemail=PhoneNumberDesc(national_number_pattern='868619\\d{4}', example_number='8686191234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-46-8]\\d{6})$',
+    national_prefix_for_parsing='([2-46-8]\\d{6})$|1',
     national_prefix_transform_rule='868\\1',
     leading_digits='868',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_US.py b/python/phonenumbers/data/region_US.py
index 9fa9f145..f85d94f3 100644
--- a/python/phonenumbers/data/region_US.py
+++ b/python/phonenumbers/data/region_US.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_US = PhoneMetadata(id='US', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='[2-9]\\d{9}|3\\d{6}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
     national_prefix_for_parsing='1',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['310'], national_prefix_optional_when_formatting=True),
diff --git a/python/phonenumbers/data/region_UY.py b/python/phonenumbers/data/region_UY.py
index e3c1f767..6d44ba1b 100644
--- a/python/phonenumbers/data/region_UY.py
+++ b/python/phonenumbers/data/region_UY.py
@@ -2,10 +2,10 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_UY = PhoneMetadata(id='UY', country_code=598, international_prefix='0(?:0|1[3-9]\\d)',
-    general_desc=PhoneNumberDesc(national_number_pattern='4\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}', possible_length=(7, 8, 10)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}', possible_length=(7, 8, 10, 13)),
     fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}', example_number='21231234', possible_length=(8,), possible_length_local_only=(7,)),
     mobile=PhoneNumberDesc(national_number_pattern='9[1-9]\\d{6}', example_number='94231234', possible_length=(8,)),
-    toll_free=PhoneNumberDesc(national_number_pattern='(?:4\\d{5}|80[05])\\d{4}|405\\d{4}', example_number='8001234', possible_length=(7, 10)),
+    toll_free=PhoneNumberDesc(national_number_pattern='(?:(?:0004|4)\\d{5}|80[05])\\d{4}|405\\d{4}', example_number='8001234', possible_length=(7, 10, 13)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90[0-8]\\d{4}', example_number='9001234', possible_length=(7,)),
     preferred_international_prefix='00',
     national_prefix='0',
@@ -14,4 +14,5 @@ PHONE_METADATA_UY = PhoneMetadata(id='UY', country_code=598, international_prefi
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['405|8|90'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['9'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[124]']),
-        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['4'], national_prefix_formatting_rule='0\\1')])
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['4'], national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['0'])])
diff --git a/python/phonenumbers/data/region_UZ.py b/python/phonenumbers/data/region_UZ.py
index 24468d62..f88f2328 100644
--- a/python/phonenumbers/data/region_UZ.py
+++ b/python/phonenumbers/data/region_UZ.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_UZ = PhoneMetadata(id='UZ', country_code=998, international_prefix='810',
-    general_desc=PhoneNumberDesc(national_number_pattern='(?:33|55|[679]\\d|88)\\d{7}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:33|88|9[0-57-9])\\d{3}|55(?:50[013]|90\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:33|[5-79]\\d|88)\\d{7}', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:(?:33|50|88|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)),
     preferred_international_prefix='8~10',
     national_prefix='8',
     national_prefix_for_parsing='8',
diff --git a/python/phonenumbers/data/region_VC.py b/python/phonenumbers/data/region_VC.py
index b3350be9..a0ed0157 100644
--- a/python/phonenumbers/data/region_VC.py
+++ b/python/phonenumbers/data/region_VC.py
@@ -7,10 +7,10 @@ PHONE_METADATA_VC = PhoneMetadata(id='VC', country_code=1, international_prefix=
     mobile=PhoneNumberDesc(national_number_pattern='784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}', example_number='7844301234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='78451[0-2]\\d{4}', example_number='7845101234', possible_length=(10,), possible_length_local_only=(7,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-7]\\d{6})$',
+    national_prefix_for_parsing='([2-7]\\d{6})$|1',
     national_prefix_transform_rule='784\\1',
     leading_digits='784',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_VG.py b/python/phonenumbers/data/region_VG.py
index e779bab9..354edd97 100644
--- a/python/phonenumbers/data/region_VG.py
+++ b/python/phonenumbers/data/region_VG.py
@@ -3,13 +3,13 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_VG = PhoneMetadata(id='VG', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:284|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='284496[0-5]\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}', example_number='2842291234', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}', example_number='2843001234', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}', example_number='2842291234', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}', example_number='2843001234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-578]\\d{6})$',
+    national_prefix_for_parsing='([2-578]\\d{6})$|1',
     national_prefix_transform_rule='284\\1',
     leading_digits='284',
     mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_VI.py b/python/phonenumbers/data/region_VI.py
index 2a43447e..84dc5704 100644
--- a/python/phonenumbers/data/region_VI.py
+++ b/python/phonenumbers/data/region_VI.py
@@ -3,12 +3,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_VI = PhoneMetadata(id='VI', country_code=1, international_prefix='011',
     general_desc=PhoneNumberDesc(national_number_pattern='[58]\\d{9}|(?:34|90)0\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
+    mobile=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
     toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
-    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+    personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
     national_prefix='1',
-    national_prefix_for_parsing='1|([2-9]\\d{6})$',
+    national_prefix_for_parsing='([2-9]\\d{6})$|1',
     national_prefix_transform_rule='340\\1',
     leading_digits='340')
diff --git a/python/phonenumbers/data/region_VN.py b/python/phonenumbers/data/region_VN.py
index 8b28547f..aae46215 100644
--- a/python/phonenumbers/data/region_VN.py
+++ b/python/phonenumbers/data/region_VN.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_VN = PhoneMetadata(id='VN', country_code=84, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}', possible_length=(7, 8, 9, 10)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\d{7}', example_number='2101234567', possible_length=(10,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}', example_number='2101234567', possible_length=(10,)),
     mobile=PhoneNumberDesc(national_number_pattern='(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}', example_number='912345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='1800\\d{4,6}|12(?:0[13]|28)\\d{4}', example_number='1800123456', possible_length=(8, 9, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{4,6}', example_number='1900123456', possible_length=(8, 9, 10)),
diff --git a/python/phonenumbers/data/region_YE.py b/python/phonenumbers/data/region_YE.py
index dcfed7ad..1cea3996 100644
--- a/python/phonenumbers/data/region_YE.py
+++ b/python/phonenumbers/data/region_YE.py
@@ -4,8 +4,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_YE = PhoneMetadata(id='YE', country_code=967, international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='(?:1|7\\d)\\d{7}|[1-7]\\d{6}', possible_length=(7, 8, 9), possible_length_local_only=(6,)),
     fixed_line=PhoneNumberDesc(national_number_pattern='78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}', example_number='1234567', possible_length=(7, 8), possible_length_local_only=(6,)),
-    mobile=PhoneNumberDesc(national_number_pattern='7[0137]\\d{7}', example_number='712345678', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='7[01378]\\d{7}', example_number='712345678', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
-    number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3,4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-6]|7[24-68]'], national_prefix_formatting_rule='0\\1'),
+    number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3,4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-6]|7(?:[24-6]|8[0-7])'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_YT.py b/python/phonenumbers/data/region_YT.py
index 573f0a49..6f6f5c46 100644
--- a/python/phonenumbers/data/region_YT.py
+++ b/python/phonenumbers/data/region_YT.py
@@ -2,10 +2,10 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_YT = PhoneMetadata(id='YT', country_code=262, international_prefix='00',
-    general_desc=PhoneNumberDesc(national_number_pattern='80\\d{7}|(?:26|63)9\\d{6}', possible_length=(9,)),
-    fixed_line=PhoneNumberDesc(national_number_pattern='269(?:0[0-367]|5[0-3]|6\\d|[78]0)\\d{4}', example_number='269601234', possible_length=(9,)),
-    mobile=PhoneNumberDesc(national_number_pattern='639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}', example_number='639012345', possible_length=(9,)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:(?:26|63)9|80\\d)\\d|9398)\\d{5}', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='269(?:0[0-467]|5[0-3]|6\\d|[78]0)\\d{4}', example_number='269601234', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|9398[01])\\d{4}', example_number='639012345', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
-    leading_digits='269|63')
+    leading_digits='269|63|9398')
diff --git a/python/phonenumbers/geodata/__init__.py b/python/phonenumbers/geodata/__init__.py
index 8e643ed1..6d323f07 100644
--- a/python/phonenumbers/geodata/__init__.py
+++ b/python/phonenumbers/geodata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/geodata/data0.py b/python/phonenumbers/geodata/data0.py
index 2bc56a95..5f5f2808 100644
--- a/python/phonenumbers/geodata/data0.py
+++ b/python/phonenumbers/geodata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -7572,6 +7572,7 @@ data = {
  '1339':{'en': 'Massachusetts'},
  '1340200':{'en': 'Chtamstths, VI'},
  '1340203':{'en': 'Chtamstths, VI'},
+ '1340206':{'en': 'St. Croix, VI'},
  '1340208':{'en': 'St. Croix, VI'},
  '1340423':{'en': 'Chtamstths, VI'},
  '134044':{'en': 'Chtamstths, VI'},
@@ -7627,6 +7628,7 @@ data = {
  '1347843':{'en': 'Bronx, NY'},
  '1347862':{'en': 'Bronx, NY'},
  '1347915':{'en': 'Brooklyn, NY'},
+ '1350':{'en': 'California'},
  '1351':{'en': 'Massachusetts'},
  '1352':{'en': 'Florida'},
  '1352205':{'en': 'Lady Lake, FL'},
@@ -7765,6 +7767,7 @@ data = {
  '1352872':{'en': 'Gainesville, FL'},
  '1352873':{'en': 'Ocala, FL'},
  '1352955':{'en': 'Gainesville, FL'},
+ '1354':{'en': 'Quebec'},
  '1360':{'en': 'Washington State'},
  '1360210':{'en': 'Camas, WA'},
  '1360213':{'en': 'Vancouver, WA'},
@@ -8106,6 +8109,7 @@ data = {
  '1367':{'en': 'Quebec'},
  '1368':{'en': 'Alberta'},
  '1380':{'en': 'Ohio'},
+ '1382':{'en': 'Ontario'},
  '1385':{'en': 'Utah'},
  '1386':{'en': 'Florida'},
  '1386218':{'en': 'Orange City, FL'},
@@ -10015,8 +10019,4 @@ data = {
  '1414964':{'en': 'Milwaukee, WI'},
  '1414967':{'en': 'Milwaukee, WI'},
  '1414988':{'en': 'Milwaukee, WI'},
- '1415':{'en': 'California'},
- '1415202':{'en': 'San Francisco, CA'},
- '1415206':{'en': 'San Francisco, CA'},
- '1415209':{'en': 'Novato, CA'},
 }
diff --git a/python/phonenumbers/geodata/data1.py b/python/phonenumbers/geodata/data1.py
index 6f80b334..50b01f91 100644
--- a/python/phonenumbers/geodata/data1.py
+++ b/python/phonenumbers/geodata/data1.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,10 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '1415':{'en': 'California'},
+ '1415202':{'en': 'San Francisco, CA'},
+ '1415206':{'en': 'San Francisco, CA'},
+ '1415209':{'en': 'Novato, CA'},
  '1415217':{'en': 'San Francisco, CA'},
  '1415221':{'en': 'San Francisco, CA'},
  '1415227':{'en': 'San Francisco, CA'},
@@ -958,6 +962,7 @@ data = {
  '1425899':{'en': 'Kirkland, WA'},
  '1425957':{'en': 'Bellevue, WA'},
  '1425990':{'en': 'Bellevue, WA'},
+ '1428':{'en': 'New Brunswick'},
  '1430':{'en': 'Texas'},
  '1431':{'en': 'Manitoba'},
  '1432':{'en': 'Texas'},
@@ -1499,6 +1504,7 @@ data = {
  '1469916':{'en': 'Dallas, TX'},
  '1469952':{'en': 'McKinney, TX'},
  '1470':{'en': 'Georgia'},
+ '1472':{'en': 'North Carolina'},
  '1474':{'en': 'Saskatchewan'},
  '1475':{'en': 'Connecticut'},
  '1478':{'en': 'Georgia'},
@@ -4831,6 +4837,7 @@ data = {
  '1541998':{'en': 'Junction City, OR'},
  '1548':{'en': 'Ontario'},
  '1551':{'en': 'New Jersey'},
+ '1557':{'en': 'Missouri'},
  '1559':{'en': 'California'},
  '155922':{'en': 'Fresno, CA'},
  '1559230':{'en': 'Fresno, CA'},
@@ -9332,6 +9339,7 @@ data = {
  '1682622':{'en': 'Mansfield, TX'},
  '1682647':{'en': 'Fort Worth, TX'},
  '1682885':{'en': 'Fort Worth, TX'},
+ '1683':{'en': 'Ontario'},
  '1689':{'en': 'Florida'},
  '1701':{'en': 'North Dakota'},
  '1701221':{'en': 'Bismarck, ND'},
@@ -10011,12 +10019,4 @@ data = {
  '1705560':{'en': 'Greater Sudbury, ON'},
  '1705563':{'en': 'Earlton, ON'},
  '1705566':{'en': 'Greater Sudbury, ON'},
- '1705567':{'en': 'Kirkland Lake, ON'},
- '1705575':{'en': 'Sault Ste. Marie, ON'},
- '1705586':{'en': 'Greater Sudbury, ON'},
- '1705635':{'en': 'Dwight, ON'},
- '1705639':{'en': 'Norwood, ON'},
- '1705645':{'en': 'Bracebridge, ON'},
- '1705646':{'en': 'Bracebridge, ON'},
- '1705647':{'en': 'New Liskeard, ON'},
 }
diff --git a/python/phonenumbers/geodata/data10.py b/python/phonenumbers/geodata/data10.py
index a93b364b..ff3f9d1f 100644
--- a/python/phonenumbers/geodata/data10.py
+++ b/python/phonenumbers/geodata/data10.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '61348009':{'en': 'Berrigan'},
+ '61348010':{'en': 'Blighty'},
+ '61348011':{'en': 'Brassi'},
+ '61348012':{'en': 'Caldwell'},
+ '61348013':{'en': 'Cobram'},
+ '61348014':{'en': 'Conargo'},
+ '61348015':{'en': 'Cornalla'},
+ '61348016':{'en': 'Deniliquin'},
+ '61348017':{'en': 'Dookie'},
+ '61348018':{'en': 'Finley'},
+ '61348019':{'en': 'Jerilderie'},
+ '61348020':{'en': 'Jimaringle'},
+ '61348021':{'en': 'Katamatite'},
+ '61348022':{'en': 'Katandra West'},
+ '61348023':{'en': 'Kialla East'},
+ '61348024':{'en': 'Kyabram'},
+ '61348025':{'en': 'Lalalty'},
+ '61348026':{'en': 'Logie Brae'},
+ '61348027':{'en': 'Mabins Well'},
+ '61348028':{'en': 'Mathoura'},
+ '61348029':{'en': 'Moulamein'},
+ '61348030':{'en': 'Nathalia'},
+ '61348031':{'en': 'Numurkah'},
+ '61348032':{'en': 'Picola'},
+ '61348033':{'en': 'Rushworth'},
+ '61348034':{'en': 'Shepparton'},
+ '61348035':{'en': 'Tatura'},
+ '61348036':{'en': 'Tocumwal'},
+ '61348037':{'en': 'Tongala'},
+ '61348038':{'en': 'Undera'},
+ '61348039':{'en': 'Wakool'},
+ '6134804':{'en': 'Shepparton'},
+ '61348040':{'en': 'Wanganella'},
+ '61348041':{'en': 'Yalca'},
+ '61348050':{'en': 'Tatura'},
+ '61348051':{'en': 'Shepparton'},
+ '61348052':{'en': 'Kialla East'},
+ '61348053':{'en': 'Kyabram'},
+ '61348054':{'en': 'Berrigan'},
+ '61348055':{'en': 'Blighty'},
+ '61348056':{'en': 'Brassi'},
+ '61348057':{'en': 'Caldwell'},
+ '61348058':{'en': 'Cobram'},
+ '61348059':{'en': 'Conargo'},
+ '61348060':{'en': 'Cornalla'},
+ '61348061':{'en': 'Deniliquin'},
+ '61348062':{'en': 'Dookie'},
+ '61348063':{'en': 'Finley'},
+ '61348064':{'en': 'Jerilderie'},
+ '61348065':{'en': 'Jimaringle'},
+ '61348066':{'en': 'Katamatite'},
+ '61348067':{'en': 'Katandra West'},
+ '61348068':{'en': 'Kialla East'},
+ '61348069':{'en': 'Kyabram'},
+ '61348070':{'en': 'Lalalty'},
+ '61348071':{'en': 'Logie Brae'},
+ '61348072':{'en': 'Mabins Well'},
+ '61348073':{'en': 'Mathoura'},
+ '61348074':{'en': 'Moulamein'},
+ '61348075':{'en': 'Nathalia'},
+ '61348076':{'en': 'Numurkah'},
+ '61348077':{'en': 'Picola'},
+ '61348078':{'en': 'Rushworth'},
+ '61348079':{'en': 'Shepparton'},
+ '61348080':{'en': 'Tatura'},
+ '61348081':{'en': 'Tocumwal'},
+ '61348082':{'en': 'Tongala'},
+ '61348083':{'en': 'Undera'},
+ '61348084':{'en': 'Wakool'},
+ '61348085':{'en': 'Wanganella'},
+ '61348086':{'en': 'Yalca'},
+ '61348087':{'en': 'Tatura'},
+ '61348088':{'en': 'Tatura'},
+ '61348089':{'en': 'Tatura'},
+ '61348090':{'en': 'Berrigan'},
+ '61348091':{'en': 'Blighty'},
+ '61348092':{'en': 'Brassi'},
+ '61348093':{'en': 'Caldwell'},
+ '61348094':{'en': 'Cobram'},
+ '61348095':{'en': 'Conargo'},
+ '61348096':{'en': 'Cornalla'},
+ '61348097':{'en': 'Deniliquin'},
+ '61348098':{'en': 'Dookie'},
+ '61348099':{'en': 'Finley'},
+ '61348100':{'en': 'Jerilderie'},
+ '61348101':{'en': 'Jimaringle'},
+ '61348102':{'en': 'Katamatite'},
+ '61348103':{'en': 'Katandra West'},
+ '61348104':{'en': 'Kialla East'},
+ '61348105':{'en': 'Kyabram'},
+ '61348106':{'en': 'Lalalty'},
+ '61348107':{'en': 'Logie Brae'},
+ '61348108':{'en': 'Mabins Well'},
+ '61348109':{'en': 'Mathoura'},
+ '61348110':{'en': 'Moulamein'},
+ '61348111':{'en': 'Nathalia'},
+ '61348112':{'en': 'Numurkah'},
+ '61348113':{'en': 'Picola'},
+ '61348114':{'en': 'Rushworth'},
+ '61348115':{'en': 'Shepparton'},
+ '61348116':{'en': 'Tatura'},
+ '61348117':{'en': 'Tocumwal'},
+ '61348118':{'en': 'Tongala'},
+ '61348119':{'en': 'Undera'},
+ '6134812':{'en': 'Shepparton'},
+ '61348120':{'en': 'Wakool'},
+ '61348130':{'en': 'Shepparton'},
+ '61348131':{'en': 'Wanganella'},
+ '61348132':{'en': 'Yalca'},
+ '61348133':{'en': 'Tongala'},
+ '61348134':{'en': 'Tongala'},
+ '61348135':{'en': 'Tongala'},
+ '61348136':{'en': 'Tocumwal'},
+ '61348137':{'en': 'Tocumwal'},
+ '61348138':{'en': 'Tocumwal'},
+ '61348139':{'en': 'Berrigan'},
+ '61348140':{'en': 'Blighty'},
+ '61348141':{'en': 'Brassi'},
+ '61348142':{'en': 'Caldwell'},
+ '61348143':{'en': 'Cobram'},
+ '61348144':{'en': 'Conargo'},
+ '61348145':{'en': 'Cornalla'},
+ '61348146':{'en': 'Deniliquin'},
  '61348147':{'en': 'Dookie'},
  '61348148':{'en': 'Finley'},
  '61348149':{'en': 'Jerilderie'},
@@ -9896,127 +10019,4 @@ data = {
  '61387845':{'en': 'Dandenong'},
  '61387846':{'en': 'Dandenong'},
  '61387848':{'en': 'Dandenong'},
- '61387849':{'en': 'Kalkallo'},
- '6138785':{'en': 'Dandenong'},
- '6138786':{'en': 'Dandenong'},
- '6138787':{'en': 'Dandenong'},
- '6138788':{'en': 'Dandenong'},
- '6138789':{'en': 'Dandenong'},
- '613879':{'en': 'Dandenong'},
- '6138798':{'en': 'Sunbury'},
- '6138799':{'en': 'Croydon'},
- '6138800':{'en': 'Melbourne'},
- '6138801':{'en': 'Ringwood'},
- '6138802':{'en': 'Melbourne'},
- '61388030':{'en': 'Melbourne'},
- '61388031':{'en': 'Melbourne'},
- '61388032':{'en': 'Melbourne'},
- '61388033':{'en': 'Melbourne'},
- '61388034':{'en': 'Melbourne'},
- '613880357':{'en': 'Croydon'},
- '61388036':{'en': 'Melbourne'},
- '61388037':{'en': 'Melbourne'},
- '61388038':{'en': 'Melbourne'},
- '61388039':{'en': 'Melbourne'},
- '6138804':{'en': 'Melbourne'},
- '6138805':{'en': 'Ringwood'},
- '6138806':{'en': 'Ringwood'},
- '6138807':{'en': 'Melbourne'},
- '6138808':{'en': 'Melbourne'},
- '6138809':{'en': 'Melbourne'},
- '613881':{'en': 'Ringwood'},
- '6138810':{'en': 'Melbourne'},
- '6138815':{'en': 'Melbourne'},
- '6138816':{'en': 'Melbourne'},
- '6138817':{'en': 'Melbourne'},
- '6138820':{'en': 'Ringwood'},
- '61388205':{'en': 'Melbourne'},
- '61388207':{'en': 'Melbourne'},
- '6138821':{'en': 'Ringwood'},
- '61388221':{'en': 'Ringwood'},
- '61388222':{'en': 'Ringwood'},
- '61388228':{'en': 'Ringwood'},
- '61388229':{'en': 'Ringwood'},
- '6138823':{'en': 'Melbourne'},
- '6138824':{'en': 'Ringwood'},
- '6138825':{'en': 'Melbourne'},
- '6138826':{'en': 'Ringwood'},
- '61388270':{'en': 'Ringwood'},
- '61388271':{'en': 'Ringwood'},
- '61388272':{'en': 'Ringwood'},
- '61388273':{'en': 'Ringwood'},
- '61388274':{'en': 'Ringwood'},
- '61388275':{'en': 'Ringwood'},
- '6138831':{'en': 'Melbourne'},
- '6138832':{'en': 'Melbourne'},
- '6138833':{'en': 'Ringwood'},
- '6138838':{'en': 'Ringwood'},
- '61388390':{'en': 'Ringwood'},
- '61388391':{'en': 'Ringwood'},
- '61388392':{'en': 'Ringwood'},
- '61388393':{'en': 'Ringwood'},
- '61388394':{'en': 'Ringwood'},
- '61388395':{'en': 'Ringwood'},
- '61388396':{'en': 'Ringwood'},
- '61388397':{'en': 'Ringwood'},
- '613884':{'en': 'Melbourne'},
- '6138841':{'en': 'Ringwood'},
- '6138845':{'en': 'Ringwood'},
- '6138846':{'en': 'Ringwood'},
- '6138847':{'en': 'Ringwood'},
- '6138850':{'en': 'Melbourne'},
- '6138851':{'en': 'Melbourne'},
- '6138855':{'en': 'Melbourne'},
- '6138862':{'en': 'Melbourne'},
- '6138863':{'en': 'Ringwood'},
- '6138864':{'en': 'Ringwood'},
- '6138866':{'en': 'Melbourne'},
- '6138870':{'en': 'Ringwood'},
- '6138871':{'en': 'Ringwood'},
- '6138872':{'en': 'Ringwood'},
- '6138873':{'en': 'Ringwood'},
- '61388744':{'en': 'Ringwood'},
- '6138877':{'en': 'Ringwood'},
- '6138878':{'en': 'Ringwood'},
- '6138888':{'en': 'Melbourne'},
- '6138892':{'en': 'Melbourne'},
- '61388996':{'en': 'Melbourne'},
- '61388997':{'en': 'Melbourne'},
- '61388998':{'en': 'Melbourne'},
- '61388999':{'en': 'Melbourne'},
- '6138902':{'en': 'Dandenong'},
- '61389030':{'en': 'Dandenong'},
- '61389031':{'en': 'Dandenong'},
- '61389032':{'en': 'Dandenong'},
- '61390':{'en': 'Melbourne'},
- '61390070':{'en': 'Eltham'},
- '61390090':{'en': 'Eltham'},
- '61390091':{'en': 'Eltham'},
- '61390092':{'en': 'Eltham'},
- '6139100':{'en': 'Melbourne'},
- '61391011':{'en': 'Melbourne'},
- '61391012':{'en': 'Melbourne'},
- '61391013':{'en': 'Melbourne'},
- '61391014':{'en': 'Melbourne'},
- '61391015':{'en': 'Melbourne'},
- '61391016':{'en': 'Melbourne'},
- '61391017':{'en': 'Melbourne'},
- '61391018':{'en': 'Melbourne'},
- '61391019':{'en': 'Melbourne'},
- '6139102':{'en': 'Melbourne'},
- '61391030':{'en': 'Melbourne'},
- '61391031':{'en': 'Melbourne'},
- '61391032':{'en': 'Melbourne'},
- '61391058':{'en': 'Melbourne'},
- '61391059':{'en': 'Melbourne'},
- '6139106':{'en': 'Melbourne'},
- '6139107':{'en': 'Melbourne'},
- '6139108':{'en': 'Melbourne'},
- '6139109':{'en': 'Melbourne'},
- '6139110':{'en': 'Melbourne'},
- '6139130':{'en': 'Melbourne'},
- '6139131':{'en': 'Melbourne'},
- '6139132':{'en': 'Melbourne'},
- '6139133':{'en': 'Melbourne'},
- '6139134':{'en': 'Melbourne'},
 }
diff --git a/python/phonenumbers/geodata/data11.py b/python/phonenumbers/geodata/data11.py
index 5866fa31..04f1d3ee 100644
--- a/python/phonenumbers/geodata/data11.py
+++ b/python/phonenumbers/geodata/data11.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '61387849':{'en': 'Kalkallo'},
+ '6138785':{'en': 'Dandenong'},
+ '6138786':{'en': 'Dandenong'},
+ '6138787':{'en': 'Dandenong'},
+ '6138788':{'en': 'Dandenong'},
+ '6138789':{'en': 'Dandenong'},
+ '613879':{'en': 'Dandenong'},
+ '6138798':{'en': 'Sunbury'},
+ '6138799':{'en': 'Croydon'},
+ '6138800':{'en': 'Melbourne'},
+ '6138801':{'en': 'Ringwood'},
+ '6138802':{'en': 'Melbourne'},
+ '61388030':{'en': 'Melbourne'},
+ '61388031':{'en': 'Melbourne'},
+ '61388032':{'en': 'Melbourne'},
+ '61388033':{'en': 'Melbourne'},
+ '61388034':{'en': 'Melbourne'},
+ '613880357':{'en': 'Croydon'},
+ '61388036':{'en': 'Melbourne'},
+ '61388037':{'en': 'Melbourne'},
+ '61388038':{'en': 'Melbourne'},
+ '61388039':{'en': 'Melbourne'},
+ '6138804':{'en': 'Melbourne'},
+ '6138805':{'en': 'Ringwood'},
+ '6138806':{'en': 'Ringwood'},
+ '6138807':{'en': 'Melbourne'},
+ '6138808':{'en': 'Melbourne'},
+ '6138809':{'en': 'Melbourne'},
+ '613881':{'en': 'Ringwood'},
+ '6138810':{'en': 'Melbourne'},
+ '6138815':{'en': 'Melbourne'},
+ '6138816':{'en': 'Melbourne'},
+ '6138817':{'en': 'Melbourne'},
+ '6138820':{'en': 'Ringwood'},
+ '61388205':{'en': 'Melbourne'},
+ '61388207':{'en': 'Melbourne'},
+ '6138821':{'en': 'Ringwood'},
+ '61388221':{'en': 'Ringwood'},
+ '61388222':{'en': 'Ringwood'},
+ '61388228':{'en': 'Ringwood'},
+ '61388229':{'en': 'Ringwood'},
+ '6138823':{'en': 'Melbourne'},
+ '6138824':{'en': 'Ringwood'},
+ '6138825':{'en': 'Melbourne'},
+ '6138826':{'en': 'Ringwood'},
+ '61388270':{'en': 'Ringwood'},
+ '61388271':{'en': 'Ringwood'},
+ '61388272':{'en': 'Ringwood'},
+ '61388273':{'en': 'Ringwood'},
+ '61388274':{'en': 'Ringwood'},
+ '61388275':{'en': 'Ringwood'},
+ '6138831':{'en': 'Melbourne'},
+ '6138832':{'en': 'Melbourne'},
+ '6138833':{'en': 'Ringwood'},
+ '6138838':{'en': 'Ringwood'},
+ '61388390':{'en': 'Ringwood'},
+ '61388391':{'en': 'Ringwood'},
+ '61388392':{'en': 'Ringwood'},
+ '61388393':{'en': 'Ringwood'},
+ '61388394':{'en': 'Ringwood'},
+ '61388395':{'en': 'Ringwood'},
+ '61388396':{'en': 'Ringwood'},
+ '61388397':{'en': 'Ringwood'},
+ '613884':{'en': 'Melbourne'},
+ '6138841':{'en': 'Ringwood'},
+ '6138845':{'en': 'Ringwood'},
+ '6138846':{'en': 'Ringwood'},
+ '6138847':{'en': 'Ringwood'},
+ '6138850':{'en': 'Melbourne'},
+ '6138851':{'en': 'Melbourne'},
+ '6138855':{'en': 'Melbourne'},
+ '6138862':{'en': 'Melbourne'},
+ '6138863':{'en': 'Ringwood'},
+ '6138864':{'en': 'Ringwood'},
+ '6138866':{'en': 'Melbourne'},
+ '6138870':{'en': 'Ringwood'},
+ '6138871':{'en': 'Ringwood'},
+ '6138872':{'en': 'Ringwood'},
+ '6138873':{'en': 'Ringwood'},
+ '61388744':{'en': 'Ringwood'},
+ '6138877':{'en': 'Ringwood'},
+ '6138878':{'en': 'Ringwood'},
+ '6138888':{'en': 'Melbourne'},
+ '6138892':{'en': 'Melbourne'},
+ '61388996':{'en': 'Melbourne'},
+ '61388997':{'en': 'Melbourne'},
+ '61388998':{'en': 'Melbourne'},
+ '61388999':{'en': 'Melbourne'},
+ '6138902':{'en': 'Dandenong'},
+ '61389030':{'en': 'Dandenong'},
+ '61389031':{'en': 'Dandenong'},
+ '61389032':{'en': 'Dandenong'},
+ '61390':{'en': 'Melbourne'},
+ '61390070':{'en': 'Eltham'},
+ '61390090':{'en': 'Eltham'},
+ '61390091':{'en': 'Eltham'},
+ '61390092':{'en': 'Eltham'},
+ '6139100':{'en': 'Melbourne'},
+ '61391011':{'en': 'Melbourne'},
+ '61391012':{'en': 'Melbourne'},
+ '61391013':{'en': 'Melbourne'},
+ '61391014':{'en': 'Melbourne'},
+ '61391015':{'en': 'Melbourne'},
+ '61391016':{'en': 'Melbourne'},
+ '61391017':{'en': 'Melbourne'},
+ '61391018':{'en': 'Melbourne'},
+ '61391019':{'en': 'Melbourne'},
+ '6139102':{'en': 'Melbourne'},
+ '61391030':{'en': 'Melbourne'},
+ '61391031':{'en': 'Melbourne'},
+ '61391032':{'en': 'Melbourne'},
+ '61391058':{'en': 'Melbourne'},
+ '61391059':{'en': 'Melbourne'},
+ '6139106':{'en': 'Melbourne'},
+ '6139107':{'en': 'Melbourne'},
+ '6139108':{'en': 'Melbourne'},
+ '6139109':{'en': 'Melbourne'},
+ '6139110':{'en': 'Melbourne'},
+ '6139130':{'en': 'Melbourne'},
+ '6139131':{'en': 'Melbourne'},
+ '6139132':{'en': 'Melbourne'},
+ '6139133':{'en': 'Melbourne'},
+ '6139134':{'en': 'Melbourne'},
  '6139135':{'en': 'Melbourne'},
  '6139136':{'en': 'Melbourne'},
  '61391735':{'en': 'Melbourne'},
@@ -9896,127 +10019,4 @@ data = {
  '61749580':{'en': 'Moranbah'},
  '61749581':{'en': 'Dysart'},
  '61749582':{'en': 'Dysart'},
- '61749583':{'en': 'Finch Hatton'},
- '61749584':{'en': 'Finch Hatton'},
- '61749585':{'en': 'Gargett'},
- '61749586':{'en': 'Gargett'},
- '61749587':{'en': 'Wagoora'},
- '61749588':{'en': 'Calen'},
- '61749589':{'en': 'Glenden'},
- '61749590':{'en': 'Yakapari'},
- '61749591':{'en': 'Walkerston'},
- '61749592':{'en': 'Walkerston'},
- '61749593':{'en': 'Walkerston'},
- '61749594':{'en': 'Walkerston'},
- '61749595':{'en': 'Mackay'},
- '61749596':{'en': 'Mackay'},
- '61749597':{'en': 'Walkerston'},
- '61749598':{'en': 'Mackay'},
- '61749599':{'en': 'Mackay'},
- '6174960':{'en': 'Mackay'},
- '61749610':{'en': 'Mount Morgan'},
- '61749611':{'en': 'Rockhampton'},
- '61749612':{'en': 'Gladstone'},
- '61749613':{'en': 'Mackay'},
- '61749614':{'en': 'Rockhampton'},
- '61749615':{'en': 'The Caves'},
- '61749616':{'en': 'Tungamull'},
- '61749617':{'en': 'Westwood'},
- '61749618':{'en': 'Mackay'},
- '61749619':{'en': 'Mackay'},
- '61749620':{'en': 'Gladstone'},
- '61749621':{'en': 'Gladstone'},
- '61749622':{'en': 'Gladstone'},
- '61749623':{'en': 'Mackay'},
- '61749624':{'en': 'Cannon Valley'},
- '61749625':{'en': 'Cannon Valley'},
- '61749626':{'en': 'Cannon Valley'},
- '61749627':{'en': 'Isaac River'},
- '61749628':{'en': 'Marlborough'},
- '61749629':{'en': 'Mount Gardiner'},
- '6174963':{'en': 'Mackay'},
- '61749640':{'en': 'Colston Park'},
- '61749641':{'en': 'Cannon Valley'},
- '61749642':{'en': 'Glenden'},
- '61749643':{'en': 'Walkerston'},
- '61749644':{'en': 'Wagoora'},
- '61749645':{'en': 'St Lawrence'},
- '61749646':{'en': 'Proserpine'},
- '61749647':{'en': 'Proserpine'},
- '61749648':{'en': 'Sarina'},
- '61749649':{'en': 'Sarina'},
- '6174965':{'en': 'Mackay'},
- '61749650':{'en': 'Gladstone'},
- '61749651':{'en': 'Gladstone'},
- '61749652':{'en': 'Gladstone'},
- '61749653':{'en': 'Cannon Valley'},
- '61749660':{'en': 'Yakapari'},
- '61749661':{'en': 'Yakapari'},
- '61749662':{'en': 'Yakapari'},
- '61749663':{'en': 'Yakapari'},
- '61749664':{'en': 'Yakapari'},
- '61749665':{'en': 'Walkerston'},
- '61749666':{'en': 'Walkerston'},
- '61749667':{'en': 'Walkerston'},
- '61749668':{'en': 'Walkerston'},
- '61749669':{'en': 'Walkerston'},
- '61749670':{'en': 'Mackay'},
- '61749671':{'en': 'Mackay'},
- '61749672':{'en': 'Mackay'},
- '61749673':{'en': 'Mackay'},
- '61749674':{'en': 'Mackay'},
- '61749675':{'en': 'Cannon Valley'},
- '61749676':{'en': 'Cannon Valley'},
- '61749677':{'en': 'Cannon Valley'},
- '61749678':{'en': 'Sarina'},
- '61749679':{'en': 'Moranbah'},
- '6174968':{'en': 'Mackay'},
- '61749687':{'en': 'Walkerston'},
- '61749688':{'en': 'Moranbah'},
- '61749689':{'en': 'Dysart'},
- '6174969':{'en': 'Mackay'},
- '61749698':{'en': 'Cannon Valley'},
- '61749699':{'en': 'Cannon Valley'},
- '6174970':{'en': 'Gladstone'},
- '61749702':{'en': 'Mount Larcom'},
- '61749704':{'en': 'Benaraby'},
- '61749705':{'en': 'Miriam Vale'},
- '6174971':{'en': 'Gladstone'},
- '6174972':{'en': 'Gladstone'},
- '6174973':{'en': 'Gladstone'},
- '61749740':{'en': 'Ubobo'},
- '61749741':{'en': 'Ubobo'},
- '61749742':{'en': 'Turkey Beach'},
- '61749743':{'en': 'Turkey Beach'},
- '61749744':{'en': 'Miriam Vale'},
- '61749745':{'en': 'Miriam Vale'},
- '61749746':{'en': 'Miriam Vale'},
- '61749747':{'en': 'Agnes Water'},
- '61749748':{'en': 'Gayfield'},
- '61749749':{'en': 'Agnes Water'},
- '6174975':{'en': 'Calliope'},
- '61749750':{'en': 'Benaraby'},
- '61749751':{'en': 'Mount Larcom'},
- '61749752':{'en': 'Gladstone'},
- '61749753':{'en': 'Mount Larcom'},
- '6174976':{'en': 'Gladstone'},
- '61749770':{'en': 'Cannon Valley'},
- '61749771':{'en': 'Yeppoon'},
- '61749772':{'en': 'Byfield'},
- '61749773':{'en': 'Byfield'},
- '61749774':{'en': 'Rockhampton'},
- '61749775':{'en': 'Mackay'},
- '61749776':{'en': 'Gladstone'},
- '61749777':{'en': 'Gladstone'},
- '61749778':{'en': 'Gladstone'},
- '61749779':{'en': 'Gladstone'},
- '6174980':{'en': 'Emerald'},
- '61749801':{'en': 'Blackwater'},
- '61749802':{'en': 'Clermont'},
- '61749805':{'en': 'Blackwater'},
- '61749810':{'en': 'Gemfields'},
- '61749811':{'en': 'Gemfields'},
- '61749812':{'en': 'Middlemount'},
- '61749813':{'en': 'Middlemount'},
- '61749814':{'en': 'Springsure'},
 }
diff --git a/python/phonenumbers/geodata/data12.py b/python/phonenumbers/geodata/data12.py
index b763a8fa..7908655e 100644
--- a/python/phonenumbers/geodata/data12.py
+++ b/python/phonenumbers/geodata/data12.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '61749583':{'en': 'Finch Hatton'},
+ '61749584':{'en': 'Finch Hatton'},
+ '61749585':{'en': 'Gargett'},
+ '61749586':{'en': 'Gargett'},
+ '61749587':{'en': 'Wagoora'},
+ '61749588':{'en': 'Calen'},
+ '61749589':{'en': 'Glenden'},
+ '61749590':{'en': 'Yakapari'},
+ '61749591':{'en': 'Walkerston'},
+ '61749592':{'en': 'Walkerston'},
+ '61749593':{'en': 'Walkerston'},
+ '61749594':{'en': 'Walkerston'},
+ '61749595':{'en': 'Mackay'},
+ '61749596':{'en': 'Mackay'},
+ '61749597':{'en': 'Walkerston'},
+ '61749598':{'en': 'Mackay'},
+ '61749599':{'en': 'Mackay'},
+ '6174960':{'en': 'Mackay'},
+ '61749610':{'en': 'Mount Morgan'},
+ '61749611':{'en': 'Rockhampton'},
+ '61749612':{'en': 'Gladstone'},
+ '61749613':{'en': 'Mackay'},
+ '61749614':{'en': 'Rockhampton'},
+ '61749615':{'en': 'The Caves'},
+ '61749616':{'en': 'Tungamull'},
+ '61749617':{'en': 'Westwood'},
+ '61749618':{'en': 'Mackay'},
+ '61749619':{'en': 'Mackay'},
+ '61749620':{'en': 'Gladstone'},
+ '61749621':{'en': 'Gladstone'},
+ '61749622':{'en': 'Gladstone'},
+ '61749623':{'en': 'Mackay'},
+ '61749624':{'en': 'Cannon Valley'},
+ '61749625':{'en': 'Cannon Valley'},
+ '61749626':{'en': 'Cannon Valley'},
+ '61749627':{'en': 'Isaac River'},
+ '61749628':{'en': 'Marlborough'},
+ '61749629':{'en': 'Mount Gardiner'},
+ '6174963':{'en': 'Mackay'},
+ '61749640':{'en': 'Colston Park'},
+ '61749641':{'en': 'Cannon Valley'},
+ '61749642':{'en': 'Glenden'},
+ '61749643':{'en': 'Walkerston'},
+ '61749644':{'en': 'Wagoora'},
+ '61749645':{'en': 'St Lawrence'},
+ '61749646':{'en': 'Proserpine'},
+ '61749647':{'en': 'Proserpine'},
+ '61749648':{'en': 'Sarina'},
+ '61749649':{'en': 'Sarina'},
+ '6174965':{'en': 'Mackay'},
+ '61749650':{'en': 'Gladstone'},
+ '61749651':{'en': 'Gladstone'},
+ '61749652':{'en': 'Gladstone'},
+ '61749653':{'en': 'Cannon Valley'},
+ '61749660':{'en': 'Yakapari'},
+ '61749661':{'en': 'Yakapari'},
+ '61749662':{'en': 'Yakapari'},
+ '61749663':{'en': 'Yakapari'},
+ '61749664':{'en': 'Yakapari'},
+ '61749665':{'en': 'Walkerston'},
+ '61749666':{'en': 'Walkerston'},
+ '61749667':{'en': 'Walkerston'},
+ '61749668':{'en': 'Walkerston'},
+ '61749669':{'en': 'Walkerston'},
+ '61749670':{'en': 'Mackay'},
+ '61749671':{'en': 'Mackay'},
+ '61749672':{'en': 'Mackay'},
+ '61749673':{'en': 'Mackay'},
+ '61749674':{'en': 'Mackay'},
+ '61749675':{'en': 'Cannon Valley'},
+ '61749676':{'en': 'Cannon Valley'},
+ '61749677':{'en': 'Cannon Valley'},
+ '61749678':{'en': 'Sarina'},
+ '61749679':{'en': 'Moranbah'},
+ '6174968':{'en': 'Mackay'},
+ '61749687':{'en': 'Walkerston'},
+ '61749688':{'en': 'Moranbah'},
+ '61749689':{'en': 'Dysart'},
+ '6174969':{'en': 'Mackay'},
+ '61749698':{'en': 'Cannon Valley'},
+ '61749699':{'en': 'Cannon Valley'},
+ '6174970':{'en': 'Gladstone'},
+ '61749702':{'en': 'Mount Larcom'},
+ '61749704':{'en': 'Benaraby'},
+ '61749705':{'en': 'Miriam Vale'},
+ '6174971':{'en': 'Gladstone'},
+ '6174972':{'en': 'Gladstone'},
+ '6174973':{'en': 'Gladstone'},
+ '61749740':{'en': 'Ubobo'},
+ '61749741':{'en': 'Ubobo'},
+ '61749742':{'en': 'Turkey Beach'},
+ '61749743':{'en': 'Turkey Beach'},
+ '61749744':{'en': 'Miriam Vale'},
+ '61749745':{'en': 'Miriam Vale'},
+ '61749746':{'en': 'Miriam Vale'},
+ '61749747':{'en': 'Agnes Water'},
+ '61749748':{'en': 'Gayfield'},
+ '61749749':{'en': 'Agnes Water'},
+ '6174975':{'en': 'Calliope'},
+ '61749750':{'en': 'Benaraby'},
+ '61749751':{'en': 'Mount Larcom'},
+ '61749752':{'en': 'Gladstone'},
+ '61749753':{'en': 'Mount Larcom'},
+ '6174976':{'en': 'Gladstone'},
+ '61749770':{'en': 'Cannon Valley'},
+ '61749771':{'en': 'Yeppoon'},
+ '61749772':{'en': 'Byfield'},
+ '61749773':{'en': 'Byfield'},
+ '61749774':{'en': 'Rockhampton'},
+ '61749775':{'en': 'Mackay'},
+ '61749776':{'en': 'Gladstone'},
+ '61749777':{'en': 'Gladstone'},
+ '61749778':{'en': 'Gladstone'},
+ '61749779':{'en': 'Gladstone'},
+ '6174980':{'en': 'Emerald'},
+ '61749801':{'en': 'Blackwater'},
+ '61749802':{'en': 'Clermont'},
+ '61749805':{'en': 'Blackwater'},
+ '61749810':{'en': 'Gemfields'},
+ '61749811':{'en': 'Gemfields'},
+ '61749812':{'en': 'Middlemount'},
+ '61749813':{'en': 'Middlemount'},
+ '61749814':{'en': 'Springsure'},
  '61749815':{'en': 'Springsure'},
  '61749816':{'en': 'Tieri'},
  '61749817':{'en': 'Tieri'},
@@ -9896,127 +10019,4 @@ data = {
  '618854552':{'en': 'New Well'},
  '618854553':{'en': 'New Well'},
  '618854554':{'en': 'New Well'},
- '618854555':{'en': 'New Well'},
- '618854556':{'en': 'New Well'},
- '618854557':{'en': 'New Well'},
- '618854558':{'en': 'New Well'},
- '618854560':{'en': 'Taylorville'},
- '618854561':{'en': 'Taylorville'},
- '618854562':{'en': 'Taylorville'},
- '618854563':{'en': 'Taylorville'},
- '618854564':{'en': 'Taylorville'},
- '618854565':{'en': 'Taylorville'},
- '618854566':{'en': 'Taylorville'},
- '618854567':{'en': 'Taylorville'},
- '618854568':{'en': 'Taylorville'},
- '618854570':{'en': 'Waikerie'},
- '618854571':{'en': 'Waikerie'},
- '618854572':{'en': 'Waikerie'},
- '618854573':{'en': 'Waikerie'},
- '618854574':{'en': 'Waikerie'},
- '618854575':{'en': 'Waikerie'},
- '618854576':{'en': 'Waikerie'},
- '618854577':{'en': 'Waikerie'},
- '618854578':{'en': 'Waikerie'},
- '618854580':{'en': 'Auburn'},
- '618854581':{'en': 'Auburn'},
- '618854582':{'en': 'Auburn'},
- '618854583':{'en': 'Auburn'},
- '618854584':{'en': 'Auburn'},
- '618854585':{'en': 'Auburn'},
- '618854586':{'en': 'Auburn'},
- '618854587':{'en': 'Auburn'},
- '618854588':{'en': 'Auburn'},
- '618854590':{'en': 'Freeling'},
- '618854591':{'en': 'Freeling'},
- '618854592':{'en': 'Freeling'},
- '618854593':{'en': 'Freeling'},
- '618854594':{'en': 'Freeling'},
- '618854595':{'en': 'Freeling'},
- '618854596':{'en': 'Freeling'},
- '618854598':{'en': 'Freeling'},
- '618854599':{'en': 'Freeling'},
- '61885460':{'en': 'Wanbi'},
- '61885461':{'en': 'Wanbi'},
- '61885462':{'en': 'Wanbi'},
- '61885463':{'en': 'Willunga'},
- '61885464':{'en': 'Willunga'},
- '61885465':{'en': 'Willunga'},
- '61885466':{'en': 'Windsor'},
- '61885467':{'en': 'Windsor'},
- '61885468':{'en': 'Windsor'},
- '618854690':{'en': 'Langhorne Creek'},
- '618854691':{'en': 'Langhorne Creek'},
- '618854692':{'en': 'Langhorne Creek'},
- '618854693':{'en': 'Langhorne Creek'},
- '618854694':{'en': 'Langhorne Creek'},
- '618854697':{'en': 'Langhorne Creek'},
- '618854698':{'en': 'Langhorne Creek'},
- '618854699':{'en': 'Langhorne Creek'},
- '61885470':{'en': 'Wunkar'},
- '61885471':{'en': 'Wunkar'},
- '61885472':{'en': 'Wunkar'},
- '61885473':{'en': 'Wynarka'},
- '61885474':{'en': 'Wynarka'},
- '61885475':{'en': 'Wynarka'},
- '61885476':{'en': 'Yankalilla'},
- '61885477':{'en': 'Yankalilla'},
- '61885478':{'en': 'Yankalilla'},
- '618854790':{'en': 'Milang'},
- '618854791':{'en': 'Milang'},
- '618854792':{'en': 'Milang'},
- '618854793':{'en': 'Milang'},
- '618854794':{'en': 'Milang'},
- '618854797':{'en': 'Milang'},
- '618854798':{'en': 'Milang'},
- '618854799':{'en': 'Milang'},
- '61885480':{'en': 'Yumali'},
- '61885481':{'en': 'Yumali'},
- '61885482':{'en': 'Yumali'},
- '61885483':{'en': 'Victor Harbor'},
- '61885484':{'en': 'Gawler'},
- '61885485':{'en': 'Murray Bridge'},
- '61885486':{'en': 'Tanunda'},
- '61885487':{'en': 'Strathalbyn'},
- '61885488':{'en': 'Victor Harbor'},
- '618854890':{'en': 'Murray Bridge'},
- '618854891':{'en': 'Murray Bridge'},
- '618854892':{'en': 'Murray Bridge'},
- '618854893':{'en': 'Murray Bridge'},
- '618854894':{'en': 'Murray Bridge'},
- '618854898':{'en': 'Murray Bridge'},
- '618854899':{'en': 'Murray Bridge'},
- '618854900':{'en': 'Mypolonga'},
- '618854901':{'en': 'Mypolonga'},
- '618854902':{'en': 'Mypolonga'},
- '618854903':{'en': 'Mypolonga'},
- '618854904':{'en': 'Mypolonga'},
- '618854905':{'en': 'Mypolonga'},
- '618854906':{'en': 'Mypolonga'},
- '618854907':{'en': 'Mypolonga'},
- '618854908':{'en': 'Mypolonga'},
- '618854910':{'en': 'Strathalbyn'},
- '618854911':{'en': 'Strathalbyn'},
- '618854912':{'en': 'Strathalbyn'},
- '618854913':{'en': 'Strathalbyn'},
- '618854916':{'en': 'Strathalbyn'},
- '618854917':{'en': 'Strathalbyn'},
- '618854918':{'en': 'Strathalbyn'},
- '618854919':{'en': 'Strathalbyn'},
- '618854920':{'en': 'Bow Hill'},
- '618854921':{'en': 'Bow Hill'},
- '618854922':{'en': 'Bow Hill'},
- '618854923':{'en': 'Bow Hill'},
- '618854924':{'en': 'Bow Hill'},
- '618854925':{'en': 'Bow Hill'},
- '618854926':{'en': 'Bow Hill'},
- '618854927':{'en': 'Bow Hill'},
- '618854928':{'en': 'Bow Hill'},
- '618854930':{'en': 'Bower'},
- '618854931':{'en': 'Bower'},
- '618854932':{'en': 'Bower'},
- '618854933':{'en': 'Bower'},
- '618854934':{'en': 'Bower'},
- '618854935':{'en': 'Bower'},
- '618854936':{'en': 'Bower'},
 }
diff --git a/python/phonenumbers/geodata/data13.py b/python/phonenumbers/geodata/data13.py
index d4954411..9aa3a6ca 100644
--- a/python/phonenumbers/geodata/data13.py
+++ b/python/phonenumbers/geodata/data13.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '618854555':{'en': 'New Well'},
+ '618854556':{'en': 'New Well'},
+ '618854557':{'en': 'New Well'},
+ '618854558':{'en': 'New Well'},
+ '618854560':{'en': 'Taylorville'},
+ '618854561':{'en': 'Taylorville'},
+ '618854562':{'en': 'Taylorville'},
+ '618854563':{'en': 'Taylorville'},
+ '618854564':{'en': 'Taylorville'},
+ '618854565':{'en': 'Taylorville'},
+ '618854566':{'en': 'Taylorville'},
+ '618854567':{'en': 'Taylorville'},
+ '618854568':{'en': 'Taylorville'},
+ '618854570':{'en': 'Waikerie'},
+ '618854571':{'en': 'Waikerie'},
+ '618854572':{'en': 'Waikerie'},
+ '618854573':{'en': 'Waikerie'},
+ '618854574':{'en': 'Waikerie'},
+ '618854575':{'en': 'Waikerie'},
+ '618854576':{'en': 'Waikerie'},
+ '618854577':{'en': 'Waikerie'},
+ '618854578':{'en': 'Waikerie'},
+ '618854580':{'en': 'Auburn'},
+ '618854581':{'en': 'Auburn'},
+ '618854582':{'en': 'Auburn'},
+ '618854583':{'en': 'Auburn'},
+ '618854584':{'en': 'Auburn'},
+ '618854585':{'en': 'Auburn'},
+ '618854586':{'en': 'Auburn'},
+ '618854587':{'en': 'Auburn'},
+ '618854588':{'en': 'Auburn'},
+ '618854590':{'en': 'Freeling'},
+ '618854591':{'en': 'Freeling'},
+ '618854592':{'en': 'Freeling'},
+ '618854593':{'en': 'Freeling'},
+ '618854594':{'en': 'Freeling'},
+ '618854595':{'en': 'Freeling'},
+ '618854596':{'en': 'Freeling'},
+ '618854598':{'en': 'Freeling'},
+ '618854599':{'en': 'Freeling'},
+ '61885460':{'en': 'Wanbi'},
+ '61885461':{'en': 'Wanbi'},
+ '61885462':{'en': 'Wanbi'},
+ '61885463':{'en': 'Willunga'},
+ '61885464':{'en': 'Willunga'},
+ '61885465':{'en': 'Willunga'},
+ '61885466':{'en': 'Windsor'},
+ '61885467':{'en': 'Windsor'},
+ '61885468':{'en': 'Windsor'},
+ '618854690':{'en': 'Langhorne Creek'},
+ '618854691':{'en': 'Langhorne Creek'},
+ '618854692':{'en': 'Langhorne Creek'},
+ '618854693':{'en': 'Langhorne Creek'},
+ '618854694':{'en': 'Langhorne Creek'},
+ '618854697':{'en': 'Langhorne Creek'},
+ '618854698':{'en': 'Langhorne Creek'},
+ '618854699':{'en': 'Langhorne Creek'},
+ '61885470':{'en': 'Wunkar'},
+ '61885471':{'en': 'Wunkar'},
+ '61885472':{'en': 'Wunkar'},
+ '61885473':{'en': 'Wynarka'},
+ '61885474':{'en': 'Wynarka'},
+ '61885475':{'en': 'Wynarka'},
+ '61885476':{'en': 'Yankalilla'},
+ '61885477':{'en': 'Yankalilla'},
+ '61885478':{'en': 'Yankalilla'},
+ '618854790':{'en': 'Milang'},
+ '618854791':{'en': 'Milang'},
+ '618854792':{'en': 'Milang'},
+ '618854793':{'en': 'Milang'},
+ '618854794':{'en': 'Milang'},
+ '618854797':{'en': 'Milang'},
+ '618854798':{'en': 'Milang'},
+ '618854799':{'en': 'Milang'},
+ '61885480':{'en': 'Yumali'},
+ '61885481':{'en': 'Yumali'},
+ '61885482':{'en': 'Yumali'},
+ '61885483':{'en': 'Victor Harbor'},
+ '61885484':{'en': 'Gawler'},
+ '61885485':{'en': 'Murray Bridge'},
+ '61885486':{'en': 'Tanunda'},
+ '61885487':{'en': 'Strathalbyn'},
+ '61885488':{'en': 'Victor Harbor'},
+ '618854890':{'en': 'Murray Bridge'},
+ '618854891':{'en': 'Murray Bridge'},
+ '618854892':{'en': 'Murray Bridge'},
+ '618854893':{'en': 'Murray Bridge'},
+ '618854894':{'en': 'Murray Bridge'},
+ '618854898':{'en': 'Murray Bridge'},
+ '618854899':{'en': 'Murray Bridge'},
+ '618854900':{'en': 'Mypolonga'},
+ '618854901':{'en': 'Mypolonga'},
+ '618854902':{'en': 'Mypolonga'},
+ '618854903':{'en': 'Mypolonga'},
+ '618854904':{'en': 'Mypolonga'},
+ '618854905':{'en': 'Mypolonga'},
+ '618854906':{'en': 'Mypolonga'},
+ '618854907':{'en': 'Mypolonga'},
+ '618854908':{'en': 'Mypolonga'},
+ '618854910':{'en': 'Strathalbyn'},
+ '618854911':{'en': 'Strathalbyn'},
+ '618854912':{'en': 'Strathalbyn'},
+ '618854913':{'en': 'Strathalbyn'},
+ '618854916':{'en': 'Strathalbyn'},
+ '618854917':{'en': 'Strathalbyn'},
+ '618854918':{'en': 'Strathalbyn'},
+ '618854919':{'en': 'Strathalbyn'},
+ '618854920':{'en': 'Bow Hill'},
+ '618854921':{'en': 'Bow Hill'},
+ '618854922':{'en': 'Bow Hill'},
+ '618854923':{'en': 'Bow Hill'},
+ '618854924':{'en': 'Bow Hill'},
+ '618854925':{'en': 'Bow Hill'},
+ '618854926':{'en': 'Bow Hill'},
+ '618854927':{'en': 'Bow Hill'},
+ '618854928':{'en': 'Bow Hill'},
+ '618854930':{'en': 'Bower'},
+ '618854931':{'en': 'Bower'},
+ '618854932':{'en': 'Bower'},
+ '618854933':{'en': 'Bower'},
+ '618854934':{'en': 'Bower'},
+ '618854935':{'en': 'Bower'},
+ '618854936':{'en': 'Bower'},
  '618854937':{'en': 'Bower'},
  '618854938':{'en': 'Bower'},
  '618854940':{'en': 'Eudunda'},
@@ -9896,127 +10019,4 @@ data = {
  '618989096':{'en': 'Bradfords'},
  '618989097':{'en': 'Bradfords'},
  '618989098':{'en': 'Bradfords'},
- '61898910':{'en': 'Katanning'},
- '61898911':{'en': 'Katanning'},
- '618989120':{'en': 'Cuballing'},
- '618989121':{'en': 'Cuballing'},
- '618989122':{'en': 'Cuballing'},
- '618989123':{'en': 'Cuballing'},
- '618989124':{'en': 'Cuballing'},
- '618989125':{'en': 'Cuballing'},
- '618989126':{'en': 'Cuballing'},
- '618989127':{'en': 'Cuballing'},
- '618989128':{'en': 'Cuballing'},
- '618989130':{'en': 'Narrakine'},
- '618989133':{'en': 'Narrakine'},
- '618989136':{'en': 'Narrakine'},
- '618989137':{'en': 'Narrakine'},
- '618989138':{'en': 'Narrakine'},
- '618989140':{'en': 'Narrogin'},
- '618989141':{'en': 'Narrogin'},
- '618989142':{'en': 'Narrogin'},
- '618989143':{'en': 'Narrogin'},
- '618989144':{'en': 'Narrogin'},
- '618989145':{'en': 'Narrogin'},
- '618989146':{'en': 'Narrogin'},
- '618989147':{'en': 'Narrogin'},
- '618989148':{'en': 'Narrogin'},
- '618989150':{'en': 'Nomans Lake'},
- '618989151':{'en': 'Nomans Lake'},
- '618989152':{'en': 'Nomans Lake'},
- '618989153':{'en': 'Nomans Lake'},
- '618989156':{'en': 'Nomans Lake'},
- '618989157':{'en': 'Nomans Lake'},
- '618989158':{'en': 'Nomans Lake'},
- '618989159':{'en': 'Nomans Lake'},
- '618989160':{'en': 'Pingelly'},
- '618989161':{'en': 'Pingelly'},
- '618989162':{'en': 'Pingelly'},
- '618989163':{'en': 'Pingelly'},
- '618989164':{'en': 'Pingelly'},
- '618989165':{'en': 'Pingelly'},
- '618989166':{'en': 'Pingelly'},
- '618989167':{'en': 'Pingelly'},
- '618989168':{'en': 'Pingelly'},
- '618989170':{'en': 'Pingelly East'},
- '618989173':{'en': 'Pingelly East'},
- '618989176':{'en': 'Pingelly East'},
- '618989177':{'en': 'Pingelly East'},
- '618989178':{'en': 'Pingelly East'},
- '618989180':{'en': 'Pumphreys'},
- '618989183':{'en': 'Pumphreys'},
- '618989186':{'en': 'Pumphreys'},
- '618989187':{'en': 'Pumphreys'},
- '618989188':{'en': 'Pumphreys'},
- '618989190':{'en': 'Quindanning'},
- '618989193':{'en': 'Quindanning'},
- '618989196':{'en': 'Quindanning'},
- '618989197':{'en': 'Quindanning'},
- '618989198':{'en': 'Quindanning'},
- '6189892':{'en': 'Albany'},
- '61898921':{'en': 'Mount Barker'},
- '61898923':{'en': 'Denmark'},
- '61898924':{'en': 'Porongurup'},
- '61898930':{'en': 'Wagin'},
- '618989310':{'en': 'Tarwonga'},
- '618989313':{'en': 'Tarwonga'},
- '618989316':{'en': 'Tarwonga'},
- '618989317':{'en': 'Tarwonga'},
- '618989318':{'en': 'Tarwonga'},
- '618989320':{'en': 'Wickepin'},
- '618989321':{'en': 'Wickepin'},
- '618989322':{'en': 'Wickepin'},
- '618989323':{'en': 'Wickepin'},
- '618989324':{'en': 'Wickepin'},
- '618989325':{'en': 'Wickepin'},
- '618989326':{'en': 'Wickepin'},
- '618989327':{'en': 'Wickepin'},
- '618989328':{'en': 'Wickepin'},
- '618989330':{'en': 'Williams'},
- '618989331':{'en': 'Williams'},
- '618989332':{'en': 'Williams'},
- '618989333':{'en': 'Williams'},
- '618989334':{'en': 'Williams'},
- '618989335':{'en': 'Williams'},
- '618989336':{'en': 'Williams'},
- '618989337':{'en': 'Williams'},
- '618989338':{'en': 'Williams'},
- '618989340':{'en': 'Arthur River'},
- '618989343':{'en': 'Arthur River'},
- '618989346':{'en': 'Arthur River'},
- '618989347':{'en': 'Arthur River'},
- '618989348':{'en': 'Arthur River'},
- '618989350':{'en': 'Beaufort River'},
- '618989353':{'en': 'Beaufort River'},
- '618989356':{'en': 'Beaufort River'},
- '618989357':{'en': 'Beaufort River'},
- '618989358':{'en': 'Beaufort River'},
- '618989360':{'en': 'Dongolocking'},
- '618989363':{'en': 'Dongolocking'},
- '618989366':{'en': 'Dongolocking'},
- '618989367':{'en': 'Dongolocking'},
- '618989368':{'en': 'Dongolocking'},
- '618989370':{'en': 'Dumbleyung'},
- '618989371':{'en': 'Dumbleyung'},
- '618989372':{'en': 'Dumbleyung'},
- '618989373':{'en': 'Dumbleyung'},
- '618989374':{'en': 'Dumbleyung'},
- '618989375':{'en': 'Dumbleyung'},
- '618989376':{'en': 'Dumbleyung'},
- '618989377':{'en': 'Dumbleyung'},
- '618989378':{'en': 'Dumbleyung'},
- '618989380':{'en': 'Holland Rocks'},
- '618989383':{'en': 'Holland Rocks'},
- '618989386':{'en': 'Holland Rocks'},
- '618989387':{'en': 'Holland Rocks'},
- '618989388':{'en': 'Holland Rocks'},
- '618989390':{'en': 'Jaloran'},
- '618989393':{'en': 'Jaloran'},
- '618989396':{'en': 'Jaloran'},
- '618989397':{'en': 'Jaloran'},
- '618989398':{'en': 'Jaloran'},
- '61898940':{'en': 'Kondinin'},
- '61898941':{'en': 'Kondinin'},
- '61898942':{'en': 'Mount Barker'},
- '61898943':{'en': 'Mount Barker'},
 }
diff --git a/python/phonenumbers/geodata/data14.py b/python/phonenumbers/geodata/data14.py
index 01bdc6b5..b31ddf39 100644
--- a/python/phonenumbers/geodata/data14.py
+++ b/python/phonenumbers/geodata/data14.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '61898910':{'en': 'Katanning'},
+ '61898911':{'en': 'Katanning'},
+ '618989120':{'en': 'Cuballing'},
+ '618989121':{'en': 'Cuballing'},
+ '618989122':{'en': 'Cuballing'},
+ '618989123':{'en': 'Cuballing'},
+ '618989124':{'en': 'Cuballing'},
+ '618989125':{'en': 'Cuballing'},
+ '618989126':{'en': 'Cuballing'},
+ '618989127':{'en': 'Cuballing'},
+ '618989128':{'en': 'Cuballing'},
+ '618989130':{'en': 'Narrakine'},
+ '618989133':{'en': 'Narrakine'},
+ '618989136':{'en': 'Narrakine'},
+ '618989137':{'en': 'Narrakine'},
+ '618989138':{'en': 'Narrakine'},
+ '618989140':{'en': 'Narrogin'},
+ '618989141':{'en': 'Narrogin'},
+ '618989142':{'en': 'Narrogin'},
+ '618989143':{'en': 'Narrogin'},
+ '618989144':{'en': 'Narrogin'},
+ '618989145':{'en': 'Narrogin'},
+ '618989146':{'en': 'Narrogin'},
+ '618989147':{'en': 'Narrogin'},
+ '618989148':{'en': 'Narrogin'},
+ '618989150':{'en': 'Nomans Lake'},
+ '618989151':{'en': 'Nomans Lake'},
+ '618989152':{'en': 'Nomans Lake'},
+ '618989153':{'en': 'Nomans Lake'},
+ '618989156':{'en': 'Nomans Lake'},
+ '618989157':{'en': 'Nomans Lake'},
+ '618989158':{'en': 'Nomans Lake'},
+ '618989159':{'en': 'Nomans Lake'},
+ '618989160':{'en': 'Pingelly'},
+ '618989161':{'en': 'Pingelly'},
+ '618989162':{'en': 'Pingelly'},
+ '618989163':{'en': 'Pingelly'},
+ '618989164':{'en': 'Pingelly'},
+ '618989165':{'en': 'Pingelly'},
+ '618989166':{'en': 'Pingelly'},
+ '618989167':{'en': 'Pingelly'},
+ '618989168':{'en': 'Pingelly'},
+ '618989170':{'en': 'Pingelly East'},
+ '618989173':{'en': 'Pingelly East'},
+ '618989176':{'en': 'Pingelly East'},
+ '618989177':{'en': 'Pingelly East'},
+ '618989178':{'en': 'Pingelly East'},
+ '618989180':{'en': 'Pumphreys'},
+ '618989183':{'en': 'Pumphreys'},
+ '618989186':{'en': 'Pumphreys'},
+ '618989187':{'en': 'Pumphreys'},
+ '618989188':{'en': 'Pumphreys'},
+ '618989190':{'en': 'Quindanning'},
+ '618989193':{'en': 'Quindanning'},
+ '618989196':{'en': 'Quindanning'},
+ '618989197':{'en': 'Quindanning'},
+ '618989198':{'en': 'Quindanning'},
+ '6189892':{'en': 'Albany'},
+ '61898921':{'en': 'Mount Barker'},
+ '61898923':{'en': 'Denmark'},
+ '61898924':{'en': 'Porongurup'},
+ '61898930':{'en': 'Wagin'},
+ '618989310':{'en': 'Tarwonga'},
+ '618989313':{'en': 'Tarwonga'},
+ '618989316':{'en': 'Tarwonga'},
+ '618989317':{'en': 'Tarwonga'},
+ '618989318':{'en': 'Tarwonga'},
+ '618989320':{'en': 'Wickepin'},
+ '618989321':{'en': 'Wickepin'},
+ '618989322':{'en': 'Wickepin'},
+ '618989323':{'en': 'Wickepin'},
+ '618989324':{'en': 'Wickepin'},
+ '618989325':{'en': 'Wickepin'},
+ '618989326':{'en': 'Wickepin'},
+ '618989327':{'en': 'Wickepin'},
+ '618989328':{'en': 'Wickepin'},
+ '618989330':{'en': 'Williams'},
+ '618989331':{'en': 'Williams'},
+ '618989332':{'en': 'Williams'},
+ '618989333':{'en': 'Williams'},
+ '618989334':{'en': 'Williams'},
+ '618989335':{'en': 'Williams'},
+ '618989336':{'en': 'Williams'},
+ '618989337':{'en': 'Williams'},
+ '618989338':{'en': 'Williams'},
+ '618989340':{'en': 'Arthur River'},
+ '618989343':{'en': 'Arthur River'},
+ '618989346':{'en': 'Arthur River'},
+ '618989347':{'en': 'Arthur River'},
+ '618989348':{'en': 'Arthur River'},
+ '618989350':{'en': 'Beaufort River'},
+ '618989353':{'en': 'Beaufort River'},
+ '618989356':{'en': 'Beaufort River'},
+ '618989357':{'en': 'Beaufort River'},
+ '618989358':{'en': 'Beaufort River'},
+ '618989360':{'en': 'Dongolocking'},
+ '618989363':{'en': 'Dongolocking'},
+ '618989366':{'en': 'Dongolocking'},
+ '618989367':{'en': 'Dongolocking'},
+ '618989368':{'en': 'Dongolocking'},
+ '618989370':{'en': 'Dumbleyung'},
+ '618989371':{'en': 'Dumbleyung'},
+ '618989372':{'en': 'Dumbleyung'},
+ '618989373':{'en': 'Dumbleyung'},
+ '618989374':{'en': 'Dumbleyung'},
+ '618989375':{'en': 'Dumbleyung'},
+ '618989376':{'en': 'Dumbleyung'},
+ '618989377':{'en': 'Dumbleyung'},
+ '618989378':{'en': 'Dumbleyung'},
+ '618989380':{'en': 'Holland Rocks'},
+ '618989383':{'en': 'Holland Rocks'},
+ '618989386':{'en': 'Holland Rocks'},
+ '618989387':{'en': 'Holland Rocks'},
+ '618989388':{'en': 'Holland Rocks'},
+ '618989390':{'en': 'Jaloran'},
+ '618989393':{'en': 'Jaloran'},
+ '618989396':{'en': 'Jaloran'},
+ '618989397':{'en': 'Jaloran'},
+ '618989398':{'en': 'Jaloran'},
+ '61898940':{'en': 'Kondinin'},
+ '61898941':{'en': 'Kondinin'},
+ '61898942':{'en': 'Mount Barker'},
+ '61898943':{'en': 'Mount Barker'},
  '61898944':{'en': 'Porongurup'},
  '61898945':{'en': 'Porongurup'},
  '61898946':{'en': 'Boscabel'},
@@ -1583,11 +1706,19 @@ data = {
  '643226':{'en': 'Otautau'},
  '643230':{'en': 'Invercargill'},
  '643231':{'en': 'Invercargill'},
+ '643232':{'en': 'Riverton/Winton'},
+ '643233':{'en': 'Riverton/Winton'},
  '643234':{'en': 'Riverton'},
  '643235':{'en': 'Invercargill'},
  '643236':{'en': 'Winton'},
+ '643237':{'en': 'Riverton/Winton'},
+ '643238':{'en': 'Riverton/Winton'},
  '643239':{'en': 'Invercargill'},
+ '643240':{'en': 'Tokanui/Lumsden/Te Anau'},
+ '643241':{'en': 'Tokanui/Lumsden/Te Anau'},
  '6432420':{'en': 'Christchurch'},
+ '6432421':{'en': 'Tokanui/Lumsden/Te Anau'},
+ '6432422':{'en': 'Tokanui/Lumsden/Te Anau'},
  '6432423':{'en': 'Dunedin'},
  '6432424':{'en': 'Nelson'},
  '6432425':{'en': 'Invercargill'},
@@ -1595,6 +1726,7 @@ data = {
  '6432427':{'en': 'Greymouth'},
  '6432428':{'en': 'Queenstown'},
  '6432429':{'en': 'Timaru'},
+ '643243':{'en': 'Tokanui/Lumsden/Te Anau'},
  '6432440':{'en': 'Christchurch'},
  '6432441':{'en': 'Christchurch'},
  '6432442':{'en': 'Christchurch'},
@@ -1605,9 +1737,12 @@ data = {
  '6432447':{'en': 'Timaru'},
  '6432448':{'en': 'Dunedin'},
  '6432449':{'en': 'Queenstown'},
+ '643245':{'en': 'Tokanui/Lumsden/Te Anau'},
  '643246':{'en': 'Tokanui'},
+ '643247':{'en': 'Tokanui/Lumsden/Te Anau'},
  '643248':{'en': 'Lumsden'},
  '643249':{'en': 'Te Anau'},
+ '64325':{'en': 'South Island'},
  '643250':{'en': 'Christchurch'},
  '643260':{'en': 'Christchurch'},
  '6432606':{'en': 'Dunedin'},
@@ -1618,7 +1753,7 @@ data = {
  '6432611':{'en': 'Kaikoura'},
  '6432612':{'en': 'Rangiora'},
  '6432613':{'en': 'Waitangi (Chatham Is.)'},
- '6432614':{'en': 'Akaroa'},
+ '6432614':{'en': 'South Island'},
  '6432615':{'en': 'Amberley'},
  '6432616':{'en': 'Ashburton'},
  '6432617':{'en': 'Cheviot'},
@@ -1669,8 +1804,14 @@ data = {
  '6432662':{'en': 'Christchurch'},
  '6432663':{'en': 'Christchurch'},
  '6432664':{'en': 'Christchurch'},
+ '6432665':{'en': 'South Island'},
+ '6432666':{'en': 'South Island'},
+ '6432667':{'en': 'South Island'},
  '6432668':{'en': 'Blenheim'},
  '6432669':{'en': 'Rangiora'},
+ '643267':{'en': 'South Island'},
+ '643268':{'en': 'South Island'},
+ '643269':{'en': 'South Island'},
  '643270':{'en': 'Christchurch'},
  '6432710':{'en': 'Christchurch'},
  '6432711':{'en': 'Akaroa'},
@@ -1721,6 +1862,12 @@ data = {
  '6432756':{'en': 'Gore'},
  '6432757':{'en': 'Lumsden'},
  '6432758':{'en': 'Otautau'},
+ '6432759':{'en': 'South Island'},
+ '643276':{'en': 'South Island'},
+ '643277':{'en': 'South Island'},
+ '643278':{'en': 'South Island'},
+ '643279':{'en': 'South Island'},
+ '64328':{'en': 'South Island'},
  '6432800':{'en': 'Te Anau'},
  '6432801':{'en': 'Lumsden'},
  '6432802':{'en': 'Gore'},
@@ -1745,6 +1892,7 @@ data = {
  '6432887':{'en': 'Nelson'},
  '6432888':{'en': 'Nelson'},
  '6432889':{'en': 'Blenheim'},
+ '64329':{'en': 'South Island'},
  '6432990':{'en': 'Lumsden'},
  '6432991':{'en': 'Milton'},
  '6432992':{'en': 'Gore'},
@@ -1755,14 +1903,7 @@ data = {
  '6432997':{'en': 'Edendale'},
  '6432998':{'en': 'Tokanui'},
  '6432999':{'en': 'Invercargill'},
- '643300':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643302':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643303':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643304':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643305':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643306':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643307':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643308':{'en': 'Ashburton/Akaroa/Chatham Islands'},
+ '64330':{'en': 'Ashburton/Akaroa/Chatham Islands'},
  '64331':{'en': 'Rangiora/Amberley/Culverden/Darfield/Cheviot/Kaikoura'},
  '64332':{'en': 'Christchurch'},
  '643331':{'en': 'Christchurch'},
@@ -1775,7 +1916,7 @@ data = {
  '643339':{'en': 'Christchurch'},
  '64334':{'en': 'Christchurch'},
  '64335':{'en': 'Christchurch'},
- '64336':{'en': 'Christchurch'},
+ '64336':{'en': 'South Island'},
  '64337':{'en': 'Christchurch'},
  '64338':{'en': 'Christchurch'},
  '643390':{'en': 'Christchurch'},
@@ -1789,6 +1930,7 @@ data = {
  '6433917':{'en': 'Franz Josef'},
  '6433918':{'en': 'Fox Glacier'},
  '6433919':{'en': 'Haast'},
+ '643392':{'en': 'South Island'},
  '643393':{'en': 'Christchurch'},
  '6433940':{'en': 'Westport'},
  '6433941':{'en': 'Blenheim'},
@@ -1810,6 +1952,8 @@ data = {
  '6433957':{'en': 'Palmerston'},
  '6433958':{'en': 'Oamaru'},
  '6433959':{'en': 'Balclutha'},
+ '643396':{'en': 'South Island'},
+ '643397':{'en': 'South Island'},
  '6433980':{'en': 'Milton'},
  '6433981':{'en': 'Twizel'},
  '6433982':{'en': 'Kurow'},
@@ -1820,6 +1964,7 @@ data = {
  '6433987':{'en': 'Cromwell'},
  '6433988':{'en': 'Wanaka'},
  '6433989':{'en': 'Waimate'},
+ '6433990':{'en': 'South Island'},
  '6433991':{'en': 'Invercargill'},
  '6433992':{'en': 'Riverton'},
  '6433993':{'en': 'Te Anau'},
@@ -1829,10 +1974,15 @@ data = {
  '6433997':{'en': 'Gore'},
  '6433998':{'en': 'Lumsden'},
  '6433999':{'en': 'Otautau'},
+ '64340':{'en': 'South Island'},
  '643409':{'en': 'Queenstown'},
+ '643410':{'en': 'Balclutha/Milton'},
+ '643411':{'en': 'Balclutha/Milton'},
  '643412':{'en': 'Balclutha'},
  '643413':{'en': 'Balclutha'},
+ '643414':{'en': 'Balclutha/Milton'},
  '643415':{'en': 'Balclutha'},
+ '643416':{'en': 'Balclutha/Milton'},
  '643417':{'en': 'Milton'},
  '643418':{'en': 'Balclutha'},
  '643419':{'en': 'Balclutha'},
@@ -1909,24 +2059,25 @@ data = {
  '6434297':{'en': 'Westport'},
  '6434298':{'en': 'Hokitika'},
  '6434299':{'en': 'Haast'},
+ '64343':{'en': 'Oamaru'},
  '643430':{'en': 'Mt Cook'},
- '643431':{'en': 'Oamaru'},
- '643432':{'en': 'Oamaru'},
- '643433':{'en': 'Oamaru'},
- '643434':{'en': 'Oamaru'},
+ '643435':{'en': 'Oamaru/Mount Cook/Twizel/Kurow'},
  '6434350':{'en': 'Twizel'},
  '6434351':{'en': 'Mt Cook'},
  '6434353':{'en': 'Twizel'},
  '6434359':{'en': 'Twizel'},
  '643436':{'en': 'Kurow'},
- '643437':{'en': 'Oamaru'},
  '643438':{'en': 'Kurow'},
- '643439':{'en': 'Oamaru'},
  '6434400':{'en': 'Alexandra'},
  '6434401':{'en': 'Cromwell'},
  '6434402':{'en': 'Alexandra'},
+ '6434403':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
  '6434404':{'en': 'Alexandra'},
  '6434405':{'en': 'Alexandra'},
+ '6434406':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434407':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434408':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434409':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
  '643441':{'en': 'Queenstown'},
  '643442':{'en': 'Queenstown'},
  '643443':{'en': 'Wanaka'},
@@ -1944,6 +2095,11 @@ data = {
  '643455':{'en': 'Dunedin'},
  '643456':{'en': 'Dunedin'},
  '643457':{'en': 'Dunedin'},
+ '643458':{'en': 'Dunedin/Queenstown'},
+ '643459':{'en': 'Dunedin/Queenstown'},
+ '643460':{'en': 'Dunedin/Palmerston'},
+ '643461':{'en': 'Dunedin/Palmerston'},
+ '643462':{'en': 'Dunedin/Palmerston'},
  '643463':{'en': 'Palmerston'},
  '643464':{'en': 'Dunedin'},
  '643465':{'en': 'Palmerston'},
@@ -1952,14 +2108,11 @@ data = {
  '643468':{'en': 'Dunedin'},
  '643469':{'en': 'Dunedin'},
  '64347':{'en': 'Dunedin'},
- '643481':{'en': 'Dunedin'},
- '643482':{'en': 'Dunedin'},
- '643484':{'en': 'Dunedin'},
+ '64348':{'en': 'Dunedin'},
+ '643480':{'en': 'Dunedin/Lawrence/Mosgiel'},
+ '643483':{'en': 'Dunedin/Lawrence/Mosgiel'},
  '643485':{'en': 'Lawrence'},
- '643486':{'en': 'Dunedin'},
- '643487':{'en': 'Dunedin'},
- '643488':{'en': 'Dunedin'},
- '643489':{'en': 'Dunedin'},
+ '64349':{'en': 'South Island'},
  '6434990':{'en': 'Queenstown'},
  '6434991':{'en': 'Cromwell'},
  '6434992':{'en': 'Ranfurly'},
@@ -1970,6 +2123,7 @@ data = {
  '6434997':{'en': 'Lawrence'},
  '6434998':{'en': 'Dunedin'},
  '6434999':{'en': 'Dunedin'},
+ '6435':{'en': 'South Island'},
  '643520':{'en': 'Blenheim'},
  '643521':{'en': 'Nelson'},
  '643522':{'en': 'Nelson'},
@@ -2097,13 +2251,7 @@ data = {
  '6435888':{'en': 'Timaru'},
  '6435889':{'en': 'Timaru'},
  '643590':{'en': 'Christchurch'},
- '6435950':{'en': 'Christchurch'},
- '6435951':{'en': 'Christchurch'},
- '6435952':{'en': 'Christchurch'},
- '6435953':{'en': 'Christchurch'},
- '6435954':{'en': 'Christchurch'},
- '6435955':{'en': 'Christchurch'},
- '6435956':{'en': 'Christchurch'},
+ '643595':{'en': 'Christchurch'},
  '6435990':{'en': 'Hokitika'},
  '6435991':{'en': 'Franz Josef'},
  '6435992':{'en': 'Fox Glacier'},
@@ -2114,9 +2262,11 @@ data = {
  '6435997':{'en': 'Amberley'},
  '6435998':{'en': 'Rangiora'},
  '6435999':{'en': 'Christchurch'},
- '643612':{'en': 'Timaru'},
- '643614':{'en': 'Timaru'},
- '643615':{'en': 'Timaru'},
+ '64360':{'en': 'South Island'},
+ '64361':{'en': 'Timaru'},
+ '64362':{'en': 'South Island'},
+ '64363':{'en': 'South Island'},
+ '64364':{'en': 'South Island'},
  '6436500':{'en': 'Christchurch'},
  '6436501':{'en': 'Akaroa'},
  '6436502':{'en': 'Amberley'},
@@ -2247,20 +2397,14 @@ data = {
  '6436688':{'en': 'Waitangi (Chatham Is.)'},
  '6436689':{'en': 'Christchurch'},
  '643669':{'en': 'Christchurch'},
+ '64367':{'en': 'South Island'},
+ '64368':{'en': 'Timaru'},
  '643680':{'en': 'Fairlie'},
- '643681':{'en': 'Timaru'},
- '643683':{'en': 'Timaru'},
- '643684':{'en': 'Timaru'},
+ '643682':{'en': 'Timaru/Waimate/Fairlie'},
  '643685':{'en': 'Fairlie'},
- '643686':{'en': 'Timaru'},
- '643687':{'en': 'Timaru'},
- '643688':{'en': 'Timaru'},
  '643689':{'en': 'Waimate'},
+ '64369':{'en': 'Geraldine'},
  '643690':{'en': 'Waimate'},
- '643692':{'en': 'Geraldine'},
- '643693':{'en': 'Geraldine'},
- '643696':{'en': 'Geraldine'},
- '643697':{'en': 'Geraldine'},
  '6436990':{'en': 'Cheviot'},
  '6436991':{'en': 'Culverden'},
  '6436992':{'en': 'Greymouth'},
@@ -2271,10 +2415,10 @@ data = {
  '6436997':{'en': 'Motueka'},
  '6436998':{'en': 'Blenheim'},
  '6436999':{'en': 'Nelson'},
- '643731':{'en': 'Greymouth'},
- '643732':{'en': 'Greymouth'},
- '643736':{'en': 'Greymouth'},
- '643738':{'en': 'Greymouth'},
+ '64370':{'en': 'South Island'},
+ '64371':{'en': 'South Island'},
+ '64372':{'en': 'South Island'},
+ '64373':{'en': 'Greymouth'},
  '643740':{'en': 'Christchurch'},
  '643741':{'en': 'Christchurch'},
  '643742':{'en': 'Dunedin'},
@@ -2327,17 +2471,21 @@ data = {
  '6437485':{'en': 'Te Anau'},
  '6437486':{'en': 'Tokanui'},
  '6437487':{'en': 'Winton'},
+ '6437488':{'en': 'South Island'},
+ '6437489':{'en': 'South Island'},
  '643749':{'en': 'Christchurch'},
  '643750':{'en': 'Haast'},
  '643751':{'en': 'Fox Glacier'},
  '643752':{'en': 'Franz Josef'},
  '643753':{'en': 'Hokitika'},
+ '643754':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
  '643755':{'en': 'Hokitika'},
  '643756':{'en': 'Hokitika'},
- '643762':{'en': 'Greymouth'},
- '643767':{'en': 'Greymouth'},
- '643768':{'en': 'Greymouth'},
- '643769':{'en': 'Greymouth'},
+ '643757':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '643758':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '643759':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '64376':{'en': 'Greymouth'},
+ '64377':{'en': 'South Island'},
  '6437770':{'en': 'Nelson'},
  '6437771':{'en': 'Blenheim'},
  '6437772':{'en': 'Timaru'},
@@ -2348,9 +2496,8 @@ data = {
  '6437777':{'en': 'Christchurch'},
  '6437778':{'en': 'Greymouth'},
  '6437779':{'en': 'Invercargill'},
- '643782':{'en': 'Westport'},
- '643788':{'en': 'Westport'},
- '643789':{'en': 'Westport'},
+ '64378':{'en': 'Westport'},
+ '64379':{'en': 'South Island'},
  '6439000':{'en': 'Christchurch'},
  '6439001':{'en': 'Christchurch'},
  '6439002':{'en': 'Rangiora'},
@@ -2364,12 +2511,16 @@ data = {
  '6439010':{'en': 'Queenstown'},
  '6439011':{'en': 'Queenstown'},
  '6439012':{'en': 'Queenstown'},
+ '6439013':{'en': 'Ashburton'},
+ '6439014':{'en': 'Ashburton'},
  '6439015':{'en': 'Wanaka'},
  '6439016':{'en': 'Alexandra'},
  '6439017':{'en': 'Cromwell'},
  '6439018':{'en': 'Ranfurly'},
  '6439019':{'en': 'Roxburgh'},
  '6439020':{'en': 'Gore'},
+ '6439021':{'en': 'Ashburton'},
+ '6439022':{'en': 'Ashburton'},
  '6439023':{'en': 'Te Anau'},
  '6439024':{'en': 'Lumsden'},
  '6439025':{'en': 'Otautau'},
@@ -2379,31 +2530,41 @@ data = {
  '6439029':{'en': 'Tokanui'},
  '643903':{'en': 'Christchurch'},
  '6439040':{'en': 'Balclutha'},
+ '6439041':{'en': 'Ashburton'},
  '6439042':{'en': 'Oamaru'},
+ '6439043':{'en': 'Ashburton'},
  '6439044':{'en': 'Milton'},
  '6439045':{'en': 'Twizel'},
  '6439046':{'en': 'Kurow'},
  '6439047':{'en': 'Alexandra'},
  '6439048':{'en': 'Lawrence'},
  '6439049':{'en': 'Palmerston'},
+ '643905':{'en': 'Ashburton'},
  '6439050':{'en': 'Geraldine'},
  '6439052':{'en': 'Mt Cook'},
  '6439055':{'en': 'Fairlie'},
  '6439057':{'en': 'Waimate'},
  '6439060':{'en': 'Greymouth'},
  '6439061':{'en': 'Greymouth'},
+ '6439062':{'en': 'Ashburton'},
  '6439063':{'en': 'Westport'},
+ '6439064':{'en': 'Ashburton'},
+ '6439065':{'en': 'Ashburton'},
  '6439066':{'en': 'Hokitika'},
  '6439067':{'en': 'Franz Josef'},
  '6439068':{'en': 'Fox Glacier'},
  '6439069':{'en': 'Haast'},
  '6439070':{'en': 'Motueka'},
  '6439071':{'en': 'Motueka'},
+ '6439072':{'en': 'Ashburton'},
  '6439073':{'en': 'Motueka'},
+ '6439074':{'en': 'Ashburton'},
  '6439075':{'en': 'Takaka'},
+ '6439076':{'en': 'Ashburton'},
+ '6439077':{'en': 'Ashburton'},
+ '6439078':{'en': 'Ashburton'},
  '6439079':{'en': 'Murchison'},
- '6439080':{'en': 'Ashburton'},
- '6439081':{'en': 'Ashburton'},
+ '643908':{'en': 'Ashburton'},
  '6439082':{'en': 'Culverden'},
  '6439083':{'en': 'Cheviot'},
  '6439084':{'en': 'Amberley'},
@@ -2411,9 +2572,14 @@ data = {
  '6439090':{'en': 'Rangiora'},
  '6439091':{'en': 'Rangiora'},
  '6439092':{'en': 'Rangiora'},
+ '6439093':{'en': 'Ashburton'},
+ '6439094':{'en': 'Ashburton'},
+ '6439095':{'en': 'Ashburton'},
+ '6439096':{'en': 'Ashburton'},
  '6439097':{'en': 'Darfield'},
  '6439098':{'en': 'Akaroa'},
  '6439099':{'en': 'Kaikoura'},
+ '64391':{'en': 'South Island'},
  '643920':{'en': 'Rangiora'},
  '643921':{'en': 'Blenheim'},
  '643922':{'en': 'Nelson'},
@@ -2474,6 +2640,8 @@ data = {
  '6439325':{'en': 'Kaikoura'},
  '6439326':{'en': 'Rangiora'},
  '6439327':{'en': 'Ashburton'},
+ '6439328':{'en': 'South Island'},
+ '6439329':{'en': 'South Island'},
  '6439330':{'en': 'Westport'},
  '6439331':{'en': 'Greymouth'},
  '6439332':{'en': 'Hokitika'},
@@ -2483,6 +2651,7 @@ data = {
  '6439336':{'en': 'Cromwell'},
  '6439337':{'en': 'Wanaka'},
  '6439338':{'en': 'Queenstown'},
+ '6439339':{'en': 'South Island'},
  '6439340':{'en': 'Mt Cook'},
  '6439341':{'en': 'Fairlie'},
  '6439342':{'en': 'Geraldine'},
@@ -2491,6 +2660,13 @@ data = {
  '6439345':{'en': 'Christchurch'},
  '6439346':{'en': 'Christchurch'},
  '6439347':{'en': 'Christchurch'},
+ '6439348':{'en': 'South Island'},
+ '6439349':{'en': 'South Island'},
+ '643935':{'en': 'South Island'},
+ '643936':{'en': 'South Island'},
+ '643937':{'en': 'South Island'},
+ '643938':{'en': 'South Island'},
+ '643939':{'en': 'South Island'},
  '643940':{'en': 'Christchurch'},
  '643941':{'en': 'Christchurch'},
  '643942':{'en': 'Christchurch'},
@@ -2529,18 +2705,16 @@ data = {
  '6439534':{'en': 'Mt Cook'},
  '6439535':{'en': 'Fairlie'},
  '6439536':{'en': 'Waimate'},
+ '6439537':{'en': 'Dunedin/Timaru'},
+ '6439538':{'en': 'Dunedin/Timaru'},
+ '6439539':{'en': 'Dunedin/Timaru'},
+ '643954':{'en': 'Dunedin/Timaru'},
  '643955':{'en': 'Dunedin'},
  '643956':{'en': 'Timaru'},
  '643957':{'en': 'Timaru'},
- '643960':{'en': 'Christchurch'},
- '643961':{'en': 'Christchurch'},
- '643962':{'en': 'Christchurch'},
- '643963':{'en': 'Christchurch'},
- '643964':{'en': 'Christchurch'},
- '643965':{'en': 'Christchurch'},
- '643966':{'en': 'Christchurch'},
- '643967':{'en': 'Christchurch'},
- '643968':{'en': 'Christchurch'},
+ '643958':{'en': 'Dunedin/Timaru'},
+ '643959':{'en': 'Dunedin/Timaru'},
+ '64396':{'en': 'Christchurch'},
  '6439700':{'en': 'Nelson'},
  '6439701':{'en': 'Nelson'},
  '6439702':{'en': 'Nelson'},
@@ -2628,12 +2802,15 @@ data = {
  '6439856':{'en': 'Darfield'},
  '6439857':{'en': 'Akaroa'},
  '6439858':{'en': 'Kaikoura'},
+ '6439859':{'en': 'Christchurch/Blenheim/Nelson'},
  '6439860':{'en': 'Nelson'},
  '6439861':{'en': 'Nelson'},
  '6439862':{'en': 'Nelson'},
  '6439863':{'en': 'Motueka'},
  '6439864':{'en': 'Takaka'},
  '6439865':{'en': 'Murchison'},
+ '6439866':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439867':{'en': 'Christchurch/Blenheim/Nelson'},
  '6439868':{'en': 'Blenheim'},
  '6439869':{'en': 'Blenheim'},
  '6439870':{'en': 'Queenstown'},
@@ -2643,14 +2820,21 @@ data = {
  '6439874':{'en': 'Cromwell'},
  '6439875':{'en': 'Ranfurly'},
  '6439876':{'en': 'Roxburgh'},
+ '6439877':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439878':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439879':{'en': 'Christchurch/Blenheim/Nelson'},
  '6439880':{'en': 'Greymouth'},
  '6439881':{'en': 'Greymouth'},
  '6439882':{'en': 'Westport'},
  '6439883':{'en': 'Hokitika'},
  '6439884':{'en': 'Franz Josef'},
  '6439885':{'en': 'Fox Glacier'},
- '6439886':{'en': 'Haast'},
+ '6439886':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439887':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439888':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439889':{'en': 'Christchurch/Blenheim/Nelson'},
  '643989':{'en': 'Nelson'},
+ '64399':{'en': 'South Island'},
  '644202':{'en': 'Wellington'},
  '644203':{'en': 'Wellington'},
  '644204':{'en': 'Wellington'},
@@ -2681,56 +2865,19 @@ data = {
  '644281':{'en': 'Wellington'},
  '6442820':{'en': 'Wellington'},
  '6442821':{'en': 'Wellington'},
- '644290':{'en': 'Paraparaumu'},
- '644292':{'en': 'Paraparaumu'},
- '644293':{'en': 'Paraparaumu'},
- '644296':{'en': 'Paraparaumu'},
- '644297':{'en': 'Paraparaumu'},
- '644298':{'en': 'Paraparaumu'},
- '644299':{'en': 'Paraparaumu'},
- '6443330':{'en': 'Wellington'},
- '6443331':{'en': 'Wellington'},
- '6443332':{'en': 'Wellington'},
+ '64429':{'en': 'Paraparaumu'},
+ '6443':{'en': 'Wellington'},
  '6443333':{'en': 'Paraparaumu'},
- '644370':{'en': 'Wellington'},
  '6443708':{'en': 'Paraparaumu'},
  '6443709':{'en': 'Paraparaumu'},
- '64438':{'en': 'Wellington'},
- '644390':{'en': 'Wellington'},
- '644391':{'en': 'Wellington'},
- '644392':{'en': 'Wellington'},
  '644393':{'en': 'Paraparaumu'},
- '644399':{'en': 'Wellington'},
  '6443990':{'en': 'Paraparaumu'},
- '644436':{'en': 'Wellington'},
- '644437':{'en': 'Wellington'},
- '644439':{'en': 'Wellington'},
- '644460':{'en': 'Wellington'},
- '644461':{'en': 'Wellington'},
- '644462':{'en': 'Wellington'},
- '644463':{'en': 'Wellington'},
- '644464':{'en': 'Wellington'},
- '644465':{'en': 'Wellington'},
- '644466':{'en': 'Wellington'},
- '644467':{'en': 'Wellington'},
- '64447':{'en': 'Wellington'},
- '644488':{'en': 'Wellington'},
+ '6444':{'en': 'Wellington'},
  '6444887':{'en': 'Paraparaumu'},
  '6444888':{'en': 'Paraparaumu'},
  '6444889':{'en': 'Paraparaumu'},
- '644493':{'en': 'Wellington'},
- '644494':{'en': 'Wellington'},
- '644495':{'en': 'Wellington'},
- '644496':{'en': 'Wellington'},
- '644497':{'en': 'Wellington'},
- '644498':{'en': 'Wellington'},
- '644499':{'en': 'Wellington'},
- '644524':{'en': 'Wellington'},
- '644525':{'en': 'Wellington'},
- '644526':{'en': 'Wellington'},
- '644527':{'en': 'Wellington'},
- '644528':{'en': 'Wellington'},
- '644529':{'en': 'Wellington'},
+ '6445':{'en': 'Wellington/Hutt Valley'},
+ '64452':{'en': 'Wellington'},
  '644550':{'en': 'Wellington'},
  '644551':{'en': 'Paraparaumu'},
  '644555':{'en': 'Wellington'},
@@ -2744,13 +2891,7 @@ data = {
  '644587':{'en': 'Wellington'},
  '644589':{'en': 'Wellington'},
  '644590':{'en': 'Wellington'},
- '6445950':{'en': 'Wellington'},
- '6445951':{'en': 'Wellington'},
- '6445952':{'en': 'Wellington'},
- '6445953':{'en': 'Wellington'},
- '6445954':{'en': 'Wellington'},
- '6445955':{'en': 'Wellington'},
- '6445956':{'en': 'Wellington'},
+ '644595':{'en': 'Wellington'},
  '644619':{'en': 'Wellington'},
  '644650':{'en': 'Wellington'},
  '6446509':{'en': 'Paraparaumu'},
@@ -2758,12 +2899,7 @@ data = {
  '644777':{'en': 'Wellington'},
  '6447770':{'en': 'Paraparaumu'},
  '6447771':{'en': 'Paraparaumu'},
- '644801':{'en': 'Wellington'},
- '644802':{'en': 'Wellington'},
- '644803':{'en': 'Wellington'},
- '644804':{'en': 'Wellington'},
- '644805':{'en': 'Wellington'},
- '644806':{'en': 'Wellington'},
+ '64480':{'en': 'Wellington'},
  '644810':{'en': 'Wellington'},
  '644815':{'en': 'Wellington'},
  '644816':{'en': 'Wellington'},
@@ -2785,44 +2921,15 @@ data = {
  '644895':{'en': 'Paraparaumu'},
  '644896':{'en': 'Wellington'},
  '644897':{'en': 'Wellington'},
- '644900':{'en': 'Wellington'},
+ '6449':{'en': 'Wellington'},
  '6449008':{'en': 'Paraparaumu'},
- '644901':{'en': 'Wellington'},
  '644902':{'en': 'Paraparaumu'},
- '644903':{'en': 'Wellington'},
  '6449030':{'en': 'Paraparaumu'},
  '6449031':{'en': 'Paraparaumu'},
  '644904':{'en': 'Paraparaumu'},
  '644905':{'en': 'Paraparaumu'},
  '644906':{'en': 'Paraparaumu'},
- '644907':{'en': 'Wellington'},
- '6449080':{'en': 'Paraparaumu'},
- '6449081':{'en': 'Paraparaumu'},
- '6449082':{'en': 'Wellington'},
- '6449083':{'en': 'Wellington'},
- '6449084':{'en': 'Wellington'},
- '644909':{'en': 'Wellington'},
- '644910':{'en': 'Wellington'},
- '6449120':{'en': 'Wellington'},
- '6449121':{'en': 'Wellington'},
- '6449122':{'en': 'Wellington'},
- '6449123':{'en': 'Wellington'},
- '6449124':{'en': 'Wellington'},
- '644913':{'en': 'Wellington'},
- '644914':{'en': 'Wellington'},
- '644915':{'en': 'Wellington'},
- '644916':{'en': 'Wellington'},
- '644917':{'en': 'Wellington'},
- '644918':{'en': 'Wellington'},
- '644920':{'en': 'Wellington'},
- '644922':{'en': 'Wellington'},
- '644924':{'en': 'Wellington'},
- '644928':{'en': 'Wellington'},
- '644931':{'en': 'Wellington'},
- '644934':{'en': 'Wellington'},
- '644938':{'en': 'Wellington'},
- '644939':{'en': 'Wellington'},
- '64497':{'en': 'Wellington'},
+ '644908':{'en': 'Paraparaumu'},
  '6449740':{'en': 'Paraparaumu'},
  '6449741':{'en': 'Paraparaumu'},
  '644975':{'en': 'Paraparaumu'},
@@ -2892,7 +2999,6 @@ data = {
  '6462412':{'en': 'Gisborne'},
  '6462413':{'en': 'Gisborne'},
  '6462414':{'en': 'Napier'},
- '6462415':{'en': 'Levin'},
  '6462416':{'en': 'Waipukurau'},
  '6462417':{'en': 'Wanganui'},
  '6462418':{'en': 'Palmerston North'},
@@ -2932,11 +3038,7 @@ data = {
  '6462627':{'en': 'Wanganui'},
  '6462628':{'en': 'Wanganui'},
  '6462629':{'en': 'Levin'},
- '646272':{'en': 'Hawera'},
- '646273':{'en': 'Hawera'},
- '646274':{'en': 'Hawera'},
- '646278':{'en': 'Hawera'},
- '646279':{'en': 'Hawera'},
+ '64627':{'en': 'Hawera'},
  '6462800':{'en': 'Palmerston North'},
  '6462801':{'en': 'Palmerston North'},
  '6462802':{'en': 'Palmerston North'},
@@ -2957,46 +3059,22 @@ data = {
  '6462817':{'en': 'Napier'},
  '6462818':{'en': 'New Plymouth'},
  '6462819':{'en': 'Levin'},
- '646304':{'en': 'Featherston'},
- '646306':{'en': 'Featherston'},
- '646307':{'en': 'Featherston'},
- '646308':{'en': 'Featherston'},
+ '64630':{'en': 'Featherston'},
+ '64632':{'en': 'Palmerston North'},
+ '646320':{'en': 'Palmerston North/Marton'},
  '646321':{'en': 'Marton'},
  '646322':{'en': 'Marton'},
- '646323':{'en': 'Palmerston North'},
- '646324':{'en': 'Palmerston North'},
- '646325':{'en': 'Palmerston North'},
- '646326':{'en': 'Palmerston North'},
  '646327':{'en': 'Marton'},
- '646328':{'en': 'Palmerston North'},
- '646329':{'en': 'Palmerston North'},
- '646341':{'en': 'Wanganui'},
- '646342':{'en': 'Wanganui'},
- '646343':{'en': 'Wanganui'},
- '646344':{'en': 'Wanganui'},
- '646345':{'en': 'Wanganui'},
- '646346':{'en': 'Wanganui'},
- '646347':{'en': 'Wanganui'},
- '646348':{'en': 'Wanganui'},
- '646349':{'en': 'Wanganui'},
+ '64634':{'en': 'Wanganui'},
  '64635':{'en': 'Palmerston North'},
- '646362':{'en': 'Levin'},
- '646363':{'en': 'Levin'},
- '646364':{'en': 'Levin'},
+ '64636':{'en': 'Levin'},
  '646365':{'en': 'Palmerston North'},
- '646366':{'en': 'Levin'},
- '646367':{'en': 'Levin'},
- '646368':{'en': 'Levin'},
- '646369':{'en': 'Levin'},
- '646370':{'en': 'Masterton'},
- '646372':{'en': 'Masterton'},
- '646373':{'en': 'Masterton'},
+ '64637':{'en': 'Masterton'},
+ '646371':{'en': 'Masterton/Dannevirke/Pahiatua'},
  '646374':{'en': 'Dannevirke'},
  '646375':{'en': 'Pahiatua'},
  '646376':{'en': 'Pahiatua'},
- '646377':{'en': 'Masterton'},
- '646378':{'en': 'Masterton'},
- '646379':{'en': 'Masterton'},
+ '64638':{'en': 'Taihape/Ohakune/Waiouru'},
  '646382':{'en': 'Taihape'},
  '646385':{'en': 'Ohakune'},
  '646387':{'en': 'Waiouru'},
@@ -3082,11 +3160,15 @@ data = {
  '6466007':{'en': 'Stratford'},
  '6466008':{'en': 'Ohakune'},
  '6466009':{'en': 'Waiouru'},
- '646601':{'en': 'Napier'},
  '6466010':{'en': 'Taihape'},
  '6466011':{'en': 'Marton'},
- '6466012':{'en': 'Pahiatua'},
  '6466013':{'en': 'Featherston'},
+ '6466014':{'en': 'Napier'},
+ '6466015':{'en': 'Napier'},
+ '6466016':{'en': 'Napier'},
+ '6466017':{'en': 'Napier'},
+ '6466018':{'en': 'Napier'},
+ '6466019':{'en': 'Napier'},
  '646650':{'en': 'Napier'},
  '6466508':{'en': 'Napier/Wairoa'},
  '6466509':{'en': 'Napier/Waipukurau'},
@@ -3128,32 +3210,19 @@ data = {
  '6466997':{'en': 'New Plymouth'},
  '6466998':{'en': 'New Plymouth'},
  '6466999':{'en': 'New Plymouth'},
+ '64675':{'en': 'New Plymouth'},
  '646750':{'en': 'Mokau'},
- '646751':{'en': 'New Plymouth'},
- '646752':{'en': 'New Plymouth'},
  '6467525':{'en': 'Mokau'},
  '6467529':{'en': 'Mokau'},
- '646753':{'en': 'New Plymouth'},
- '646754':{'en': 'New Plymouth'},
- '6467550':{'en': 'New Plymouth'},
- '6467551':{'en': 'New Plymouth'},
- '6467552':{'en': 'New Plymouth'},
- '6467553':{'en': 'New Plymouth'},
- '6467554':{'en': 'New Plymouth'},
- '6467555':{'en': 'New Plymouth'},
- '6467557':{'en': 'New Plymouth'},
- '6467558':{'en': 'New Plymouth'},
- '6467559':{'en': 'New Plymouth'},
- '646756':{'en': 'New Plymouth'},
- '646757':{'en': 'New Plymouth'},
- '646758':{'en': 'New Plymouth'},
- '646759':{'en': 'New Plymouth'},
+ '6467556':{'en': 'New Plymouth/Mokau'},
+ '646760':{'en': 'New Plymouth/Opunake/Stratford'},
  '646761':{'en': 'Opunake'},
  '646762':{'en': 'Stratford'},
  '646763':{'en': 'Opunake'},
  '646764':{'en': 'Stratford'},
  '646765':{'en': 'Stratford'},
  '646766':{'en': 'New Plymouth'},
+ '646767':{'en': 'New Plymouth/Opunake/Stratford'},
  '646768':{'en': 'New Plymouth'},
  '646769':{'en': 'New Plymouth'},
  '6467770':{'en': 'Gisborne'},
@@ -3192,40 +3261,31 @@ data = {
  '6468264':{'en': 'Palmerston North'},
  '6468268':{'en': 'New Plymouth'},
  '6468269':{'en': 'New Plymouth'},
- '6468300':{'en': 'Napier'},
- '6468301':{'en': 'Napier'},
- '6468302':{'en': 'Napier'},
- '6468303':{'en': 'Napier'},
- '6468308':{'en': 'Napier'},
- '6468309':{'en': 'Napier'},
- '646831':{'en': 'Napier/Hastings'},
- '646833':{'en': 'Napier/Hastings'},
- '646834':{'en': 'Napier/Hastings'},
- '646835':{'en': 'Napier/Hastings'},
- '646836':{'en': 'Napier/Hastings'},
+ '64683':{'en': 'Napier/Hastings'},
+ '646830':{'en': 'Napier'},
+ '6468304':{'en': 'Napier/Wairoa'},
+ '6468305':{'en': 'Napier/Wairoa'},
+ '6468306':{'en': 'Napier/Wairoa'},
+ '6468307':{'en': 'Napier/Wairoa'},
+ '646832':{'en': 'Napier/Wairoa'},
  '646837':{'en': 'Wairoa'},
  '646838':{'en': 'Wairoa'},
- '646839':{'en': 'Napier/Hastings'},
+ '646840':{'en': 'Napier City'},
+ '646841':{'en': 'Napier City'},
  '646842':{'en': 'Napier/Hastings'},
  '646843':{'en': 'Napier/Hastings'},
  '646844':{'en': 'Napier/Hastings'},
  '646845':{'en': 'Napier/Hastings'},
+ '646846':{'en': 'Napier City'},
  '646847':{'en': 'Napier/Hastings'},
- '646855':{'en': 'Waipukurau'},
- '646856':{'en': 'Waipukurau'},
- '646857':{'en': 'Waipukurau'},
- '646858':{'en': 'Waipukurau'},
- '646861':{'en': 'Gisborne'},
- '646862':{'en': 'Gisborne'},
- '646863':{'en': 'Gisborne'},
+ '646848':{'en': 'Napier City'},
+ '646849':{'en': 'Napier City'},
+ '64685':{'en': 'Waipukurau'},
+ '64686':{'en': 'Gisborne'},
+ '646860':{'en': 'Gisborne/Ruatoria'},
  '646864':{'en': 'Ruatoria'},
- '646865':{'en': 'Gisborne'},
- '646867':{'en': 'Gisborne'},
- '646868':{'en': 'Gisborne'},
- '6468690':{'en': 'Gisborne'},
- '6468691':{'en': 'Gisborne'},
- '6468692':{'en': 'Gisborne'},
- '6468693':{'en': 'Gisborne'},
+ '646866':{'en': 'Gisborne/Ruatoria'},
+ '646869':{'en': 'Gisborne/Ruatoria'},
  '64687':{'en': 'Napier/Hastings'},
  '6468800':{'en': 'Napier/Hastings'},
  '6468801':{'en': 'Wanganui'},
@@ -3359,13 +3419,17 @@ data = {
  '6469317':{'en': 'Pahiatua'},
  '6469318':{'en': 'Levin'},
  '6469319':{'en': 'Masterton'},
+ '64694':{'en': 'Masterton/Levin'},
  '646946':{'en': 'Masterton'},
  '6469468':{'en': 'Featherston'},
  '646949':{'en': 'Levin W100'},
+ '646950':{'en': 'Palmerston North/New Plymouth'},
  '646951':{'en': 'Palmerston North'},
  '646952':{'en': 'Palmerston North W100'},
  '646953':{'en': 'Palmerston North W100'},
  '646954':{'en': 'Palmerston North W100'},
+ '646955':{'en': 'Palmerston North/New Plymouth'},
+ '646956':{'en': 'Palmerston North/New Plymouth'},
  '6469570':{'en': 'Palmerston North'},
  '6469571':{'en': 'Palmerston North'},
  '6469572':{'en': 'Palmerston North'},
@@ -3376,17 +3440,28 @@ data = {
  '6469577':{'en': 'Ohakune'},
  '6469578':{'en': 'Marton'},
  '6469579':{'en': 'Pahiatua'},
+ '646958':{'en': 'Palmerston North/New Plymouth'},
+ '646959':{'en': 'Palmerston North/New Plymouth'},
+ '646960':{'en': 'Wanganui/New Plymouth'},
  '6469610':{'en': 'Wanganui'},
  '6469611':{'en': 'Wanganui'},
+ '6469612':{'en': 'Wanganui/New Plymouth'},
  '6469613':{'en': 'Levin'},
  '6469614':{'en': 'Levin'},
  '6469615':{'en': 'Masterton'},
  '6469616':{'en': 'Featherston'},
+ '6469617':{'en': 'Wanganui/New Plymouth'},
+ '6469618':{'en': 'Wanganui/New Plymouth'},
+ '6469619':{'en': 'Wanganui/New Plymouth'},
+ '646962':{'en': 'Wanganui/New Plymouth'},
+ '646963':{'en': 'Wanganui/New Plymouth'},
  '646964':{'en': 'Wanganui'},
  '646965':{'en': 'Wanganui W100'},
+ '646966':{'en': 'Wanganui/New Plymouth'},
  '646967':{'en': 'New Plymouth'},
  '646968':{'en': 'New Plymouth W100'},
  '646969':{'en': 'New Plymouth'},
+ '64697':{'en': 'Napier'},
  '6469710':{'en': 'New Plymouth'},
  '6469711':{'en': 'New Plymouth'},
  '6469712':{'en': 'New Plymouth'},
@@ -3394,19 +3469,13 @@ data = {
  '6469714':{'en': 'Hawera'},
  '6469715':{'en': 'Mokau'},
  '6469716':{'en': 'Opunake'},
- '646974':{'en': 'Napier'},
- '646975':{'en': 'Napier'},
- '646976':{'en': 'Napier'},
+ '64698':{'en': 'Gisborne'},
  '6469850':{'en': 'Napier'},
  '6469851':{'en': 'Napier'},
  '6469852':{'en': 'Napier'},
- '6469853':{'en': 'Wairoa'},
+ '6469853':{'en': 'Waiouru'},
  '6469854':{'en': 'Waipukurau'},
- '646986':{'en': 'Gisborne'},
  '6469869':{'en': 'Ruatoria'},
- '6469890':{'en': 'Gisborne'},
- '6469891':{'en': 'Gisborne'},
- '6469892':{'en': 'Gisborne'},
  '6469893':{'en': 'Ruatoria'},
  '647210':{'en': 'Hamilton'},
  '647211':{'en': 'Hamilton'},
@@ -3525,17 +3594,13 @@ data = {
  '6472827':{'en': 'Tauranga'},
  '6472828':{'en': 'Tauranga'},
  '6472829':{'en': 'Tauranga'},
- '647304':{'en': 'Whakatane'},
- '647305':{'en': 'Whakatane'},
- '647306':{'en': 'Whakatane'},
- '647307':{'en': 'Whakatane'},
- '647308':{'en': 'Whakatane'},
- '647309':{'en': 'Whakatane'},
+ '64730':{'en': 'Whakatane'},
+ '64731':{'en': 'Whakatane/Opotiki'},
  '647312':{'en': 'Whakatane'},
  '647315':{'en': 'Opotiki'},
- '647322':{'en': 'Whakatane'},
- '647323':{'en': 'Whakatane'},
+ '64732':{'en': 'Whakatane'},
  '647325':{'en': 'Opotiki'},
+ '64733':{'en': 'Rotorua/Taupo'},
  '647332':{'en': 'Rotorua'},
  '6473331':{'en': 'Rotorua'},
  '6473332':{'en': 'Rotorua'},
@@ -3543,27 +3608,11 @@ data = {
  '6473338':{'en': 'Rotorua'},
  '6473339':{'en': 'Taupo'},
  '647334':{'en': 'Rotorua'},
- '647343':{'en': 'Rotorua'},
- '647345':{'en': 'Rotorua'},
- '647346':{'en': 'Rotorua'},
- '647347':{'en': 'Rotorua'},
- '647348':{'en': 'Rotorua'},
- '647349':{'en': 'Rotorua'},
- '647350':{'en': 'Rotorua'},
- '647351':{'en': 'Rotorua'},
- '647357':{'en': 'Rotorua'},
- '647362':{'en': 'Rotorua'},
- '647366':{'en': 'Rotorua'},
- '647372':{'en': 'Taupo'},
- '647374':{'en': 'Taupo'},
- '647376':{'en': 'Taupo'},
- '647377':{'en': 'Taupo'},
- '647378':{'en': 'Taupo'},
- '6473841':{'en': 'Taupo'},
- '6473842':{'en': 'Taupo'},
- '6473843':{'en': 'Taupo'},
- '6473847':{'en': 'Taupo'},
- '647386':{'en': 'Taupo'},
+ '64734':{'en': 'Rotorua'},
+ '64735':{'en': 'Rotorua'},
+ '64736':{'en': 'Rotorua'},
+ '64737':{'en': 'Taupo'},
+ '64738':{'en': 'Taupo'},
  '647390':{'en': 'Hamilton'},
  '647391':{'en': 'Hamilton'},
  '6473920':{'en': 'Huntly'},
@@ -3629,17 +3678,7 @@ data = {
  '6474659':{'en': 'Whangamata'},
  '647466':{'en': 'Tauranga'},
  '647533':{'en': 'Tauranga'},
- '647541':{'en': 'Tauranga'},
- '647542':{'en': 'Tauranga'},
- '647543':{'en': 'Tauranga'},
- '647544':{'en': 'Tauranga'},
- '647546':{'en': 'Tauranga'},
- '647547':{'en': 'Tauranga'},
- '6475480':{'en': 'Tauranga'},
- '6475481':{'en': 'Tauranga'},
- '6475482':{'en': 'Tauranga'},
- '6475483':{'en': 'Tauranga'},
- '647549':{'en': 'Tauranga'},
+ '64754':{'en': 'Tauranga'},
  '647551':{'en': 'Tauranga'},
  '647552':{'en': 'Tauranga'},
  '647557':{'en': 'Tauranga'},
@@ -3709,7 +3748,7 @@ data = {
  '6478070':{'en': 'Morrinsville'},
  '6478071':{'en': 'Otorohanga'},
  '6478072':{'en': 'Paeroa'},
- '6478073':{'en': 'Tokoroa/Putaruru'},
+ '6478073':{'en': 'Putaruru/Tokoroa'},
  '6478074':{'en': 'Taumarunui'},
  '6478075':{'en': 'Te Kuiti'},
  '6478076':{'en': 'Te Awamutu'},
@@ -3748,6 +3787,9 @@ data = {
  '6478142':{'en': 'Whakatane'},
  '6478143':{'en': 'Opotiki'},
  '6478144':{'en': 'Tauranga'},
+ '647820':{'en': 'Hamilton/Huntly'},
+ '647821':{'en': 'Hamilton/Huntly'},
+ '647822':{'en': 'Hamilton/Huntly'},
  '647823':{'en': 'Hamilton'},
  '647824':{'en': 'Hamilton'},
  '647825':{'en': 'Hamilton'},
@@ -3755,38 +3797,11 @@ data = {
  '647827':{'en': 'Hamilton'},
  '647828':{'en': 'Huntly'},
  '647829':{'en': 'Hamilton'},
- '647832':{'en': 'Hamilton'},
- '647833':{'en': 'Hamilton'},
- '647834':{'en': 'Hamilton'},
- '647836':{'en': 'Hamilton'},
- '647837':{'en': 'Hamilton'},
- '647838':{'en': 'Hamilton'},
- '647839':{'en': 'Hamilton'},
- '647843':{'en': 'Hamilton'},
- '6478450':{'en': 'Hamilton'},
- '6478451':{'en': 'Hamilton'},
- '647846':{'en': 'Hamilton'},
- '647847':{'en': 'Hamilton'},
- '647848':{'en': 'Hamilton'},
- '647849':{'en': 'Hamilton'},
- '647850':{'en': 'Hamilton'},
- '647851':{'en': 'Hamilton'},
- '647852':{'en': 'Hamilton'},
- '647853':{'en': 'Hamilton'},
- '647854':{'en': 'Hamilton'},
- '647855':{'en': 'Hamilton'},
- '647856':{'en': 'Hamilton'},
- '647857':{'en': 'Hamilton'},
- '647858':{'en': 'Hamilton'},
- '6478590':{'en': 'Hamilton'},
- '6478591':{'en': 'Hamilton'},
- '6478592':{'en': 'Hamilton'},
- '6478593':{'en': 'Hamilton'},
- '6478594':{'en': 'Hamilton'},
- '6478595':{'en': 'Hamilton'},
- '6478597':{'en': 'Hamilton'},
- '6478598':{'en': 'Hamilton'},
- '6478599':{'en': 'Hamilton'},
+ '64783':{'en': 'Hamilton'},
+ '64784':{'en': 'Hamilton'},
+ '64785':{'en': 'Hamilton'},
+ '647860':{'en': 'Paeroa/Waihi/Thames/Whangamata'},
+ '647861':{'en': 'Paeroa/Waihi/Thames/Whangamata'},
  '647862':{'en': 'Paeroa'},
  '647863':{'en': 'Waihi'},
  '647864':{'en': 'Thames'},
@@ -3799,9 +3814,12 @@ data = {
  '647871':{'en': 'Te Awamutu'},
  '647872':{'en': 'Te Awamutu'},
  '647873':{'en': 'Otorohanga'},
+ '647874':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
+ '647875':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
  '647876':{'en': 'Te Kuiti'},
  '647877':{'en': 'Te Kuiti'},
  '647878':{'en': 'Te Kuiti'},
+ '647879':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
  '647880':{'en': 'Matamata'},
  '647881':{'en': 'Matamata'},
  '647882':{'en': 'Putaruru/Tokoroa'},
@@ -3812,11 +3830,7 @@ data = {
  '647887':{'en': 'Morrinsville'},
  '647888':{'en': 'Matamata'},
  '647889':{'en': 'Morrinsville'},
- '647892':{'en': 'Taumarunui'},
- '647893':{'en': 'Taumarunui'},
- '647894':{'en': 'Taumarunui'},
- '647895':{'en': 'Taumarunui'},
- '647896':{'en': 'Taumarunui'},
+ '64789':{'en': 'Taumarunui'},
  '6478990':{'en': 'Thames'},
  '6478991':{'en': 'Whangamata'},
  '6478992':{'en': 'Paeroa'},
@@ -3827,13 +3841,13 @@ data = {
  '6478997':{'en': 'Morrinsville'},
  '6478998':{'en': 'Hamilton'},
  '6478999':{'en': 'Hamilton'},
+ '64790':{'en': 'Taupo'},
  '6479000':{'en': 'Hamilton'},
  '6479001':{'en': 'Hamilton'},
  '6479002':{'en': 'Matamata'},
  '6479003':{'en': 'Thames'},
  '6479004':{'en': 'Te Awamutu'},
  '6479005':{'en': 'Tauranga'},
- '6479006':{'en': 'Taupo'},
  '6479007':{'en': 'Whakatane'},
  '6479008':{'en': 'Rotorua'},
  '6479009':{'en': 'Hamilton'},
@@ -3852,10 +3866,6 @@ data = {
  '6479040':{'en': 'Otorohanga'},
  '6479045':{'en': 'Taumarunui'},
  '6479049':{'en': 'Te Kuiti'},
- '647905':{'en': 'Taupo'},
- '647906':{'en': 'Taupo'},
- '6479090':{'en': 'Taupo'},
- '6479091':{'en': 'Taupo'},
  '6479100':{'en': 'Rotorua'},
  '6479101':{'en': 'Rotorua'},
  '6479102':{'en': 'Rotorua'},
@@ -3871,10 +3881,12 @@ data = {
  '6479240':{'en': 'Taupo'},
  '6479241':{'en': 'Whakatane'},
  '6479242':{'en': 'Rotorua'},
+ '6479243':{'en': 'Rotorua/Whakatane/Tauranga'},
  '6479244':{'en': 'Tauranga'},
  '6479245':{'en': 'Matamata'},
  '6479246':{'en': 'Thames'},
  '6479247':{'en': 'Hamilton'},
+ '6479248':{'en': 'Rotorua/Whakatane/Tauranga'},
  '6479249':{'en': 'Huntly'},
  '647925':{'en': 'Tauranga'},
  '647926':{'en': 'Tauranga'},
@@ -3890,18 +3902,15 @@ data = {
  '6479297':{'en': 'Tauranga'},
  '6479298':{'en': 'Taupo'},
  '6479299':{'en': 'Rotorua'},
+ '64793':{'en': 'Tauranga'},
  '6479420':{'en': 'Tauranga'},
  '6479421':{'en': 'Tauranga'},
  '6479422':{'en': 'Tauranga'},
  '647949':{'en': 'Hamilton'},
+ '64795':{'en': 'Hamilton'},
  '6479500':{'en': 'Whakatane'},
  '6479501':{'en': 'Opotiki'},
- '647957':{'en': 'Hamilton'},
- '647958':{'en': 'Hamilton'},
- '647959':{'en': 'Hamilton'},
- '647960':{'en': 'Hamilton'},
- '647961':{'en': 'Hamilton'},
- '647968':{'en': 'Hamilton'},
+ '64796':{'en': 'Hamilton'},
  '647970':{'en': 'Hamilton'},
  '6479708':{'en': 'Thames'},
  '6479709':{'en': 'Matamata'},
@@ -3951,55 +3960,24 @@ data = {
  '647987':{'en': 'Tauranga'},
  '647988':{'en': 'Rotorua'},
  '647989':{'en': 'Taupo'},
- '649200':{'en': 'Auckland'},
+ '6492':{'en': 'Auckland'},
  '6492006':{'en': 'Helensville'},
  '6492007':{'en': 'Warkworth'},
  '6492008':{'en': 'Hibiscus Coast'},
  '6492009':{'en': 'Pukekohe'},
- '649210':{'en': 'Auckland'},
- '649211':{'en': 'Auckland'},
- '649212':{'en': 'Auckland'},
- '649213':{'en': 'Auckland'},
- '649214':{'en': 'Auckland'},
- '649215':{'en': 'Auckland'},
- '649216':{'en': 'Auckland'},
- '649218':{'en': 'Auckland'},
- '649220':{'en': 'Auckland'},
- '6492220':{'en': 'Auckland'},
- '6492221':{'en': 'Auckland'},
- '6492222':{'en': 'Auckland'},
- '6492223':{'en': 'Auckland'},
- '6492224':{'en': 'Auckland'},
  '6492225':{'en': 'Pukekohe'},
  '6492226':{'en': 'Helensville'},
  '6492227':{'en': 'Whangarei'},
  '6492228':{'en': 'Warkworth'},
  '6492229':{'en': 'Hibiscus Coast'},
- '649230':{'en': 'Pukekohe'},
- '649232':{'en': 'Pukekohe'},
- '649233':{'en': 'Pukekohe'},
- '649235':{'en': 'Pukekohe'},
- '649236':{'en': 'Pukekohe'},
- '649237':{'en': 'Pukekohe'},
- '649238':{'en': 'Pukekohe'},
- '649239':{'en': 'Pukekohe'},
- '6492420':{'en': 'Auckland'},
+ '64923':{'en': 'Pukekohe'},
  '6492426':{'en': 'Whangarei'},
  '6492427':{'en': 'Warkworth'},
  '6492428':{'en': 'Hibiscus Coast'},
  '6492429':{'en': 'Pukekohe'},
- '649248':{'en': 'Auckland'},
- '649249':{'en': 'Auckland'},
- '64925':{'en': 'Auckland'},
- '64926':{'en': 'Auckland'},
- '64927':{'en': 'Auckland'},
- '649280':{'en': 'Auckland'},
  '6492807':{'en': 'Helensville'},
  '6492808':{'en': 'Great Barrier Island'},
  '6492809':{'en': 'Maungaturoto'},
- '649281':{'en': 'Auckland'},
- '649282':{'en': 'Auckland'},
- '6492830':{'en': 'Auckland'},
  '6492831':{'en': 'Maungaturoto'},
  '6492832':{'en': 'Dargaville'},
  '6492833':{'en': 'Warkworth'},
@@ -4009,27 +3987,23 @@ data = {
  '6492837':{'en': 'Hibiscus Coast'},
  '6492838':{'en': 'Pukekohe'},
  '6492839':{'en': 'Whangarei'},
- '649291':{'en': 'Auckland'},
- '649292':{'en': 'Auckland'},
- '649294':{'en': 'Auckland'},
- '649295':{'en': 'Auckland'},
- '649296':{'en': 'Auckland'},
- '649297':{'en': 'Auckland'},
- '649298':{'en': 'Auckland'},
- '649299':{'en': 'Auckland'},
  '64930':{'en': 'Auckland'},
+ '64931':{'en': 'Auckland/Waiheke Island'},
+ '64932':{'en': 'Auckland/Waiheke Island'},
  '649320':{'en': 'Auckland'},
  '6493206':{'en': 'Pukekohe'},
  '6493207':{'en': 'Hibiscus Coast'},
  '6493208':{'en': 'Helensville'},
  '6493209':{'en': 'Great Barrier Island'},
  '64933':{'en': 'Auckland'},
+ '64934':{'en': 'Auckland/Waiheke Island'},
  '649347':{'en': 'Auckland'},
  '649348':{'en': 'Auckland'},
  '649349':{'en': 'Auckland'},
  '64935':{'en': 'Auckland'},
  '64936':{'en': 'Auckland'},
  '64937':{'en': 'Auckland'},
+ '64938':{'en': 'Auckland/Waiheke Island'},
  '649390':{'en': 'Auckland'},
  '649391':{'en': 'Auckland'},
  '649392':{'en': 'Auckland'},
@@ -4047,6 +4021,10 @@ data = {
  '6493942':{'en': 'Great Barrier Island'},
  '6493943':{'en': 'Helensville'},
  '6493944':{'en': 'Hibiscus Coast'},
+ '649395':{'en': 'Auckland/Waiheke Island'},
+ '649396':{'en': 'Auckland/Waiheke Island'},
+ '649397':{'en': 'Auckland/Waiheke Island'},
+ '649398':{'en': 'Auckland/Waiheke Island'},
  '649399':{'en': 'Auckland'},
  '6493990':{'en': 'Great Barrier Island'},
  '6493991':{'en': 'Pukekohe'},
@@ -4083,33 +4061,16 @@ data = {
  '649452':{'en': 'Auckland'},
  '649458':{'en': 'Dargaville'},
  '649459':{'en': 'Whangarei'},
- '6494700':{'en': 'Whangarei'},
- '6494701':{'en': 'Whangarei'},
- '6494702':{'en': 'Whangarei'},
- '6494703':{'en': 'Whangarei'},
- '6494704':{'en': 'Whangarei'},
- '6494705':{'en': 'Whangarei'},
- '6494706':{'en': 'Whangarei'},
- '649473':{'en': 'Auckland'},
- '649475':{'en': 'Auckland'},
- '649476':{'en': 'Auckland'},
- '649477':{'en': 'Auckland'},
- '649478':{'en': 'Auckland'},
- '649479':{'en': 'Auckland'},
+ '64947':{'en': 'Auckland'},
+ '649470':{'en': 'Whangarei'},
  '64948':{'en': 'Auckland'},
- '64952':{'en': 'Auckland'},
- '64953':{'en': 'Auckland'},
- '649550':{'en': 'Auckland'},
- '649551':{'en': 'Auckland'},
+ '6495':{'en': 'Auckland'},
  '649552':{'en': 'Pukekohe'},
  '6495530':{'en': 'Great Barrier Island'},
  '6495531':{'en': 'Helensville'},
  '6495532':{'en': 'Warkworth'},
  '6495533':{'en': 'Whangarei'},
- '6495538':{'en': 'Auckland'},
- '6495539':{'en': 'Auckland'},
  '649554':{'en': 'Hibiscus Coast'},
- '649555':{'en': 'Auckland'},
  '6495560':{'en': 'Whangarei'},
  '6495561':{'en': 'Whangarei'},
  '6495562':{'en': 'Whangarei'},
@@ -4120,46 +4081,20 @@ data = {
  '6495567':{'en': 'Kaitaia'},
  '6495568':{'en': 'Kawakawa'},
  '6495569':{'en': 'Maungaturoto'},
- '649557':{'en': 'Auckland'},
- '649558':{'en': 'Auckland'},
  '6495588':{'en': 'Hibiscus Coast'},
  '6495589':{'en': 'Pukekohe'},
- '64957':{'en': 'Auckland'},
- '649580':{'en': 'Auckland'},
- '649581':{'en': 'Auckland'},
- '649582':{'en': 'Auckland'},
- '649583':{'en': 'Auckland'},
- '649585':{'en': 'Auckland'},
- '649588':{'en': 'Auckland'},
- '649589':{'en': 'Auckland'},
- '649590':{'en': 'Auckland'},
- '649600':{'en': 'Auckland'},
+ '6496':{'en': 'Auckland'},
  '6496007':{'en': 'Helensville'},
  '6496008':{'en': 'Hibiscus Coast'},
  '6496009':{'en': 'Pukekohe'},
  '6496010':{'en': 'Kaitaia'},
- '6496011':{'en': 'Kaikohe'},
  '6496012':{'en': 'Kawakawa'},
  '6496013':{'en': 'Whangarei'},
  '6496014':{'en': 'Dargaville'},
  '6496015':{'en': 'Maungaturoto'},
  '6496016':{'en': 'Warkworth'},
  '6496017':{'en': 'Great Barrier Island'},
- '6496018':{'en': 'Auckland'},
- '6496019':{'en': 'Auckland'},
  '6496100':{'en': 'Pukekohe'},
- '64962':{'en': 'Auckland'},
- '649630':{'en': 'Auckland'},
- '649631':{'en': 'Auckland'},
- '649632':{'en': 'Auckland'},
- '649633':{'en': 'Auckland'},
- '649634':{'en': 'Auckland'},
- '649635':{'en': 'Auckland'},
- '649636':{'en': 'Auckland'},
- '649638':{'en': 'Auckland'},
- '649639':{'en': 'Auckland'},
- '649640':{'en': 'Auckland'},
- '649650':{'en': 'Auckland'},
  '6496507':{'en': 'Helensville'},
  '6496508':{'en': 'Hibiscus Coast'},
  '6496509':{'en': 'Pukekohe'},
@@ -4174,12 +4109,6 @@ data = {
  '6496518':{'en': 'Kawakawa'},
  '6496519':{'en': 'Maungaturoto'},
  '649652':{'en': 'Warkworth'},
- '649666':{'en': 'Auckland'},
- '6496880':{'en': 'Auckland'},
- '6496881':{'en': 'Auckland'},
- '6496882':{'en': 'Auckland'},
- '6496883':{'en': 'Auckland'},
- '6496884':{'en': 'Auckland'},
  '6496990':{'en': 'Kaitaia'},
  '6496991':{'en': 'Kaikohe'},
  '6496992':{'en': 'Kawakawa'},
@@ -4189,7 +4118,6 @@ data = {
  '6496996':{'en': 'Warkworth'},
  '6496997':{'en': 'Hibiscus Coast'},
  '6496998':{'en': 'Helensville'},
- '6496999':{'en': 'Auckland'},
  '6497770':{'en': 'Whangarei'},
  '6497771':{'en': 'Kaikohe'},
  '6497772':{'en': 'Kaitaia'},
@@ -4200,38 +4128,13 @@ data = {
  '6497777':{'en': 'Auckland'},
  '6497778':{'en': 'Pukekohe'},
  '6497779':{'en': 'Great Barrier Island'},
- '649801':{'en': 'Auckland'},
+ '6498':{'en': 'Auckland'},
  '6498016':{'en': 'Hibiscus Coast'},
  '6498017':{'en': 'Hibiscus Coast'},
  '6498018':{'en': 'Whangarei'},
  '6498019':{'en': 'Pukekohe'},
- '649810':{'en': 'Auckland'},
- '649811':{'en': 'Auckland'},
- '649812':{'en': 'Auckland'},
- '649813':{'en': 'Auckland'},
- '649814':{'en': 'Auckland'},
- '649815':{'en': 'Auckland'},
- '649816':{'en': 'Auckland'},
- '649817':{'en': 'Auckland'},
- '649818':{'en': 'Auckland'},
- '649820':{'en': 'Auckland'},
- '649822':{'en': 'Auckland'},
- '649825':{'en': 'Auckland'},
- '649826':{'en': 'Auckland'},
- '649827':{'en': 'Auckland'},
- '649828':{'en': 'Auckland'},
- '649829':{'en': 'Auckland'},
- '64983':{'en': 'Auckland'},
- '649840':{'en': 'Auckland'},
- '649845':{'en': 'Auckland'},
- '649846':{'en': 'Auckland'},
- '649847':{'en': 'Auckland'},
- '649849':{'en': 'Auckland'},
- '649869':{'en': 'Auckland'},
  '6498690':{'en': 'Kawakawa'},
  '6498691':{'en': 'Maungaturoto'},
- '649880':{'en': 'Auckland'},
- '649881':{'en': 'Auckland'},
  '6498814':{'en': 'Pukekohe'},
  '6498815':{'en': 'Helensville'},
  '6498816':{'en': 'Great Barrier Island'},
@@ -4243,8 +4146,6 @@ data = {
  '6498824':{'en': 'Kawakawa'},
  '6498825':{'en': 'Maungaturoto'},
  '6498826':{'en': 'Warkworth'},
- '649883':{'en': 'Auckland'},
- '649884':{'en': 'Auckland'},
  '6498850':{'en': 'Great Barrier Island'},
  '6498851':{'en': 'Pukekohe'},
  '6498852':{'en': 'Warkworth'},
@@ -4255,28 +4156,18 @@ data = {
  '6498857':{'en': 'Dargaville'},
  '6498858':{'en': 'Kaikohe'},
  '6498859':{'en': 'Kaitaia'},
- '649886':{'en': 'Auckland'},
- '649887':{'en': 'Auckland'},
- '649888':{'en': 'Auckland'},
  '6498880':{'en': 'Helensville'},
  '6498881':{'en': 'Hibiscus Coast'},
  '6498882':{'en': 'Whangarei'},
  '6498883':{'en': 'Whangarei'},
- '649889':{'en': 'Auckland'},
- '649890':{'en': 'Auckland'},
  '6498900':{'en': 'Pukekohe'},
  '6498901':{'en': 'Pukekohe'},
- '649892':{'en': 'Auckland'},
- '6499000':{'en': 'Auckland'},
- '6499001':{'en': 'Auckland'},
- '6499002':{'en': 'Auckland'},
+ '6499':{'en': 'Auckland'},
  '6499003':{'en': 'Warkworth'},
  '6499004':{'en': 'Hibiscus Coast'},
- '6499005':{'en': 'Auckland'},
  '6499006':{'en': 'Whangarei'},
  '6499007':{'en': 'Kaikohe'},
  '6499008':{'en': 'Pukekohe'},
- '6499009':{'en': 'Auckland'},
  '6499010':{'en': 'Kaitaia'},
  '6499011':{'en': 'Kaitaia'},
  '6499012':{'en': 'Kawakawa'},
@@ -4288,7 +4179,6 @@ data = {
  '6499018':{'en': 'Maungaturoto'},
  '6499019':{'en': 'Maungaturoto'},
  '649902':{'en': 'Warkworth'},
- '649903':{'en': 'Auckland'},
  '6499040':{'en': 'Helensville'},
  '6499041':{'en': 'Helensville'},
  '6499042':{'en': 'Hibiscus Coast'},
@@ -4299,7 +4189,7 @@ data = {
  '6499047':{'en': 'Pukekohe'},
  '6499048':{'en': 'Pukekohe'},
  '6499049':{'en': 'Great Barrier Island'},
- '649905':{'en': 'Auckland'},
+ '6499060':{'en': 'Warkworth'},
  '6499061':{'en': 'Hibiscus Coast'},
  '6499062':{'en': 'Hibiscus Coast'},
  '6499063':{'en': 'Hibiscus Coast'},
@@ -4309,34 +4199,18 @@ data = {
  '6499067':{'en': 'Pukekohe'},
  '6499068':{'en': 'Pukekohe'},
  '6499069':{'en': 'Pukekohe'},
- '649908':{'en': 'Auckland'},
- '649909':{'en': 'Auckland'},
+ '649907':{'en': 'Warkworth'},
  '6499100':{'en': 'Pukekohe'},
  '6499101':{'en': 'Pukekohe'},
- '649912':{'en': 'Auckland'},
- '649913':{'en': 'Auckland'},
- '649914':{'en': 'Auckland'},
- '649915':{'en': 'Auckland'},
- '649916':{'en': 'Auckland'},
- '649917':{'en': 'Auckland'},
- '649918':{'en': 'Auckland'},
- '649919':{'en': 'Auckland'},
- '64992':{'en': 'Auckland'},
  '6499295':{'en': 'Kaikohe'},
  '6499296':{'en': 'Kaitaia'},
  '6499297':{'en': 'Hibiscus Coast'},
  '6499298':{'en': 'Pukekohe'},
  '6499299':{'en': 'Whangarei'},
- '649930':{'en': 'Auckland'},
- '649940':{'en': 'Auckland'},
- '649941':{'en': 'Auckland'},
  '6499420':{'en': 'Pukekohe'},
  '6499421':{'en': 'Hibiscus Coast'},
  '6499422':{'en': 'Helensville'},
  '6499423':{'en': 'Great Barrier Island'},
- '6499424':{'en': 'Auckland'},
- '6499425':{'en': 'Auckland'},
- '6499426':{'en': 'Auckland'},
  '6499428':{'en': 'Warkworth'},
  '6499450':{'en': 'Warkworth'},
  '6499451':{'en': 'Warkworth'},
@@ -4364,17 +4238,9 @@ data = {
  '6499473':{'en': 'Helensville'},
  '6499474':{'en': 'Helensville'},
  '6499475':{'en': 'Hibiscus Coast'},
- '6499476':{'en': 'Auckland'},
  '6499477':{'en': 'Pukekohe'},
  '6499478':{'en': 'Pukekohe'},
  '6499479':{'en': 'Pukekohe'},
- '649948':{'en': 'Auckland'},
- '649949':{'en': 'Auckland'},
- '649950':{'en': 'Auckland'},
- '649951':{'en': 'Auckland'},
- '649952':{'en': 'Auckland'},
- '649953':{'en': 'Auckland'},
- '649954':{'en': 'Auckland'},
  '6499551':{'en': 'Whangarei'},
  '6499552':{'en': 'Dargaville'},
  '6499553':{'en': 'Kaikohe'},
@@ -4384,21 +4250,11 @@ data = {
  '6499557':{'en': 'Warkworth'},
  '6499558':{'en': 'Great Barrier Island'},
  '6499559':{'en': 'Whangarei'},
- '649956':{'en': 'Auckland'},
  '649957':{'en': 'Pukekohe'},
  '649958':{'en': 'Helensville'},
  '649959':{'en': 'Hibiscus Coast'},
- '649962':{'en': 'Auckland'},
- '649963':{'en': 'Auckland'},
  '6499630':{'en': 'Pukekohe'},
  '6499631':{'en': 'Pukekohe'},
- '649964':{'en': 'Auckland'},
- '649965':{'en': 'Auckland'},
- '649966':{'en': 'Auckland'},
- '649967':{'en': 'Auckland'},
- '649968':{'en': 'Auckland'},
- '649969':{'en': 'Auckland'},
- '64997':{'en': 'Auckland'},
  '6499716':{'en': 'Helensville'},
  '6499717':{'en': 'Whangarei'},
  '6499718':{'en': 'Whangarei'},
@@ -4411,19 +4267,11 @@ data = {
  '6499746':{'en': 'Kawakawa'},
  '6499747':{'en': 'Dargaville'},
  '6499748':{'en': 'Whangarei'},
- '649980':{'en': 'Auckland'},
+ '64998':{'en': 'Whangarei'},
  '6499810':{'en': 'Hibiscus Coast'},
  '6499811':{'en': 'Hibiscus Coast'},
  '6499818':{'en': 'Great Barrier Island'},
  '6499819':{'en': 'Helensville'},
- '649982':{'en': 'Whangarei'},
- '649983':{'en': 'Whangarei'},
- '649984':{'en': 'Auckland'},
- '649985':{'en': 'Auckland'},
- '649986':{'en': 'Whangarei'},
- '6499870':{'en': 'Whangarei'},
- '6499871':{'en': 'Whangarei'},
- '6499872':{'en': 'Whangarei'},
  '6499873':{'en': 'Kaitaia'},
  '6499874':{'en': 'Kawakawa'},
  '6499875':{'en': 'Dargaville'},
@@ -4431,7 +4279,6 @@ data = {
  '6499877':{'en': 'Maungaturoto'},
  '6499878':{'en': 'Warkworth'},
  '6499879':{'en': 'Warkworth'},
- '649988':{'en': 'Whangarei'},
  '6610':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
  '6616':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
  '6618':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
@@ -4634,14 +4481,17 @@ data = {
  '686654':{'en': 'Gilbert Islands'},
  '686655':{'en': 'Phoenix Islands'},
  '68672700':{'en': 'Gilbert Islands'},
- '686750':{'en': 'Bairiki'},
- '686751':{'en': 'Betio'},
- '686752':{'en': 'Bikenibeu'},
- '6867530':{'en': 'Gilbert Islands'},
- '6867538':{'en': 'Line Islands'},
- '6867540':{'en': 'Phoenix Islands'},
- '6867548':{'en': 'Line Islands'},
- '686755':{'en': 'Phoenix Islands'},
+ '68675021':{'en': 'Bairiki'},
+ '68675022':{'en': 'Bairiki'},
+ '68675125':{'en': 'Betio'},
+ '68675126':{'en': 'Betio'},
+ '68675228':{'en': 'Bikenibeu'},
+ '68675229':{'en': 'Bikenibeu'},
+ '68675300':{'en': 'Gilbert Islands'},
+ '68675381':{'en': 'Line Islands'},
+ '68675400':{'en': 'Phoenix Islands'},
+ '68675481':{'en': 'Line Islands'},
+ '68675500':{'en': 'Phoenix Islands'},
  '68681':{'en': 'Kiritimati'},
  '68682':{'en': 'Kiritimati'},
  '68683':{'en': 'Fanning'},
@@ -4823,6 +4673,7 @@ data = {
  '771458':{'en': 'Kostanai Region', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c')},
  '77145834':{'en': 'Krasnogorsk', 'ru': u('\u041a\u0440\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0441\u043a')},
  '771459':{'en': 'Kostanai Region', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c')},
+ '77149':{'en': 'Kostanai', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439')},
  '77152':{'en': 'Petropavlovsk', 'ru': u('\u041f\u0435\u0442\u0440\u043e\u043f\u0430\u0432\u043b\u043e\u0432\u0441\u043a')},
  '771531':{'en': 'Bulayevo', 'ru': u('\u041c\u0430\u0433\u0436\u0430\u043d\u0430 \u0416\u0443\u043c\u0430\u0431\u0430\u0435\u0432\u0430 \u0440-\u043d')},
  '771532':{'en': 'Smirnovo', 'ru': u('\u0410\u043a\u043a\u0430\u0439\u044b\u043d\u0441\u043a\u0438\u0439 \u0440-\u043d')},
@@ -4874,10 +4725,11 @@ data = {
  '771839':{'en': 'Akku', 'ru': u('\u041b\u0435\u0431\u044f\u0436\u0438\u043d\u0441\u043a\u0438\u0439 \u0440-\u043d')},
  '771840':{'en': 'Bayanaul', 'ru': u('\u0411\u0430\u044f\u043d\u0430\u0443\u043b\u044c\u0441\u043a\u0438\u0439 \u0440-\u043d')},
  '771841':{'en': 'Aktogai', 'ru': u('\u0410\u043a\u0442\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
- '771842':{'en': 'Aktogaisky District', 'ru': u('\u0410\u043a\u0442\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
+ '771842':{'en': 'Koktobe', 'ru': u('\u041c\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043e\u043d')},
  '771843':{'en': 'Maisky District', 'ru': u('\u041c\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
  '771844':{'en': 'Irtyshsky District', 'ru': u('\u0418\u0440\u0442\u044b\u0448\u0441\u043a\u0438\u0439 \u0440-\u043d')},
  '771845':{'en': 'Pavlodar Area', 'ru': u('\u041f\u0430\u0432\u043b\u043e\u0434\u0430\u0440')},
+ '77185':{'en': 'Shaldai', 'ru': u('\u0428\u0430\u043b\u0434\u0430\u0439')},
  '77187':{'en': 'Ekibastuz', 'ru': u('\u042d\u043a\u0438\u0431\u0430\u0441\u0442\u0443\u0437')},
  '77212':{'en': 'Karaganda', 'ru': u('\u041a\u0430\u0440\u0430\u0433\u0430\u043d\u0434\u0430')},
  '77213':{'en': 'Aktau/Temirtau', 'ru': u('\u0422\u0435\u043c\u0438\u0440\u0442\u0430\u0443')},
@@ -4950,7 +4802,9 @@ data = {
  '772540':{'en': 'Arys', 'ru': u('\u0410\u0440\u044b\u0441')},
  '772541':{'en': 'Myrzakent', 'ru': u('\u041c\u044b\u0440\u0437\u0430\u043a\u0435\u043d\u0442')},
  '772542':{'en': 'Asykata', 'ru': u('\u0410\u0441\u044b\u043a\u0430\u0442\u0430')},
+ '772543':{'en': 'Aqsumbe', 'ru': u('\u0410\u043a\u0441\u0443\u043c\u0431\u0435')},
  '772544':{'en': 'Shaulder', 'ru': u('\u0428\u0430\u0443\u043b\u044c\u0434\u0435\u0440')},
+ '772545':{'en': 'Ikan', 'ru': u('\u0418\u043a\u0430\u043d')},
  '772546':{'en': 'Sholakkorgan', 'ru': u('\u0428\u043e\u043b\u0430\u043a\u043a\u043e\u0440\u0433\u0430\u043d')},
  '772547':{'en': 'Lenger', 'ru': u('\u041b\u0435\u043d\u0433\u0435\u0440')},
  '772548':{'en': 'Shayan', 'ru': u('\u0428\u0430\u044f\u043d')},
@@ -10019,4 +9873,150 @@ data = {
  '861306301':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
  '861306302':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
  '86130631':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861306320':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861306321':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306322':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861306323':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861306324':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861306325':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861306326':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861306327':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306328':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306329':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861306330':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861306331':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861306332':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861306333':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306334':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861306335':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
+ '861306336':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861306337':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861306338':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861306339':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
+ '861306340':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861306341':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306342':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861306343':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861306344':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306345':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306346':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861306347':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861306348':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306349':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306350':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306351':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306352':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306353':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306354':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306355':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306356':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306357':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306358':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306359':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86130636':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '86130637':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86130638':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86130639':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '86130640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306410':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306411':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306412':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306413':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306414':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306415':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306416':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306417':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306418':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306419':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '86130642':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861306430':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861306431':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861306432':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861306433':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861306434':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861306435':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861306436':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861306437':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861306438':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861306439':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861306440':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306441':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306442':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306443':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306444':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306445':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306446':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306447':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306448':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306449':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '86130645':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86130646':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86130647':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306480':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306481':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306482':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306483':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306484':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306485':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306486':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306487':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306488':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306489':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306490':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306491':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306492':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306493':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306494':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306495':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306496':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306497':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306498':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306499':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '86130650':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86130651':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306520':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306521':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306522':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306523':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306524':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306525':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306526':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306527':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306528':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306529':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306530':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306531':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306532':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306533':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306534':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306535':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306536':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306537':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306538':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306539':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86130654':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86130655':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '86130656':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '861306570':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306572':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306573':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306574':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306575':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306576':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306577':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306578':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306579':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '86130658':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86130659':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86130660':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861306600':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306601':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306602':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306603':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86130661':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86130662':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
+ '86130663':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86130664':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861306640':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data15.py b/python/phonenumbers/geodata/data15.py
index 01d6cf98..d964383e 100644
--- a/python/phonenumbers/geodata/data15.py
+++ b/python/phonenumbers/geodata/data15.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861306320':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861306321':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306322':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861306323':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861306324':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861306325':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861306326':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861306327':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306328':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306329':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861306330':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861306331':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861306332':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861306333':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306334':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861306335':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
- '861306336':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861306337':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861306338':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861306339':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
- '861306340':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861306341':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306342':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861306343':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861306344':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306345':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306346':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861306347':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861306348':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306349':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306350':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306351':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306352':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306353':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306354':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306355':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306356':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306357':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306358':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306359':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86130636':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '86130637':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86130638':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86130639':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '86130640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306410':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306411':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306412':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306413':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306414':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306415':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306416':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306417':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306418':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306419':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '86130642':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861306430':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861306431':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861306432':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861306433':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861306434':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861306435':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861306436':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861306437':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861306438':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861306439':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861306440':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306441':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306442':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306443':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306444':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306445':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306446':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306447':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306448':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306449':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '86130645':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86130646':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86130647':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306480':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306481':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306482':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306483':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306484':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306485':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306486':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306487':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306488':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306489':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306490':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306491':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306492':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306493':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306494':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306495':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306496':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306497':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306498':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306499':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '86130650':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86130651':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306520':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306521':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306522':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306523':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306524':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306525':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306526':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306527':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306528':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306529':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306530':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306531':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306532':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306533':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306534':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306535':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306536':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306537':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306538':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306539':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86130654':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86130655':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '86130656':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '861306570':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306572':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306573':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306574':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306575':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306576':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306577':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306578':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306579':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '86130658':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86130659':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86130660':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861306600':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306601':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306602':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306603':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86130661':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86130662':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
- '86130663':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86130664':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861306640':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
  '861306641':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
  '861306642':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
  '861306643':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861323581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
  '861323582':{'en': 'Huzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e56\u5dde\u5e02')},
  '861323583':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
+ '861323584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '861323585':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861323586':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861323587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861323588':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861323589':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861323590':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861323591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861323592':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
+ '861323593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861323594':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
+ '861323595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861323596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861323597':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861323598':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861323599':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '86132360':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861323607':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323608':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323609':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86132361':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
+ '861323610':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323611':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323612':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323613':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '86132362':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861323627':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323628':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323629':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323630':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323631':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323632':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323633':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323634':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323635':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323636':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323637':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323638':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323639':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323640':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861323641':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861323642':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861323643':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861323644':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861323645':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323646':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861323647':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323648':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323649':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86132365':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '86132366':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861323668':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '861323669':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '861323670':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861323671':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861323672':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323673':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323674':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861323675':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861323676':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '861323677':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861323678':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861323679':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '861323680':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323681':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323682':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323683':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323684':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323685':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323686':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323687':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323688':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323689':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323690':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323691':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323692':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323693':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323694':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323695':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '861323696':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861323697':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861323698':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861323699':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323700':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323701':{'en': 'Yingtan, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u9e70\u6f6d\u5e02')},
+ '861323702':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323703':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323704':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323705':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861323706':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
+ '861323707':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323708':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323709':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '86132371':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
+ '861323720':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323721':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323722':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323723':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323724':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323725':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323726':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861323727':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323728':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323729':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323730':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861323731':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323732':{'en': 'Xiangtan, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u6f6d\u5e02')},
+ '861323733':{'en': 'Zhuzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u682a\u6d32\u5e02')},
+ '861323734':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
+ '861323735':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
+ '861323736':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861323737':{'en': 'Yiyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u76ca\u9633\u5e02')},
+ '861323738':{'en': 'Loudi, Hunan', 'zh': u('\u6e56\u5357\u7701\u5a04\u5e95\u5e02')},
+ '861323739':{'en': 'Shaoyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u90b5\u9633\u5e02')},
+ '861323740':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861323741':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323742':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323743':{'en': 'Xiangxi, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u897f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861323744':{'en': 'Zhangjiajie, Hunan', 'zh': u('\u6e56\u5357\u7701\u5f20\u5bb6\u754c\u5e02')},
+ '861323745':{'en': 'Huaihua, Hunan', 'zh': u('\u6e56\u5357\u7701\u6000\u5316\u5e02')},
+ '861323746':{'en': 'Yongzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u6c38\u5dde\u5e02')},
+ '861323747':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323748':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323749':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323750':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
+ '861323751':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323752':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323753':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323754':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323755':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323756':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323757':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323758':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861323759':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
+ '861323760':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861323761':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323762':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323763':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323764':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323765':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861323766':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323767':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323768':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323769':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323770':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861323771':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data16.py b/python/phonenumbers/geodata/data16.py
index 3ba18247..87d33481 100644
--- a/python/phonenumbers/geodata/data16.py
+++ b/python/phonenumbers/geodata/data16.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861323584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '861323585':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861323586':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861323587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861323588':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861323589':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861323590':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861323591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861323592':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '861323593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861323594':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
- '861323595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861323596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861323597':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861323598':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861323599':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '86132360':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861323607':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323608':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323609':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86132361':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
- '861323610':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323611':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323612':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323613':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '86132362':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861323627':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323628':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323629':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323630':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323631':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323632':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323633':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323634':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323635':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323636':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323637':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323638':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323639':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323640':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861323641':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861323642':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861323643':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861323644':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861323645':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323646':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861323647':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323648':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323649':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86132365':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '86132366':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861323668':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '861323669':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '861323670':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861323671':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861323672':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323673':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323674':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861323675':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861323676':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '861323677':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861323678':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861323679':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '861323680':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323681':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323682':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323683':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323684':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323685':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323686':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323687':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323688':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323689':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323690':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323691':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323692':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323693':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323694':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323695':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '861323696':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861323697':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861323698':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861323699':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323700':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323701':{'en': 'Yingtan, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u9e70\u6f6d\u5e02')},
- '861323702':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323703':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323704':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323705':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861323706':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
- '861323707':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323708':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323709':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '86132371':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
- '861323720':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323721':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323722':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323723':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323724':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323725':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323726':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861323727':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323728':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323729':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323730':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861323731':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323732':{'en': 'Xiangtan, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u6f6d\u5e02')},
- '861323733':{'en': 'Zhuzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u682a\u6d32\u5e02')},
- '861323734':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
- '861323735':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
- '861323736':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861323737':{'en': 'Yiyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u76ca\u9633\u5e02')},
- '861323738':{'en': 'Loudi, Hunan', 'zh': u('\u6e56\u5357\u7701\u5a04\u5e95\u5e02')},
- '861323739':{'en': 'Shaoyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u90b5\u9633\u5e02')},
- '861323740':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861323741':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323742':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323743':{'en': 'Xiangxi, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u897f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861323744':{'en': 'Zhangjiajie, Hunan', 'zh': u('\u6e56\u5357\u7701\u5f20\u5bb6\u754c\u5e02')},
- '861323745':{'en': 'Huaihua, Hunan', 'zh': u('\u6e56\u5357\u7701\u6000\u5316\u5e02')},
- '861323746':{'en': 'Yongzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u6c38\u5dde\u5e02')},
- '861323747':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323748':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323749':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323750':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
- '861323751':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323752':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323753':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323754':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323755':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323756':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323757':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323758':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861323759':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
- '861323760':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861323761':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323762':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323763':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323764':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323765':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861323766':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323767':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323768':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323769':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323770':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861323771':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
  '861323772':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
  '861323773':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
  '861323774':{'en': 'Hezhou, Guangxi', 'zh': u('\u5e7f\u897f\u8d3a\u5dde\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861339854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
  '861339855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
  '861339856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
+ '861339857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861339858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861339859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861339860':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339861':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
+ '861339862':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339863':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339864':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339865':{'en': 'Qinhuangdao, Hebei', 'zh': u('\u6cb3\u5317\u7701\u79e6\u7687\u5c9b\u5e02')},
+ '861339866':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339867':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339868':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339869':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861339871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861339875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861339876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861339877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861339878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861339880':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339881':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
+ '861339882':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
+ '861339883':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
+ '861339884':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339885':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339886':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
+ '861339887':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861339888':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
+ '861339889':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '86133989':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
+ '861339900':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
+ '861339901':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861339902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861339903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861339904':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339905':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861339906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861339907':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339908':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339909':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861339911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861339912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861339913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861339914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861339915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861339916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861339917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861339918':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861339919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861339920':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861339921':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861339922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861339923':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861339924':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861339925':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861339926':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861339927':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861339928':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861339929':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861339930':{'en': 'Linxia, Gansu', 'zh': u('\u7518\u8083\u7701\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861339932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861339933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861339934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861339935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
+ '861339936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861339937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861339938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '861339939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861339940':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861339941':{'en': 'Gannan, Gansu', 'zh': u('\u7518\u8083\u7701\u7518\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861339942':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
+ '861339943':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861339944':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861339945':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
+ '861339946':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861339947':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
+ '861339948':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
+ '861339949':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861339950':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861339951':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861339952':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861339953':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861339954':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861339955':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861339956':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861339957':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861339958':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861339959':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861339960':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861339961':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
+ '861339962':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861339963':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861339964':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861339965':{'en': 'Chaohu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5de2\u6e56\u5e02')},
+ '861339966':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861339967':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
+ '861339968':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861339969':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861339970':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339971':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861339972':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339973':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861339974':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861339975':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339976':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339977':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339978':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339979':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86133998':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861339990':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
+ '861339991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
+ '861339992':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861339993':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
+ '861339994':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
+ '861339996':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861339998':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339999':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861340000':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340001':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340002':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340003':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340004':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340005':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340006':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340007':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340008':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861340009':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861340010':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
+ '861340011':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
+ '861340012':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861340013':{'en': 'Zhangjiakou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u5f20\u5bb6\u53e3\u5e02')},
+ '861340014':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340015':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340016':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861340017':{'en': 'Cangzhou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
+ '861340018':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340019':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '86134002':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data17.py b/python/phonenumbers/geodata/data17.py
index 6255c042..1c09a645 100644
--- a/python/phonenumbers/geodata/data17.py
+++ b/python/phonenumbers/geodata/data17.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861339857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861339858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861339859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861339860':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339861':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
- '861339862':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339863':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339864':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339865':{'en': 'Qinhuangdao, Hebei', 'zh': u('\u6cb3\u5317\u7701\u79e6\u7687\u5c9b\u5e02')},
- '861339866':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339867':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339868':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339869':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861339871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861339873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861339874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861339875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861339876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861339877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861339878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861339879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861339880':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339881':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
- '861339882':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
- '861339883':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
- '861339884':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339885':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339886':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
- '861339887':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861339888':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
- '861339889':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '86133989':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
- '861339900':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
- '861339901':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861339902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861339903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861339904':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339905':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861339906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861339907':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339908':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339909':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861339911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861339912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861339913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861339914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861339915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861339916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861339917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861339918':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861339919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861339920':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861339921':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861339922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861339923':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861339924':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861339925':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861339926':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861339927':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861339928':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861339929':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861339930':{'en': 'Linxia, Gansu', 'zh': u('\u7518\u8083\u7701\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861339932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861339933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861339934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861339935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
- '861339936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861339937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861339938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '861339939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861339940':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861339941':{'en': 'Gannan, Gansu', 'zh': u('\u7518\u8083\u7701\u7518\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861339942':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
- '861339943':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861339944':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861339945':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
- '861339946':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861339947':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
- '861339948':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
- '861339949':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861339950':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861339951':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861339952':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861339953':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861339954':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861339955':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861339956':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861339957':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861339958':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861339959':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861339960':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861339961':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
- '861339962':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861339963':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861339964':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861339965':{'en': 'Chaohu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5de2\u6e56\u5e02')},
- '861339966':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861339967':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
- '861339968':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861339969':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861339970':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339971':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861339972':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339973':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861339974':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861339975':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339976':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339977':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339978':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339979':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86133998':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861339990':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
- '861339991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
- '861339992':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861339993':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
- '861339994':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
- '861339996':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861339998':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339999':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861340000':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340001':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340002':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340003':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340004':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340005':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340006':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340007':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340008':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861340009':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861340010':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
- '861340011':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
- '861340012':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861340013':{'en': 'Zhangjiakou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u5f20\u5bb6\u53e3\u5e02')},
- '861340014':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340015':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340016':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861340017':{'en': 'Cangzhou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
- '861340018':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340019':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '86134002':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
  '861340020':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
  '861340021':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
  '86134003':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861364791':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
  '861364792':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
  '861364793':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861364794':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
+ '861364795':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861364796':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
+ '861364797':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861364798':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861364799':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
+ '86136480':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861364810':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '861364811':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861364812':{'en': 'Guangyuan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5143\u5e02')},
+ '861364813':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
+ '861364814':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
+ '861364815':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
+ '861364816':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861364817':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364818':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861364819':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '86136482':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86136483':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86136484':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861364850':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861364851':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861364852':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
+ '861364853':{'en': 'Anshun, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
+ '861364854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861364855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861364856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
+ '861364857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861364858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861364859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '86136486':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
+ '861364870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861364872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861364876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861364877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861364878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '86136488':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861364890':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364891':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364892':{'en': 'Xigaze, Tibet', 'zh': u('\u897f\u85cf\u65e5\u5580\u5219\u5730\u533a')},
+ '861364893':{'en': 'Shannan, Tibet', 'zh': u('\u897f\u85cf\u5c71\u5357\u5730\u533a')},
+ '861364894':{'en': 'Nyingchi, Tibet', 'zh': u('\u897f\u85cf\u6797\u829d\u5730\u533a')},
+ '861364895':{'en': 'Qamdo, Tibet', 'zh': u('\u897f\u85cf\u660c\u90fd\u5730\u533a')},
+ '861364896':{'en': 'Nagqu, Tibet', 'zh': u('\u897f\u85cf\u90a3\u66f2\u5730\u533a')},
+ '861364897':{'en': 'Ngari, Tibet', 'zh': u('\u897f\u85cf\u963f\u91cc\u5730\u533a')},
+ '861364898':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364899':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364900':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861364901':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861364902':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861364903':{'en': 'Yibin, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5b9c\u5bbe\u5e02')},
+ '861364904':{'en': 'Luzhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6cf8\u5dde\u5e02')},
+ '861364905':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861364906':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861364907':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861364908':{'en': 'Suining, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u9042\u5b81\u5e02')},
+ '861364909':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861364910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861364911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861364912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861364913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861364914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861364915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861364916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861364917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861364918':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861364919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '86136492':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861364922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861364930':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861364931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861364932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861364933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861364934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861364935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
+ '861364936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861364937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861364938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '861364939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861364940':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364941':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364942':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
+ '861364943':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
+ '861364944':{'en': 'Wuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u68a7\u5dde\u5e02')},
+ '861364945':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364946':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364947':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364948':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364949':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364950':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861364951':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861364952':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364953':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364954':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364955':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861364956':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364957':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364958':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861364959':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861364960':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364961':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364962':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364963':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364964':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364965':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364966':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364967':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364968':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364969':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861364970':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364971':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364973':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364974':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364975':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364976':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364977':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364978':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364979':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '86136498':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861364990':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861364991':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861364992':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861364993':{'en': 'Kizilsu, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c\u81ea\u6cbb\u5dde')},
+ '861364994':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861364995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
+ '861364996':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861364997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861364998':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861364999':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
+ '86136500':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136501':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136502':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136503':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136504':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136505':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861365060':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365061':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365062':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365063':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365064':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data18.py b/python/phonenumbers/geodata/data18.py
index f2e12f69..9587acc6 100644
--- a/python/phonenumbers/geodata/data18.py
+++ b/python/phonenumbers/geodata/data18.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861364794':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
- '861364795':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861364796':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
- '861364797':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861364798':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861364799':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
- '86136480':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861364810':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '861364811':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861364812':{'en': 'Guangyuan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5143\u5e02')},
- '861364813':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
- '861364814':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
- '861364815':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
- '861364816':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861364817':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364818':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861364819':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '86136482':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86136483':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86136484':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861364850':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861364851':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861364852':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
- '861364853':{'en': 'Anshun, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
- '861364854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861364855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861364856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
- '861364857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861364858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861364859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '86136486':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
- '861364870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861364872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861364873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861364876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861364877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861364878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '86136488':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861364890':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364891':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364892':{'en': 'Xigaze, Tibet', 'zh': u('\u897f\u85cf\u65e5\u5580\u5219\u5730\u533a')},
- '861364893':{'en': 'Shannan, Tibet', 'zh': u('\u897f\u85cf\u5c71\u5357\u5730\u533a')},
- '861364894':{'en': 'Nyingchi, Tibet', 'zh': u('\u897f\u85cf\u6797\u829d\u5730\u533a')},
- '861364895':{'en': 'Qamdo, Tibet', 'zh': u('\u897f\u85cf\u660c\u90fd\u5730\u533a')},
- '861364896':{'en': 'Nagqu, Tibet', 'zh': u('\u897f\u85cf\u90a3\u66f2\u5730\u533a')},
- '861364897':{'en': 'Ngari, Tibet', 'zh': u('\u897f\u85cf\u963f\u91cc\u5730\u533a')},
- '861364898':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364899':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364900':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861364901':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861364902':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861364903':{'en': 'Yibin, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5b9c\u5bbe\u5e02')},
- '861364904':{'en': 'Luzhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6cf8\u5dde\u5e02')},
- '861364905':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861364906':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861364907':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861364908':{'en': 'Suining, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u9042\u5b81\u5e02')},
- '861364909':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861364910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861364911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861364912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861364913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861364914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861364915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861364916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861364917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861364918':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861364919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '86136492':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861364922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861364930':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861364931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861364932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861364933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861364934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861364935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
- '861364936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861364937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861364938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '861364939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861364940':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364941':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364942':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
- '861364943':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
- '861364944':{'en': 'Wuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u68a7\u5dde\u5e02')},
- '861364945':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364946':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364947':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364948':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364949':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364950':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
- '861364951':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
- '861364952':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364953':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364954':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364955':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
- '861364956':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364957':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364958':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
- '861364959':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
- '861364960':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364961':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364962':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364963':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364964':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364965':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364966':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364967':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364968':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364969':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861364970':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364971':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364973':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364974':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364975':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364976':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364977':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364978':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364979':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '86136498':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861364990':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861364991':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861364992':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861364993':{'en': 'Kizilsu, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c\u81ea\u6cbb\u5dde')},
- '861364994':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861364995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
- '861364996':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861364997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861364998':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861364999':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
- '86136500':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136501':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136502':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136503':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136504':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136505':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861365060':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365061':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365062':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365063':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365064':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
  '861365065':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
  '861365066':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
  '861365067':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861393831':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
  '861393832':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
  '861393833':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86139384':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86139385':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861393860':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393861':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393862':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393863':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393864':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393865':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393866':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393867':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393868':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393869':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '86139387':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
+ '861393877':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393878':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393879':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86139388':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393890':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393891':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393892':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393893':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393894':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393895':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393896':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86139390':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86139391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86139392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86139393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86139394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86139395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '86139396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86139397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86139398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861393990':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393991':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393992':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393993':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393994':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393995':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393996':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393997':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393998':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393999':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '8613940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86139406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86139407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86139408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '86139411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86139413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86139414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86139415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86139416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86139417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86139418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '86139419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86139420':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '86139422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86139423':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86139424':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86139425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86139426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '86139428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86139430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861394314':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86139432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '861394330':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861394331':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394333':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861394334':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394340':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394341':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394342':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '861394343':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '861394344':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '861394345':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861394346':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394347':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394348':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394349':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86139435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86139436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86139437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86139438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86139439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86139440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86139444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86139445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86139446':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139447':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86139448':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139449':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86139453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86139454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86139455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '861394557':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861394558':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861394559':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86139456':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861394560':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394561':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394562':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861394571':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394572':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394573':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394574':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394575':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861394576':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861394577':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861394578':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861394579':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '86139458':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '861394587':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861394588':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861394589':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '86139459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86139460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86139463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86139464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86139465':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86139466':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '86139467':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '86139468':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '86139469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86139470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '86139471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '86139472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data19.py b/python/phonenumbers/geodata/data19.py
index 30f6d037..256234e1 100644
--- a/python/phonenumbers/geodata/data19.py
+++ b/python/phonenumbers/geodata/data19.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '86139384':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86139385':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861393860':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393861':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393862':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393863':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393864':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393865':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393866':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393867':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393868':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393869':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '86139387':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
- '861393877':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393878':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393879':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86139388':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393890':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393891':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393892':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393893':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393894':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393895':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393896':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86139390':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86139391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86139392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86139393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86139394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86139395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '86139396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86139397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86139398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861393990':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393991':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393992':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393993':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393994':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393995':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393996':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393997':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393998':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393999':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '8613940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86139406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86139407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86139408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '86139411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86139413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86139414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86139415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86139416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86139417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86139418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '86139419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86139420':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '86139422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86139423':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86139424':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86139425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86139426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '86139428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86139430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861394314':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86139432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '861394330':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861394331':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394333':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861394334':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394340':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394341':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394342':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '861394343':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '861394344':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '861394345':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861394346':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394347':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394348':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394349':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86139435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86139436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86139437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86139438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86139439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86139440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86139444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86139445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86139446':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139447':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86139448':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139449':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86139453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86139454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86139455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '861394557':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861394558':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861394559':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86139456':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861394560':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394561':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394562':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861394571':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394572':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394573':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394574':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394575':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861394576':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861394577':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861394578':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861394579':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '86139458':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '861394587':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861394588':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861394589':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '86139459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86139460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86139463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86139464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86139465':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86139466':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '86139467':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '86139468':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '86139469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86139470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '86139471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '86139472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
  '861394730':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
  '861394731':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
  '861394732':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861505626':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
  '861505627':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
  '861505628':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505629':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505630':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505631':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505632':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505633':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505634':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505635':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505636':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505637':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505638':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505639':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505640':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505641':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505642':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505643':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505644':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505645':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505646':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505647':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505648':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505649':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '86150565':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861505656':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505657':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505658':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505659':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '86150566':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861505660':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861505668':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861505669':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861505670':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505671':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505672':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505673':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505674':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505675':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505676':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505677':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505678':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505679':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '86150568':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505680':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861505681':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '86150569':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '86150570':{'en': 'Quzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
+ '86150571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86150572':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '86150573':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150574':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150575':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150576':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '86150577':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861505780':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505781':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505782':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505783':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505784':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505785':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505786':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505787':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505788':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505789':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '86150579':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86150580':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86150582':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150583':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150585':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505860':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505861':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505862':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505863':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505864':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505865':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505866':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505867':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505868':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505869':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '86150587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150588':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150589':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861505900':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505901':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505902':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505903':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505904':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505905':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505906':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505907':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505908':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505909':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '86150591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861505920':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505921':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505922':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505923':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505924':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505925':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505926':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505927':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505928':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505929':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150594':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '86150597':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150598':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861505990':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505991':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505992':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505993':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505994':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505995':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505996':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505997':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505998':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505999':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '86150600':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150601':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150602':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150603':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
+ '861506040':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506041':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506042':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506043':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506044':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506045':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506046':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506047':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506048':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506049':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150605':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861506060':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506061':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506062':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506063':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506064':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506065':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506066':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506067':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506068':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506069':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150607':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
+ '86150608':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data2.py b/python/phonenumbers/geodata/data2.py
index 853ff9f8..3f9c1344 100644
--- a/python/phonenumbers/geodata/data2.py
+++ b/python/phonenumbers/geodata/data2.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,14 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '1705567':{'en': 'Kirkland Lake, ON'},
+ '1705575':{'en': 'Sault Ste. Marie, ON'},
+ '1705586':{'en': 'Greater Sudbury, ON'},
+ '1705635':{'en': 'Dwight, ON'},
+ '1705639':{'en': 'Norwood, ON'},
+ '1705645':{'en': 'Bracebridge, ON'},
+ '1705646':{'en': 'Bracebridge, ON'},
+ '1705647':{'en': 'New Liskeard, ON'},
  '1705652':{'en': 'Lakefield, ON'},
  '1705653':{'en': 'Campbellford, ON'},
  '1705656':{'en': 'Apsley, ON'},
@@ -6336,6 +6344,7 @@ data = {
  '1832826':{'en': 'Houston, TX'},
  '1832912':{'en': 'Houston, TX'},
  '1832934':{'en': 'Magnolia, TX'},
+ '1835':{'en': 'Pennsylvania'},
  '1838':{'en': 'New York'},
  '1839':{'en': 'South Carolina'},
  '1840':{'en': 'California'},
@@ -10010,13 +10019,4 @@ data = {
  '1919231':{'en': 'Raleigh, NC'},
  '1919232':{'en': 'Raleigh, NC'},
  '1919237':{'en': 'Durham, NC'},
- '1919240':{'en': 'Chapel Hill, NC'},
- '1919242':{'en': 'Fremont, NC'},
- '1919245':{'en': 'Hillsborough, NC'},
- '1919250':{'en': 'Raleigh, NC'},
- '1919251':{'en': 'Durham, NC'},
- '1919255':{'en': 'Raleigh, NC'},
- '1919256':{'en': 'Raleigh, NC'},
- '1919258':{'en': 'Broadway, NC'},
- '1919261':{'en': 'Knightdale, NC'},
 }
diff --git a/python/phonenumbers/geodata/data20.py b/python/phonenumbers/geodata/data20.py
index 71deb885..2d1e7d17 100644
--- a/python/phonenumbers/geodata/data20.py
+++ b/python/phonenumbers/geodata/data20.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861505629':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505630':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505631':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505632':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505633':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505634':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505635':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505636':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505637':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505638':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505639':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505640':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505641':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505642':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505643':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505644':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505645':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505646':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505647':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505648':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505649':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '86150565':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861505656':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505657':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505658':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505659':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '86150566':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861505660':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861505668':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861505669':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861505670':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505671':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505672':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505673':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505674':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505675':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505676':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505677':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505678':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505679':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '86150568':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505680':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861505681':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '86150569':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '86150570':{'en': 'Quzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
- '86150571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86150572':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '86150573':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150574':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150575':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150576':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '86150577':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861505780':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505781':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505782':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505783':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505784':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505785':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505786':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505787':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505788':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505789':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '86150579':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86150580':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86150582':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150583':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150585':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505860':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505861':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505862':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505863':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505864':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505865':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505866':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505867':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505868':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505869':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '86150587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150588':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150589':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861505900':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505901':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505902':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505903':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505904':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505905':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505906':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505907':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505908':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505909':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '86150591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861505920':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505921':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505922':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505923':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505924':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505925':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505926':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505927':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505928':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505929':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150594':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '86150597':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150598':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861505990':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505991':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505992':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505993':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505994':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505995':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505996':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505997':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505998':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505999':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '86150600':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150601':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150602':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150603':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
- '861506040':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506041':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506042':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506043':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506044':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506045':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506046':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506047':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506048':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506049':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150605':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861506060':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506061':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506062':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506063':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506064':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506065':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506066':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506067':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506068':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506069':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150607':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '86150608':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
  '86150609':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
  '86150610':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
  '861506110':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861533408':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
  '861533409':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
  '861533410':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533411':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533412':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533413':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533414':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533415':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533416':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533417':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533418':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
+ '861533419':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
+ '861533420':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
+ '861533421':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
+ '861533422':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533423':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533424':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533425':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
+ '861533426':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
+ '861533427':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533428':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533429':{'en': 'Ezhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u9102\u5dde\u5e02')},
+ '861533430':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
+ '861533431':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861533432':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533433':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533434':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
+ '861533435':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861533436':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533437':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533438':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533439':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861533440':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
+ '861533441':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
+ '861533442':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
+ '861533443':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533444':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533445':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533446':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861533447':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861533448':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861533449':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '86153345':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86153346':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861533470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '861533474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '861533475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '861533476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533479':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861533480':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533481':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533482':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533483':{'en': 'Alxa, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u963f\u62c9\u5584\u76df')},
+ '861533484':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533485':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533486':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533487':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533488':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533489':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '86153349':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '861533490':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533491':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533498':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533499':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533500':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533501':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533502':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533503':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861533504':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861533505':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533506':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533507':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533508':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533509':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86153351':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861533510':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533511':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533512':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533513':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533520':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533521':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533522':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533523':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533524':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533525':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533526':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533527':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533528':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533529':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533530':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861533531':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861533532':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861533533':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861533534':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861533535':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861533536':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861533537':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861533538':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861533539':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861533540':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861533541':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861533542':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861533543':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861533544':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861533545':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861533546':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861533547':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861533548':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861533549':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861533550':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533551':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533552':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533553':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533554':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533555':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533556':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533557':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533558':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533559':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533560':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533561':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533562':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533563':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '861533564':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '861533565':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533566':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533567':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533568':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533569':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861533570':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533571':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533572':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533573':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533574':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533575':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533576':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533577':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533578':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533579':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '86153358':{'en': 'Enshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u6069\u65bd\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861533586':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861533587':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533588':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533589':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data21.py b/python/phonenumbers/geodata/data21.py
index 1c3eed8d..a81a2137 100644
--- a/python/phonenumbers/geodata/data21.py
+++ b/python/phonenumbers/geodata/data21.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861533411':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533412':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533413':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533414':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533415':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533416':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533417':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533418':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
- '861533419':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
- '861533420':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
- '861533421':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
- '861533422':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533423':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533424':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533425':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
- '861533426':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
- '861533427':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533428':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533429':{'en': 'Ezhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u9102\u5dde\u5e02')},
- '861533430':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
- '861533431':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861533432':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533433':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861533434':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
- '861533435':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861533436':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533437':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533438':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533439':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861533440':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
- '861533441':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
- '861533442':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
- '861533443':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533444':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533445':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533446':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861533447':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861533448':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861533449':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '86153345':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86153346':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861533470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '861533474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '861533475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '861533476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533479':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861533480':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533481':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533482':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533483':{'en': 'Alxa, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u963f\u62c9\u5584\u76df')},
- '861533484':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533485':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533486':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533487':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533488':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533489':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '86153349':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '861533490':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533491':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533498':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533499':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533500':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533501':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533502':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533503':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861533504':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861533505':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533506':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533507':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533508':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533509':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86153351':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861533510':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533511':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533512':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533513':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533520':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533521':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533522':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533523':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533524':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533525':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533526':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533527':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533528':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533529':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533530':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861533531':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861533532':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861533533':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861533534':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861533535':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861533536':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861533537':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861533538':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861533539':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861533540':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861533541':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861533542':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861533543':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861533544':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861533545':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861533546':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861533547':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861533548':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861533549':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861533550':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533551':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533552':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533553':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533554':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533555':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533556':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533557':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533558':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533559':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533560':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533561':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533562':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533563':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '861533564':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '861533565':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533566':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533567':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533568':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533569':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861533570':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533571':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533572':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533573':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533574':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533575':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533576':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533577':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533578':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533579':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '86153358':{'en': 'Enshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u6069\u65bd\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861533586':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861533587':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533588':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533589':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
  '861533590':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
  '861533591':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
  '861533592':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861566632':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
  '861566633':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
  '861566634':{'en': 'Laiwu, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83b1\u829c\u5e02')},
+ '861566635':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566636':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566637':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
+ '861566638':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566639':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566641':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566642':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566643':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566644':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566645':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566646':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566647':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566648':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566649':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566650':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566651':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566652':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566653':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566654':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566655':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566656':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566657':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566658':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566659':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566660':{'en': 'Weihai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
+ '861566661':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861566662':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566663':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566664':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566665':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566666':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566667':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566668':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566669':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566670':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566671':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
+ '861566672':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566673':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566674':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566675':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566676':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566677':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566678':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861566679':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566680':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566681':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566682':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566683':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566684':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566685':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566686':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861566687':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566688':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566689':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566690':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566691':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566692':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566693':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566694':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566695':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566696':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566697':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566698':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861566699':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '86156670':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '86156671':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '86156672':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '86156673':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861566740':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566741':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566742':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566743':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566744':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566745':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566746':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566747':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566748':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566749':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '86156675':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '86156676':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861566768':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566769':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '86156677':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566780':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566781':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566782':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566783':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566784':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566785':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566786':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566787':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566788':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566789':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566790':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566791':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566792':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566793':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566794':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566795':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566796':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566797':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566798':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566799':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '86156680':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '86156681':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '86156682':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '86156683':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86156684':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86156685':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86156686':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861566863':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566864':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566870':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566871':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566872':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566873':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566874':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861566875':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861566876':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861566877':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566878':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '861566879':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86156688':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861566883':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861566884':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86156689':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86156690':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86156691':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86156692':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86156693':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
+ '86156694':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86156695':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86156696':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86156697':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86156698':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86156699':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861567000':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567001':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567002':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567003':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567004':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567005':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567006':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567007':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567008':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data22.py b/python/phonenumbers/geodata/data22.py
index 5f7d787b..903d8653 100644
--- a/python/phonenumbers/geodata/data22.py
+++ b/python/phonenumbers/geodata/data22.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861566635':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566636':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566637':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
- '861566638':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566639':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566641':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566642':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566643':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566644':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566645':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566646':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566647':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566648':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566649':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566650':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566651':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566652':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566653':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566654':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566655':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566656':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566657':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566658':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566659':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566660':{'en': 'Weihai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
- '861566661':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861566662':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566663':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566664':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566665':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566666':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566667':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566668':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566669':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566670':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566671':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
- '861566672':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566673':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566674':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566675':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566676':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566677':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566678':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861566679':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566680':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566681':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566682':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566683':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566684':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566685':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566686':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861566687':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566688':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566689':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566690':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566691':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566692':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566693':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566694':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566695':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566696':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566697':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566698':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861566699':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '86156670':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '86156671':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '86156672':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '86156673':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861566740':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566741':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566742':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566743':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566744':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566745':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566746':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566747':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566748':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566749':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '86156675':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '86156676':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861566768':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566769':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '86156677':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566780':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566781':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566782':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566783':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566784':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566785':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566786':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566787':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566788':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566789':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566790':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566791':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566792':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566793':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566794':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566795':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566796':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566797':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566798':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566799':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '86156680':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '86156681':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '86156682':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '86156683':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86156684':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86156685':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86156686':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861566863':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566864':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566870':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566871':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566872':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566873':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566874':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861566875':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861566876':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861566877':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566878':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '861566879':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86156688':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861566883':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861566884':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86156689':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86156690':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86156691':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86156692':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86156693':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
- '86156694':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86156695':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86156696':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86156697':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86156698':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86156699':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861567000':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567001':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567002':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567003':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567004':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567005':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567006':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567007':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567008':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
  '861567009':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
  '86156701':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
  '86156702':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
  '861593689':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
  '86159369':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
  '86159370':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159371':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86159372':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '86159373':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
+ '86159374':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86159375':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '86159376':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159377':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159378':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '86159379':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '86159380':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86159381':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86159382':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159383':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159384':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159385':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '86159386':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86159387':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86159388':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159389':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861593900':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593901':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593902':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593903':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593904':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593905':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593906':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593907':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593908':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593909':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86159392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86159393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86159394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86159395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '86159396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86159397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '86159399':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '8615940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86159407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86159408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '86159411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86159413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86159414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86159415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86159416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86159417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86159418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '86159419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86159420':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '86159422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86159423':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159424':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86159426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '86159428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86159430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86159433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86159434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86159435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86159436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86159437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86159438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86159439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86159440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86159443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86159444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86159445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86159446':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86159447':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86159448':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86159449':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86159450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594526':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594527':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594528':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594529':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '86159453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594540':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594541':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594542':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594543':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594544':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594545':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594546':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594547':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594548':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594549':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86159455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '86159456':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594567':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594568':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594569':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861594571':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594572':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594573':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594574':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594575':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594576':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594577':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594578':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594579':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594580':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861594581':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594582':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594583':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594584':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594585':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594586':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594587':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594588':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594589':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86159459':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594590':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861594591':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861594592':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86159460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159461':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '86159462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86159463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594638':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594639':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594640':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594641':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594642':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594643':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594644':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594645':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594646':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594647':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594648':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data23.py b/python/phonenumbers/geodata/data23.py
index 8340578a..7319e07a 100644
--- a/python/phonenumbers/geodata/data23.py
+++ b/python/phonenumbers/geodata/data23.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '86159371':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86159372':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '86159373':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
- '86159374':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86159375':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '86159376':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159377':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159378':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '86159379':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '86159380':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86159381':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86159382':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159383':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86159384':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159385':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '86159386':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86159387':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86159388':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159389':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861593900':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593901':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593902':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593903':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593904':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593905':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593906':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593907':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593908':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593909':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86159391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86159392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86159393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86159394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86159395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '86159396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86159397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '86159399':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '8615940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86159407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86159408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '86159411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86159413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86159414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86159415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86159416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86159417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86159418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '86159419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86159420':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '86159422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86159423':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159424':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86159426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '86159428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86159430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86159433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86159434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86159435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86159436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86159437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86159438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86159439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86159440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86159443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86159444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86159445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86159446':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86159447':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86159448':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86159449':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86159450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594526':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594527':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594528':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594529':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '86159453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594540':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594541':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594542':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594543':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594544':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594545':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594546':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594547':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594548':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594549':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86159455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '86159456':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594567':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594568':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594569':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861594571':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594572':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594573':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594574':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594575':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594576':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594577':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594578':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594579':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594580':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861594581':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594582':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594583':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594584':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594585':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594586':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594587':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594588':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594589':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86159459':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594590':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861594591':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861594592':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86159460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159461':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '86159462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86159463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594638':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594639':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594640':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594641':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594642':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594643':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594644':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594645':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594646':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594647':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594648':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
  '861594649':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
  '86159465':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
  '861594650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
@@ -5802,6 +5656,22 @@ data = {
  '861769513':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
  '861769514':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
  '861769515':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861769530':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769531':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769532':{'en': 'Shizuishan, Ningxia', 'zh': u('\u5b81\u590f\u77f3\u5634\u5c71\u5e02')},
+ '861769533':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769534':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769535':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861769536':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769537':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769538':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769539':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '86176954':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176955':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176956':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176957':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176958':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176959':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
  '86176960':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
  '861769610':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
  '861769611':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
  '861782017':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
  '861782018':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
  '861782019':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782020':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782021':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782022':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861782023':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861782024':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861782025':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861782026':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
+ '861782027':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
+ '861782028':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782029':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782030':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861782031':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861782032':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861782033':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782034':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782036':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782037':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782038':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782039':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782040':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782041':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782042':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782043':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782044':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861782045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782046':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861782047':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782048':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782049':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '86178205':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782058':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86178206':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782061':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861782068':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782070':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782071':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782072':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782073':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782074':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782075':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861782076':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861782077':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861782078':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782079':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86178222':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '861782280':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782281':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782282':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782283':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782284':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782285':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782286':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782287':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782288':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782289':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '8617823':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861782660':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861782661':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861782662':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
+ '861782663':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861782664':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861782665':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861782666':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861782667':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861782668':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861782669':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '86178268':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86178280':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178281':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782820':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782821':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782822':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782823':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782824':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782825':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
+ '861782826':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782827':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782828':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782829':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '86178283':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178284':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178285':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861782850':{'en': 'Aba, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb\u5dde')},
+ '861782860':{'en': 'Garze, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861782861':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782862':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782863':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782864':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782865':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782866':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782867':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782868':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861782869':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861782870':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782871':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782872':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782873':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782874':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782875':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782876':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782877':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782878':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782879':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782880':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782881':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782882':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782883':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782884':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782885':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782886':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782887':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782888':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782889':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782890':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782891':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782892':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782893':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782894':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861782895':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861782896':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782897':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782898':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '861782899':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '8617833':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '861783500':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783501':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783502':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783503':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783504':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data24.py b/python/phonenumbers/geodata/data24.py
index 54c08760..813c548f 100644
--- a/python/phonenumbers/geodata/data24.py
+++ b/python/phonenumbers/geodata/data24.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '861782020':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782021':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782022':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861782023':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861782024':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861782025':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861782026':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
- '861782027':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
- '861782028':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861782029':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782030':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861782031':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861782032':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861782033':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782034':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782036':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782037':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782038':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782039':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782040':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782041':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782042':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782043':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782044':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861782045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861782046':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861782047':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782048':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782049':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '86178205':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782058':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86178206':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782061':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861782068':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782070':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782071':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782072':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782073':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782074':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782075':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861782076':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861782077':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861782078':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782079':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86178222':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
- '861782280':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782281':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782282':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782283':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782284':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782285':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782286':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782287':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782288':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782289':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '8617823':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861782660':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861782661':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861782662':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
- '861782663':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861782664':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861782665':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861782666':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861782667':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861782668':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861782669':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '86178268':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86178280':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178281':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782820':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782821':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782822':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782823':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782824':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782825':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
- '861782826':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782827':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782828':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782829':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '86178283':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178284':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178285':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861782850':{'en': 'Aba, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb\u5dde')},
- '861782860':{'en': 'Garze, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861782861':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782862':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782863':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782864':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782865':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782866':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782867':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782868':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861782869':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861782870':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782871':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782872':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782873':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782874':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782875':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782876':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782877':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782878':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782879':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782880':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782881':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782882':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782883':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782884':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782885':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782886':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782887':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782888':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782889':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782890':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782891':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782892':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782893':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782894':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861782895':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861782896':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782897':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782898':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '861782899':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '8617833':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '861783500':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783501':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783502':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783503':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783504':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
  '861783505':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
  '861783506':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
  '861783507':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
  '86181962':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
  '86181963':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
  '86181964':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '86181965':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '86181966':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861819666':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861819667':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861819668':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861819669':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '86181967':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861819676':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819677':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819678':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819679':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819680':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819681':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819682':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819683':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819684':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819685':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819686':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819687':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819688':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819689':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '86181969':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819690':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861819691':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '86181970':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819710':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819711':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819712':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819713':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819714':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819715':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819716':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819717':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819718':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819719':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '86181972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819730':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819731':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819732':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819733':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819734':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819735':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819736':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819737':{'en': 'Haixi, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819738':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819739':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819740':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819741':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819742':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819743':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819744':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819745':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819746':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819747':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819748':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819749':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '86181975':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819756':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819757':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819758':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819759':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '86181976':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '86181977':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86181978':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86181979':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819800':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861819801':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861819802':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861819803':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861819804':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861819805':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861819806':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861819807':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861819808':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861819809':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '86181981':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819817':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861819818':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861819819':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '86181982':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '86181983':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
+ '861819837':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861819838':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861819839':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '86181984':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '86181985':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819860':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819861':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819862':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819863':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819864':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819865':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819866':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819867':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819868':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819869':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '86181987':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861819877':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861819878':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861819879':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861819880':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861819881':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861819882':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861819883':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861819884':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861819885':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819886':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819887':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819888':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819889':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86181989':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819900':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819901':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861819903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861819904':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861819905':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861819907':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819908':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819909':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '86181991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
+ '861819920':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819921':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819922':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819923':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819924':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819925':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819926':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819927':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
 }
diff --git a/python/phonenumbers/geodata/data25.py b/python/phonenumbers/geodata/data25.py
index 899d319a..d7dffa0a 100644
--- a/python/phonenumbers/geodata/data25.py
+++ b/python/phonenumbers/geodata/data25.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '86181965':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '86181966':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861819666':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861819667':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861819668':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861819669':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '86181967':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861819676':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819677':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819678':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819679':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819680':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819681':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819682':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819683':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819684':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819685':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819686':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819687':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819688':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819689':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '86181969':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819690':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861819691':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '86181970':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819710':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819711':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819712':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819713':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819714':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819715':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819716':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819717':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819718':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819719':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '86181972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819730':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819731':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819732':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819733':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819734':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819735':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819736':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819737':{'en': 'Haixi, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819738':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819739':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819740':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819741':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819742':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819743':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819744':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819745':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819746':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819747':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819748':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819749':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '86181975':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819756':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819757':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819758':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819759':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '86181976':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '86181977':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86181978':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86181979':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819800':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861819801':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861819802':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861819803':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861819804':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861819805':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861819806':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861819807':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861819808':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861819809':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '86181981':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819817':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861819818':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861819819':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '86181982':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '86181983':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
- '861819837':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861819838':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861819839':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '86181984':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '86181985':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819860':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819861':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819862':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819863':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819864':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819865':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819866':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819867':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819868':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819869':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '86181987':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861819877':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861819878':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861819879':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861819880':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861819881':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861819882':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861819883':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861819884':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861819885':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819886':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819887':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819888':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819889':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86181989':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819900':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819901':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861819903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861819904':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861819905':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861819907':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819908':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819909':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '86181991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
- '861819920':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819921':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819922':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819923':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819924':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819925':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819926':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819927':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
  '861819928':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
  '861819929':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
  '86181993':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
@@ -10019,4 +9889,134 @@ data = {
  '861853897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
  '861853898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
  '861853899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86185390':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86185391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86185392':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853920':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853921':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853922':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853923':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86185393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86185394':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86185395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '861853956':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853957':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853958':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861853959':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '86185396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '861853962':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853963':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853964':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853965':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86185397':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853980':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861853981':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861853982':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853983':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853984':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853985':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853986':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853987':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853988':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853989':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86185399':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86185400':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861854008':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86185401':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86185402':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86185403':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861854300':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854301':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854302':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861854303':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861854304':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861854305':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861854306':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861854307':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86185431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854310':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86185432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86185434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86185435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86185436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86185437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86185439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '861854500':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854501':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854502':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854503':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854504':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854505':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854506':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854507':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854508':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854509':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86185451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185452':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854520':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854523':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861854525':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854526':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '86185453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861854532':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861854533':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '861854534':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854547':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861854548':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861854549':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '86185455':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854560':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854561':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854562':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854563':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854564':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854565':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854567':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854568':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854569':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '86185457':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854570':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861854571':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86185458':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185462':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86185464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854651':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854652':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854653':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854654':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854655':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854656':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854657':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854658':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854659':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185466':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854660':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861854661':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854662':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854663':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185467':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86185469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854690':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854691':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854692':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '86185470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '86185471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '86185472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '86185473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '86185474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '86185475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '86185476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '86185477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '86185478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861854790':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854791':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854792':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854793':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
 }
diff --git a/python/phonenumbers/geodata/data26.py b/python/phonenumbers/geodata/data26.py
index 23f5bbf1..328e1901 100644
--- a/python/phonenumbers/geodata/data26.py
+++ b/python/phonenumbers/geodata/data26.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '86185390':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86185391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86185392':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853920':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853921':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853922':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853923':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86185393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86185394':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86185395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '861853956':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853957':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853958':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861853959':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '86185396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '861853962':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853963':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853964':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853965':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86185397':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853980':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861853981':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861853982':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853983':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853984':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853985':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853986':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853987':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853988':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853989':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86185399':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86185400':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861854008':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86185401':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86185402':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86185403':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861854300':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854301':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854302':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861854303':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861854304':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861854305':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861854306':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861854307':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86185431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854310':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86185432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86185434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86185435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86185436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86185437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86185439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '861854500':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854501':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854502':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854503':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854504':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854505':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854506':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854507':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854508':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854509':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86185451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185452':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854520':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854523':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861854525':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854526':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '86185453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861854532':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861854533':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '861854534':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854547':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861854548':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861854549':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '86185455':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854560':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854561':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854562':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854563':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854564':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854565':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854567':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854568':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854569':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '86185457':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854570':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861854571':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86185458':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185462':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86185464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854651':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854652':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854653':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854654':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854655':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854656':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854657':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854658':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854659':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185466':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854660':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861854661':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854662':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854663':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185467':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86185469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854690':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854691':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854692':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '86185470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '86185471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '86185472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '86185473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '86185474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '86185475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '86185476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '86185477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '86185478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861854790':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854791':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854792':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854793':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
  '861854794':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
  '861854795':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
  '861854800':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
  '861881688':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
  '861881689':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
  '86188169':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '8618817':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '861881700':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881701':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881702':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881703':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881704':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881705':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
+ '861881706':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
+ '861881707':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861881708':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861881709':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '86188171':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '86188180':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '86188181':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '86188182':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '861881830':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881831':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881832':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881833':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881834':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881835':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881836':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881837':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881838':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881839':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188184':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861881840':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881841':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881846':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861881847':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '86188185':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881850':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861881851':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '86188186':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861881866':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881867':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881868':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881869':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188187':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861881870':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881877':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881878':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881879':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188188':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881890':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881891':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881892':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881893':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881894':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881895':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881896':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881897':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881898':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881899':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188190':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881908':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881909':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188191':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881910':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881911':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188192':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188193':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188194':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188195':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861881950':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881951':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881952':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188196':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881960':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881961':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881962':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '86188197':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881977':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881978':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881979':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881980':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881981':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881982':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881983':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881984':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881985':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881986':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881987':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881988':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861881989':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861881990':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881991':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881992':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881993':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881994':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881995':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881996':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881997':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881998':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881999':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '86188200':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882010':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882011':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882012':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882013':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882014':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882015':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882016':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882017':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882018':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882019':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188202':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882030':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882031':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882032':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882033':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882034':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861882036':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861882037':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861882038':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861882039':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861882040':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882041':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882042':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882043':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861882044':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861882045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861882046':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882047':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882048':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882049':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '86188205':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861882051':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861882052':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
 }
diff --git a/python/phonenumbers/geodata/data27.py b/python/phonenumbers/geodata/data27.py
index a2b30f7e..4d7b8318 100644
--- a/python/phonenumbers/geodata/data27.py
+++ b/python/phonenumbers/geodata/data27.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '8618817':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '861881700':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881701':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881702':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881703':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881704':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881705':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
- '861881706':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
- '861881707':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861881708':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861881709':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '86188171':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '86188180':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '86188181':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '86188182':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '861881830':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881831':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881832':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881833':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881834':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881835':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881836':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881837':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881838':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881839':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188184':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861881840':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881841':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881846':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861881847':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '86188185':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881850':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861881851':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '86188186':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861881866':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881867':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881868':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881869':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188187':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861881870':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881877':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881878':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881879':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188188':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881890':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881891':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881892':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881893':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881894':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881895':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881896':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881897':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881898':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881899':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188190':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881908':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881909':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188191':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881910':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881911':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188192':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188193':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188194':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188195':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861881950':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881951':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881952':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188196':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881960':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881961':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881962':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '86188197':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881977':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881978':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881979':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881980':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881981':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881982':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881983':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881984':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881985':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881986':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881987':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881988':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861881989':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861881990':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881991':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881992':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881993':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881994':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881995':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881996':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881997':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881998':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881999':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '86188200':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882010':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882011':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882012':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882013':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882014':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882015':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882016':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882017':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882018':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882019':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188202':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882030':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882031':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882032':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882033':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882034':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861882036':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861882037':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861882038':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861882039':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861882040':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882041':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882042':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882043':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861882044':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861882045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861882046':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882047':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882048':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882049':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '86188205':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861882051':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861882052':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
  '861882053':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
  '86188206':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
  '861882060':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
  '9167646':{'en': 'Anugul, Odisha'},
  '9167647':{'en': 'Anugul, Odisha'},
  '9167652':{'en': 'Palla Hara, Odisha'},
+ '9167653':{'en': 'Palla Hara, Odisha'},
+ '9167654':{'en': 'Palla Hara, Odisha'},
+ '9167655':{'en': 'Palla Hara, Odisha'},
+ '9167656':{'en': 'Palla Hara, Odisha'},
+ '9167657':{'en': 'Palla Hara, Odisha'},
+ '9167662':{'en': 'Keonjhar, Odisha'},
+ '9167663':{'en': 'Keonjhar, Odisha'},
+ '9167664':{'en': 'Keonjhar, Odisha'},
+ '9167665':{'en': 'Keonjhar, Odisha'},
+ '9167666':{'en': 'Keonjhar, Odisha'},
+ '9167667':{'en': 'Keonjhar, Odisha'},
+ '9167672':{'en': 'Barbil, Odisha'},
+ '9167673':{'en': 'Barbil, Odisha'},
+ '9167674':{'en': 'Barbil, Odisha'},
+ '9167675':{'en': 'Barbil, Odisha'},
+ '9167676':{'en': 'Barbil, Odisha'},
+ '9167677':{'en': 'Barbil, Odisha'},
+ '9167682':{'en': 'Parajang, Odisha'},
+ '9167683':{'en': 'Parajang, Odisha'},
+ '9167684':{'en': 'Parajang, Odisha'},
+ '9167685':{'en': 'Parajang, Odisha'},
+ '9167686':{'en': 'Parajang, Odisha'},
+ '9167687':{'en': 'Parajang, Odisha'},
+ '9167692':{'en': 'Kamakhyanagar, Odisha'},
+ '9167693':{'en': 'Kamakhyanagar, Odisha'},
+ '9167694':{'en': 'Kamakhyanagar, Odisha'},
+ '9167695':{'en': 'Kamakhyanagar, Odisha'},
+ '9167696':{'en': 'Kamakhyanagar, Odisha'},
+ '9167697':{'en': 'Kamakhyanagar, Odisha'},
+ '9167812':{'en': 'Basta, Odisha'},
+ '9167813':{'en': 'Basta, Odisha'},
+ '9167814':{'en': 'Basta, Odisha'},
+ '9167815':{'en': 'Basta, Odisha'},
+ '9167816':{'en': 'Basta, Odisha'},
+ '9167817':{'en': 'Basta, Odisha'},
+ '9167822':{'en': 'Balasore, Odisha'},
+ '9167823':{'en': 'Balasore, Odisha'},
+ '9167824':{'en': 'Balasore, Odisha'},
+ '9167825':{'en': 'Balasore, Odisha'},
+ '9167826':{'en': 'Balasore, Odisha'},
+ '9167827':{'en': 'Balasore, Odisha'},
+ '9167842':{'en': 'Bhadrak, Odisha'},
+ '9167843':{'en': 'Bhadrak, Odisha'},
+ '9167844':{'en': 'Bhadrak, Odisha'},
+ '9167845':{'en': 'Bhadrak, Odisha'},
+ '9167846':{'en': 'Bhadrak, Odisha'},
+ '9167847':{'en': 'Bhadrak, Odisha'},
+ '9167862':{'en': 'Chandbali, Odisha'},
+ '9167863':{'en': 'Chandbali, Odisha'},
+ '9167864':{'en': 'Chandbali, Odisha'},
+ '9167865':{'en': 'Chandbali, Odisha'},
+ '9167866':{'en': 'Chandbali, Odisha'},
+ '9167867':{'en': 'Chandbali, Odisha'},
+ '9167882':{'en': 'Soro, Odisha'},
+ '9167883':{'en': 'Soro, Odisha'},
+ '9167884':{'en': 'Soro, Odisha'},
+ '9167885':{'en': 'Soro, Odisha'},
+ '9167886':{'en': 'Soro, Odisha'},
+ '9167887':{'en': 'Soro, Odisha'},
+ '9167912':{'en': 'Bangiriposi, Odisha'},
+ '9167913':{'en': 'Bangiriposi, Odisha'},
+ '9167914':{'en': 'Bangiriposi, Odisha'},
+ '9167915':{'en': 'Bangiriposi, Odisha'},
+ '9167916':{'en': 'Bangiriposi, Odisha'},
+ '9167917':{'en': 'Bangiriposi, Odisha'},
+ '9167922':{'en': 'Baripada, Odisha'},
+ '9167923':{'en': 'Baripada, Odisha'},
+ '9167924':{'en': 'Baripada, Odisha'},
+ '9167925':{'en': 'Baripada, Odisha'},
+ '9167926':{'en': 'Baripada, Odisha'},
+ '9167927':{'en': 'Baripada, Odisha'},
+ '9167932':{'en': 'Betanati, Odisha'},
+ '9167933':{'en': 'Betanati, Odisha'},
+ '9167934':{'en': 'Betanati, Odisha'},
+ '9167935':{'en': 'Betanati, Odisha'},
+ '9167936':{'en': 'Betanati, Odisha'},
+ '9167937':{'en': 'Betanati, Odisha'},
+ '9167942':{'en': 'Rairangpur, Odisha'},
+ '9167943':{'en': 'Rairangpur, Odisha'},
+ '9167944':{'en': 'Rairangpur, Odisha'},
+ '9167945':{'en': 'Rairangpur, Odisha'},
+ '9167946':{'en': 'Rairangpur, Odisha'},
+ '9167947':{'en': 'Rairangpur, Odisha'},
+ '9167952':{'en': 'Udala, Odisha'},
+ '9167953':{'en': 'Udala, Odisha'},
+ '9167954':{'en': 'Udala, Odisha'},
+ '9167955':{'en': 'Udala, Odisha'},
+ '9167956':{'en': 'Udala, Odisha'},
+ '9167957':{'en': 'Udala, Odisha'},
+ '9167962':{'en': 'Karanjia, Odisha'},
+ '9167963':{'en': 'Karanjia, Odisha'},
+ '9167964':{'en': 'Karanjia, Odisha'},
+ '9167965':{'en': 'Karanjia, Odisha'},
+ '9167966':{'en': 'Karanjia, Odisha'},
+ '9167967':{'en': 'Karanjia, Odisha'},
+ '9167972':{'en': 'Jashipur, Odisha'},
+ '9167973':{'en': 'Jashipur, Odisha'},
+ '9167974':{'en': 'Jashipur, Odisha'},
+ '9167975':{'en': 'Jashipur, Odisha'},
+ '9167976':{'en': 'Jashipur, Odisha'},
+ '9167977':{'en': 'Jashipur, Odisha'},
+ '916802':{'en': 'Berhampur, Odisha'},
+ '916803':{'en': 'Berhampur, Odisha'},
+ '916804':{'en': 'Berhampur, Odisha'},
+ '916805':{'en': 'Berhampur, Odisha'},
+ '916806':{'en': 'Berhampur, Odisha'},
+ '916807':{'en': 'Berhampur, Odisha'},
+ '9168102':{'en': 'Khalikote, Odisha'},
+ '9168103':{'en': 'Khalikote, Odisha'},
+ '9168104':{'en': 'Khalikote, Odisha'},
+ '9168105':{'en': 'Khalikote, Odisha'},
+ '9168106':{'en': 'Khalikote, Odisha'},
+ '9168107':{'en': 'Khalikote, Odisha'},
+ '9168112':{'en': 'Chhatrapur, Odisha'},
+ '9168113':{'en': 'Chhatrapur, Odisha'},
+ '9168114':{'en': 'Chhatrapur, Odisha'},
+ '9168115':{'en': 'Chhatrapur, Odisha'},
+ '9168116':{'en': 'Chhatrapur, Odisha'},
+ '9168117':{'en': 'Chhatrapur, Odisha'},
+ '9168142':{'en': 'Digapahandi, Odisha'},
+ '9168143':{'en': 'Digapahandi, Odisha'},
+ '9168144':{'en': 'Digapahandi, Odisha'},
+ '9168145':{'en': 'Digapahandi, Odisha'},
+ '9168146':{'en': 'Digapahandi, Odisha'},
+ '9168147':{'en': 'Digapahandi, Odisha'},
+ '9168152':{'en': 'Parlakhemundi, Odisha'},
+ '9168153':{'en': 'Parlakhemundi, Odisha'},
+ '9168154':{'en': 'Parlakhemundi, Odisha'},
+ '9168155':{'en': 'Parlakhemundi, Odisha'},
+ '9168156':{'en': 'Parlakhemundi, Odisha'},
 }
diff --git a/python/phonenumbers/geodata/data28.py b/python/phonenumbers/geodata/data28.py
index 8c355ad4..78cd696f 100644
--- a/python/phonenumbers/geodata/data28.py
+++ b/python/phonenumbers/geodata/data28.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
 # limitations under the License.
 
 data = {
- '9167653':{'en': 'Palla Hara, Odisha'},
- '9167654':{'en': 'Palla Hara, Odisha'},
- '9167655':{'en': 'Palla Hara, Odisha'},
- '9167656':{'en': 'Palla Hara, Odisha'},
- '9167657':{'en': 'Palla Hara, Odisha'},
- '9167662':{'en': 'Keonjhar, Odisha'},
- '9167663':{'en': 'Keonjhar, Odisha'},
- '9167664':{'en': 'Keonjhar, Odisha'},
- '9167665':{'en': 'Keonjhar, Odisha'},
- '9167666':{'en': 'Keonjhar, Odisha'},
- '9167667':{'en': 'Keonjhar, Odisha'},
- '9167672':{'en': 'Barbil, Odisha'},
- '9167673':{'en': 'Barbil, Odisha'},
- '9167674':{'en': 'Barbil, Odisha'},
- '9167675':{'en': 'Barbil, Odisha'},
- '9167676':{'en': 'Barbil, Odisha'},
- '9167677':{'en': 'Barbil, Odisha'},
- '9167682':{'en': 'Parajang, Odisha'},
- '9167683':{'en': 'Parajang, Odisha'},
- '9167684':{'en': 'Parajang, Odisha'},
- '9167685':{'en': 'Parajang, Odisha'},
- '9167686':{'en': 'Parajang, Odisha'},
- '9167687':{'en': 'Parajang, Odisha'},
- '9167692':{'en': 'Kamakhyanagar, Odisha'},
- '9167693':{'en': 'Kamakhyanagar, Odisha'},
- '9167694':{'en': 'Kamakhyanagar, Odisha'},
- '9167695':{'en': 'Kamakhyanagar, Odisha'},
- '9167696':{'en': 'Kamakhyanagar, Odisha'},
- '9167697':{'en': 'Kamakhyanagar, Odisha'},
- '9167812':{'en': 'Basta, Odisha'},
- '9167813':{'en': 'Basta, Odisha'},
- '9167814':{'en': 'Basta, Odisha'},
- '9167815':{'en': 'Basta, Odisha'},
- '9167816':{'en': 'Basta, Odisha'},
- '9167817':{'en': 'Basta, Odisha'},
- '9167822':{'en': 'Balasore, Odisha'},
- '9167823':{'en': 'Balasore, Odisha'},
- '9167824':{'en': 'Balasore, Odisha'},
- '9167825':{'en': 'Balasore, Odisha'},
- '9167826':{'en': 'Balasore, Odisha'},
- '9167827':{'en': 'Balasore, Odisha'},
- '9167842':{'en': 'Bhadrak, Odisha'},
- '9167843':{'en': 'Bhadrak, Odisha'},
- '9167844':{'en': 'Bhadrak, Odisha'},
- '9167845':{'en': 'Bhadrak, Odisha'},
- '9167846':{'en': 'Bhadrak, Odisha'},
- '9167847':{'en': 'Bhadrak, Odisha'},
- '9167862':{'en': 'Chandbali, Odisha'},
- '9167863':{'en': 'Chandbali, Odisha'},
- '9167864':{'en': 'Chandbali, Odisha'},
- '9167865':{'en': 'Chandbali, Odisha'},
- '9167866':{'en': 'Chandbali, Odisha'},
- '9167867':{'en': 'Chandbali, Odisha'},
- '9167882':{'en': 'Soro, Odisha'},
- '9167883':{'en': 'Soro, Odisha'},
- '9167884':{'en': 'Soro, Odisha'},
- '9167885':{'en': 'Soro, Odisha'},
- '9167886':{'en': 'Soro, Odisha'},
- '9167887':{'en': 'Soro, Odisha'},
- '9167912':{'en': 'Bangiriposi, Odisha'},
- '9167913':{'en': 'Bangiriposi, Odisha'},
- '9167914':{'en': 'Bangiriposi, Odisha'},
- '9167915':{'en': 'Bangiriposi, Odisha'},
- '9167916':{'en': 'Bangiriposi, Odisha'},
- '9167917':{'en': 'Bangiriposi, Odisha'},
- '9167922':{'en': 'Baripada, Odisha'},
- '9167923':{'en': 'Baripada, Odisha'},
- '9167924':{'en': 'Baripada, Odisha'},
- '9167925':{'en': 'Baripada, Odisha'},
- '9167926':{'en': 'Baripada, Odisha'},
- '9167927':{'en': 'Baripada, Odisha'},
- '9167932':{'en': 'Betanati, Odisha'},
- '9167933':{'en': 'Betanati, Odisha'},
- '9167934':{'en': 'Betanati, Odisha'},
- '9167935':{'en': 'Betanati, Odisha'},
- '9167936':{'en': 'Betanati, Odisha'},
- '9167937':{'en': 'Betanati, Odisha'},
- '9167942':{'en': 'Rairangpur, Odisha'},
- '9167943':{'en': 'Rairangpur, Odisha'},
- '9167944':{'en': 'Rairangpur, Odisha'},
- '9167945':{'en': 'Rairangpur, Odisha'},
- '9167946':{'en': 'Rairangpur, Odisha'},
- '9167947':{'en': 'Rairangpur, Odisha'},
- '9167952':{'en': 'Udala, Odisha'},
- '9167953':{'en': 'Udala, Odisha'},
- '9167954':{'en': 'Udala, Odisha'},
- '9167955':{'en': 'Udala, Odisha'},
- '9167956':{'en': 'Udala, Odisha'},
- '9167957':{'en': 'Udala, Odisha'},
- '9167962':{'en': 'Karanjia, Odisha'},
- '9167963':{'en': 'Karanjia, Odisha'},
- '9167964':{'en': 'Karanjia, Odisha'},
- '9167965':{'en': 'Karanjia, Odisha'},
- '9167966':{'en': 'Karanjia, Odisha'},
- '9167967':{'en': 'Karanjia, Odisha'},
- '9167972':{'en': 'Jashipur, Odisha'},
- '9167973':{'en': 'Jashipur, Odisha'},
- '9167974':{'en': 'Jashipur, Odisha'},
- '9167975':{'en': 'Jashipur, Odisha'},
- '9167976':{'en': 'Jashipur, Odisha'},
- '9167977':{'en': 'Jashipur, Odisha'},
- '916802':{'en': 'Berhampur, Odisha'},
- '916803':{'en': 'Berhampur, Odisha'},
- '916804':{'en': 'Berhampur, Odisha'},
- '916805':{'en': 'Berhampur, Odisha'},
- '916806':{'en': 'Berhampur, Odisha'},
- '916807':{'en': 'Berhampur, Odisha'},
- '9168102':{'en': 'Khalikote, Odisha'},
- '9168103':{'en': 'Khalikote, Odisha'},
- '9168104':{'en': 'Khalikote, Odisha'},
- '9168105':{'en': 'Khalikote, Odisha'},
- '9168106':{'en': 'Khalikote, Odisha'},
- '9168107':{'en': 'Khalikote, Odisha'},
- '9168112':{'en': 'Chhatrapur, Odisha'},
- '9168113':{'en': 'Chhatrapur, Odisha'},
- '9168114':{'en': 'Chhatrapur, Odisha'},
- '9168115':{'en': 'Chhatrapur, Odisha'},
- '9168116':{'en': 'Chhatrapur, Odisha'},
- '9168117':{'en': 'Chhatrapur, Odisha'},
- '9168142':{'en': 'Digapahandi, Odisha'},
- '9168143':{'en': 'Digapahandi, Odisha'},
- '9168144':{'en': 'Digapahandi, Odisha'},
- '9168145':{'en': 'Digapahandi, Odisha'},
- '9168146':{'en': 'Digapahandi, Odisha'},
- '9168147':{'en': 'Digapahandi, Odisha'},
- '9168152':{'en': 'Parlakhemundi, Odisha'},
- '9168153':{'en': 'Parlakhemundi, Odisha'},
- '9168154':{'en': 'Parlakhemundi, Odisha'},
- '9168155':{'en': 'Parlakhemundi, Odisha'},
- '9168156':{'en': 'Parlakhemundi, Odisha'},
  '9168157':{'en': 'Parlakhemundi, Odisha'},
  '9168162':{'en': 'Mohana, Odisha'},
  '9168163':{'en': 'Mohana, Odisha'},
@@ -3647,13 +3517,11 @@ data = {
  '951426':{'en': 'Yangon'},
  '951429':{'en': 'Yangon'},
  '951439':{'en': 'Yangon'},
- '951446':{'en': 'Yangon'},
  '951462':{'en': 'Yangon'},
  '951465':{'en': 'Yangon'},
  '951470':{'en': 'Yangon'},
  '951471':{'en': 'Yangon'},
  '951472':{'en': 'Yangon'},
- '951473':{'en': 'Yangon'},
  '951483':{'en': 'Yangon'},
  '951550':{'en': 'Bahan'},
  '951551':{'en': 'Bahan'},
@@ -3673,17 +3541,14 @@ data = {
  '952424':{'en': 'Mandalay'},
  '952426':{'en': 'Mandalay'},
  '952439':{'en': 'Mandalay'},
- '952446':{'en': 'Mandalay'},
  '952462':{'en': 'Mandalay'},
  '952470':{'en': 'Yangon'},
  '952471':{'en': 'Mandalay'},
  '952472':{'en': 'Mandalay'},
- '952473':{'en': 'Mandalay'},
  '952483':{'en': 'Mandalay'},
  '95256':{'en': 'Amarapura'},
  '9542480':{'en': 'Pathein'},
  '9542481':{'en': 'Pathein'},
- '9542482':{'en': 'Ayeyarwaddy'},
  '9542483':{'en': 'Ayeyarwaddy/Pathein'},
  '9543202':{'en': 'Rakhine'},
  '9543470':{'en': 'Sittwe'},
@@ -3698,21 +3563,17 @@ data = {
  '95522230':{'en': 'Oathar Myothit'},
  '9552470':{'en': 'Bago'},
  '9552472':{'en': 'Bago'},
- '9552473':{'en': 'Bago'},
  '9553472':{'en': 'Pyay'},
- '9553473':{'en': 'Pyay'},
  '9554470':{'en': 'Taungoo'},
  '955620':{'en': 'Mandalay'},
  '955645':{'en': 'Tandar'},
  '9556483':{'en': 'Thanlyin'},
  '9557480':{'en': 'Mawlamyine/Thanbyuzayat'},
  '9557481':{'en': 'Mawlamyine'},
- '9557482':{'en': 'Mon'},
  '9558470':{'en': 'Hpa-An'},
  '9558472':{'en': 'Hpa-An'},
  '955851':{'en': 'Myawaddy'},
  '9559470':{'en': 'Dawei'},
- '9559471':{'en': 'Tanintharyi'},
  '9561200':{'en': 'Chauk'},
  '956124620':{'en': 'Chauk'},
  '956124621':{'en': 'Chauk'},
@@ -3725,7 +3586,6 @@ data = {
  '956124643':{'en': 'Bagan'},
  '956124644':{'en': 'Bagan'},
  '9562472':{'en': 'Pakokku'},
- '9562473':{'en': 'Magway'},
  '956260':{'en': 'Kanma'},
  '956320':{'en': 'Magway'},
  '956323':{'en': 'Magway'},
@@ -3733,13 +3593,9 @@ data = {
  '9563470':{'en': 'Magway'},
  '95642487':{'en': 'Shawpin'},
  '9564472':{'en': 'Meiktila'},
- '9564473':{'en': 'Mandalay'},
  '956525':{'en': 'Ngape'},
- '9567439':{'en': 'Naypyidaw'},
  '9567460':{'en': 'Naypyitaw'},
  '9567470':{'en': 'Naypyitaw'},
- '9567471':{'en': 'Naypyitaw'},
- '9567473':{'en': 'Naypyitaw'},
  '9567550':{'en': 'Naypyidaw'},
  '9569200':{'en': 'Aunglan'},
  '956940':{'en': 'Sinpaungwae'},
@@ -3773,7 +3629,15 @@ data = {
  '958541':{'en': 'Pyinoolwin'},
  '958542':{'en': 'Pyinoolwin'},
  '958543':{'en': 'Pyinoolwin'},
- '958544':{'en': 'Pyinoolwin'},
+ '9585440':{'en': 'Pyinoolwin'},
+ '9585441':{'en': 'Pyinoolwin'},
+ '9585442':{'en': 'Pyinoolwin'},
+ '9585443':{'en': 'Pyinoolwin'},
+ '9585444':{'en': 'Pyinoolwin'},
+ '9585445':{'en': 'Pyinoolwin'},
+ '9585447':{'en': 'Pyinoolwin'},
+ '9585448':{'en': 'Pyinoolwin'},
+ '9585449':{'en': 'Pyinoolwin'},
  '958545':{'en': 'Pyinoolwin'},
  '958546':{'en': 'Pyinoolwin'},
  '958547':{'en': 'Pyinoolwin'},
diff --git a/python/phonenumbers/geodata/data3.py b/python/phonenumbers/geodata/data3.py
index 8d3aff49..10042438 100644
--- a/python/phonenumbers/geodata/data3.py
+++ b/python/phonenumbers/geodata/data3.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,15 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '1919240':{'en': 'Chapel Hill, NC'},
+ '1919242':{'en': 'Fremont, NC'},
+ '1919245':{'en': 'Hillsborough, NC'},
+ '1919250':{'en': 'Raleigh, NC'},
+ '1919251':{'en': 'Durham, NC'},
+ '1919255':{'en': 'Raleigh, NC'},
+ '1919256':{'en': 'Raleigh, NC'},
+ '1919258':{'en': 'Broadway, NC'},
+ '1919261':{'en': 'Knightdale, NC'},
  '1919266':{'en': 'Knightdale, NC'},
  '1919267':{'en': 'Apex, NC'},
  '1919269':{'en': 'Zebulon, NC'},
@@ -4021,6 +4030,7 @@ data = {
  '25111645':{'en': 'Yeka I, Addis Ababa'},
  '25111646':{'en': 'Yeka II, Addis Ababa'},
  '25111647':{'en': 'Yeka Rss III, Addis Ababa'},
+ '25111650':{'en': 'Addis Ababa'},
  '25111651':{'en': 'East Addis Ababa Zone'},
  '25111652':{'en': 'South Addis Ababa Zone'},
  '25111653':{'en': 'South-West Addis Ababa Zone'},
@@ -10009,14 +10019,4 @@ data = {
  '3323640':{'en': 'Saint-Amand-Montrond', 'fr': 'Saint-Amand-Montrond'},
  '3323641':{'en': 'Blois', 'fr': 'Blois'},
  '3323642':{'en': 'Sancerre', 'fr': 'Sancerre'},
- '3323643':{'en': 'Tours', 'fr': 'Tours'},
- '3323644':{'en': u('Valen\u00e7ay'), 'fr': u('Valen\u00e7ay')},
- '3323645':{'en': u('Vend\u00f4me'), 'fr': u('Vend\u00f4me')},
- '3323646':{'en': 'Vierzon', 'fr': 'Vierzon'},
- '3323647':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
- '3323648':{'en': 'Gien', 'fr': 'Gien'},
- '3323649':{'en': 'Tours', 'fr': 'Tours'},
- '3323650':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
- '3323651':{'en': u('Aubigny-sur-N\u00e8re'), 'fr': u('Aubigny-sur-N\u00e8re')},
- '3323652':{'en': 'La Guerche-sur-lAubois', 'fr': 'La Guerche-sur-lAubois'},
 }
diff --git a/python/phonenumbers/geodata/data4.py b/python/phonenumbers/geodata/data4.py
index 4e34b574..c4482bb5 100644
--- a/python/phonenumbers/geodata/data4.py
+++ b/python/phonenumbers/geodata/data4.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '3323643':{'en': 'Tours', 'fr': 'Tours'},
+ '3323644':{'en': u('Valen\u00e7ay'), 'fr': u('Valen\u00e7ay')},
+ '3323645':{'en': u('Vend\u00f4me'), 'fr': u('Vend\u00f4me')},
+ '3323646':{'en': 'Vierzon', 'fr': 'Vierzon'},
+ '3323647':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
+ '3323648':{'en': 'Gien', 'fr': 'Gien'},
+ '3323649':{'en': 'Tours', 'fr': 'Tours'},
+ '3323650':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
+ '3323651':{'en': u('Aubigny-sur-N\u00e8re'), 'fr': u('Aubigny-sur-N\u00e8re')},
+ '3323652':{'en': 'La Guerche-sur-lAubois', 'fr': 'La Guerche-sur-lAubois'},
  '3323653':{'en': 'Saint-Amand-Montrond', 'fr': 'Saint-Amand-Montrond'},
  '3323654':{'en': 'Sancerre', 'fr': 'Sancerre'},
  '3323655':{'en': 'Vierzon', 'fr': 'Vierzon'},
@@ -10009,14 +10019,4 @@ data = {
  '3358717':{'en': 'La Souterraine', 'fr': 'La Souterraine'},
  '3358718':{'en': 'Bellac', 'fr': 'Bellac'},
  '3358719':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358720':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358721':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358722':{'en': 'Tulle', 'fr': 'Tulle'},
- '3358723':{'en': 'Gueret', 'fr': 'Gueret'},
- '3358724':{'en': 'Boussac', 'fr': 'Boussac'},
- '3358725':{'en': 'Argentat', 'fr': 'Argentat'},
- '3358726':{'en': 'Aubusson', 'fr': 'Aubusson'},
- '3358727':{'en': 'Bellac', 'fr': 'Bellac'},
- '3358728':{'en': 'Bourganeuf', 'fr': 'Bourganeuf'},
- '3358729':{'en': 'Boussac', 'fr': 'Boussac'},
 }
diff --git a/python/phonenumbers/geodata/data5.py b/python/phonenumbers/geodata/data5.py
index 458a327c..8e432d2b 100644
--- a/python/phonenumbers/geodata/data5.py
+++ b/python/phonenumbers/geodata/data5.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '3358720':{'en': 'Limoges', 'fr': 'Limoges'},
+ '3358721':{'en': 'Limoges', 'fr': 'Limoges'},
+ '3358722':{'en': 'Tulle', 'fr': 'Tulle'},
+ '3358723':{'en': 'Gueret', 'fr': 'Gueret'},
+ '3358724':{'en': 'Boussac', 'fr': 'Boussac'},
+ '3358725':{'en': 'Argentat', 'fr': 'Argentat'},
+ '3358726':{'en': 'Aubusson', 'fr': 'Aubusson'},
+ '3358727':{'en': 'Bellac', 'fr': 'Bellac'},
+ '3358728':{'en': 'Bourganeuf', 'fr': 'Bourganeuf'},
+ '3358729':{'en': 'Boussac', 'fr': 'Boussac'},
  '3358730':{'en': 'Gueret', 'fr': 'Gueret'},
  '3358731':{'en': 'Limoges', 'fr': 'Limoges'},
  '3358732':{'en': 'La Souterraine', 'fr': 'La Souterraine'},
@@ -10009,14 +10019,4 @@ data = {
  '494778':{'de': 'Wingst', 'en': 'Wingst'},
  '494779':{'de': 'Freiburg Elbe', 'en': 'Freiburg Elbe'},
  '494791':{'de': 'Osterholz-Scharmbeck', 'en': 'Osterholz-Scharmbeck'},
- '494792':{'de': 'Worpswede', 'en': 'Worpswede'},
- '494793':{'de': 'Hambergen', 'en': 'Hambergen'},
- '494794':{'de': 'Worpswede-Ostersode', 'en': 'Worpswede-Ostersode'},
- '494795':{'de': 'Garlstedt', 'en': 'Garlstedt'},
- '494796':{'de': 'Teufelsmoor', 'en': 'Teufelsmoor'},
- '494802':{'de': 'Wrohm', 'en': 'Wrohm'},
- '494803':{'de': 'Pahlen', 'en': 'Pahlen'},
- '494804':{'de': 'Nordhastedt', 'en': 'Nordhastedt'},
- '494805':{'de': 'Schafstedt', 'en': 'Schafstedt'},
- '494806':{'de': u('Sarzb\u00fcttel'), 'en': u('Sarzb\u00fcttel')},
 }
diff --git a/python/phonenumbers/geodata/data6.py b/python/phonenumbers/geodata/data6.py
index 0c2446dc..b230ff06 100644
--- a/python/phonenumbers/geodata/data6.py
+++ b/python/phonenumbers/geodata/data6.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '494792':{'de': 'Worpswede', 'en': 'Worpswede'},
+ '494793':{'de': 'Hambergen', 'en': 'Hambergen'},
+ '494794':{'de': 'Worpswede-Ostersode', 'en': 'Worpswede-Ostersode'},
+ '494795':{'de': 'Garlstedt', 'en': 'Garlstedt'},
+ '494796':{'de': 'Teufelsmoor', 'en': 'Teufelsmoor'},
+ '494802':{'de': 'Wrohm', 'en': 'Wrohm'},
+ '494803':{'de': 'Pahlen', 'en': 'Pahlen'},
+ '494804':{'de': 'Nordhastedt', 'en': 'Nordhastedt'},
+ '494805':{'de': 'Schafstedt', 'en': 'Schafstedt'},
+ '494806':{'de': u('Sarzb\u00fcttel'), 'en': u('Sarzb\u00fcttel')},
  '49481':{'de': 'Heide Holstein', 'en': 'Heide Holstein'},
  '494821':{'de': 'Itzehoe', 'en': 'Itzehoe'},
  '494822':{'de': 'Kellinghusen', 'en': 'Kellinghusen'},
@@ -2810,11 +2820,16 @@ data = {
  '5042201':{'en': 'Polo Paz'},
  '5042202':{'en': 'Tegucigalpa'},
  '5042203':{'en': 'Polo Paz'},
+ '5042204':{'en': 'Francisco Morazan'},
  '5042209':{'en': u('Res. Centro Am\u00e9rica, Tegucigalpa')},
  '5042211':{'en': 'El Picacho'},
  '5042212':{'en': 'Rdsi Tegucigalpa (Pri3)'},
  '5042213':{'en': u('Telef. Inal\u00e1mbrica Tegucig.')},
+ '5042214':{'en': 'Francisco Morazan'},
+ '5042215':{'en': 'Francisco Morazan'},
  '5042216':{'en': 'Rdsi Tegucigalpa (Pri3)'},
+ '5042218':{'en': 'Francisco Morazan'},
+ '5042219':{'en': 'Francisco Morazan'},
  '5042220':{'en': 'Principal'},
  '5042221':{'en': 'Almendros'},
  '5042222':{'en': 'Principal'},
@@ -2836,13 +2851,17 @@ data = {
  '5042238':{'en': 'Principal'},
  '5042239':{'en': 'Miraflores'},
  '5042240':{'en': 'Kennedy, Tegucigalpa'},
+ '5042242':{'en': 'Francisco Morazan'},
  '5042244':{'en': 'Tegucigalpa'},
  '5042245':{'en': 'La Vega, Tegucigalpa'},
  '5042246':{'en': 'La Vega, Tegucigalpa'},
  '5042255':{'en': 'El Hato'},
  '5042257':{'en': 'Prados Universitarios'},
+ '5042281':{'en': 'Francisco Morazan'},
+ '5042283':{'en': 'Francisco Morazan'},
  '5042290':{'en': 'Toncontin'},
  '5042291':{'en': 'Toncontin'},
+ '5042405':{'en': 'Atlantida'},
  '5042407':{'en': u('Roat\u00e1n, Bay Islands')},
  '5042423':{'en': 'La Ceiba'},
  '5042424':{'en': u('Sab\u00e1')},
@@ -2865,7 +2884,16 @@ data = {
  '5042452':{'en': 'Coyoles Central'},
  '5042453':{'en': 'Guanaja'},
  '5042455':{'en': 'French Harbour'},
- '504251':{'en': u('San Pedro Sula, Cort\u00e9s')},
+ '5042458':{'en': 'Atlantida'},
+ '5042459':{'en': 'Atlantida'},
+ '5042502':{'en': 'Cortes'},
+ '5042503':{'en': 'Cortes'},
+ '5042505':{'en': 'Cortes'},
+ '5042511':{'en': 'Cortes'},
+ '5042512':{'en': u('San Pedro Sula, Cort\u00e9s')},
+ '5042513':{'en': 'Cortes'},
+ '5042515':{'en': 'Cortes'},
+ '5042516':{'en': u('San Pedro Sula, Cort\u00e9s')},
  '5042540':{'en': u('San Pedro Sula, Cort\u00e9s')},
  '5042543':{'en': u('Inal\u00e1mbrica Sps')},
  '5042544':{'en': 'Rdsi San Pedro Sula'},
@@ -2883,8 +2911,11 @@ data = {
  '5042564':{'en': u('San Pedro Sula, Cort\u00e9s')},
  '5042565':{'en': u('Chamelec\u00f3n')},
  '5042566':{'en': 'Jardines Del Valle'},
+ '5042569':{'en': 'Cortes'},
+ '5042570':{'en': 'Cortes'},
  '5042574':{'en': u('B\u00fafalo')},
  '504261':{'en': u('Choloma, Cort\u00e9s')},
+ '5042637':{'en': 'Santa Barbra'},
  '5042640':{'en': 'C. Comunitarios'},
  '5042641':{'en': 'C. Comunitarios'},
  '5042642':{'en': 'C. Comunitarios'},
@@ -2911,6 +2942,7 @@ data = {
  '504268':{'en': 'La Lima'},
  '5042690':{'en': 'El Negrito'},
  '5042691':{'en': u('Moraz\u00e1n')},
+ '504270':{'en': 'Olancho'},
  '5042764':{'en': 'Amarat/Marcala'},
  '5042766':{'en': u('Valle De \u00c1ngeles')},
  '5042767':{'en': 'Ojojona'},
@@ -2969,6 +3001,7 @@ data = {
  '5182':{'en': 'Madre de Dios'},
  '5183':{'en': u('Apur\u00edmac')},
  '5184':{'en': 'Cusco'},
+ '52220':{'en': 'Puebla', 'es': 'Puebla'},
  '52221':{'en': 'Puebla', 'es': 'Puebla'},
  '52222':{'en': 'Puebla', 'es': 'Puebla'},
  '52223':{'en': 'Puebla', 'es': 'Puebla'},
@@ -3206,6 +3239,7 @@ data = {
  '52717':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
  '52718':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
  '52719':{'en': 'San Francisco Xonacatlan/Temoaya, MEX', 'es': u('San Francisco Xonacatl\u00e1n/Temoaya, MEX')},
+ '52720':{'en': 'Toluca', 'es': 'Toluca'},
  '52721':{'en': 'Ixtapan de la Sal, MEX', 'es': 'Ixtapan de la Sal, MEX'},
  '52722':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
  '52723':{'en': 'Coatepec Harinas, MEX', 'es': 'Coatepec Harinas, MEX'},
@@ -9985,38 +10019,4 @@ data = {
  '55493351':{'en': 'Entre Rios - SC', 'pt': 'Entre Rios - SC'},
  '55493353':{'en': 'Xaxim - SC', 'pt': 'Xaxim - SC'},
  '55493354':{'en': 'Marema - SC', 'pt': 'Marema - SC'},
- '55493355':{'en': 'Lajeado Grande - SC', 'pt': 'Lajeado Grande - SC'},
- '55493356':{'en': 'Arvoredo - SC', 'pt': 'Arvoredo - SC'},
- '55493358':{'en': 'Cordilheira Alta - SC', 'pt': 'Cordilheira Alta - SC'},
- '55493361':{'en': u('Chapec\u00f3 - SC'), 'pt': u('Chapec\u00f3 - SC')},
- '55493362':{'en': 'Novo Horizonte - SC', 'pt': 'Novo Horizonte - SC'},
- '55493363':{'en': 'Bom Jesus do Oeste - SC', 'pt': 'Bom Jesus do Oeste - SC'},
- '55493364':{'en': 'Serra Alta - SC', 'pt': 'Serra Alta - SC'},
- '55493365':{'en': 'Modelo - SC', 'pt': 'Modelo - SC'},
- '55493366':{'en': 'Pinhalzinho - SC', 'pt': 'Pinhalzinho - SC'},
- '55493367':{'en': 'Sul Brasil - SC', 'pt': 'Sul Brasil - SC'},
- '55493382':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493424':{'en': 'Bom Jesus - SC', 'pt': 'Bom Jesus - SC'},
- '55493425':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493431':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493432':{'en': 'Irani - SC', 'pt': 'Irani - SC'},
- '55493433':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493434':{'en': u('Varge\u00e3o - SC'), 'pt': u('Varge\u00e3o - SC')},
- '55493435':{'en': 'Ponte Serrada - SC', 'pt': 'Ponte Serrada - SC'},
- '55493436':{'en': 'Faxinal dos Guedes - SC', 'pt': 'Faxinal dos Guedes - SC'},
- '55493437':{'en': 'Passos Maia - SC', 'pt': 'Passos Maia - SC'},
- '55493438':{'en': 'Ipumirim - SC', 'pt': 'Ipumirim - SC'},
- '55493439':{'en': 'Linha Planalto - SC', 'pt': 'Linha Planalto - SC'},
- '55493441':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493442':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493443':{'en': u('S\u00e3o Domingos - SC'), 'pt': u('S\u00e3o Domingos - SC')},
- '55493444':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493445':{'en': 'Abelardo Luz - SC', 'pt': 'Abelardo Luz - SC'},
- '55493446':{'en': u('Lind\u00f3ia do Sul - SC'), 'pt': u('Lind\u00f3ia do Sul - SC')},
- '55493447':{'en': 'Ouro Verde - SC', 'pt': 'Ouro Verde - SC'},
- '55493448':{'en': u('Arabut\u00e3 - SC'), 'pt': u('Arabut\u00e3 - SC')},
- '55493449':{'en': u('Ipua\u00e7u - SC'), 'pt': u('Ipua\u00e7u - SC')},
- '55493451':{'en': 'Paial - SC', 'pt': 'Paial - SC'},
- '55493452':{'en': 'Seara - SC', 'pt': 'Seara - SC'},
- '55493453':{'en': 'Peritiba - SC', 'pt': 'Peritiba - SC'},
 }
diff --git a/python/phonenumbers/geodata/data7.py b/python/phonenumbers/geodata/data7.py
index 14ee028e..008da1c5 100644
--- a/python/phonenumbers/geodata/data7.py
+++ b/python/phonenumbers/geodata/data7.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,40 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '55493355':{'en': 'Lajeado Grande - SC', 'pt': 'Lajeado Grande - SC'},
+ '55493356':{'en': 'Arvoredo - SC', 'pt': 'Arvoredo - SC'},
+ '55493358':{'en': 'Cordilheira Alta - SC', 'pt': 'Cordilheira Alta - SC'},
+ '55493361':{'en': u('Chapec\u00f3 - SC'), 'pt': u('Chapec\u00f3 - SC')},
+ '55493362':{'en': 'Novo Horizonte - SC', 'pt': 'Novo Horizonte - SC'},
+ '55493363':{'en': 'Bom Jesus do Oeste - SC', 'pt': 'Bom Jesus do Oeste - SC'},
+ '55493364':{'en': 'Serra Alta - SC', 'pt': 'Serra Alta - SC'},
+ '55493365':{'en': 'Modelo - SC', 'pt': 'Modelo - SC'},
+ '55493366':{'en': 'Pinhalzinho - SC', 'pt': 'Pinhalzinho - SC'},
+ '55493367':{'en': 'Sul Brasil - SC', 'pt': 'Sul Brasil - SC'},
+ '55493382':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493424':{'en': 'Bom Jesus - SC', 'pt': 'Bom Jesus - SC'},
+ '55493425':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493431':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493432':{'en': 'Irani - SC', 'pt': 'Irani - SC'},
+ '55493433':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493434':{'en': u('Varge\u00e3o - SC'), 'pt': u('Varge\u00e3o - SC')},
+ '55493435':{'en': 'Ponte Serrada - SC', 'pt': 'Ponte Serrada - SC'},
+ '55493436':{'en': 'Faxinal dos Guedes - SC', 'pt': 'Faxinal dos Guedes - SC'},
+ '55493437':{'en': 'Passos Maia - SC', 'pt': 'Passos Maia - SC'},
+ '55493438':{'en': 'Ipumirim - SC', 'pt': 'Ipumirim - SC'},
+ '55493439':{'en': 'Linha Planalto - SC', 'pt': 'Linha Planalto - SC'},
+ '55493441':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493442':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493443':{'en': u('S\u00e3o Domingos - SC'), 'pt': u('S\u00e3o Domingos - SC')},
+ '55493444':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493445':{'en': 'Abelardo Luz - SC', 'pt': 'Abelardo Luz - SC'},
+ '55493446':{'en': u('Lind\u00f3ia do Sul - SC'), 'pt': u('Lind\u00f3ia do Sul - SC')},
+ '55493447':{'en': 'Ouro Verde - SC', 'pt': 'Ouro Verde - SC'},
+ '55493448':{'en': u('Arabut\u00e3 - SC'), 'pt': u('Arabut\u00e3 - SC')},
+ '55493449':{'en': u('Ipua\u00e7u - SC'), 'pt': u('Ipua\u00e7u - SC')},
+ '55493451':{'en': 'Paial - SC', 'pt': 'Paial - SC'},
+ '55493452':{'en': 'Seara - SC', 'pt': 'Seara - SC'},
+ '55493453':{'en': 'Peritiba - SC', 'pt': 'Peritiba - SC'},
  '55493454':{'en': 'Xavantina - SC', 'pt': 'Xavantina - SC'},
  '55493455':{'en': 'Alto Bela Vista - SC', 'pt': 'Alto Bela Vista - SC'},
  '55493456':{'en': 'Campina da Alegria - SC', 'pt': 'Campina da Alegria - SC'},
@@ -5886,6 +5920,9 @@ data = {
  '5760633':{'en': 'Pereira', 'es': 'Pereira'},
  '5760634':{'en': 'Pereira', 'es': 'Pereira'},
  '5760635':{'en': 'Pereira', 'es': 'Pereira'},
+ '5760636':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
+ '5760637':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
+ '5760638':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
  '5760687':{'en': 'Manizales', 'es': 'Manizales'},
  '5760688':{'en': 'Manizales', 'es': 'Manizales'},
  '5760689':{'en': 'Manizales', 'es': 'Manizales'},
@@ -9982,41 +10019,4 @@ data = {
  '609701':{'en': 'Kota Bharu'},
  '609703':{'en': 'Kota Bharu'},
  '609706':{'en': 'Kota Bharu'},
- '609707':{'en': 'Kota Bharu'},
- '609708':{'en': 'Kota Bharu'},
- '609710':{'en': 'Kota Bharu'},
- '609712':{'en': 'Kota Bharu'},
- '609713':{'en': 'Kota Bharu'},
- '609714':{'en': 'Kota Bharu'},
- '609718':{'en': 'Kota Bharu'},
- '609719':{'en': 'Kota Bharu'},
- '609721':{'en': 'Kota Bharu'},
- '609725':{'en': 'Kota Bharu'},
- '609726':{'en': 'Kota Bharu'},
- '609732':{'en': 'Kota Bharu'},
- '609735':{'en': 'Kota Bharu'},
- '609738':{'en': 'Kota Bharu'},
- '60974':{'en': 'Kota Bharu'},
- '609750':{'en': 'Kota Bharu'},
- '609751':{'en': 'Kota Bharu'},
- '609752':{'en': 'Pasir Putih'},
- '609753':{'en': 'Bachok'},
- '609754':{'en': 'Bachok'},
- '609755':{'en': 'Kota Bharu'},
- '609758':{'en': 'Pasir Putih'},
- '609759':{'en': 'Pasirputih'},
- '609760':{'en': 'Bachok'},
- '609762':{'en': 'Pasir Putih'},
- '609764':{'en': 'Bachok'},
- '609765':{'en': 'Bachok'},
- '609766':{'en': 'Bachok'},
- '609767':{'en': 'Bachok'},
- '609768':{'en': 'Bachok'},
- '609769':{'en': 'Bachok'},
- '609770':{'en': 'Bachok'},
- '609771':{'en': 'Kota Bharu'},
- '609772':{'en': 'Kok Lanas'},
- '609773':{'en': 'Kota Bharu'},
- '609774':{'en': 'Kota Bharu'},
- '609775':{'en': 'Kota Bharu'},
 }
diff --git a/python/phonenumbers/geodata/data8.py b/python/phonenumbers/geodata/data8.py
index 8343f15f..7b6671a8 100644
--- a/python/phonenumbers/geodata/data8.py
+++ b/python/phonenumbers/geodata/data8.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,43 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '609707':{'en': 'Kota Bharu'},
+ '609708':{'en': 'Kota Bharu'},
+ '609710':{'en': 'Kota Bharu'},
+ '609712':{'en': 'Kota Bharu'},
+ '609713':{'en': 'Kota Bharu'},
+ '609714':{'en': 'Kota Bharu'},
+ '609718':{'en': 'Kota Bharu'},
+ '609719':{'en': 'Kota Bharu'},
+ '609721':{'en': 'Kota Bharu'},
+ '609725':{'en': 'Kota Bharu'},
+ '609726':{'en': 'Kota Bharu'},
+ '609732':{'en': 'Kota Bharu'},
+ '609735':{'en': 'Kota Bharu'},
+ '609738':{'en': 'Kota Bharu'},
+ '60974':{'en': 'Kota Bharu'},
+ '609750':{'en': 'Kota Bharu'},
+ '609751':{'en': 'Kota Bharu'},
+ '609752':{'en': 'Pasir Putih'},
+ '609753':{'en': 'Bachok'},
+ '609754':{'en': 'Bachok'},
+ '609755':{'en': 'Kota Bharu'},
+ '609758':{'en': 'Pasir Putih'},
+ '609759':{'en': 'Pasirputih'},
+ '609760':{'en': 'Bachok'},
+ '609762':{'en': 'Pasir Putih'},
+ '609764':{'en': 'Bachok'},
+ '609765':{'en': 'Bachok'},
+ '609766':{'en': 'Bachok'},
+ '609767':{'en': 'Bachok'},
+ '609768':{'en': 'Bachok'},
+ '609769':{'en': 'Bachok'},
+ '609770':{'en': 'Bachok'},
+ '609771':{'en': 'Kota Bharu'},
+ '609772':{'en': 'Kok Lanas'},
+ '609773':{'en': 'Kota Bharu'},
+ '609774':{'en': 'Kota Bharu'},
+ '609775':{'en': 'Kota Bharu'},
  '609776':{'en': 'Bachok'},
  '609778':{'en': 'Bachok'},
  '609779':{'en': 'Bachok'},
@@ -132,6 +169,17 @@ data = {
  '609979':{'en': 'Machang'},
  '609980':{'en': 'Kuala Krai'},
  '609981':{'en': 'Kuala Krai'},
+ '6120':{'en': 'New South Wales'},
+ '6121':{'en': 'New South Wales'},
+ '6122':{'en': 'New South Wales'},
+ '61230':{'en': 'New South Wales'},
+ '61231':{'en': 'New South Wales'},
+ '61232':{'en': 'New South Wales'},
+ '61233':{'en': 'Gosford'},
+ '61234':{'en': 'New South Wales'},
+ '61235':{'en': 'New South Wales'},
+ '61236':{'en': 'New South Wales'},
+ '61237':{'en': 'New South Wales'},
  '61238000':{'en': 'Bowral'},
  '61238001':{'en': 'Barrallier'},
  '61238002':{'en': 'Bevendale'},
@@ -159,9 +207,9 @@ data = {
  '61238024':{'en': 'Wombeyan Caves'},
  '61238025':{'en': 'Woodhouselee'},
  '61238026':{'en': 'Yerrinbool'},
- '61238027':{'en': 'Bowral'},
- '61238028':{'en': 'Bowral'},
- '61238029':{'en': 'Bowral'},
+ '61238027':{'en': 'Barrallier'},
+ '61238028':{'en': 'Bevendale'},
+ '61238029':{'en': 'Binda'},
  '61238030':{'en': 'Barrallier'},
  '61238031':{'en': 'Bevendale'},
  '61238032':{'en': 'Binda'},
@@ -269,32 +317,32 @@ data = {
  '61238134':{'en': 'Wombeyan Caves'},
  '61238135':{'en': 'Woodhouselee'},
  '61238136':{'en': 'Yerrinbool'},
- '61238137':{'en': 'Barrallier'},
+ '61238137':{'en': 'Goulburn'},
  '61238138':{'en': 'Bevendale'},
  '61238139':{'en': 'Binda'},
- '61238140':{'en': 'Bowral'},
- '61238141':{'en': 'Braidwood'},
- '61238142':{'en': 'Breadalbane'},
- '61238143':{'en': 'Bundanoon'},
- '61238144':{'en': 'Bungonia'},
- '61238145':{'en': 'Crookwell'},
- '61238146':{'en': 'Golspie'},
- '61238147':{'en': 'Goulburn'},
- '61238148':{'en': 'Gundillion'},
- '61238149':{'en': 'Gunning'},
- '61238150':{'en': 'Lost River'},
- '61238151':{'en': 'Marulan'},
- '61238152':{'en': 'Nerriga'},
- '61238153':{'en': 'Paddys River'},
- '61238154':{'en': 'Reidsdale'},
- '61238155':{'en': 'Robertson'},
- '61238156':{'en': 'Rugby'},
- '61238157':{'en': 'Tarago'},
- '61238158':{'en': 'Taralga'},
- '61238159':{'en': 'Tuena'},
- '61238160':{'en': 'Wombeyan Caves'},
- '61238161':{'en': 'Woodhouselee'},
- '61238162':{'en': 'Yerrinbool'},
+ '61238140':{'en': 'Bevendale'},
+ '61238141':{'en': 'Bevendale'},
+ '61238142':{'en': 'Binda'},
+ '61238143':{'en': 'Binda'},
+ '61238144':{'en': 'Bowral'},
+ '61238145':{'en': 'Bowral'},
+ '61238146':{'en': 'Braidwood'},
+ '61238147':{'en': 'Braidwood'},
+ '61238148':{'en': 'Breadalbane'},
+ '61238149':{'en': 'Breadalbane'},
+ '61238150':{'en': 'Bundanoon'},
+ '61238151':{'en': 'Bundanoon'},
+ '61238152':{'en': 'Bungonia'},
+ '61238153':{'en': 'Bungonia'},
+ '61238154':{'en': 'Crookwell'},
+ '61238155':{'en': 'Crookwell'},
+ '61238156':{'en': 'Golspie'},
+ '61238157':{'en': 'Golspie'},
+ '61238158':{'en': 'Goulburn'},
+ '61238159':{'en': 'Goulburn'},
+ '61238160':{'en': 'Bowral'},
+ '61238161':{'en': 'Gundillion'},
+ '61238162':{'en': 'Gundillion'},
  '61238163':{'en': 'Barrallier'},
  '61238164':{'en': 'Bevendale'},
  '61238165':{'en': 'Binda'},
@@ -322,16 +370,16 @@ data = {
  '61238187':{'en': 'Woodhouselee'},
  '61238188':{'en': 'Yerrinbool'},
  '61238189':{'en': 'Bowral'},
- '61238190':{'en': 'Barrallier'},
- '61238191':{'en': 'Bevendale'},
- '61238192':{'en': 'Binda'},
- '61238193':{'en': 'Bowral'},
- '61238194':{'en': 'Braidwood'},
- '61238195':{'en': 'Breadalbane'},
- '61238196':{'en': 'Bundanoon'},
- '61238197':{'en': 'Bungonia'},
- '61238198':{'en': 'Crookwell'},
- '61238199':{'en': 'Golspie'},
+ '61238190':{'en': 'Paddys River'},
+ '61238191':{'en': 'Reidsdale'},
+ '61238192':{'en': 'Wombeyan Caves'},
+ '61238193':{'en': 'Gunning'},
+ '61238194':{'en': 'Gunning'},
+ '61238195':{'en': 'Lost River'},
+ '61238196':{'en': 'Lost River'},
+ '61238197':{'en': 'Marulan'},
+ '61238198':{'en': 'Marulan'},
+ '61238199':{'en': 'Nerriga'},
  '61238200':{'en': 'Goulburn'},
  '61238201':{'en': 'Gundillion'},
  '61238202':{'en': 'Gunning'},
@@ -344,10 +392,21 @@ data = {
  '61238209':{'en': 'Rugby'},
  '61238210':{'en': 'Tarago'},
  '61238211':{'en': 'Taralga'},
- '61238212':{'en': 'Tuena'},
- '61238213':{'en': 'Wombeyan Caves'},
- '61238214':{'en': 'Woodhouselee'},
- '61238215':{'en': 'Yerrinbool'},
+ '61238212':{'en': 'Taralga'},
+ '61238213':{'en': 'Tuena'},
+ '61238214':{'en': 'Tuena'},
+ '61238215':{'en': 'Wombeyan Caves'},
+ '61238216':{'en': 'Yerrinbool'},
+ '61238219':{'en': 'Woodhouselee'},
+ '6123822':{'en': 'Wombeyan Caves/Yerrinbool/Woodhouselee/Bowral/Braidwood/Breadalbane/Bundanoon/Bungonia/Crookwell'},
+ '6123823':{'en': 'Golspie/Gunning/Taralga/Goulburn/Nerriga/Paddys/River/Reidsdale/Robertson/Rugby/Tarago'},
+ '612383':{'en': 'Goulburn'},
+ '612384':{'en': 'New South Wales'},
+ '612385':{'en': 'Goulburn'},
+ '612386':{'en': 'Goulburn'},
+ '612387':{'en': 'New South Wales'},
+ '612388':{'en': 'Goulburn'},
+ '612389':{'en': 'New South Wales'},
  '61240000':{'en': 'Bandon Grove'},
  '61240001':{'en': 'Branxton'},
  '61240002':{'en': 'Bulahdelah'},
@@ -379,28 +438,28 @@ data = {
  '61240028':{'en': 'Tea Gardens'},
  '61240029':{'en': 'Wards River'},
  '61240030':{'en': 'Wootton'},
- '61240031':{'en': 'Bandon Grove'},
- '61240032':{'en': 'Branxton'},
+ '61240031':{'en': 'Laguna'},
+ '61240032':{'en': 'Wards River'},
  '61240033':{'en': 'Newcastle'},
  '61240034':{'en': 'Newcastle'},
  '61240035':{'en': 'Newcastle'},
  '61240036':{'en': 'Newcastle'},
  '61240037':{'en': 'Newcastle'},
- '61240038':{'en': 'Eccleston'},
+ '61240038':{'en': 'Maitland'},
  '61240039':{'en': 'Karuah'},
  '61240040':{'en': 'Laguna'},
  '61240041':{'en': 'Maitland'},
  '61240042':{'en': 'Mulbring'},
- '61240043':{'en': 'Nelson Bay'},
+ '61240043':{'en': 'Maitland'},
  '61240044':{'en': 'Raymond Terrace'},
  '61240045':{'en': 'Maitland'},
  '61240046':{'en': 'Newcastle'},
  '61240047':{'en': 'Raymond Terrace'},
  '61240048':{'en': 'Stroud'},
  '61240049':{'en': 'Swansea'},
- '61240050':{'en': 'Tea Gardens'},
- '61240051':{'en': 'Wards River'},
- '61240052':{'en': 'Wootton'},
+ '61240050':{'en': 'Bandon Grove'},
+ '61240051':{'en': 'Bandon Grove'},
+ '61240052':{'en': 'Newcastle'},
  '61240053':{'en': 'Bandon Grove'},
  '61240054':{'en': 'Branxton'},
  '61240055':{'en': 'Bulahdelah'},
@@ -459,26 +518,26 @@ data = {
  '61240108':{'en': 'Wards River'},
  '61240109':{'en': 'Wootton'},
  '61240110':{'en': 'Bandon Grove'},
- '61240111':{'en': 'Bandon Grove'},
+ '61240111':{'en': 'Newcastle'},
  '61240112':{'en': 'Branxton'},
  '61240113':{'en': 'Bulahdelah'},
  '61240114':{'en': 'Cessnock'},
  '61240115':{'en': 'Clarence Town'},
- '61240116':{'en': 'Dungog'},
- '61240117':{'en': 'East Gresford'},
- '61240118':{'en': 'Eccleston'},
- '61240119':{'en': 'Karuah'},
- '61240120':{'en': 'Laguna'},
- '61240121':{'en': 'Maitland'},
- '61240122':{'en': 'Mulbring'},
- '61240123':{'en': 'Nelson Bay'},
- '61240124':{'en': 'Newcastle'},
- '61240125':{'en': 'Raymond Terrace'},
- '61240126':{'en': 'Stroud'},
- '61240127':{'en': 'Swansea'},
- '61240128':{'en': 'Tea Gardens'},
- '61240129':{'en': 'Wards River'},
- '61240130':{'en': 'Wootton'},
+ '61240116':{'en': 'Branxton'},
+ '61240117':{'en': 'Branxton'},
+ '61240118':{'en': 'Bulahdelah'},
+ '61240119':{'en': 'Bulahdelah'},
+ '61240120':{'en': 'Cessnock'},
+ '61240121':{'en': 'Cessnock'},
+ '61240122':{'en': 'Clarence Town'},
+ '61240123':{'en': 'Clarence Town'},
+ '61240124':{'en': 'Dungog'},
+ '61240125':{'en': 'Dungog'},
+ '61240126':{'en': 'East Gresford'},
+ '61240127':{'en': 'East Gresford'},
+ '61240128':{'en': 'Eccleston'},
+ '61240129':{'en': 'Eccleston'},
+ '61240130':{'en': 'Cessnock'},
  '61240131':{'en': 'Newcastle'},
  '61240132':{'en': 'Newcastle'},
  '61240133':{'en': 'Newcastle'},
@@ -847,55 +906,55 @@ data = {
  '61240709':{'en': 'Tea Gardens'},
  '61240710':{'en': 'Wards River'},
  '61240711':{'en': 'Wootton'},
- '61240712':{'en': 'Bandon Grove'},
- '61240713':{'en': 'Branxton'},
- '61240714':{'en': 'Bulahdelah'},
- '61240715':{'en': 'Cessnock'},
- '61240716':{'en': 'Clarence Town'},
- '61240717':{'en': 'Dungog'},
- '61240718':{'en': 'East Gresford'},
- '61240719':{'en': 'Eccleston'},
- '61240720':{'en': 'Karuah'},
+ '61240712':{'en': 'Karuah'},
+ '61240713':{'en': 'Karuah'},
+ '61240714':{'en': 'Laguna'},
+ '61240715':{'en': 'Laguna'},
+ '61240716':{'en': 'Maitland'},
+ '61240717':{'en': 'Mulbring'},
+ '61240718':{'en': 'Mulbring'},
+ '61240719':{'en': 'Nelson Bay'},
+ '61240720':{'en': 'Newcastle'},
  '61240721':{'en': 'Laguna'},
- '61240722':{'en': 'Maitland'},
+ '61240722':{'en': 'Newcastle'},
  '61240723':{'en': 'Mulbring'},
  '61240724':{'en': 'Nelson Bay'},
  '61240725':{'en': 'Newcastle'},
  '61240726':{'en': 'Raymond Terrace'},
- '61240727':{'en': 'Stroud'},
- '61240728':{'en': 'Swansea'},
+ '61240727':{'en': 'Newcastle'},
+ '61240728':{'en': 'Maitland'},
  '61240729':{'en': 'Tea Gardens'},
- '61240730':{'en': 'Wards River'},
+ '61240730':{'en': 'Cessnock'},
  '61240731':{'en': 'Wootton'},
- '61240732':{'en': 'Bandon Grove'},
- '61240733':{'en': 'Branxton'},
- '61240734':{'en': 'Bulahdelah'},
- '61240735':{'en': 'Cessnock'},
- '61240736':{'en': 'Clarence Town'},
- '61240737':{'en': 'Dungog'},
- '61240738':{'en': 'East Gresford'},
- '61240739':{'en': 'Eccleston'},
- '61240740':{'en': 'Karuah'},
- '61240741':{'en': 'Laguna'},
- '61240742':{'en': 'Maitland'},
- '61240743':{'en': 'Mulbring'},
- '61240744':{'en': 'Nelson Bay'},
- '61240745':{'en': 'Newcastle'},
- '61240746':{'en': 'Raymond Terrace'},
- '61240747':{'en': 'Stroud'},
- '61240748':{'en': 'Swansea'},
- '61240749':{'en': 'Tea Gardens'},
- '61240750':{'en': 'Wards River'},
- '61240751':{'en': 'Wootton'},
+ '61240732':{'en': 'Branxton'},
+ '61240733':{'en': 'Bandon Grove'},
+ '61240734':{'en': 'Branxton'},
+ '61240735':{'en': 'Bulahdelah'},
+ '61240736':{'en': 'Cessnock'},
+ '61240737':{'en': 'Clarence Town'},
+ '61240738':{'en': 'Dungog'},
+ '61240739':{'en': 'East Gresford'},
+ '61240740':{'en': 'Eccleston'},
+ '61240741':{'en': 'Karuah'},
+ '61240742':{'en': 'Laguna'},
+ '61240743':{'en': 'Maitland'},
+ '61240744':{'en': 'Mulbring'},
+ '61240745':{'en': 'Nelson Bay'},
+ '61240746':{'en': 'Newcastle'},
+ '61240747':{'en': 'Raymond Terrace'},
+ '61240748':{'en': 'Stroud'},
+ '61240749':{'en': 'Swansea'},
+ '61240750':{'en': 'Tea Gardens'},
+ '61240751':{'en': 'Wards River'},
  '61240752':{'en': 'Newcastle'},
- '61240753':{'en': 'Bandon Grove'},
- '61240754':{'en': 'Branxton'},
- '61240755':{'en': 'Bulahdelah'},
- '61240756':{'en': 'Cessnock'},
- '61240757':{'en': 'Clarence Town'},
- '61240758':{'en': 'Dungog'},
- '61240759':{'en': 'East Gresford'},
- '61240760':{'en': 'Eccleston'},
+ '61240753':{'en': 'Nelson Bay'},
+ '61240754':{'en': 'Raymond Terrace'},
+ '61240755':{'en': 'Newcastle'},
+ '61240756':{'en': 'Stroud'},
+ '61240757':{'en': 'Raymond Terrace'},
+ '61240758':{'en': 'Swansea'},
+ '61240759':{'en': 'Stroud'},
+ '61240760':{'en': 'Newcastle'},
  '61240761':{'en': 'Karuah'},
  '61240762':{'en': 'Laguna'},
  '61240763':{'en': 'Maitland'},
@@ -905,14 +964,30 @@ data = {
  '61240767':{'en': 'Raymond Terrace'},
  '61240768':{'en': 'Stroud'},
  '61240769':{'en': 'Swansea'},
- '61240770':{'en': 'Tea Gardens'},
- '61240771':{'en': 'Wards River'},
- '61240772':{'en': 'Wootton'},
+ '61240770':{'en': 'Swansea'},
+ '61240771':{'en': 'Tea Gardens'},
+ '61240772':{'en': 'Tea Gardens'},
+ '61240773':{'en': 'Newcastle'},
+ '61240774':{'en': 'Newcastle'},
+ '61240776':{'en': 'Newcastle'},
+ '6124078':{'en': 'Swansea'},
+ '6124079':{'en': 'Swansea'},
+ '6124080':{'en': 'Newcastle'},
+ '6124081':{'en': 'Newcastle/Raymond Terrace'},
+ '6124082':{'en': 'Cessnock/Newcastle/Maitland/Wards River/Wootton'},
+ '6124083':{'en': 'Nelson Bay/Newcastle/Karuah/Bandon Grove/Branxton/Bulahdelah/Cessnock/Clarence Town'},
+ '6124084':{'en': 'Dungog/East Gresford/Eccleston/Karuah/Laguna/Maitland/Mulbring/Nelson Bay'},
+ '6124085':{'en': 'Maitland/Nelson Bay/Newcastle/Raymond Terrace/Stroud/Swansea'},
+ '6124086':{'en': 'Tea Gardens/Wards River/Wootton/Maitland/Newcastle'},
+ '6124087':{'en': 'Cessnock/Maitland/Newcastle'},
  '6124088':{'en': 'Newcastle'},
  '6124089':{'en': 'Newcastle'},
  '61240896':{'en': 'Raymond Terrace'},
  '61240897':{'en': 'Raymond Terrace'},
  '61240898':{'en': 'Raymond Terrace'},
+ '6124090':{'en': 'Newcastle'},
+ '6124091':{'en': 'Newcastle/Maitland'},
+ '6124092':{'en': 'Newcastle'},
  '6124099':{'en': 'Newcastle'},
  '6124200':{'en': 'Wollongong'},
  '6124201':{'en': 'Wollongong'},
@@ -968,41 +1043,37 @@ data = {
  '61242092':{'en': 'Kiama'},
  '61242097':{'en': 'Helensburgh'},
  '61242098':{'en': 'Kiama'},
+ '6124210':{'en': 'Wollongong'},
  '61242100':{'en': 'Kiama'},
  '61242101':{'en': 'Helensburgh'},
  '61242102':{'en': 'Kiama'},
- '61242103':{'en': 'Wollongong'},
- '61242104':{'en': 'Helensburgh'},
- '61242105':{'en': 'Kiama'},
- '61242106':{'en': 'Wollongong'},
- '61242107':{'en': 'Wollongong'},
- '61242108':{'en': 'Wollongong'},
- '61242109':{'en': 'Wollongong'},
+ '61242105':{'en': 'Helensburgh'},
  '6124211':{'en': 'Wollongong'},
  '61242111':{'en': 'Kiama'},
  '61242112':{'en': 'Kiama'},
  '61242113':{'en': 'Kiama'},
  '6124212':{'en': 'Wollongong'},
  '6124213':{'en': 'Wollongong'},
- '6124214':{'en': 'Wollongong'},
+ '61242140':{'en': 'Wollongong'},
+ '61242141':{'en': 'Wollongong'},
+ '61242142':{'en': 'Wollongong'},
+ '61242143':{'en': 'Wollongong'},
+ '61242144':{'en': 'Kiama'},
  '61242145':{'en': 'Helensburgh'},
  '61242146':{'en': 'Kiama'},
+ '61242147':{'en': 'Wollongong'},
  '61242148':{'en': 'Helensburgh'},
  '61242149':{'en': 'Kiama'},
- '61242150':{'en': 'Wollongong'},
+ '61242150':{'en': 'Helensburgh'},
+ '61242151':{'en': 'Wollongong'},
+ '6124216':{'en': 'Kiama/Wollongong'},
+ '6124217':{'en': 'Helensburgh/Kiama/Wollongong'},
  '612422':{'en': 'Wollongong'},
- '6124230':{'en': 'Kiama'},
+ '612423':{'en': 'Kiama'},
  '6124231':{'en': 'Wollongong'},
- '6124232':{'en': 'Kiama'},
- '6124233':{'en': 'Kiama'},
- '6124234':{'en': 'Kiama'},
- '6124235':{'en': 'Kiama'},
- '6124236':{'en': 'Kiama'},
- '6124237':{'en': 'Kiama'},
  '6124238':{'en': 'Wollongong'},
  '61242380':{'en': 'Helensburgh'},
- '61242381':{'en': 'Kiama'},
- '61242389':{'en': 'Kiama'},
+ '6124239':{'en': 'Wollongong'},
  '6124240':{'en': 'Wollongong'},
  '6124242':{'en': 'Wollongong'},
  '6124243':{'en': 'Wollongong'},
@@ -1011,6 +1082,7 @@ data = {
  '6124245':{'en': 'Wollongong'},
  '6124246':{'en': 'Wollongong'},
  '6124247':{'en': 'Wollongong'},
+ '6124248':{'en': 'Wollongong'},
  '61242490':{'en': 'Wollongong'},
  '61242491':{'en': 'Wollongong'},
  '61242492':{'en': 'Wollongong'},
@@ -1093,8 +1165,8 @@ data = {
  '61243072':{'en': 'Mangrove Mountain'},
  '61243073':{'en': 'Mangrove Mountain'},
  '61243074':{'en': 'Wyong'},
- '61243075':{'en': 'Gosford'},
- '61243076':{'en': 'Mangrove Mountain'},
+ '61243075':{'en': 'Mangrove Mountain'},
+ '61243076':{'en': 'Wyong'},
  '61243077':{'en': 'Wyong'},
  '61243078':{'en': 'Gosford'},
  '61243079':{'en': 'Gosford'},
@@ -1151,9 +1223,12 @@ data = {
  '61243166':{'en': 'Gosford'},
  '61243167':{'en': 'Mangrove Mountain'},
  '61243168':{'en': 'Wyong'},
- '61243169':{'en': 'Gosford'},
+ '61243169':{'en': 'Wyong'},
  '61243170':{'en': 'Mangrove Mountain'},
  '61243171':{'en': 'Wyong'},
+ '61243172':{'en': 'Wyong'},
+ '6124318':{'en': 'Gosford'},
+ '6124319':{'en': 'Gosford/Mangrove Mountain/Wyong'},
  '612432':{'en': 'Gosford'},
  '61243262':{'en': 'Wyong'},
  '61243263':{'en': 'Wyong'},
@@ -1186,6 +1261,7 @@ data = {
  '61243465':{'en': 'Gosford'},
  '61243466':{'en': 'Gosford'},
  '61243474':{'en': 'Gosford'},
+ '61243475':{'en': 'Wyong'},
  '6124348':{'en': 'Gosford'},
  '6124349':{'en': 'Gosford'},
  '612435':{'en': 'Wyong'},
@@ -1201,8 +1277,10 @@ data = {
  '61243809':{'en': 'Gosford'},
  '6124381':{'en': 'Gosford'},
  '6124382':{'en': 'Gosford'},
+ '6124383':{'en': 'Wyong'},
  '6124384':{'en': 'Gosford'},
  '6124385':{'en': 'Gosford'},
+ '6124386':{'en': 'Gosford'},
  '6124388':{'en': 'Gosford'},
  '6124389':{'en': 'Gosford'},
  '6124390':{'en': 'Wyong'},
@@ -1232,7 +1310,7 @@ data = {
  '61244016':{'en': 'Milton-ulladulla'},
  '61244017':{'en': 'Milton-ulladulla'},
  '61244018':{'en': 'Milton-ulladulla'},
- '61244019':{'en': 'Jilliga'},
+ '61244019':{'en': 'Bawley Point'},
  '61244020':{'en': 'Moruya'},
  '61244021':{'en': 'Moruya'},
  '61244022':{'en': 'Moruya'},
@@ -1253,13 +1331,13 @@ data = {
  '61244037':{'en': 'Huskisson'},
  '61244038':{'en': 'Milton-ulladulla'},
  '61244039':{'en': 'Nowra'},
- '61244040':{'en': 'Moruya'},
- '61244041':{'en': 'Narooma'},
- '61244042':{'en': 'Bawley Point'},
- '61244043':{'en': 'Berry'},
- '61244044':{'en': 'Huskisson'},
- '61244045':{'en': 'Milton-ulladulla'},
- '61244046':{'en': 'Nowra'},
+ '61244040':{'en': 'Berry'},
+ '61244041':{'en': 'Batemans Bay'},
+ '61244042':{'en': 'Huskisson'},
+ '61244043':{'en': 'Bawley Point'},
+ '61244044':{'en': 'Jilliga'},
+ '61244045':{'en': 'Berry'},
+ '61244046':{'en': 'Milton-ulladulla'},
  '61244047':{'en': 'Batemans Bay'},
  '61244048':{'en': 'Jilliga'},
  '61244049':{'en': 'Moruya'},
@@ -1277,12 +1355,12 @@ data = {
  '61244061':{'en': 'Berry'},
  '61244062':{'en': 'Huskisson'},
  '61244063':{'en': 'Milton-ulladulla'},
- '61244064':{'en': 'Batemans Bay'},
- '61244065':{'en': 'Jilliga'},
- '61244066':{'en': 'Moruya'},
- '61244067':{'en': 'Narooma'},
- '61244068':{'en': 'Bawley Point'},
- '61244069':{'en': 'Berry'},
+ '61244064':{'en': 'Moruya'},
+ '61244065':{'en': 'Huskisson'},
+ '61244066':{'en': 'Narooma'},
+ '61244067':{'en': 'Jilliga'},
+ '61244068':{'en': 'Nowra'},
+ '61244069':{'en': 'Milton-ulladulla'},
  '61244070':{'en': 'Batemans Bay'},
  '61244071':{'en': 'Jilliga'},
  '61244072':{'en': 'Moruya'},
@@ -1292,9 +1370,9 @@ data = {
  '61244076':{'en': 'Huskisson'},
  '61244077':{'en': 'Milton-ulladulla'},
  '61244078':{'en': 'Nowra'},
- '61244079':{'en': 'Huskisson'},
- '61244080':{'en': 'Milton-ulladulla'},
- '61244081':{'en': 'Nowra'},
+ '61244079':{'en': 'Batemans Bay'},
+ '61244080':{'en': 'Moruya'},
+ '61244081':{'en': 'Bawley Point'},
  '61244082':{'en': 'Batemans Bay'},
  '61244083':{'en': 'Nowra'},
  '61244084':{'en': 'Moruya'},
@@ -1391,15 +1469,15 @@ data = {
  '61244175':{'en': 'Moruya'},
  '61244176':{'en': 'Narooma'},
  '61244177':{'en': 'Nowra'},
- '61244178':{'en': 'Batemans Bay'},
- '61244179':{'en': 'Bawley Point'},
- '61244180':{'en': 'Berry'},
- '61244181':{'en': 'Huskisson'},
- '61244182':{'en': 'Jilliga'},
+ '61244178':{'en': 'Berry'},
+ '61244179':{'en': 'Narooma'},
+ '61244180':{'en': 'Huskisson'},
+ '61244181':{'en': 'Nowra'},
+ '61244182':{'en': 'Nowra'},
  '61244183':{'en': 'Milton-ulladulla'},
- '61244184':{'en': 'Moruya'},
- '61244185':{'en': 'Narooma'},
- '61244186':{'en': 'Nowra'},
+ '61244184':{'en': 'Jilliga'},
+ '61244185':{'en': 'Milton-ulladulla'},
+ '61244186':{'en': 'Moruya'},
  '61244187':{'en': 'Batemans Bay'},
  '61244188':{'en': 'Bawley Point'},
  '61244189':{'en': 'Berry'},
@@ -1409,15 +1487,17 @@ data = {
  '61244193':{'en': 'Moruya'},
  '61244194':{'en': 'Narooma'},
  '61244195':{'en': 'Nowra'},
- '61244196':{'en': 'Batemans Bay'},
- '61244197':{'en': 'Bawley Point'},
- '61244198':{'en': 'Berry'},
- '61244199':{'en': 'Huskisson'},
- '61244200':{'en': 'Jilliga'},
- '61244201':{'en': 'Milton-ulladulla'},
- '61244202':{'en': 'Moruya'},
- '61244203':{'en': 'Narooma'},
- '61244204':{'en': 'Nowra'},
+ '61244196':{'en': 'Narooma'},
+ '61244197':{'en': 'Nowra'},
+ '61244198':{'en': 'Batemans Bay'},
+ '61244199':{'en': 'Bawley Point'},
+ '61244200':{'en': 'Berry'},
+ '61244201':{'en': 'Huskisson'},
+ '61244202':{'en': 'Jilliga'},
+ '61244203':{'en': 'Milton-ulladulla'},
+ '61244204':{'en': 'Moruya'},
+ '61244205':{'en': 'Batemans Bay'},
+ '61244208':{'en': 'Batemans Bay'},
  '6124421':{'en': 'Nowra'},
  '6124422':{'en': 'Nowra'},
  '6124423':{'en': 'Nowra'},
@@ -1442,6 +1522,7 @@ data = {
  '61244276':{'en': 'Bawley Point'},
  '61244277':{'en': 'Bawley Point'},
  '61244278':{'en': 'Jilliga'},
+ '61244279':{'en': 'Batemans Bay'},
  '6124428':{'en': 'Nowra'},
  '61244280':{'en': 'Huskisson'},
  '61244281':{'en': 'Huskisson'},
@@ -1457,6 +1538,7 @@ data = {
  '61244297':{'en': 'Huskisson'},
  '61244298':{'en': 'Milton-ulladulla'},
  '61244299':{'en': 'Milton-ulladulla'},
+ '612443':{'en': 'Batemans Bay/Narooma/Nowra'},
  '6124441':{'en': 'Huskisson'},
  '6124442':{'en': 'Huskisson'},
  '6124443':{'en': 'Huskisson'},
@@ -1478,6 +1560,8 @@ data = {
  '6124446':{'en': 'Nowra'},
  '6124447':{'en': 'Nowra'},
  '6124448':{'en': 'Nowra'},
+ '6124449':{'en': 'Nowra'},
+ '6124450':{'en': 'Nowra'},
  '6124454':{'en': 'Milton-ulladulla'},
  '6124455':{'en': 'Milton-ulladulla'},
  '6124456':{'en': 'Milton-ulladulla'},
@@ -1543,10 +1627,10 @@ data = {
  '61245013':{'en': 'Wisemans Ferry'},
  '61245014':{'en': 'Wisemans Ferry'},
  '61245015':{'en': 'Wisemans Ferry'},
- '61245016':{'en': 'Kurrajong Heights'},
- '61245017':{'en': 'St Albans'},
- '61245018':{'en': 'Windsor'},
- '61245019':{'en': 'Wisemans Ferry'},
+ '61245016':{'en': 'St Albans'},
+ '61245017':{'en': 'Colo Heights'},
+ '61245018':{'en': 'Colo Heights'},
+ '61245019':{'en': 'Kurrajong Heights'},
  '61245020':{'en': 'Colo Heights'},
  '61245021':{'en': 'Kurrajong Heights'},
  '61245022':{'en': 'St Albans'},
@@ -1561,10 +1645,10 @@ data = {
  '61245031':{'en': 'Kurrajong Heights'},
  '61245032':{'en': 'St Albans'},
  '61245033':{'en': 'Wisemans Ferry'},
- '61245034':{'en': 'Colo Heights'},
+ '61245034':{'en': 'St Albans'},
  '61245035':{'en': 'Kurrajong Heights'},
- '61245036':{'en': 'St Albans'},
- '61245037':{'en': 'Windsor'},
+ '61245036':{'en': 'Windsor'},
+ '61245037':{'en': 'St Albans'},
  '61245038':{'en': 'Wisemans Ferry'},
  '61245039':{'en': 'Wisemans Ferry'},
  '61245040':{'en': 'Colo Heights'},
@@ -1622,19 +1706,24 @@ data = {
  '61245097':{'en': 'Wisemans Ferry'},
  '61245098':{'en': 'Colo Heights'},
  '61245099':{'en': 'Kurrajong Heights'},
- '61245100':{'en': 'St Albans'},
- '61245101':{'en': 'Windsor'},
- '61245102':{'en': 'Wisemans Ferry'},
+ '61245100':{'en': 'Kurrajong Heights'},
+ '61245101':{'en': 'Wisemans Ferry'},
+ '61245102':{'en': 'St Albans'},
  '61245103':{'en': 'Colo Heights'},
  '61245104':{'en': 'Kurrajong Heights'},
  '61245105':{'en': 'St Albans'},
  '61245106':{'en': 'Windsor'},
  '61245107':{'en': 'Wisemans Ferry'},
- '61245108':{'en': 'Colo Heights'},
- '61245109':{'en': 'Kurrajong Heights'},
- '61245110':{'en': 'St Albans'},
- '61245111':{'en': 'Windsor'},
- '61245112':{'en': 'Wisemans Ferry'},
+ '61245108':{'en': 'Windsor'},
+ '61245109':{'en': 'Wisemans Ferry'},
+ '61245110':{'en': 'Colo Heights'},
+ '61245111':{'en': 'Kurrajong Heights'},
+ '61245112':{'en': 'St Albans'},
+ '61245113':{'en': 'Windsor'},
+ '61245114':{'en': 'Wisemans Ferry'},
+ '61245115':{'en': 'St Albans'},
+ '61245116':{'en': 'Windsor'},
+ '61245117':{'en': 'Wisemans Ferry'},
  '6124545':{'en': 'Windsor'},
  '61245460':{'en': 'Windsor'},
  '6124555':{'en': 'Windsor'},
@@ -1660,6 +1749,7 @@ data = {
  '6124566':{'en': 'Wisemans Ferry'},
  '6124567':{'en': 'Kurrajong Heights'},
  '6124568':{'en': 'St Albans'},
+ '6124569':{'en': 'Windsor'},
  '612457':{'en': 'Windsor'},
  '6124580':{'en': 'Windsor'},
  '6124581':{'en': 'Wisemans Ferry'},
@@ -1698,7 +1788,7 @@ data = {
  '61246020':{'en': 'Campbelltown'},
  '61246021':{'en': 'Camden'},
  '61246022':{'en': 'Campbelltown'},
- '61246023':{'en': 'Picton'},
+ '61246023':{'en': 'Camden'},
  '61246024':{'en': 'Camden'},
  '61246025':{'en': 'Campbelltown'},
  '61246026':{'en': 'Camden'},
@@ -1750,8 +1840,8 @@ data = {
  '61246114':{'en': 'Campbelltown'},
  '61246115':{'en': 'Picton'},
  '61246116':{'en': 'Picton'},
- '61246117':{'en': 'Camden'},
- '61246118':{'en': 'Campbelltown'},
+ '61246117':{'en': 'Campbelltown'},
+ '61246118':{'en': 'Picton'},
  '61246119':{'en': 'Picton'},
  '61246120':{'en': 'Camden'},
  '61246121':{'en': 'Campbelltown'},
@@ -1759,6 +1849,11 @@ data = {
  '61246123':{'en': 'Camden'},
  '61246124':{'en': 'Campbelltown'},
  '61246125':{'en': 'Picton'},
+ '61246126':{'en': 'Campbelltown/Camden'},
+ '61246127':{'en': 'Campbelltown/Camden'},
+ '61246128':{'en': 'Campbelltown/Camden'},
+ '61246129':{'en': 'Campbelltown/Camden'},
+ '6124613':{'en': 'Campbelltown/Picton'},
  '612462':{'en': 'Campbelltown'},
  '61246232':{'en': 'Camden'},
  '61246234':{'en': 'Picton'},
@@ -1862,11 +1957,11 @@ data = {
  '61247050':{'en': 'Lawson'},
  '61247051':{'en': 'Mount Wilson'},
  '61247052':{'en': 'Mulgoa'},
- '61247053':{'en': 'Katoomba'},
- '61247054':{'en': 'Lawson'},
- '61247055':{'en': 'Mount Wilson'},
+ '61247053':{'en': 'Mulgoa'},
+ '61247054':{'en': 'Mount Wilson'},
+ '61247055':{'en': 'Penrith'},
  '61247056':{'en': 'Mulgoa'},
- '61247057':{'en': 'Penrith'},
+ '61247057':{'en': 'Katoomba'},
  '61247058':{'en': 'Katoomba'},
  '61247059':{'en': 'Lawson'},
  '61247060':{'en': 'Penrith'},
@@ -1922,8 +2017,8 @@ data = {
  '61247124':{'en': 'Mount Wilson'},
  '61247125':{'en': 'Mulgoa'},
  '61247126':{'en': 'Penrith'},
- '61247127':{'en': 'Katoomba'},
- '61247128':{'en': 'Lawson'},
+ '61247127':{'en': 'Lawson'},
+ '61247128':{'en': 'Penrith'},
  '61247129':{'en': 'Mount Wilson'},
  '61247130':{'en': 'Mulgoa'},
  '61247131':{'en': 'Penrith'},
@@ -1937,6 +2032,12 @@ data = {
  '61247139':{'en': 'Mount Wilson'},
  '61247140':{'en': 'Mulgoa'},
  '61247141':{'en': 'Penrith'},
+ '61247142':{'en': 'Penrith'},
+ '61247146':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247147':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247148':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247149':{'en': 'Lawson/Katoomba/Penrith'},
+ '6124715':{'en': 'Mount Wilson/Lawson'},
  '612472':{'en': 'Penrith'},
  '6124720':{'en': 'Mulgoa'},
  '612473':{'en': 'Penrith'},
@@ -1955,9 +2056,9 @@ data = {
  '6124743':{'en': 'Penrith'},
  '6124744':{'en': 'Penrith'},
  '61247444':{'en': 'Mulgoa'},
+ '6124745':{'en': 'Katoomba'},
  '6124747':{'en': 'Penrith'},
- '61247480':{'en': 'Penrith'},
- '61247489':{'en': 'Penrith'},
+ '6124748':{'en': 'Penrith'},
  '6124749':{'en': 'Penrith'},
  '6124750':{'en': 'Lawson'},
  '6124751':{'en': 'Penrith'},
@@ -1987,6 +2088,7 @@ data = {
  '61247608':{'en': 'Katoomba'},
  '61247609':{'en': 'Katoomba'},
  '6124761':{'en': 'Penrith'},
+ '6124762':{'en': 'Mulgoa'},
  '6124773':{'en': 'Mulgoa'},
  '6124774':{'en': 'Mulgoa'},
  '6124775':{'en': 'Mulgoa'},
@@ -2009,12 +2111,14 @@ data = {
  '61247835':{'en': 'Mulgoa'},
  '61247836':{'en': 'Mulgoa'},
  '61247837':{'en': 'Penrith'},
+ '61247838':{'en': 'Penrith'},
  '6124784':{'en': 'Katoomba'},
  '6124785':{'en': 'Katoomba'},
  '6124786':{'en': 'Penrith'},
  '6124787':{'en': 'Katoomba'},
  '6124788':{'en': 'Katoomba'},
  '6124789':{'en': 'Penrith'},
+ '6124790':{'en': 'Penrith'},
  '61247999':{'en': 'Penrith'},
  '61248000':{'en': 'Barrallier'},
  '61248001':{'en': 'Barrallier'},
@@ -2108,6 +2212,7 @@ data = {
  '61248098':{'en': 'Lost River'},
  '61248099':{'en': 'Rugby'},
  '61248100':{'en': 'Goulburn'},
+ '61248101':{'en': 'Goulburn'},
  '61248107':{'en': 'Gundillion'},
  '61248108':{'en': 'Lost River'},
  '61248109':{'en': 'Nerriga'},
@@ -2121,8 +2226,8 @@ data = {
  '61248117':{'en': 'Crookwell'},
  '61248118':{'en': 'Lost River'},
  '61248119':{'en': 'Rugby'},
- '61248120':{'en': 'Tuena'},
- '61248121':{'en': 'Bevendale'},
+ '61248120':{'en': 'Robertson'},
+ '61248121':{'en': 'Marulan'},
  '61248122':{'en': 'Braidwood'},
  '61248123':{'en': 'Breadalbane'},
  '61248124':{'en': 'Bungonia'},
@@ -2329,6 +2434,8 @@ data = {
  '61248517':{'en': 'Bungonia'},
  '61248518':{'en': 'Robertson'},
  '61248519':{'en': 'Yerrinbool'},
+ '61248520':{'en': 'Lost River'},
+ '61248521':{'en': 'Gundillion'},
  '61248526':{'en': 'Braidwood'},
  '61248527':{'en': 'Breadalbane'},
  '61248528':{'en': 'Gundillion'},
@@ -2522,6 +2629,7 @@ data = {
  '61248797':{'en': 'Taralga'},
  '61248798':{'en': 'Golspie'},
  '61248799':{'en': 'Bowral'},
+ '61248800':{'en': 'Nerriga'},
  '61248801':{'en': 'Bowral'},
  '61248802':{'en': 'Gundillion'},
  '61248803':{'en': 'Crookwell'},
@@ -2531,6 +2639,8 @@ data = {
  '61248807':{'en': 'Tuena'},
  '61248808':{'en': 'Rugby'},
  '61248809':{'en': 'Braidwood'},
+ '6124881':{'en': 'Tarago/Woodhouselee/Robertson'},
+ '6124882':{'en': 'Tarago/Woodhouselee/Robertson'},
  '6124883':{'en': 'Bundanoon'},
  '61248839':{'en': 'Yerrinbool'},
  '6124884':{'en': 'Bundanoon'},
@@ -2546,6 +2656,7 @@ data = {
  '6124889':{'en': 'Yerrinbool'},
  '61248900':{'en': 'Tuena'},
  '61248901':{'en': 'Goulburn'},
+ '61248902':{'en': 'Tuena'},
  '61248997':{'en': 'Bowral'},
  '61248998':{'en': 'Goulburn'},
  '61248999':{'en': 'Goulburn'},
@@ -2793,6 +2904,7 @@ data = {
  '61250087':{'en': 'Albury'},
  '61250088':{'en': 'Albury'},
  '61250089':{'en': 'Albury'},
+ '61250105':{'en': 'Albury'},
  '61250106':{'en': 'Balldale'},
  '61250107':{'en': 'Barnawartha'},
  '61250108':{'en': 'Coppabella'},
@@ -2849,33 +2961,33 @@ data = {
  '61250159':{'en': 'Walwa'},
  '61250160':{'en': 'Yackandandah'},
  '61250161':{'en': 'Albury'},
- '61250162':{'en': 'Balldale'},
- '61250163':{'en': 'Barnawartha'},
- '61250164':{'en': 'Coppabella'},
- '61250165':{'en': 'Corowa'},
- '61250166':{'en': 'Corryong'},
- '61250167':{'en': 'Cudgewa'},
- '61250168':{'en': 'Culcairn'},
- '61250169':{'en': 'Dartmouth'},
- '61250170':{'en': 'Eskdale'},
- '61250171':{'en': 'Gerogery'},
- '61250172':{'en': 'Holbrook'},
- '61250173':{'en': 'Howlong'},
- '61250174':{'en': 'Koetong'},
- '61250175':{'en': 'Leicester Park'},
- '61250176':{'en': 'Little Billabong'},
- '61250177':{'en': 'Nariel'},
- '61250178':{'en': 'Oaklands'},
- '61250179':{'en': 'Ournie'},
- '61250180':{'en': 'Rand'},
- '61250181':{'en': 'Rennie'},
- '61250182':{'en': 'Talgarno'},
- '61250183':{'en': 'Tallangatta'},
- '61250184':{'en': 'Tallangatta Valley'},
- '61250185':{'en': 'Talmalmo'},
- '61250186':{'en': 'Walla Walla'},
- '61250187':{'en': 'Walwa'},
- '61250188':{'en': 'Yackandandah'},
+ '61250162':{'en': 'Albury'},
+ '61250163':{'en': 'Balldale'},
+ '61250164':{'en': 'Balldale'},
+ '61250165':{'en': 'Barnawartha'},
+ '61250166':{'en': 'Barnawartha'},
+ '61250167':{'en': 'Coppabella'},
+ '61250168':{'en': 'Coppabella'},
+ '61250169':{'en': 'Corowa'},
+ '61250170':{'en': 'Corowa'},
+ '61250171':{'en': 'Corryong'},
+ '61250172':{'en': 'Corryong'},
+ '61250173':{'en': 'Cudgewa'},
+ '61250174':{'en': 'Cudgewa'},
+ '61250175':{'en': 'Culcairn'},
+ '61250176':{'en': 'Culcairn'},
+ '61250177':{'en': 'Dartmouth'},
+ '61250178':{'en': 'Dartmouth'},
+ '61250179':{'en': 'Eskdale'},
+ '61250180':{'en': 'Eskdale'},
+ '61250181':{'en': 'Gerogery'},
+ '61250182':{'en': 'Gerogery'},
+ '61250183':{'en': 'Holbrook'},
+ '61250184':{'en': 'Holbrook'},
+ '61250185':{'en': 'Howlong'},
+ '61250186':{'en': 'Howlong'},
+ '61250187':{'en': 'Koetong'},
+ '61250188':{'en': 'Koetong'},
  '61250189':{'en': 'Albury'},
  '61250190':{'en': 'Balldale'},
  '61250191':{'en': 'Barnawartha'},
@@ -2904,34 +3016,45 @@ data = {
  '61250214':{'en': 'Walla Walla'},
  '61250215':{'en': 'Walwa'},
  '61250216':{'en': 'Yackandandah'},
- '61250217':{'en': 'Albury'},
- '61250218':{'en': 'Balldale'},
- '61250219':{'en': 'Barnawartha'},
- '61250220':{'en': 'Coppabella'},
- '61250221':{'en': 'Corowa'},
- '61250222':{'en': 'Corryong'},
- '61250223':{'en': 'Cudgewa'},
- '61250224':{'en': 'Culcairn'},
- '61250225':{'en': 'Dartmouth'},
- '61250226':{'en': 'Eskdale'},
- '61250227':{'en': 'Gerogery'},
- '61250228':{'en': 'Holbrook'},
- '61250229':{'en': 'Howlong'},
- '61250230':{'en': 'Koetong'},
- '61250231':{'en': 'Leicester Park'},
- '61250232':{'en': 'Little Billabong'},
- '61250233':{'en': 'Nariel'},
- '61250234':{'en': 'Oaklands'},
- '61250235':{'en': 'Ournie'},
- '61250236':{'en': 'Rand'},
- '61250237':{'en': 'Rennie'},
- '61250238':{'en': 'Talgarno'},
- '61250239':{'en': 'Tallangatta'},
- '61250240':{'en': 'Tallangatta Valley'},
- '61250241':{'en': 'Talmalmo'},
- '61250242':{'en': 'Walla Walla'},
- '61250243':{'en': 'Walwa'},
+ '61250217':{'en': 'Leicester Park'},
+ '61250218':{'en': 'Leicester Park'},
+ '61250219':{'en': 'Little Billabong'},
+ '61250220':{'en': 'Little Billabong'},
+ '61250221':{'en': 'Nariel'},
+ '61250222':{'en': 'Nariel'},
+ '61250223':{'en': 'Oaklands'},
+ '61250224':{'en': 'Oaklands'},
+ '61250225':{'en': 'Ournie'},
+ '61250226':{'en': 'Ournie'},
+ '61250227':{'en': 'Rand'},
+ '61250228':{'en': 'Rand'},
+ '61250229':{'en': 'Rennie'},
+ '61250230':{'en': 'Rennie'},
+ '61250231':{'en': 'Talgarno'},
+ '61250232':{'en': 'Talgarno'},
+ '61250233':{'en': 'Tallangatta'},
+ '61250234':{'en': 'Tallangatta'},
+ '61250235':{'en': 'Tallangatta Valley'},
+ '61250236':{'en': 'Tallangatta Valley'},
+ '61250237':{'en': 'Talmalmo'},
+ '61250238':{'en': 'Talmalmo'},
+ '61250239':{'en': 'Walla Walla'},
+ '61250240':{'en': 'Walla Walla'},
+ '61250241':{'en': 'Walwa'},
+ '61250242':{'en': 'Walwa'},
+ '61250243':{'en': 'Yackandandah'},
  '61250244':{'en': 'Yackandandah'},
+ '61250245':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250246':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250247':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250248':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250249':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '6125025':{'en': 'Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park'},
+ '6125026':{'en': 'Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo'},
+ '6125027':{'en': 'Walla Walla/Walwa/Yackandandah/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta'},
+ '6125028':{'en': 'Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah/Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '6125029':{'en': 'Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park'},
+ '612503':{'en': 'Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah'},
  '612510':{'en': 'Canberra'},
  '61251010':{'en': 'Anembo'},
  '61251011':{'en': 'Binalong'},
@@ -9896,127 +10019,4 @@ data = {
  '61263008':{'en': 'Yetholme'},
  '61263009':{'en': 'Canowindra'},
  '61263010':{'en': 'Baldry'},
- '61263011':{'en': 'Baldry'},
- '61263012':{'en': 'Baldry'},
- '61263013':{'en': 'Bathurst'},
- '61263014':{'en': 'Bathurst'},
- '61263015':{'en': 'Bathurst'},
- '61263016':{'en': 'Birriwa'},
- '61263017':{'en': 'Birriwa'},
- '61263018':{'en': 'Birriwa'},
- '61263019':{'en': 'Bathurst'},
- '61263020':{'en': 'Blayney'},
- '61263021':{'en': 'Blayney'},
- '61263022':{'en': 'Blayney'},
- '61263023':{'en': 'Boorowa'},
- '61263024':{'en': 'Boorowa'},
- '61263025':{'en': 'Boorowa'},
- '61263026':{'en': 'Bribbaree'},
- '61263027':{'en': 'Bribbaree'},
- '61263028':{'en': 'Bribbaree'},
- '61263029':{'en': 'Burraga'},
- '61263030':{'en': 'Burraga'},
- '61263031':{'en': 'Burraga'},
- '61263032':{'en': 'Burraga'},
- '61263033':{'en': 'Bylong'},
- '61263034':{'en': 'Bylong'},
- '61263035':{'en': 'Bylong'},
- '61263036':{'en': 'Canowindra'},
- '61263037':{'en': 'Canowindra'},
- '61263038':{'en': 'Canowindra'},
- '612630390':{'en': 'Gingkin'},
- '612630391':{'en': 'Gingkin'},
- '612630392':{'en': 'Gingkin'},
- '612630393':{'en': 'Gingkin'},
- '612630394':{'en': 'Burraga'},
- '612630395':{'en': 'Burraga'},
- '612630396':{'en': 'Gingkin'},
- '612630397':{'en': 'Burraga'},
- '612630398':{'en': 'Burraga'},
- '612630399':{'en': 'Burraga'},
- '61263040':{'en': 'Caragabal'},
- '61263041':{'en': 'Caragabal'},
- '61263042':{'en': 'Caragabal'},
- '61263043':{'en': 'Cassilis'},
- '61263044':{'en': 'Cassilis'},
- '61263045':{'en': 'Cassilis'},
- '61263046':{'en': 'Coolah'},
- '61263047':{'en': 'Coolah'},
- '61263048':{'en': 'Coolah'},
- '612630490':{'en': 'Hill End'},
- '612630491':{'en': 'Hill End'},
- '612630492':{'en': 'Hill End'},
- '612630493':{'en': 'Hill End'},
- '612630494':{'en': 'Burraga'},
- '612630495':{'en': 'Burraga'},
- '612630496':{'en': 'Hill End'},
- '612630497':{'en': 'Burraga'},
- '612630498':{'en': 'Burraga'},
- '612630499':{'en': 'Burraga'},
- '61263050':{'en': 'Windeyer'},
- '61263051':{'en': 'Windeyer'},
- '61263052':{'en': 'Windeyer'},
- '61263053':{'en': 'Windeyer'},
- '61263054':{'en': 'Blayney'},
- '61263055':{'en': 'Blayney'},
- '61263056':{'en': 'Bathurst'},
- '61263057':{'en': 'Cowra'},
- '61263058':{'en': 'Cowra'},
- '61263059':{'en': 'Cowra'},
- '61263060':{'en': 'Cudal'},
- '61263061':{'en': 'Cudal'},
- '61263062':{'en': 'Cudal'},
- '61263063':{'en': 'Cumnock'},
- '61263064':{'en': 'Cumnock'},
- '61263065':{'en': 'Cumnock'},
- '61263066':{'en': 'Dunedoo'},
- '61263067':{'en': 'Dunedoo'},
- '61263068':{'en': 'Dunedoo'},
- '612630690':{'en': 'Killongbutta'},
- '612630691':{'en': 'Killongbutta'},
- '612630692':{'en': 'Killongbutta'},
- '612630693':{'en': 'Killongbutta'},
- '612630694':{'en': 'Burraga'},
- '612630695':{'en': 'Burraga'},
- '612630696':{'en': 'Killongbutta'},
- '612630697':{'en': 'Burraga'},
- '612630698':{'en': 'Burraga'},
- '612630699':{'en': 'Burraga'},
- '61263070':{'en': 'Euchareena'},
- '61263071':{'en': 'Euchareena'},
- '61263072':{'en': 'Euchareena'},
- '61263073':{'en': 'Frogmore'},
- '61263074':{'en': 'Frogmore'},
- '61263075':{'en': 'Frogmore'},
- '61263076':{'en': 'Galong'},
- '61263077':{'en': 'Galong'},
- '61263078':{'en': 'Galong'},
- '612630790':{'en': 'Limekilns'},
- '612630791':{'en': 'Limekilns'},
- '612630792':{'en': 'Limekilns'},
- '612630793':{'en': 'Limekilns'},
- '612630794':{'en': 'Burraga'},
- '612630795':{'en': 'Burraga'},
- '612630796':{'en': 'Limekilns'},
- '612630797':{'en': 'Burraga'},
- '612630798':{'en': 'Burraga'},
- '612630799':{'en': 'Burraga'},
- '61263080':{'en': 'Gingkin'},
- '61263081':{'en': 'Gingkin'},
- '61263082':{'en': 'Gingkin'},
- '61263083':{'en': 'Glen Davis'},
- '61263084':{'en': 'Glen Davis'},
- '61263085':{'en': 'Glen Davis'},
- '61263086':{'en': 'Gooloogong'},
- '61263087':{'en': 'Gooloogong'},
- '61263088':{'en': 'Gooloogong'},
- '612630890':{'en': 'Oberon'},
- '612630891':{'en': 'Oberon'},
- '612630892':{'en': 'Oberon'},
- '612630893':{'en': 'Oberon'},
- '612630894':{'en': 'Burraga'},
- '612630895':{'en': 'Burraga'},
- '612630896':{'en': 'Oberon'},
- '612630897':{'en': 'Burraga'},
- '612630898':{'en': 'Burraga'},
 }
diff --git a/python/phonenumbers/geodata/data9.py b/python/phonenumbers/geodata/data9.py
index c3dc5a0b..efb7dd8d 100644
--- a/python/phonenumbers/geodata/data9.py
+++ b/python/phonenumbers/geodata/data9.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
 # limitations under the License.
 
 data = {
+ '61263011':{'en': 'Baldry'},
+ '61263012':{'en': 'Baldry'},
+ '61263013':{'en': 'Bathurst'},
+ '61263014':{'en': 'Bathurst'},
+ '61263015':{'en': 'Bathurst'},
+ '61263016':{'en': 'Birriwa'},
+ '61263017':{'en': 'Birriwa'},
+ '61263018':{'en': 'Birriwa'},
+ '61263019':{'en': 'Bathurst'},
+ '61263020':{'en': 'Blayney'},
+ '61263021':{'en': 'Blayney'},
+ '61263022':{'en': 'Blayney'},
+ '61263023':{'en': 'Boorowa'},
+ '61263024':{'en': 'Boorowa'},
+ '61263025':{'en': 'Boorowa'},
+ '61263026':{'en': 'Bribbaree'},
+ '61263027':{'en': 'Bribbaree'},
+ '61263028':{'en': 'Bribbaree'},
+ '61263029':{'en': 'Burraga'},
+ '61263030':{'en': 'Burraga'},
+ '61263031':{'en': 'Burraga'},
+ '61263032':{'en': 'Burraga'},
+ '61263033':{'en': 'Bylong'},
+ '61263034':{'en': 'Bylong'},
+ '61263035':{'en': 'Bylong'},
+ '61263036':{'en': 'Canowindra'},
+ '61263037':{'en': 'Canowindra'},
+ '61263038':{'en': 'Canowindra'},
+ '612630390':{'en': 'Gingkin'},
+ '612630391':{'en': 'Gingkin'},
+ '612630392':{'en': 'Gingkin'},
+ '612630393':{'en': 'Gingkin'},
+ '612630394':{'en': 'Burraga'},
+ '612630395':{'en': 'Burraga'},
+ '612630396':{'en': 'Gingkin'},
+ '612630397':{'en': 'Burraga'},
+ '612630398':{'en': 'Burraga'},
+ '612630399':{'en': 'Burraga'},
+ '61263040':{'en': 'Caragabal'},
+ '61263041':{'en': 'Caragabal'},
+ '61263042':{'en': 'Caragabal'},
+ '61263043':{'en': 'Cassilis'},
+ '61263044':{'en': 'Cassilis'},
+ '61263045':{'en': 'Cassilis'},
+ '61263046':{'en': 'Coolah'},
+ '61263047':{'en': 'Coolah'},
+ '61263048':{'en': 'Coolah'},
+ '612630490':{'en': 'Hill End'},
+ '612630491':{'en': 'Hill End'},
+ '612630492':{'en': 'Hill End'},
+ '612630493':{'en': 'Hill End'},
+ '612630494':{'en': 'Burraga'},
+ '612630495':{'en': 'Burraga'},
+ '612630496':{'en': 'Hill End'},
+ '612630497':{'en': 'Burraga'},
+ '612630498':{'en': 'Burraga'},
+ '612630499':{'en': 'Burraga'},
+ '61263050':{'en': 'Windeyer'},
+ '61263051':{'en': 'Windeyer'},
+ '61263052':{'en': 'Windeyer'},
+ '61263053':{'en': 'Windeyer'},
+ '61263054':{'en': 'Blayney'},
+ '61263055':{'en': 'Blayney'},
+ '61263056':{'en': 'Bathurst'},
+ '61263057':{'en': 'Cowra'},
+ '61263058':{'en': 'Cowra'},
+ '61263059':{'en': 'Cowra'},
+ '61263060':{'en': 'Cudal'},
+ '61263061':{'en': 'Cudal'},
+ '61263062':{'en': 'Cudal'},
+ '61263063':{'en': 'Cumnock'},
+ '61263064':{'en': 'Cumnock'},
+ '61263065':{'en': 'Cumnock'},
+ '61263066':{'en': 'Dunedoo'},
+ '61263067':{'en': 'Dunedoo'},
+ '61263068':{'en': 'Dunedoo'},
+ '612630690':{'en': 'Killongbutta'},
+ '612630691':{'en': 'Killongbutta'},
+ '612630692':{'en': 'Killongbutta'},
+ '612630693':{'en': 'Killongbutta'},
+ '612630694':{'en': 'Burraga'},
+ '612630695':{'en': 'Burraga'},
+ '612630696':{'en': 'Killongbutta'},
+ '612630697':{'en': 'Burraga'},
+ '612630698':{'en': 'Burraga'},
+ '612630699':{'en': 'Burraga'},
+ '61263070':{'en': 'Euchareena'},
+ '61263071':{'en': 'Euchareena'},
+ '61263072':{'en': 'Euchareena'},
+ '61263073':{'en': 'Frogmore'},
+ '61263074':{'en': 'Frogmore'},
+ '61263075':{'en': 'Frogmore'},
+ '61263076':{'en': 'Galong'},
+ '61263077':{'en': 'Galong'},
+ '61263078':{'en': 'Galong'},
+ '612630790':{'en': 'Limekilns'},
+ '612630791':{'en': 'Limekilns'},
+ '612630792':{'en': 'Limekilns'},
+ '612630793':{'en': 'Limekilns'},
+ '612630794':{'en': 'Burraga'},
+ '612630795':{'en': 'Burraga'},
+ '612630796':{'en': 'Limekilns'},
+ '612630797':{'en': 'Burraga'},
+ '612630798':{'en': 'Burraga'},
+ '612630799':{'en': 'Burraga'},
+ '61263080':{'en': 'Gingkin'},
+ '61263081':{'en': 'Gingkin'},
+ '61263082':{'en': 'Gingkin'},
+ '61263083':{'en': 'Glen Davis'},
+ '61263084':{'en': 'Glen Davis'},
+ '61263085':{'en': 'Glen Davis'},
+ '61263086':{'en': 'Gooloogong'},
+ '61263087':{'en': 'Gooloogong'},
+ '61263088':{'en': 'Gooloogong'},
+ '612630890':{'en': 'Oberon'},
+ '612630891':{'en': 'Oberon'},
+ '612630892':{'en': 'Oberon'},
+ '612630893':{'en': 'Oberon'},
+ '612630894':{'en': 'Burraga'},
+ '612630895':{'en': 'Burraga'},
+ '612630896':{'en': 'Oberon'},
+ '612630897':{'en': 'Burraga'},
+ '612630898':{'en': 'Burraga'},
  '612630899':{'en': 'Burraga'},
  '61263090':{'en': 'Greenethorpe'},
  '61263091':{'en': 'Greenethorpe'},
@@ -9896,127 +10019,4 @@ data = {
  '61348004':{'en': 'Cobram'},
  '61348006':{'en': 'Tocumwal'},
  '61348007':{'en': 'Cobram'},
- '61348009':{'en': 'Berrigan'},
- '61348010':{'en': 'Blighty'},
- '61348011':{'en': 'Brassi'},
- '61348012':{'en': 'Caldwell'},
- '61348013':{'en': 'Cobram'},
- '61348014':{'en': 'Conargo'},
- '61348015':{'en': 'Cornalla'},
- '61348016':{'en': 'Deniliquin'},
- '61348017':{'en': 'Dookie'},
- '61348018':{'en': 'Finley'},
- '61348019':{'en': 'Jerilderie'},
- '61348020':{'en': 'Jimaringle'},
- '61348021':{'en': 'Katamatite'},
- '61348022':{'en': 'Katandra West'},
- '61348023':{'en': 'Kialla East'},
- '61348024':{'en': 'Kyabram'},
- '61348025':{'en': 'Lalalty'},
- '61348026':{'en': 'Logie Brae'},
- '61348027':{'en': 'Mabins Well'},
- '61348028':{'en': 'Mathoura'},
- '61348029':{'en': 'Moulamein'},
- '61348030':{'en': 'Nathalia'},
- '61348031':{'en': 'Numurkah'},
- '61348032':{'en': 'Picola'},
- '61348033':{'en': 'Rushworth'},
- '61348034':{'en': 'Shepparton'},
- '61348035':{'en': 'Tatura'},
- '61348036':{'en': 'Tocumwal'},
- '61348037':{'en': 'Tongala'},
- '61348038':{'en': 'Undera'},
- '61348039':{'en': 'Wakool'},
- '6134804':{'en': 'Shepparton'},
- '61348040':{'en': 'Wanganella'},
- '61348041':{'en': 'Yalca'},
- '61348050':{'en': 'Tatura'},
- '61348051':{'en': 'Shepparton'},
- '61348052':{'en': 'Kialla East'},
- '61348053':{'en': 'Kyabram'},
- '61348054':{'en': 'Berrigan'},
- '61348055':{'en': 'Blighty'},
- '61348056':{'en': 'Brassi'},
- '61348057':{'en': 'Caldwell'},
- '61348058':{'en': 'Cobram'},
- '61348059':{'en': 'Conargo'},
- '61348060':{'en': 'Cornalla'},
- '61348061':{'en': 'Deniliquin'},
- '61348062':{'en': 'Dookie'},
- '61348063':{'en': 'Finley'},
- '61348064':{'en': 'Jerilderie'},
- '61348065':{'en': 'Jimaringle'},
- '61348066':{'en': 'Katamatite'},
- '61348067':{'en': 'Katandra West'},
- '61348068':{'en': 'Kialla East'},
- '61348069':{'en': 'Kyabram'},
- '61348070':{'en': 'Lalalty'},
- '61348071':{'en': 'Logie Brae'},
- '61348072':{'en': 'Mabins Well'},
- '61348073':{'en': 'Mathoura'},
- '61348074':{'en': 'Moulamein'},
- '61348075':{'en': 'Nathalia'},
- '61348076':{'en': 'Numurkah'},
- '61348077':{'en': 'Picola'},
- '61348078':{'en': 'Rushworth'},
- '61348079':{'en': 'Shepparton'},
- '61348080':{'en': 'Tatura'},
- '61348081':{'en': 'Tocumwal'},
- '61348082':{'en': 'Tongala'},
- '61348083':{'en': 'Undera'},
- '61348084':{'en': 'Wakool'},
- '61348085':{'en': 'Wanganella'},
- '61348086':{'en': 'Yalca'},
- '61348087':{'en': 'Tatura'},
- '61348088':{'en': 'Tatura'},
- '61348089':{'en': 'Tatura'},
- '61348090':{'en': 'Berrigan'},
- '61348091':{'en': 'Blighty'},
- '61348092':{'en': 'Brassi'},
- '61348093':{'en': 'Caldwell'},
- '61348094':{'en': 'Cobram'},
- '61348095':{'en': 'Conargo'},
- '61348096':{'en': 'Cornalla'},
- '61348097':{'en': 'Deniliquin'},
- '61348098':{'en': 'Dookie'},
- '61348099':{'en': 'Finley'},
- '61348100':{'en': 'Jerilderie'},
- '61348101':{'en': 'Jimaringle'},
- '61348102':{'en': 'Katamatite'},
- '61348103':{'en': 'Katandra West'},
- '61348104':{'en': 'Kialla East'},
- '61348105':{'en': 'Kyabram'},
- '61348106':{'en': 'Lalalty'},
- '61348107':{'en': 'Logie Brae'},
- '61348108':{'en': 'Mabins Well'},
- '61348109':{'en': 'Mathoura'},
- '61348110':{'en': 'Moulamein'},
- '61348111':{'en': 'Nathalia'},
- '61348112':{'en': 'Numurkah'},
- '61348113':{'en': 'Picola'},
- '61348114':{'en': 'Rushworth'},
- '61348115':{'en': 'Shepparton'},
- '61348116':{'en': 'Tatura'},
- '61348117':{'en': 'Tocumwal'},
- '61348118':{'en': 'Tongala'},
- '61348119':{'en': 'Undera'},
- '6134812':{'en': 'Shepparton'},
- '61348120':{'en': 'Wakool'},
- '61348130':{'en': 'Shepparton'},
- '61348131':{'en': 'Wanganella'},
- '61348132':{'en': 'Yalca'},
- '61348133':{'en': 'Tongala'},
- '61348134':{'en': 'Tongala'},
- '61348135':{'en': 'Tongala'},
- '61348136':{'en': 'Tocumwal'},
- '61348137':{'en': 'Tocumwal'},
- '61348138':{'en': 'Tocumwal'},
- '61348139':{'en': 'Berrigan'},
- '61348140':{'en': 'Blighty'},
- '61348141':{'en': 'Brassi'},
- '61348142':{'en': 'Caldwell'},
- '61348143':{'en': 'Cobram'},
- '61348144':{'en': 'Conargo'},
- '61348145':{'en': 'Cornalla'},
- '61348146':{'en': 'Deniliquin'},
 }
diff --git a/python/phonenumbers/phonenumber.py b/python/phonenumbers/phonenumber.py
index 26c084bd..ef0c1238 100644
--- a/python/phonenumbers/phonenumber.py
+++ b/python/phonenumbers/phonenumber.py
@@ -17,7 +17,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 from .util import UnicodeMixin, ImmutableMixin, mutating_method
-from .util import to_long, unicod, rpr, force_unicode
+from .util import to_long, unicod, rpr, force_unicode, u
 
 
 class CountryCodeSource(object):
@@ -48,6 +48,20 @@ class CountryCodeSource(object):
     # supplied as France.
     FROM_DEFAULT_COUNTRY = 20
 
+    @classmethod
+    def to_string(cls, val):
+        """Return a string representation of a CountryCodeSource value"""
+        if val == CountryCodeSource.UNSPECIFIED:
+            return u("UNSPECIFIED")
+        elif val == CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN:
+            return u("FROM_NUMBER_WITH_PLUS_SIGN")
+        elif val == CountryCodeSource.FROM_NUMBER_WITH_IDD:
+            return u("FROM_NUMBER_WITH_IDD")
+        elif val == CountryCodeSource.FROM_DEFAULT_COUNTRY:
+            return u("FROM_DEFAULT_COUNTRY")
+        else:
+            return u("INVALID (%d)" % val)
+
 
 class PhoneNumber(UnicodeMixin):
     """Class representing international telephone numbers.
diff --git a/python/phonenumbers/phonenumber.pyi b/python/phonenumbers/phonenumber.pyi
index 668ec639..76daea8c 100644
--- a/python/phonenumbers/phonenumber.pyi
+++ b/python/phonenumbers/phonenumber.pyi
@@ -9,6 +9,8 @@ class CountryCodeSource:
     FROM_NUMBER_WITH_IDD: int
     FROM_NUMBER_WITHOUT_PLUS_SIGN: int
     FROM_DEFAULT_COUNTRY: int
+    @classmethod
+    def to_string(cls, val: int) -> str: ...
 
 class PhoneNumber(UnicodeMixin):
     country_code: int | None
diff --git a/python/phonenumbers/phonenumberutil.py b/python/phonenumbers/phonenumberutil.py
index fe5418cc..9964016c 100644
--- a/python/phonenumbers/phonenumberutil.py
+++ b/python/phonenumbers/phonenumberutil.py
@@ -368,6 +368,21 @@ def _create_extn_pattern(for_parsing):
 _EXTN_PATTERNS_FOR_PARSING = _create_extn_pattern(True)
 _EXTN_PATTERNS_FOR_MATCHING = _create_extn_pattern(False)
 
+# Regular expression of valid global-number-digits for the phone-context
+# parameter, following the syntax defined in RFC3966.
+_RFC3966_VISUAL_SEPARATOR = "[\\-\\.\\(\\)]?"
+_RFC3966_PHONE_DIGIT = "(" + _DIGITS + "|" + _RFC3966_VISUAL_SEPARATOR + ")"
+_RFC3966_GLOBAL_NUMBER_DIGITS = "^\\" + _PLUS_SIGN + _RFC3966_PHONE_DIGIT + "*" + _DIGITS + _RFC3966_PHONE_DIGIT + "*$"
+_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN = re.compile(_RFC3966_GLOBAL_NUMBER_DIGITS)
+
+# Regular expression of valid domainname for the phone-context parameter,
+# following the syntax defined in RFC3966.
+_ALPHANUM = _VALID_ALPHA + _DIGITS
+_RFC3966_DOMAINLABEL = "[" + _ALPHANUM + "]+((\\-)*[" + _ALPHANUM + "])*"
+_RFC3966_TOPLABEL = "[" + _VALID_ALPHA + "]+((\\-)*[" + _ALPHANUM + "])*"
+_RFC3966_DOMAINNAME = "^(" + _RFC3966_DOMAINLABEL + "\\.)*" + _RFC3966_TOPLABEL + "\\.?$"
+_RFC3966_DOMAINNAME_PATTERN = re.compile(_RFC3966_DOMAINNAME)
+
 # Regexp of all known extension prefixes used by different regions followed by
 # 1 or more valid digits, for use when parsing.
 _EXTN_PATTERN = re.compile(u("(?:") + _EXTN_PATTERNS_FOR_PARSING + u(")$"), _REGEX_FLAGS)
@@ -1445,8 +1460,8 @@ def format_out_of_country_calling_number(numobj, region_calling_from):
 def format_in_original_format(numobj, region_calling_from):
     """Formats a phone number using the original phone number format
     (e.g. INTERNATIONAL or NATIONAL) that the number is parsed from, provided
-    that the number has been parsed with parse_and_keep_raw_input. Otherwise the
-    number will be formatted in NATIONAL format.
+    that the number has been parsed with parse(.., keep_raw_input=True).
+    Otherwise the number will be formatted in NATIONAL format.
 
     The original format is embedded in the country_code_source field of the
     PhoneNumber object passed in, which is only set when parsing keeps the raw
@@ -3010,26 +3025,60 @@ def parse(number, region=None, keep_raw_input=False,
     return numobj
 
 
+def _extract_phone_context(number_to_extract_from, index_of_phone_context):
+    """Extracts the value of the phone-context parameter of number_to_extract_from where the index of
+    ";phone-context=" is the parameter index_of_phone_context, following the syntax defined in
+    RFC3966.
+
+    Returns the extracted string (possibly empty), or None if no phone-context parameter is found."""
+    # If no phone-context parameter is present
+    if index_of_phone_context == -1:
+        return None
+
+    phone_context_start = index_of_phone_context + len(_RFC3966_PHONE_CONTEXT)
+    # If phone-context parameter is empty
+    if phone_context_start >= len(number_to_extract_from):
+        return U_EMPTY_STRING
+
+    phone_context_end = number_to_extract_from.find(';', phone_context_start)
+    # If phone-context is not the last parameter
+    if phone_context_end != -1:
+        return number_to_extract_from[phone_context_start:phone_context_end]
+    else:
+        return number_to_extract_from[phone_context_start:]
+
+
+def _is_phone_context_valid(phone_context):
+    """"Returns whether the value of phoneContext follows the syntax defined in RFC3966."""
+    if phone_context is None:
+        return True
+    if len(phone_context) == 0:
+        return False
+
+    # Does phone-context value match pattern of global-number-digits or domainname
+    return (fullmatch(_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN, phone_context) or
+            fullmatch(_RFC3966_DOMAINNAME_PATTERN, phone_context))
+
+
 def _build_national_number_for_parsing(number):
     """Converts number to a form that we can parse and return it if it is
     written in RFC3966; otherwise extract a possible number out of it and return it."""
     index_of_phone_context = number.find(_RFC3966_PHONE_CONTEXT)
-    if index_of_phone_context >= 0:
-        phone_context_start = index_of_phone_context + len(_RFC3966_PHONE_CONTEXT)
+
+    phone_context = _extract_phone_context(number, index_of_phone_context)
+    if not _is_phone_context_valid(phone_context):
+        raise NumberParseException(NumberParseException.NOT_A_NUMBER, "The phone-context value is invalid")
+    if phone_context is not None:
         # If the phone context contains a phone number prefix, we need to
         # capture it, whereas domains will be ignored.
-        if (phone_context_start < (len(number) - 1) and
-            number[phone_context_start] == _PLUS_SIGN):
+        if phone_context[0] == _PLUS_SIGN:
             # Additional parameters might follow the phone context. If so, we
             # will remove them here because the parameters after phone context
             # are not important for parsing the phone number.
-            phone_context_end = number.find(U_SEMICOLON, phone_context_start)
-            if phone_context_end > 0:
-                national_number = number[phone_context_start:phone_context_end]
-            else:
-                national_number = number[phone_context_start:]
+            national_number = phone_context
         else:
             national_number = U_EMPTY_STRING
+
         # Now append everything between the "tel:" prefix and the
         # phone-context. This should include the national number, an optional
         # extension or isdn-subaddress component. Note we also handle the case
@@ -3281,6 +3330,12 @@ class NumberParseException(UnicodeMixin, Exception):
     # This generally indicates the string passed in had fewer than 3 digits in
     # it.  The number failed to match the regular expression
     # _VALID_PHONE_NUMBER in phonenumberutil.py.
+
+    # This indicates the string passed is not a valid number. Either the string
+    # had less than 3 digits in it or had an invalid phone-context
+    # parameter. More specifically, the number failed to match the regular
+    # expression _VALID_PHONE_NUMBER, )RFC3966_GLOBAL_NUMBER_DIGITS, or
+    # _RFC3966_DOMAINNAME in phonenumberutil.py.
     NOT_A_NUMBER = 1
 
     # This indicates the string started with an international dialing prefix,
diff --git a/python/phonenumbers/phonenumberutil.pyi b/python/phonenumbers/phonenumberutil.pyi
index 9b616411..e3fb34cb 100644
--- a/python/phonenumbers/phonenumberutil.pyi
+++ b/python/phonenumbers/phonenumberutil.pyi
@@ -55,6 +55,15 @@ def _create_extn_pattern(for_parsing: bool) -> str: ...
 
 _EXTN_PATTERNS_FOR_PARSING: str
 _EXTN_PATTERNS_FOR_MATCHING: str
+_RFC3966_VISUAL_SEPARATOR: str
+_RFC3966_PHONE_DIGIT: str
+_RFC3966_GLOBAL_NUMBER_DIGITS: str
+_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN: Pattern[str]
+_ALPHANUM: str
+_RFC3966_DOMAINLABEL: str
+_RFC3966_TOPLABEL: str
+_RFC3966_DOMAINNAME: str
+_RFC3966_DOMAINNAME_PATTERN: Pattern[str]
 _EXTN_PATTERN: Pattern[str]
 _VALID_PHONE_NUMBER_PATTERN: Pattern[str]
 NON_DIGITS_PATTERN: Pattern[str]
@@ -189,6 +198,8 @@ def _maybe_strip_extension(number: str) -> tuple[str, str]: ...
 def _check_region_for_parsing(number: str | None, default_region: str | None) -> bool: ...
 def _set_italian_leading_zeros_for_phone_number(national_number: str, numobj: PhoneNumber) -> None: ...
 def parse(number: str, region: str | None = ..., keep_raw_input: bool = ..., numobj: PhoneNumber | None = ..., _check_region: bool = ...) -> PhoneNumber: ...
+def _extract_phone_context(number_to_extract_from: str, index_of_phone_context:int) -> str | None: ...
+def _is_phone_context_valid(phone_context: str | None) -> bool: ...
 def _build_national_number_for_parsing(number: str) -> str: ...
 def _copy_core_fields_only(inobj: PhoneNumber) -> PhoneNumber: ...
 def _is_number_match_OO(numobj1_in: PhoneNumber, numobj2_in: PhoneNumber) -> int: ...
diff --git a/python/phonenumbers/shortdata/__init__.py b/python/phonenumbers/shortdata/__init__.py
index 883d9d75..49467e6a 100644
--- a/python/phonenumbers/shortdata/__init__.py
+++ b/python/phonenumbers/shortdata/__init__.py
@@ -1,5 +1,5 @@
 """Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/shortdata/region_AT.py b/python/phonenumbers/shortdata/region_AT.py
index b68fcca6..54ea681f 100644
--- a/python/phonenumbers/shortdata/region_AT.py
+++ b/python/phonenumbers/shortdata/region_AT.py
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_AT = PhoneMetadata(id='AT', country_code=None, international_prefix=None,
-    general_desc=PhoneNumberDesc(national_number_pattern='[168]\\d\\d(?:\\d{3})?', possible_length=(3, 6)),
-    toll_free=PhoneNumberDesc(national_number_pattern='116\\d{3}|1(?:[12]2|33|44)', example_number='112', possible_length=(3, 6)),
+    general_desc=PhoneNumberDesc(national_number_pattern='[168]\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:12|2[0238]|3[03]|4[0-247])|1(?:16\\d\\d|4[58])\\d', example_number='112', possible_length=(3, 4, 6)),
     emergency=PhoneNumberDesc(national_number_pattern='1(?:[12]2|33|44)', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='116(?:00[06]|1(?:17|23))|(?:61|8108[1-3])0|1(?:[12]2|33|44)', example_number='112', possible_length=(3, 6)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:17|23)))|2[0238]|3[03]|4(?:[0-247]|5[05]|84))|(?:61|8108[1-3])0', example_number='112', possible_length=(3, 4, 6)),
     carrier_specific=PhoneNumberDesc(national_number_pattern='610|810\\d{3}', example_number='610', possible_length=(3, 6)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_BE.py b/python/phonenumbers/shortdata/region_BE.py
index a32e192f..08470669 100644
--- a/python/phonenumbers/shortdata/region_BE.py
+++ b/python/phonenumbers/shortdata/region_BE.py
@@ -3,9 +3,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BE = PhoneMetadata(id='BE', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
-    toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[0-35-8]|1[02]|7(?:12|77)|813)|(?:116|8)\\d{3}', example_number='100', possible_length=(3, 4, 6)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[0-35-8]|1[0269]|7(?:12|77)|813)|(?:116|8)\\d{3}', example_number='100', possible_length=(3, 4, 6)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1(?:2[03]|40)4|(?:1(?:[24]1|3[01])|[2-79]\\d\\d)\\d', example_number='1204', possible_length=(4,)),
     emergency=PhoneNumberDesc(national_number_pattern='1(?:0[01]|12)', example_number='100', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:0[0-8]|1(?:[027]|6117)|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]', example_number='100', possible_length=(3, 4, 6)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:0[0-8]|16117|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|11[02679]|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]', example_number='100', possible_length=(3, 4, 6)),
     sms_services=PhoneNumberDesc(national_number_pattern='[2-9]\\d{3}', example_number='2000', possible_length=(4,)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_CH.py b/python/phonenumbers/shortdata/region_CH.py
index 7f02c859..51b1196c 100644
--- a/python/phonenumbers/shortdata/region_CH.py
+++ b/python/phonenumbers/shortdata/region_CH.py
@@ -4,9 +4,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_CH = PhoneMetadata(id='CH', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{2,5}', possible_length=(3, 4, 5, 6)),
     toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:[278]|6\\d{3})|4[47])|5200', example_number='112', possible_length=(3, 4, 6)),
-    premium_rate=PhoneNumberDesc(national_number_pattern='1(?:14|8[01589])\\d|543|83111', example_number='543', possible_length=(3, 4, 5)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='1(?:14|8[0-2589])\\d|543|83111', example_number='543', possible_length=(3, 4, 5)),
     emergency=PhoneNumberDesc(national_number_pattern='1(?:1[278]|44)', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[45])|6(?:00|[1-46])|8(?:02|1[189]|50|7|8[08]|99))|[2-9]\\d{2,4}', example_number='112', possible_length=(3, 4, 5, 6)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[0145])|6(?:00|[1-46])|8(?:02|1[189]|[25]0|7|8[08]|99))|[2-9]\\d{2,4}', example_number='112', possible_length=(3, 4, 5, 6)),
     standard_rate=PhoneNumberDesc(national_number_pattern='1(?:4[035]|6[1-46])|1(?:41|60)\\d', example_number='140', possible_length=(3, 4)),
     carrier_specific=PhoneNumberDesc(national_number_pattern='5(?:200|35)', example_number='535', possible_length=(3, 4)),
     sms_services=PhoneNumberDesc(national_number_pattern='[2-9]\\d{2,4}', example_number='200', possible_length=(3, 4, 5)),
diff --git a/python/phonenumbers/shortdata/region_CZ.py b/python/phonenumbers/shortdata/region_CZ.py
index 50f65e2c..05fa16c1 100644
--- a/python/phonenumbers/shortdata/region_CZ.py
+++ b/python/phonenumbers/shortdata/region_CZ.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_CZ = PhoneMetadata(id='CZ', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,5}', possible_length=(3, 4, 5, 6)),
-    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5[0568])', example_number='112', possible_length=(3, 6)),
-    emergency=PhoneNumberDesc(national_number_pattern='1(?:12|5[0568])', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5[0568]|99)|1(?:16|4)\\d{3}', example_number='112', possible_length=(3, 4, 5, 6)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5\\d)', example_number='112', possible_length=(3, 6)),
+    emergency=PhoneNumberDesc(national_number_pattern='1(?:12|5\\d)', example_number='112', possible_length=(3,)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5\\d|99)|1(?:16|4)\\d{3}', example_number='112', possible_length=(3, 4, 5, 6)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_DK.py b/python/phonenumbers/shortdata/region_DK.py
index 5efb646b..aee1e91b 100644
--- a/python/phonenumbers/shortdata/region_DK.py
+++ b/python/phonenumbers/shortdata/region_DK.py
@@ -2,8 +2,8 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_DK = PhoneMetadata(id='DK', country_code=None, international_prefix=None,
-    general_desc=PhoneNumberDesc(national_number_pattern='1\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
+    general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,5}', possible_length=(3, 4, 5, 6)),
     toll_free=PhoneNumberDesc(national_number_pattern='11(?:[24]|6\\d{3})', example_number='112', possible_length=(3, 6)),
     emergency=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:[2-48]|6(?:00[06]|111))|8(?:[08]1|1[0238]|28|30|5[13]))', example_number='112', possible_length=(3, 4, 6)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:[2-48]|6(?:00[06]|111))|619[0-2]|8(?:01|1[0238]|28|30|5[13]|8[18]))', example_number='112', possible_length=(3, 4, 5, 6)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FI.py b/python/phonenumbers/shortdata/region_FI.py
index 6e989433..46de3462 100644
--- a/python/phonenumbers/shortdata/region_FI.py
+++ b/python/phonenumbers/shortdata/region_FI.py
@@ -5,5 +5,5 @@ PHONE_METADATA_FI = PhoneMetadata(id='FI', country_code=None, international_pref
     general_desc=PhoneNumberDesc(national_number_pattern='[17]\\d\\d(?:\\d{2,3})?', possible_length=(3, 5, 6)),
     toll_free=PhoneNumberDesc(national_number_pattern='11(?:2|6\\d{3})', example_number='112', possible_length=(3, 6)),
     emergency=PhoneNumberDesc(national_number_pattern='112', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='11(?:2|6(?:00[06]|11[17]))|75[12]\\d\\d', example_number='112', possible_length=(3, 5, 6)),
+    short_code=PhoneNumberDesc(national_number_pattern='11(?:2|6(?:00[06]|1(?:1[17]|23)))|75[12]\\d\\d', example_number='112', possible_length=(3, 5, 6)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FO.py b/python/phonenumbers/shortdata/region_FO.py
index fa6e2749..93cb3009 100644
--- a/python/phonenumbers/shortdata/region_FO.py
+++ b/python/phonenumbers/shortdata/region_FO.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_FO = PhoneMetadata(id='FO', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,3}', possible_length=(3, 4)),
-    toll_free=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[24]|81\\d)', example_number='112', possible_length=(3, 4)),
     emergency=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='11[248]|1(?:4[124]|71|8[7-9])\\d', example_number='112', possible_length=(3, 4)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:1[248]|819)|1(?:4[124]|71|8[7-9])\\d', example_number='112', possible_length=(3, 4)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FR.py b/python/phonenumbers/shortdata/region_FR.py
index 9f0feef0..19915cfb 100644
--- a/python/phonenumbers/shortdata/region_FR.py
+++ b/python/phonenumbers/shortdata/region_FR.py
@@ -4,10 +4,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 PHONE_METADATA_FR = PhoneMetadata(id='FR', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[1-8]\\d{1,5}', possible_length=(2, 3, 4, 5, 6)),
     toll_free=PhoneNumberDesc(national_number_pattern='1(?:0(?:07|[13]3)|1[02459]|[578]|9[167])|224|(?:3370|74)0|(?:116\\d|3[01])\\d\\d', example_number='15', possible_length=(2, 3, 4, 5, 6)),
-    premium_rate=PhoneNumberDesc(national_number_pattern='(?:118|[4-8]\\d)\\d{3}|36665', example_number='36665', possible_length=(5, 6)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='366\\d\\d|3[2-9]\\d\\d|(?:118|[4-8]\\d)\\d{3}', example_number='3200', possible_length=(4, 5, 6)),
     emergency=PhoneNumberDesc(national_number_pattern='1(?:12|[578])', example_number='15', possible_length=(2, 3)),
     short_code=PhoneNumberDesc(national_number_pattern='1(?:0\\d\\d|1(?:[02459]|6(?:000|111)|8\\d{3})|[578]|9[167])|2(?:0(?:00|2)0|24)|[3-8]\\d{4}|3\\d{3}|6(?:1[14]|34)|7(?:0[06]|22|40)', example_number='15', possible_length=(2, 3, 4, 5, 6)),
-    standard_rate=PhoneNumberDesc(national_number_pattern='10(?:[134]4|2[23]|5\\d|99)|202\\d|3(?:646|9[07]0)|634|70[06]|(?:106|61)[14]', example_number='611', possible_length=(3, 4)),
+    standard_rate=PhoneNumberDesc(national_number_pattern='10(?:[134]4|2[23]|5\\d|99)|202\\d|634|70[06]|(?:106|61)[14]', example_number='611', possible_length=(3, 4)),
     carrier_specific=PhoneNumberDesc(national_number_pattern='118777|224|6(?:1[14]|34)|7(?:0[06]|22|40)|20(?:0\\d|2)\\d', example_number='224', possible_length=(3, 4, 5, 6)),
     sms_services=PhoneNumberDesc(national_number_pattern='114|[3-8]\\d{4}', example_number='114', possible_length=(3, 5)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_JO.py b/python/phonenumbers/shortdata/region_JO.py
index c26d00c1..95a6575a 100644
--- a/python/phonenumbers/shortdata/region_JO.py
+++ b/python/phonenumbers/shortdata/region_JO.py
@@ -3,9 +3,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_JO = PhoneMetadata(id='JO', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[19]\\d\\d(?:\\d{2})?', possible_length=(3, 5)),
-    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[24]|9[127])|911', example_number='112', possible_length=(3,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[235]|1[2-6]|9[127])|911', example_number='102', possible_length=(3,)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
     emergency=PhoneNumberDesc(national_number_pattern='1(?:12|9[127])|911', example_number='112', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:09|1[0-248]|9[0-24-79])|9(?:0903|11|8788)', example_number='109', possible_length=(3, 5)),
-    carrier_specific=PhoneNumberDesc(national_number_pattern='9(?:09|87)\\d\\d', example_number='90900', possible_length=(5,)),
-    sms_services=PhoneNumberDesc(national_number_pattern='9(?:09|87)\\d\\d', example_number='90900', possible_length=(5,)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:0[2359]|1[0-68]|9[0-24-79])|9[0-4689]\\d{3}|911', example_number='102', possible_length=(3, 5)),
+    carrier_specific=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
+    sms_services=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_QA.py b/python/phonenumbers/shortdata/region_QA.py
index 37620fdd..1aab8d62 100644
--- a/python/phonenumbers/shortdata/region_QA.py
+++ b/python/phonenumbers/shortdata/region_QA.py
@@ -3,7 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_QA = PhoneMetadata(id='QA', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[129]\\d{2,4}', possible_length=(3, 4, 5)),
-    toll_free=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='99\\d', example_number='990', possible_length=(3,)),
+    premium_rate=PhoneNumberDesc(national_number_pattern='900', example_number='900', possible_length=(3,)),
     emergency=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='999|(?:1|20|9[27]\\d)\\d\\d', example_number='100', possible_length=(3, 4, 5)),
+    short_code=PhoneNumberDesc(national_number_pattern='9(?:00|[19]\\d)|(?:1|20|9[27]\\d)\\d\\d', example_number='100', possible_length=(3, 4, 5)),
     short_data=True)
diff --git a/python/phonenumbers/shortdata/region_SC.py b/python/phonenumbers/shortdata/region_SC.py
index 9da1a7fb..ad16e937 100644
--- a/python/phonenumbers/shortdata/region_SC.py
+++ b/python/phonenumbers/shortdata/region_SC.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_SC = PhoneMetadata(id='SC', country_code=None, international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[19]\\d{2,3}', possible_length=(3, 4)),
-    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[146]|60)|999', example_number='111', possible_length=(3,)),
+    toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[1468]|60)|999', example_number='111', possible_length=(3,)),
     emergency=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1(?:[06]\\d|1[0-2467]|2[0-8]|3[13]|4[0-2]|[59][15]|7[124-6]|8[158])|9(?:6\\d\\d|99)', example_number='100', possible_length=(3, 4)),
+    short_code=PhoneNumberDesc(national_number_pattern='1(?:[06]\\d|1[0-246-8]|2[0-8]|3[13]|4[0-2]|5[15]|7[124-6]|8[158]|9[015])|9(?:6\\d\\d|99)', example_number='100', possible_length=(3, 4)),
     short_data=True)
diff --git a/python/phonenumbers/tzdata/__init__.py b/python/phonenumbers/tzdata/__init__.py
index 944037a9..111867a2 100644
--- a/python/phonenumbers/tzdata/__init__.py
+++ b/python/phonenumbers/tzdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/tzdata/data0.py b/python/phonenumbers/tzdata/data0.py
index 9927e80f..c97c0048 100644
--- a/python/phonenumbers/tzdata/data0.py
+++ b/python/phonenumbers/tzdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from ..util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -707,8 +707,10 @@ data = {
  '1345':('America/Cayman',),
  '1346':('America/Chicago',),
  '1347':('America/New_York',),
+ '1350':('America/Los_Angeles',),
  '1351':('America/New_York',),
  '1352':('America/New_York',),
+ '1354':('America/Toronto',),
  '1360':('America/Los_Angeles',),
  '1361':('America/Chicago',),
  '1364':('America/New_York',),
@@ -716,6 +718,7 @@ data = {
  '1367':('America/Toronto',),
  '1368':('America/Edmonton',),
  '1380':('America/New_York',),
+ '1382':('America/Toronto',),
  '1385':('America/Denver',),
  '1386':('America/New_York',),
  '1401':('America/New_York',),
@@ -917,6 +920,7 @@ data = {
  '1423989':('America/New_York',),
  '1424':('America/Los_Angeles',),
  '1425':('America/Los_Angeles',),
+ '1428':('America/Halifax',),
  '1430':('America/Chicago',),
  '1431':('America/Winnipeg',),
  '1432':('America/Chicago',),
@@ -938,6 +942,7 @@ data = {
  '1468':('America/Toronto',),
  '1469':('America/Chicago',),
  '1470':('America/New_York',),
+ '1472':('America/New_York',),
  '1473':('America/Grenada',),
  '1474':('America/Winnipeg',),
  '1475':('America/New_York',),
@@ -976,6 +981,7 @@ data = {
  '1541889':('America/Denver',),
  '1548':('America/Toronto',),
  '1551':('America/New_York',),
+ '1557':('America/Chicago',),
  '1559':('America/Los_Angeles',),
  '1561':('America/New_York',),
  '1562':('America/Los_Angeles',),
@@ -1211,6 +1217,7 @@ data = {
  '1680':('America/New_York',),
  '1681':('America/New_York',),
  '1682':('America/Chicago',),
+ '1683':('America/Toronto',),
  '1684':('Pacific/Pago_Pago',),
  '1689':('America/Chicago',),
  '1701':('America/Denver', 'America/North_Dakota/Center'),
@@ -1633,6 +1640,7 @@ data = {
  '1830':('America/Chicago',),
  '1831':('America/Los_Angeles',),
  '1832':('America/Chicago',),
+ '1835':('America/New_York',),
  '1838':('America/New_York',),
  '1839':('America/New_York',),
  '1840':('America/Los_Angeles',),
@@ -2086,7 +2094,10 @@ data = {
  '26282':('Indian/Reunion',),
  '26288':('Indian/Reunion',),
  '26289':('Indian/Reunion',),
- '2629':('Indian/Reunion',),
+ '2629398':('Indian/Mayotte',),
+ '2629399':('Indian/Reunion',),
+ '26294':('Indian/Reunion',),
+ '26297':('Indian/Reunion',),
  '263':('Africa/Harare',),
  '264':('Africa/Windhoek',),
  '265':('Africa/Blantyre',),
@@ -3120,8 +3131,7 @@ data = {
  '645':('Pacific/Auckland',),
  '646':('Pacific/Auckland',),
  '647':('Pacific/Auckland',),
- '6480':('Pacific/Auckland',),
- '6486':('Pacific/Auckland',),
+ '648':('Pacific/Auckland',),
  '649':('Pacific/Auckland',),
  '65':('Asia/Singapore',),
  '66':('Asia/Bangkok',),
@@ -3199,6 +3209,7 @@ data = {
  '7713':('Asia/Aqtobe',),
  '772':('Asia/Almaty',),
  '7729':('Asia/Aqtobe',),
+ '779':('Asia/Almaty',),
  '7800':('Asia/Almaty', 'Asia/Aqtobe', 'Europe/Moscow'),
  '7803':('Europe/Moscow',),
  '7804':('Europe/Moscow',),
diff --git a/python/setup.py b/python/setup.py
index 8885c3e8..dcdd75cc 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -88,6 +88,7 @@ distutils.core.setup(name=pkgname,
                                   'Programming Language :: Python :: 3.8',
                                   'Programming Language :: Python :: 3.9',
                                   'Programming Language :: Python :: 3.10',
+                                  'Programming Language :: Python :: 3.11',
                                   'Programming Language :: Python :: Implementation :: CPython',
                                   'Programming Language :: Python :: Implementation :: PyPy',
                                   ],
diff --git a/python/tests/phonenumberutiltest.py b/python/tests/phonenumberutiltest.py
index 13dca7db..c6a3ac70 100755
--- a/python/tests/phonenumberutiltest.py
+++ b/python/tests/phonenumberutiltest.py
@@ -1981,11 +1981,6 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
                          phonenumbers.parse("tel:253-0000;phone-context=www.google.com", "US"))
         self.assertEqual(US_LOCAL_NUMBER,
                          phonenumbers.parse("tel:253-0000;isub=12345;phone-context=www.google.com", "US"))
-        # This is invalid because no "+" sign is present as part of
-        # phone-context. The phone context is simply ignored in this case just
-        # as if it contains a domain.
-        self.assertEqual(US_LOCAL_NUMBER,
-                         phonenumbers.parse("tel:2530000;isub=12345;phone-context=1-650", "US"))
         self.assertEqual(US_LOCAL_NUMBER,
                          phonenumbers.parse("tel:2530000;isub=12345;phone-context=1234.com", "US"))
 
@@ -2408,11 +2403,11 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
             # succeed in being parsed.
             invalidRfcPhoneContext = "tel:555-1234;phone-context=1-331"
             phonenumbers.parse(invalidRfcPhoneContext, "ZZ")
-            self.fail("'Unknown' region code not allowed - should fail.")
+            self.fail("phone-context is missing '+' sign: should fail.")
         except NumberParseException:
             # Expected this exception.
             e = sys.exc_info()[1]
-            self.assertEqual(NumberParseException.INVALID_COUNTRY_CODE,
+            self.assertEqual(NumberParseException.NOT_A_NUMBER,
                              e.error_type,
                              msg="Wrong error type stored in exception.")
 
@@ -2420,7 +2415,7 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
             # Only the phone-context symbol is present, but no data.
             invalidRfcPhoneContext = ";phone-context="
             phonenumbers.parse(invalidRfcPhoneContext, "ZZ")
-            self.fail("No number is present: should fail.")
+            self.fail("phone-context can't be empty: should fail.")
         except NumberParseException:
             # Expected this exception.
             e = sys.exc_info()[1]
@@ -2709,6 +2704,49 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
         threeZeros = PhoneNumber(country_code=61, national_number=0, italian_leading_zero=True, number_of_leading_zeros=3)
         self.assertEqual(threeZeros, phonenumbers.parse("0000", "AU"))
 
+    def testParseWithPhoneContext(self):
+        # context    = ";phone-context=" descriptor
+        # descriptor = domainname / global-number-digits
+
+        # Valid global-phone-digits
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=+64", "ZZ"))
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=+64;{this isn't part of phone-context anymore!}", "ZZ"))
+        nzFromPhoneContext = PhoneNumber(country_code=64, national_number=3033316005)
+        self.assertEqual(nzFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+64-3", "ZZ"))
+        brFromPhoneContext = PhoneNumber(country_code=55, national_number=5033316005)
+        self.assertEqual(brFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+(555)", "ZZ"))
+        usFromPhoneContext = PhoneNumber(country_code=1, national_number=23033316005)
+        self.assertEqual(usFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+-1-2.3()", "ZZ"))
+
+        # Valid domainname
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=abc.nz", "NZ"))
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=www.PHONE-numb3r.com", "NZ"))
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=a", "NZ"))
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=3phone.J.", "NZ"))
+        self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=a--z", "NZ"))
+
+        # Invalid descriptor
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=+")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=64")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=++64")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=+abc")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=.")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=3phone")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=a-.nz")
+        self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=a{b}c")
+
+    def assertThrowsForInvalidPhoneContext(self, number_to_parse):
+        try:
+            phonenumbers.parse(number_to_parse, "ZZ")
+            self.fail("parsing " + number_to_parse + " should fail")
+        except NumberParseException:
+            # Expected this exception.
+            e = sys.exc_info()[1]
+            self.assertEqual(NumberParseException.NOT_A_NUMBER,
+                             e.error_type,
+                             msg="Wrong error type stored in exception.")
+
     def testCountryWithNoNumberDesc(self):
         # Andorra is a country where we don't have PhoneNumberDesc info in the metadata.
         adNumber = PhoneNumber(country_code=376, national_number=12345)
@@ -3188,6 +3226,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
                           **{'preferred_international_prefix': u('9999'),
                              'register': True})
         self.assertIsNone(phonenumbers.example_number_for_type('XY', PhoneNumberType.PERSONAL_NUMBER))
+        # Deregister "XY" so no other tests are affected.
+        del PhoneMetadata._region_metadata["XY"]
 
     def testShortMetadataRegister(self):
         # Python version extra tests for short metadata registration.
@@ -3214,6 +3254,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
                              'register': True,
                              'short_data': True})
         self.assertIsNone(phonenumbers.example_number_for_type('XZ', PhoneNumberType.PERSONAL_NUMBER))
+        # Deregister "XZ" so no other tests are affected.
+        del PhoneMetadata._short_region_metadata["XZ"]
 
     def testNonGeoMetadataRegister(self):
         # Python version extra tests for non-geo metadata registration.
@@ -3237,6 +3279,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
                           **{'country_code': 999,
                              'preferred_international_prefix': u('9999'),
                              'register': True})
+        # Deregister "001" / 999 afterwards so no other tests are affected.
+        del PhoneMetadata._country_code_metadata[999]
 
     def testPickledException(self):
         err = NumberParseException(NumberParseException.TOO_SHORT_AFTER_IDD, 'hello world')
@@ -3281,6 +3325,12 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
         self.assertEqual(ValidationResult.to_string(ValidationResult.TOO_LONG), u("TOO_LONG"))
         self.assertEqual(ValidationResult.to_string(999), u("INVALID (999)"))
 
+        self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.UNSPECIFIED), u("UNSPECIFIED"))
+        self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN), u("FROM_NUMBER_WITH_PLUS_SIGN"))
+        self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_NUMBER_WITH_IDD), u("FROM_NUMBER_WITH_IDD"))
+        self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_DEFAULT_COUNTRY), u("FROM_DEFAULT_COUNTRY"))
+        self.assertEqual(CountryCodeSource.to_string(999), u("INVALID (999)"))
+
     def testCoverage(self):
         # Python version extra tests
         self.assertIsNone(phonenumberutil._region_code_for_number_from_list(GB_NUMBER, ("XX",)))
diff --git a/python/tests/testcarrierdata/__init__.py b/python/tests/testcarrierdata/__init__.py
index df2cb9bb..2e3383da 100644
--- a/python/tests/testcarrierdata/__init__.py
+++ b/python/tests/testcarrierdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testcarrierdata/data0.py b/python/tests/testcarrierdata/data0.py
index 79788049..0c100c6f 100644
--- a/python/tests/testcarrierdata/data0.py
+++ b/python/tests/testcarrierdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testdata/__init__.py b/python/tests/testdata/__init__.py
index a4c129f8..ed8ca591 100644
--- a/python/tests/testdata/__init__.py
+++ b/python/tests/testdata/__init__.py
@@ -1,5 +1,5 @@
 """Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testgeodata/__init__.py b/python/tests/testgeodata/__init__.py
index 09d6090a..84b60a6a 100644
--- a/python/tests/testgeodata/__init__.py
+++ b/python/tests/testgeodata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testgeodata/data0.py b/python/tests/testgeodata/data0.py
index 7a4b2855..c1b045ad 100644
--- a/python/tests/testgeodata/data0.py
+++ b/python/tests/testgeodata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testtzdata/__init__.py b/python/tests/testtzdata/__init__.py
index 39c1ba87..95e4b83d 100644
--- a/python/tests/testtzdata/__init__.py
+++ b/python/tests/testtzdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/python/tests/testtzdata/data0.py b/python/tests/testtzdata/data0.py
index 82560685..4ee3bcfd 100644
--- a/python/tests/testtzdata/data0.py
+++ b/python/tests/testtzdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
 """
 from phonenumbers.util import u
 
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/resources/PhoneNumberAlternateFormats.xml b/resources/PhoneNumberAlternateFormats.xml
index 15572ad0..080fec42 100644
--- a/resources/PhoneNumberAlternateFormats.xml
+++ b/resources/PhoneNumberAlternateFormats.xml
@@ -3266,7 +3266,8 @@
             [3489]|
             7(?:
               1(?:
-                [0-6]2|
+                [0-356]2|
+                4[29]|
                 7|
                 8[27]
               )|
@@ -3283,21 +3284,22 @@
         <numberFormat pattern="(\d{5})(\d{5})">
           <leadingDigits>
             [3489]|
+            72(?:
+              6|
+              7[457]
+            )|
             7(?:
-              1(?:
-                [06][3-6]|
-                [13-5][3-5]|
-                2[35]|
-                8[34]
-              )|
-              2(?:
-                [1-38][3-5]|
-                [49][35]|
-                5[3-6]|
-                6|
-                7[457]
-              )
-            )
+              12|
+              2[49]
+            )[35]|
+            7(?:
+              1[13-58]|
+              2[1-38]
+            )[3-5]|
+            7(?:
+              1[06]|
+              25
+            )[3-6]
           </leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
@@ -3319,7 +3321,7 @@
           <leadingDigits>
             [3489]|
             7(?:
-              [04-8]|
+              [04-9]|
               1(?:
                 04|
                 [236]3|
@@ -3340,7 +3342,7 @@
           <leadingDigits>
             [3489]|
             7(?:
-              [04-8]|
+              [04-9]|
               1(?:
                 04|
                 [236]3|
@@ -3386,7 +3388,7 @@
       </availableFormats>
     </territory>
 
-    <!-- Turkey (TR) -->
+    <!-- Türkiye (TR) -->
     <territory countryCode="90">
       <availableFormats>
         <!-- Alternate format for fixed & mobile -->
diff --git a/resources/PhoneNumberMetadata.xml b/resources/PhoneNumberMetadata.xml
index 94b0c0dd..b7f77315 100644
--- a/resources/PhoneNumberMetadata.xml
+++ b/resources/PhoneNumberMetadata.xml
@@ -3,7 +3,6 @@
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
-
      http://www.apache.org/licenses/LICENSE-2.0
 
      Unless required by applicable law or agreed to in writing, software
@@ -310,7 +309,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000008/en -->
     <territory id="AG" countryCode="1" leadingDigits="268" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([457]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([457]\d{6})$|1"
                nationalPrefixTransformRule="268$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -413,7 +412,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -434,7 +433,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000007/en -->
     <territory id="AI" countryCode="1" leadingDigits="264" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2457]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2457]\d{6})$|1"
                nationalPrefixTransformRule="264$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -538,7 +537,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -1998,7 +1997,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000004/en -->
     <territory id="AS" countryCode="1" leadingDigits="684" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([267]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([267]\d{6})$|1"
                nationalPrefixTransformRule="684$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -2033,7 +2032,7 @@
             2(?:
               48|
               5[2468]|
-              72
+              7[26]
             )|
             7(?:
               3[13]|
@@ -2097,7 +2096,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -2113,6 +2112,12 @@
     <territory id="AT" countryCode="43" internationalPrefix="00" nationalPrefix="0"
                mobileNumberPortableRegion="true">
       <availableFormats>
+        <!-- Shortcode format -->
+        <numberFormat pattern="(\d{4})">
+          <leadingDigits>14</leadingDigits>
+          <format>$1</format>
+          <intlFormat>NA</intlFormat>
+        </numberFormat>
         <!-- Vienna (Wien) fixed line format (1-digit area code). -->
         <numberFormat pattern="(\d)(\d{3,12})" nationalPrefixFormattingRule="$NP$FG">
           <leadingDigits>
@@ -2341,7 +2346,7 @@
     <territory id="AU" mainCountryForCode="true" countryCode="61"
                preferredInternationalPrefix="0011"
                internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
-               nationalPrefix="0" nationalPrefixForParsing="0|(183[12])"
+               nationalPrefix="0" nationalPrefixForParsing="(183[12])|0"
                mobileNumberPortableRegion="true">
       <availableFormats>
         <!-- Pager (5-6 digits) -->
@@ -2520,17 +2525,20 @@
         <exampleNumber>412345678</exampleNumber>
         <nationalNumberPattern>
           4(?:
-            83[0-38]|
-            93[0-6]
+            (?:
+              79|
+              94
+            )[01]|
+            83[0-389]
           )\d{5}|
           4(?:
             [0-3]\d|
             4[047-9]|
             5[0-25-9]|
             6[016-9]|
-            7[02-9]|
+            7[02-8]|
             8[0-24-9]|
-            9[0-27-9]
+            9[0-37-9]
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -2988,7 +2996,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000013/en -->
     <territory id="BB" countryCode="1" leadingDigits="246" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="246$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -3123,7 +3131,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -3195,9 +3203,9 @@
               9
             )|
             6(?:
+              [15]|
               28|
-              4[14]|
-              5
+              4[14]
             )|
             7[2-589]|
             8(?:
@@ -3651,16 +3659,7 @@
               6[569]|
               7[0579]
             )|
-            90(?:
-              0[0-8]|
-              1[36]|
-              2[0-3568]|
-              3[0-689]|
-              [47][2-68]|
-              5[1-68]|
-              6[0-378]|
-              9[34679]
-            )
+            90\d\d
           )\d{4}
         </nationalNumberPattern>
       </premiumRate>
@@ -3815,6 +3814,7 @@
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
+          00800\d{7}|
           [2-7]\d{6,7}|
           [89]\d{6,8}|
           2\d{5}
@@ -3858,9 +3858,14 @@
         </nationalNumberPattern>
       </mobile>
       <tollFree>
-        <possibleLengths national="8"/>
+        <possibleLengths national="8,12"/>
         <exampleNumber>80012345</exampleNumber>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
+        <nationalNumberPattern>
+          (?:
+            00800\d\d|
+            800
+          )\d{5}
+        </nationalNumberPattern>
       </tollFree>
       <premiumRate>
         <possibleLengths national="8"/>
@@ -4022,8 +4027,7 @@
         <nationalNumberPattern>
           (?:
             29|
-            6[1257-9]|
-            7[125-9]
+            [67][125-9]
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -4040,12 +4044,7 @@
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [25689]\d|
-            40
-          )\d{6}
-        </nationalNumberPattern>
+        <nationalNumberPattern>[24-689]\d{7}</nationalNumberPattern>
       </generalDesc>
       <!-- These come from the national numbering plan, but have been widened to include other
            prefixes found in the yellow pages - specifically 21 0. -->
@@ -4071,9 +4070,8 @@
         <exampleNumber>90011234</exampleNumber>
         <nationalNumberPattern>
           (?:
-            40|
-            5[1-9]|
-            6\d|
+            4[0-356]|
+            [56]\d|
             9[013-9]
           )\d{6}
         </nationalNumberPattern>
@@ -4105,14 +4103,12 @@
                mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
+          590\d{6}|
           (?:
-            590|
-            (?:
-              69|
-              80
-            )\d|
-            976
-          )\d{6}
+            69|
+            80|
+            9\d
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -4155,7 +4151,15 @@
       <voip>
         <possibleLengths national="9"/>
         <exampleNumber>976012345</exampleNumber>
-        <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+        <nationalNumberPattern>
+          9(?:
+            (?:
+              395|
+              76[018]
+            )\d|
+            475[0-2]
+          )\d{4}
+        </nationalNumberPattern>
       </voip>
     </territory>
 
@@ -4163,7 +4167,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000018/en -->
     <territory id="BM" countryCode="1" leadingDigits="441" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-8]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="441$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -4194,7 +4198,8 @@
         <nationalNumberPattern>
           441(?:
             [2378]\d|
-            5[0-39]
+            5[0-39]|
+            92
           )\d{5}
         </nationalNumberPattern>
       </mobile>
@@ -4252,7 +4257,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -4683,7 +4688,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000010/en -->
     <territory id="BS" countryCode="1" leadingDigits="242" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([3-8]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([3-8]\d{6})$|1"
                nationalPrefixTransformRule="242$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -4711,7 +4716,7 @@
             461|
             502|
             6(?:
-              0[1-4]|
+              0[1-5]|
               12|
               2[013]|
               [45]0|
@@ -4822,7 +4827,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -4993,7 +4998,7 @@
             321|
             7(?:
               [1-7]\d|
-              8[01]
+              8[0-4]
             )
           )\d{5}
         </nationalNumberPattern>
@@ -5324,14 +5329,16 @@
             3(?:
               06|
               43|
-              6[578]
+              54|
+              6[578]|
+              82
             )|
             4(?:
               03|
               1[68]|
+              [26]8|
               3[178]|
               50|
-              68|
               74
             )|
             5(?:
@@ -5343,7 +5350,7 @@
             )|
             6(?:
               04|
-              13|
+              [18]3|
               39|
               47|
               72
@@ -5380,14 +5387,16 @@
             3(?:
               06|
               43|
-              6[578]
+              54|
+              6[578]|
+              82
             )|
             4(?:
               03|
               1[68]|
+              [26]8|
               3[178]|
               50|
-              68|
               74
             )|
             5(?:
@@ -5399,7 +5408,7 @@
             )|
             6(?:
               04|
-              13|
+              [18]3|
               39|
               47|
               72
@@ -5476,7 +5485,7 @@
           (?:
             5(?:
               00|
-              2[125-7]|
+              2[125-9]|
               33|
               44|
               66|
@@ -5510,7 +5519,7 @@
     <!-- https://www.thenumberingsystem.com.au/#/number-register/search -->
     <territory id="CC" countryCode="61" preferredInternationalPrefix="0011"
                internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
-               nationalPrefix="0" nationalPrefixForParsing="0|([59]\d{7})$"
+               nationalPrefix="0" nationalPrefixForParsing="([59]\d{7})$|0"
                nationalPrefixTransformRule="8$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -5574,17 +5583,20 @@
         <exampleNumber>412345678</exampleNumber>
         <nationalNumberPattern>
           4(?:
-            83[0-38]|
-            93[0-6]
+            (?:
+              79|
+              94
+            )[01]|
+            83[0-389]
           )\d{5}|
           4(?:
             [0-3]\d|
             4[047-9]|
             5[0-25-9]|
             6[016-9]|
-            7[02-9]|
+            7[02-8]|
             8[0-24-9]|
-            9[0-27-9]
+            9[0-37-9]
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -5713,7 +5725,7 @@
       <mobile>
         <possibleLengths national="8"/>
         <exampleNumber>70012345</exampleNumber>
-        <nationalNumberPattern>7[02457]\d{6}</nationalNumberPattern>
+        <nationalNumberPattern>7[024-7]\d{6}</nationalNumberPattern>
       </mobile>
       <premiumRate>
         <possibleLengths national="8"/>
@@ -5772,12 +5784,7 @@
       <premiumRate>
         <possibleLengths national="9"/>
         <exampleNumber>800123456</exampleNumber>
-        <nationalNumberPattern>
-          80(?:
-            0\d\d|
-            120
-          )\d{4}
-        </nationalNumberPattern>
+        <nationalNumberPattern>80[0-2]\d{6}</nationalNumberPattern>
       </premiumRate>
     </territory>
 
@@ -5919,16 +5926,7 @@
       <mobile>
         <possibleLengths national="10"/>
         <exampleNumber>0123456789</exampleNumber>
-        <nationalNumberPattern>
-          0704[0-7]\d{5}|
-          0(?:
-            [15]\d\d|
-            7(?:
-              0[0-37-9]|
-              [4-9][7-9]
-            )
-          )\d{6}
-        </nationalNumberPattern>
+        <nationalNumberPattern>0[157]\d{8}</nationalNumberPattern>
       </mobile>
     </territory>
 
@@ -6088,11 +6086,11 @@
               3(?:
                 2\d\d|
                 3(?:
-                  [0346]\d|
+                  [03467]\d|
                   1[0-35-9]|
                   2[1-9]|
                   5[0-24-9]|
-                  7[0-3]
+                  8[0-3]
                 )|
                 600
               )|
@@ -6157,11 +6155,11 @@
               3(?:
                 2\d\d|
                 3(?:
-                  [0346]\d|
+                  [03467]\d|
                   1[0-35-9]|
                   2[1-9]|
                   5[0-24-9]|
-                  7[0-3]
+                  8[0-3]
                 )|
                 600
               )|
@@ -6299,10 +6297,13 @@
     <!-- https://en.wikipedia.org/wiki/Telephone_numbers_in_China -->
     <territory id="CN" countryCode="86" preferredInternationalPrefix="00"
                internationalPrefix="00|1(?:[12]\d|79)\d\d00" nationalPrefix="0"
-               nationalPrefixForParsing="0|(1(?:[12]\d|79)\d\d)">
+               nationalPrefixForParsing="(1(?:[12]\d|79)\d\d)|0">
       <availableFormats>
         <numberFormat pattern="(\d{5,6})">
-          <leadingDigits>96</leadingDigits>
+          <leadingDigits>
+            10|
+            96
+          </leadingDigits>
           <format>$1</format>
           <intlFormat>NA</intlFormat>
         </numberFormat>
@@ -6325,10 +6326,11 @@
             )
           </leadingDigits>
           <leadingDigits>
-            (?:
+            10(?:
               10|
-              2[0-57-9]
-            )(?:
+              9[56]
+            )|
+            2[0-57-9](?:
               100|
               9[56]
             )
@@ -6350,20 +6352,25 @@
             )
           </leadingDigits>
           <leadingDigits>
-            1[1-9]|
-            26|
-            [3-9]|
-            (?:
-              10|
-              2[0-57-9]
-            )(?:
-              [02-8]|
-              1(?:
-                0[1-9]|
-                [1-9]
+            1(?:
+              0(?:
+                [0-8]|
+                9[0-47-9]
               )|
-              9[0-47-9]
-            )
+              [1-9]
+            )|
+            2(?:
+              [0-57-9](?:
+                [02-8]|
+                1(?:
+                  0[1-9]|
+                  [1-9]
+                )|
+                9[0-47-9]
+              )|
+              6
+            )|
+            [3-9]
           </leadingDigits>
           <format>$1 $2</format>
           <intlFormat>NA</intlFormat>
@@ -6608,21 +6615,36 @@
         <numberFormat pattern="(\d{4})(\d{4})">
           <leadingDigits>[1-9]</leadingDigits>
           <leadingDigits>
-            1[1-9]|
-            26|
-            [3-9]|
-            (?:
-              10|
-              2[0-57-9]
-            )(?:
-              [0-8]|
-              9[0-47-9]
-            )
+            1(?:
+              0(?:
+                [02-8]|
+                1[1-9]|
+                9[0-47-9]
+              )|
+              [1-9]
+            )|
+            2(?:
+              [0-57-9](?:
+                [0-8]|
+                9[0-47-9]
+              )|
+              6
+            )|
+            [3-9]
           </leadingDigits>
           <leadingDigits>
+            1(?:
+              0(?:
+                [02-8]|
+                1[1-9]|
+                9[0-47-9]
+              )|
+              [1-9]
+            )|
             26|
             3(?:
               [0268]|
+              4[0-8]|
               9[079]
             )|
             4(?:
@@ -6637,10 +6659,12 @@
               2[0-24-689]|
               4[0-2457-9]|
               6[057-9]|
+              8[1-9]|
               90
             )|
             6(?:
               [0-24578]|
+              3[06-9]|
               6[14-79]|
               9[03-9]
             )|
@@ -6656,7 +6680,10 @@
               [046]|
               1[01459]|
               2[0-489]|
-              50|
+              5(?:
+                0|
+                [23][0-8]
+              )|
               8[0-2459]|
               9[09]
             )|
@@ -6664,26 +6691,14 @@
               0[0457]|
               1[08]|
               [268]|
-              4[024-9]
+              4[024-9]|
+              5[06-9]
             )|
-            (?:
-              34|
-              85[23]
-            )[0-8]|
-            (?:
-              1|
-              58
-            )[1-9]|
-            (?:
-              63|
-              95
-            )[06-9]|
             (?:
               33|
               85[23]9
             )[0-46-9]|
             (?:
-              10|
               2[0-57-9]|
               3(?:
                 [157]\d|
@@ -6740,7 +6755,14 @@
             )
           </leadingDigits>
           <leadingDigits>
-            26|
+            1(?:
+              0[02-8]|
+              [1-9]
+            )|
+            2(?:
+              [0-57-9][0-8]|
+              6
+            )|
             3(?:
               [0268]|
               3[0-46-9]|
@@ -6798,17 +6820,14 @@
               5[06-9]
             )|
             (?:
-              1|
+              10|
+              2[0-57-9]
+            )9[0-47-9]|
+            (?:
+              101|
               58|
               85[23]10
             )[1-9]|
-            (?:
-              10|
-              2[0-57-9]
-            )(?:
-              [0-8]|
-              9[0-47-9]
-            )|
             (?:
               3(?:
                 [157]\d|
@@ -7241,10 +7260,13 @@
         <possibleLengths national="[7-11]" localOnly="5,6"/>
         <exampleNumber>4001234567</exampleNumber>
         <nationalNumberPattern>
+          10(?:
+            10\d{4}|
+            96\d{3,4}
+          )|
           400\d{7}|
           950\d{7,8}|
           (?:
-            10|
             2[0-57-9]|
             3(?:
               [157]\d|
@@ -7715,7 +7737,7 @@
     <!-- https://www.thenumberingsystem.com.au/#/number-register/search -->
     <territory id="CX" countryCode="61" preferredInternationalPrefix="0011"
                internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
-               nationalPrefix="0" nationalPrefixForParsing="0|([59]\d{7})$"
+               nationalPrefix="0" nationalPrefixForParsing="([59]\d{7})$|0"
                nationalPrefixTransformRule="8$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -7787,17 +7809,20 @@
         <exampleNumber>412345678</exampleNumber>
         <nationalNumberPattern>
           4(?:
-            83[0-38]|
-            93[0-6]
+            (?:
+              79|
+              94
+            )[01]|
+            83[0-389]
           )\d{5}|
           4(?:
             [0-3]\d|
             4[047-9]|
             5[0-25-9]|
             6[016-9]|
-            7[02-9]|
+            7[02-8]|
             8[0-24-9]|
-            9[0-27-9]
+            9[0-37-9]
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -7874,7 +7899,12 @@
       <mobile>
         <possibleLengths national="8"/>
         <exampleNumber>96123456</exampleNumber>
-        <nationalNumberPattern>9[4-79]\d{6}</nationalNumberPattern>
+        <nationalNumberPattern>
+          9(?:
+            10|
+            [4-79]\d
+          )\d{5}
+        </nationalNumberPattern>
       </mobile>
       <tollFree>
         <possibleLengths national="8"/>
@@ -8602,7 +8632,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T020200003B/en -->
     <territory id="DM" countryCode="1" leadingDigits="767" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
                nationalPrefixTransformRule="767$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -8700,7 +8730,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -8846,7 +8876,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -9125,7 +9155,7 @@
                     1\d
                   )|
                   (?:
-                    23|
+                    2[0-59]|
                     [3-79]\d
                   )\d
                 )\d
@@ -9144,7 +9174,7 @@
                     3[5-9]
                   )\d|
                   7(?:
-                    [3679]\d|
+                    [0-3679]\d|
                     8[13-9]
                   )|
                   8(?:
@@ -9548,11 +9578,11 @@
                 5[0-4]
               )|
               6(?:
-                1[78]|
+                1[578]|
                 2[69]|
                 39|
                 4[5-7]|
-                5[1-5]|
+                5[0-5]|
                 6[0-59]|
                 8[015-8]
               )
@@ -9642,11 +9672,12 @@
         <possibleLengths national="9"/>
         <exampleNumber>911234567</exampleNumber>
         <nationalNumberPattern>
-          7001\d{5}|
+          700[1-9]\d{5}|
           (?:
             7(?:
               0[1-9]|
-              1[01]|
+              1[0-8]|
+              22|
               77|
               86|
               99
@@ -10100,10 +10131,7 @@
               3[0-8]|
               9[589]
             )|
-            7(?:
-              00|
-              [3-9]\d
-            )
+            7[3-9]\d
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -10387,7 +10415,7 @@
                 4(?:
                   [0-5]\d\d|
                   69[7-9]|
-                  70[013579]
+                  70[0-579]
                 )|
                 (?:
                   (?:
@@ -10400,99 +10428,98 @@
                   )
                 )\d
               )|
-              2(?:
+              (?:
+                2(?:
+                  (?:
+                    0[024-9]|
+                    2[3-9]|
+                    3[3-79]|
+                    4[1-689]|
+                    [58][02-9]|
+                    6[0-47-9]|
+                    7[013-9]|
+                    9\d
+                  )\d|
+                  1(?:
+                    [0-7]\d|
+                    8[0-2]
+                  )
+                )|
                 (?:
-                  0[024-9]|
-                  2[3-9]|
-                  3[3-79]|
-                  4[1-689]|
-                  [58][02-9]|
-                  6[0-47-9]|
-                  7[013-9]|
-                  9\d
-                )\d\d|
-                1(?:
-                  [0-7]\d\d|
+                  3(?:
+                    0\d|
+                    1[0-8]|
+                    [25][02-9]|
+                    3[02-579]|
+                    [468][0-46-9]|
+                    7[1-35-79]|
+                    9[2-578]
+                  )|
+                  4(?:
+                    0[03-9]|
+                    [137]\d|
+                    [28][02-57-9]|
+                    4[02-69]|
+                    5[0-8]|
+                    [69][0-79]
+                  )|
+                  5(?:
+                    0[1-35-9]|
+                    [16]\d|
+                    2[024-9]|
+                    3[015689]|
+                    4[02-9]|
+                    5[03-9]|
+                    7[0-35-9]|
+                    8[0-468]|
+                    9[0-57-9]
+                  )|
+                  6(?:
+                    0[034689]|
+                    1\d|
+                    2[0-35689]|
+                    [38][013-9]|
+                    4[1-467]|
+                    5[0-69]|
+                    6[13-9]|
+                    7[0-8]|
+                    9[0-24578]
+                  )|
+                  7(?:
+                    0[0246-9]|
+                    2\d|
+                    3[0236-8]|
+                    4[03-9]|
+                    5[0-46-9]|
+                    6[013-9]|
+                    7[0-35-9]|
+                    8[024-9]|
+                    9[02-9]
+                  )|
                   8(?:
-                    [02]\d|
-                    1[0-246-9]
+                    0[35-9]|
+                    2[1-57-9]|
+                    3[02-578]|
+                    4[0-578]|
+                    5[124-9]|
+                    6[2-69]|
+                    7\d|
+                    8[02-9]|
+                    9[02569]
+                  )|
+                  9(?:
+                    0[02-589]|
+                    [18]\d|
+                    2[02-689]|
+                    3[1-57-9]|
+                    4[2-9]|
+                    5[0-579]|
+                    6[2-47-9]|
+                    7[0-24578]|
+                    9[2-57]
                   )
-                )
-              )|
-              (?:
-                3(?:
-                  0\d|
-                  1[0-8]|
-                  [25][02-9]|
-                  3[02-579]|
-                  [468][0-46-9]|
-                  7[1-35-79]|
-                  9[2-578]
-                )|
-                4(?:
-                  0[03-9]|
-                  [137]\d|
-                  [28][02-57-9]|
-                  4[02-69]|
-                  5[0-8]|
-                  [69][0-79]
-                )|
-                5(?:
-                  0[1-35-9]|
-                  [16]\d|
-                  2[024-9]|
-                  3[015689]|
-                  4[02-9]|
-                  5[03-9]|
-                  7[0-35-9]|
-                  8[0-468]|
-                  9[0-57-9]
-                )|
-                6(?:
-                  0[034689]|
-                  1\d|
-                  2[0-35689]|
-                  [38][013-9]|
-                  4[1-467]|
-                  5[0-69]|
-                  6[13-9]|
-                  7[0-8]|
-                  9[0-24578]
-                )|
-                7(?:
-                  0[0246-9]|
-                  2\d|
-                  3[0236-8]|
-                  4[03-9]|
-                  5[0-46-9]|
-                  6[013-9]|
-                  7[0-35-9]|
-                  8[024-9]|
-                  9[02-9]
-                )|
-                8(?:
-                  0[35-9]|
-                  2[1-57-9]|
-                  3[02-578]|
-                  4[0-578]|
-                  5[124-9]|
-                  6[2-69]|
-                  7\d|
-                  8[02-9]|
-                  9[02569]
-                )|
-                9(?:
-                  0[02-589]|
-                  [18]\d|
-                  2[02-689]|
-                  3[1-57-9]|
-                  4[2-9]|
-                  5[0-579]|
-                  6[2-47-9]|
-                  7[0-24578]|
-                  9[2-57]
-                )
-              )\d\d
+                )\d
+              )\d
             )|
             2(?:
               0[013478]|
@@ -10763,7 +10790,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000057/en -->
     <territory id="GD" countryCode="1" leadingDigits="473" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="473$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -10878,7 +10905,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -10959,63 +10986,98 @@
         <nationalNumberPattern>
           5(?:
             (?:
-              0555|
-              1(?:
-                [17]77|
-                555
+              (?:
+                0555|
+                1(?:
+                  [17]77|
+                  555
+                )
+              )[5-9]|
+              757(?:
+                7[7-9]|
+                8[01]
               )
-            )[5-9]|
-            757(?:
-              7[7-9]|
-              8[01]
-            )
-          )\d{3}|
-          5(?:
-            0070|
-            11(?:
-              33|
-              51
-            )|
-            [25]222|
-            3333
-          )[0-4]\d{3}|
-          5(?:
-            00(?:
-              0\d|
-              5[05]
-            )|
-            11(?:
-              00|
-              [124]\d|
-              3[01]
-            )|
-            5200|
-            75(?:
-              00|
-              [57]5
-            )|
-            8(?:
-              0(?:
-                [01]\d|
-                2[0-4]
+            )\d|
+            22252[0-4]
+          )\d\d|
+          (?:
+            5(?:
+              00(?:
+                0\d|
+                44|
+                5[05]|
+                77|
+                88|
+                99
+              )|
+              1(?:
+                1(?:
+                  00|
+                  [124]\d|
+                  3[01]
+                )|
+                4\d\d
+              )|
+              (?:
+                44|
+                68
+              )\d\d|
+              5(?:
+                [0157-9]\d\d|
+                200
+              )|
+              7(?:
+                [0147-9]\d\d|
+                5(?:
+                  00|
+                  [57]5
+                )
               )|
-              58[89]|
               8(?:
-                55|
-                88
+                0(?:
+                  [01]\d|
+                  2[0-4]
+                )|
+                58[89]|
+                8(?:
+                  55|
+                  88
+                )
+              )|
+              9(?:
+                090|
+                [1-35-9]\d\d
               )
-            )
+            )|
+            790\d\d
           )\d{4}|
-          (?:
-            5(?:
-              [14]4|
-              5[0157-9]|
-              68|
-              7[0147-9]|
-              9[1-35-9]
+          5(?:
+            0(?:
+              070|
+              505
             )|
-            790
-          )\d{6}
+            1(?:
+              0[01]0|
+              1(?:
+                07|
+                33|
+                51
+              )
+            )|
+            2(?:
+              0[02]0|
+              2[25]2
+            )|
+            3(?:
+              0[03]0|
+              3[35]3
+            )|
+            (?:
+              40[04]|
+              900
+            )0|
+            5222
+          )[0-4]\d{3}
         </nationalNumberPattern>
       </mobile>
       <!-- Information from http://www.yell.ge, examples such as Wissol Petroleum Georgia
@@ -11046,21 +11108,24 @@
                mobileNumberPortableRegion="true">
       <availableFormats>
         <numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>[569]</leadingDigits>
+          <leadingDigits>
+            [56]|
+            9[47]
+          </leadingDigits>
           <format>$1 $2 $3 $4</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>8</leadingDigits>
+          <leadingDigits>[89]</leadingDigits>
           <format>$1 $2 $3 $4</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
+          [56]94\d{6}|
           (?:
-            [56]94|
-            80\d|
-            976
-          )\d{6}
+            80|
+            9\d
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -11069,10 +11134,9 @@
         <nationalNumberPattern>
           594(?:
             [0239]\d|
-            1[0-2]|
+            [16][0-3]|
             4[03-9]|
             5[6-9]|
-            6[0-3]|
             80
           )\d{4}
         </nationalNumberPattern>
@@ -11099,7 +11163,15 @@
       <voip>
         <possibleLengths national="9"/>
         <exampleNumber>976012345</exampleNumber>
-        <nationalNumberPattern>976\d{6}</nationalNumberPattern>
+        <nationalNumberPattern>
+          9(?:
+            (?:
+              396|
+              76\d
+            )\d|
+            476[0-2]
+          )\d{4}
+        </nationalNumberPattern>
       </voip>
     </territory>
 
@@ -11110,7 +11182,7 @@
     <!-- http://static.ofcom.org.uk/static/numbering/ -->
     <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
     <territory id="GG" countryCode="44" internationalPrefix="00" nationalPrefix="0"
-               nationalPrefixForParsing="0|([25-9]\d{5})$" nationalPrefixTransformRule="1481$1">
+               nationalPrefixForParsing="([25-9]\d{5})$|0" nationalPrefixTransformRule="1481$1">
       <generalDesc>
         <nationalNumberPattern>
           (?:
@@ -11306,8 +11378,7 @@
               5[67]
             )|
             5(?:
-              [0457]\d|
-              6[01]|
+              [03-7]\d|
               9[1-9]
             )
           )\d{6}
@@ -11335,33 +11406,41 @@
       <generalDesc>
         <nationalNumberPattern>
           (?:
-            [25]\d\d|
-            606
-          )\d{5}
+            [25]\d|
+            60
+          )\d{6}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
         <possibleLengths national="8"/>
         <exampleNumber>20012345</exampleNumber>
         <nationalNumberPattern>
-          21(?:
-            6[24-7]\d|
-            90[0-2]
-          )\d{3}|
+          2190[0-2]\d{3}|
           2(?:
-            00|
-            2[25]
-          )\d{5}
+            0(?:
+              [02]\d|
+              3[01]
+            )|
+            16[24-9]|
+            2[2-5]\d
+          )\d{4}
         </nationalNumberPattern>
       </fixedLine>
       <mobile>
         <possibleLengths national="8"/>
         <exampleNumber>57123456</exampleNumber>
         <nationalNumberPattern>
+          5251[0-4]\d{3}|
           (?:
-            5[146-8]\d|
-            606
-          )\d{5}
+            5(?:
+              [146-8]\d\d|
+              250
+            )|
+            60(?:
+              1[01]|
+              6\d
+            )
+          )\d{4}
         </nationalNumberPattern>
       </mobile>
     </territory>
@@ -11466,7 +11545,7 @@
         <nationalNumberPattern>
           (?:
             [23679]\d|
-            5[0-389]
+            5[0-489]
           )\d{5}
         </nationalNumberPattern>
       </mobile>
@@ -11553,14 +11632,12 @@
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
+          590\d{6}|
           (?:
-            590|
-            (?:
-              69|
-              80
-            )\d|
-            976
-          )\d{6}
+            69|
+            80|
+            9\d
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -11573,9 +11650,8 @@
             2[0-68]|
             3[1289]|
             5[3-579]|
-            6[0-289]|
+            [68][0-689]|
             7[08]|
-            8[0-689]|
             9\d
           )\d{4}
         </nationalNumberPattern>
@@ -11608,7 +11684,15 @@
       <voip>
         <possibleLengths national="9"/>
         <exampleNumber>976012345</exampleNumber>
-        <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+        <nationalNumberPattern>
+          9(?:
+            (?:
+              395|
+              76[018]
+            )\d|
+            475[0-2]
+          )\d{4}
+        </nationalNumberPattern>
       </voip>
     </territory>
 
@@ -11879,7 +11963,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.nationalnanpa.com/nas/public/assigned_code_query_step1.do?method=resetCodeQueryModel -->
     <territory id="GU" countryCode="1" leadingDigits="671" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([3-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([3-9]\d{6})$|1"
                nationalPrefixTransformRule="671$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -11908,7 +11992,7 @@
               00|
               56|
               7[1-9]|
-              8[0236-9]
+              8[02-46-9]
             )|
             5(?:
               55|
@@ -11959,7 +12043,7 @@
               00|
               56|
               7[1-9]|
-              8[0236-9]
+              8[02-46-9]
             )|
             5(?:
               55|
@@ -12047,7 +12131,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -12152,7 +12236,7 @@
         <nationalNumberPattern>
           (?:
             6\d\d|
-            70[015-7]
+            70[0-35-7]
           )\d{4}
         </nationalNumberPattern>
       </mobile>
@@ -12435,10 +12519,10 @@
         <nationalNumberPattern>
           2(?:
             2(?:
-              0[0-359]|
-              1[1-367]|
+              0[0-59]|
+              1[1-9]|
               [23]\d|
-              4[03-6]|
+              4[02-6]|
               5[57]|
               6[245]|
               7[0135689]|
@@ -12446,18 +12530,18 @@
               9[0-2]
             )|
             4(?:
-              0[78]|
+              0[578]|
               2[3-59]|
               3[13-9]|
               4[0-68]|
-              5[1-35]
+              5[1-3589]
             )|
             5(?:
-              0[7-9]|
-              16|
+              0[2357-9]|
+              1[1-356]|
               4[03-5]|
               5\d|
-              6[014-6]|
+              6[014-69]|
               7[04]|
               80
             )|
@@ -12465,12 +12549,13 @@
               [056]\d|
               17|
               2[067]|
-              3[04]|
+              3[047]|
               4[0-378]|
               [78][0-8]|
               9[01]
             )|
             7(?:
+              0[5-79]|
               6[46-9]|
               7[02-9]|
               8[034]|
@@ -12565,17 +12650,22 @@
         <possibleLengths national="8,9"/>
         <exampleNumber>921234567</exampleNumber>
         <nationalNumberPattern>
-          98\d{6,7}|
-          975(?:
-            1\d|
-            77|
-            9[67]
-          )\d{4}|
           9(?:
-            0[1-9]|
-            [1259]\d|
-            7[0679]
-          )\d{6}
+            (?:
+              0[1-9]|
+              [12589]\d
+            )\d\d|
+            7(?:
+              [0679]\d\d|
+              5(?:
+                [01]\d|
+                44|
+                77|
+                9[67]
+              )
+            )
+          )\d{4}|
+          98\d{6}
         </nationalNumberPattern>
       </mobile>
       <tollFree>
@@ -12614,12 +12704,17 @@
     <territory id="HT" countryCode="509" internationalPrefix="00">
       <availableFormats>
         <numberFormat pattern="(\d{2})(\d{2})(\d{4})">
-          <leadingDigits>[2-489]</leadingDigits>
+          <leadingDigits>[2-589]</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>[2-489]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>
+          (?:
+            [2-489]\d|
+            55
+          )\d{6}
+        </nationalNumberPattern>
       </generalDesc>
       <!-- Digicel reported 281 and 29[149] belong to them, the more recent ITU doc 20.I.2017
            agrees and classifies them as fixedLine so we follow that here. -->
@@ -12640,7 +12735,12 @@
       <mobile>
         <possibleLengths national="8"/>
         <exampleNumber>34101234</exampleNumber>
-        <nationalNumberPattern>[34]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>
+          (?:
+            [34]\d|
+            55
+          )\d{6}
+        </nationalNumberPattern>
       </mobile>
       <!-- ITU document says numbers with prefix 8 are "value-added services and free numbers
            without making any further distinction. However, http://www.numberingplans.com/ seems
@@ -13327,14 +13427,18 @@
         <exampleNumber>771234567</exampleNumber>
         <nationalNumberPattern>
           7(?:
-            380|
+            38(?:
+              0\d|
+              5[09]|
+              88
+            )|
             8(?:
               33|
               55|
               77|
               81
-            )
-          )\d{5}|
+            )\d
+          )\d{4}|
           7(?:
             18|
             2[23]|
@@ -13371,7 +13475,7 @@
     <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
     <territory id="IM" countryCode="44" leadingDigits="74576|(?:16|7[56])24"
                internationalPrefix="00" nationalPrefix="0"
-               nationalPrefixForParsing="0|([25-8]\d{5})$" nationalPrefixTransformRule="1624$1">
+               nationalPrefixForParsing="([25-8]\d{5})$|0" nationalPrefixTransformRule="1624$1">
       <generalDesc>
         <nationalNumberPattern>
           1624\d{6}|
@@ -14790,13 +14894,14 @@
               [0-46]\d\d|
               5[15]0|
               8(?:
-                1\d|
+                [12]\d|
                 88
               )|
               9(?:
                 0[0-3]|
                 [19]\d|
                 21|
+                69|
                 77|
                 8[7-9]
               )
@@ -15269,7 +15374,7 @@
     <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
     <!-- http://www.jcra.je/cms3/v2/public/cmsChild.asp?pageID=1024&childID=1036 -->
     <territory id="JE" countryCode="44" internationalPrefix="00" nationalPrefix="0"
-               nationalPrefixForParsing="0|([0-24-8]\d{5})$" nationalPrefixTransformRule="1534$1">
+               nationalPrefixForParsing="([0-24-8]\d{5})$|0" nationalPrefixTransformRule="1534$1">
       <generalDesc>
         <nationalNumberPattern>
           1534\d{6}|
@@ -15465,12 +15570,12 @@
               52[35]|
               6(?:
                 0[1-3579]|
-                1[02357-9]|
+                1[0235-9]|
                 [23]\d|
                 40|
                 5[06]|
                 6[2-589]|
-                7[025-7]|
+                7[025-9]|
                 8[04]|
                 9[4-9]
               )|
@@ -15584,7 +15689,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -16844,6 +16949,7 @@
               2\d
             )|
             5[0-24-7]\d|
+            600|
             7(?:
               [07]\d|
               55
@@ -17042,13 +17148,40 @@
         <exampleNumber>72001234</exampleNumber>
         <nationalNumberPattern>
           (?:
-            63\d{3}|
-            73(?:
-              0[0-5]\d|
-              140
+            6200[01]|
+            7(?:
+              310[1-9]|
+              5(?:
+                02[03-9]|
+                12[0-47-9]|
+                22[0-7]|
+                [34](?:
+                  0[1-9]|
+                  8[02-9]
+                )|
+                50[1-9]
+              )
             )
           )\d{3}|
-          [67]200[01]\d{3}
+          (?:
+            63\d\d|
+            7(?:
+              (?:
+                [0146-9]\d|
+                2[0-689]
+              )\d|
+              3(?:
+                [02-9]\d|
+                1[1-9]
+              )|
+              5(?:
+                [0-2][013-9]|
+                [34][1-79]|
+                5[1-9]|
+                [6-9]\d
+              )
+            )
+          )\d{4}
         </nationalNumberPattern>
       </mobile>
       <!-- ITU refers to these as "Overseas Operator" (used to call Phone Group's usage
@@ -17105,7 +17238,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000B0/en -->
     <territory id="KN" countryCode="1" leadingDigits="869" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
                nationalPrefixTransformRule="869$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -17203,7 +17336,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -17626,7 +17759,6 @@
             9(?:
               (?:
                 0[09]|
-                22|
                 [4679]\d|
                 8[057-9]
               )\d|
@@ -17634,9 +17766,13 @@
                 1[01]|
                 99
               )|
+              2(?:
+                00|
+                2\d
+              )|
               3(?:
                 00|
-                33
+                3[03]
               )|
               5(?:
                 00|
@@ -17659,7 +17795,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T0202000027/en -->
     <territory id="KY" countryCode="1" leadingDigits="345" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="345$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -17802,7 +17938,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -17867,7 +18003,8 @@
                 4(?:
                   [24]\d|
                   3[013-9]|
-                  5[1-9]
+                  5[1-9]|
+                  97
                 )|
                 5(?:
                   2\d|
@@ -17884,7 +18021,8 @@
                 8(?:
                   [27]\d|
                   3[1-46-9]|
-                  4[0-5]
+                  4[0-5]|
+                  59
                 )
               )|
               2(?:
@@ -17910,7 +18048,7 @@
                 )|
                 5(?:
                   [23]\d|
-                  4[0-246-8]|
+                  4[0-8]|
                   59|
                   61
                 )|
@@ -18038,8 +18176,7 @@
         <nationalNumberPattern>
           (?:
             20(?:
-              [239]\d|
-              5[24-9]|
+              [2359]\d|
               7[6-8]|
               88
             )|
@@ -18146,7 +18283,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000B1/en -->
     <territory id="LC" countryCode="1" leadingDigits="758" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-8]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-8]\d{6})$|1"
                nationalPrefixTransformRule="758$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -18257,7 +18394,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -18274,7 +18411,7 @@
     <!-- http://www.llv.li/#/11193 -->
     <!-- https://www.itu.int/oth/T020200007B/en -->
     <territory id="LI" countryCode="423" internationalPrefix="00" nationalPrefix="0"
-               nationalPrefixForParsing="0|(1001)">
+               nationalPrefixForParsing="(1001)|0">
       <availableFormats>
         <!-- Number format for national mobile services, fixed-line, toll-free, UAN and premium rate services.
              Some different patterns for tollfree and shared cost numbers may be found by searching
@@ -18505,31 +18642,28 @@
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{2})(\d{3})(\d{4})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>[3578]</leadingDigits>
+          <leadingDigits>[23578]</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
           (?:
-            2|
+            [25]\d|
             33|
-            5\d|
             77|
             88
           )\d{7}|
-          [4-6]\d{6}
+          (?:
+            2\d|
+            [4-6]
+          )\d{6}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
-        <possibleLengths national="8,9"/>
+        <possibleLengths national="8"/>
         <exampleNumber>21234567</exampleNumber>
-        <nationalNumberPattern>
-          (?:
-            2\d{3}|
-            33333
-          )\d{4}
-        </nationalNumberPattern>
+        <nationalNumberPattern>2\d{7}</nationalNumberPattern>
       </fixedLine>
       <!-- West Africa Telecom seems to be a mobile company from their website. -->
       <mobile>
@@ -18538,7 +18672,10 @@
         <nationalNumberPattern>
           (?:
             (?:
-              330|
+              (?:
+                22|
+                33
+              )0|
               555|
               (?:
                 77|
@@ -19038,15 +19175,20 @@
           </leadingDigits>
           <leadingDigits>
             5(?:
-              29[89]|
+              29[1289]|
               389
             )
           </leadingDigits>
           <leadingDigits>
+            529(?:
+              1[1-46-9]|
+              2[013-8]|
+              90
+            )|
             5(?:
-              29[89]|
+              298|
               389
-            )0
+            )[0-46-9]
           </leadingDigits>
           <format>$1-$2</format>
         </numberFormat>
@@ -19094,27 +19236,20 @@
         <possibleLengths national="9"/>
         <exampleNumber>520123456</exampleNumber>
         <nationalNumberPattern>
-          5(?:
-            29(?:
-              [189][05]|
-              2[29]|
-              3[01]
-            )|
-            389[05]
-          )\d{4}|
+          5293[01]\d{4}|
           5(?:
             2(?:
               [0-25-7]\d|
               3[1-578]|
               4[02-46-8]|
               8[0235-7]|
-              90
+              9[0-289]
             )|
             3(?:
               [0-47]\d|
               5[02-9]|
               6[02-8]|
-              8[08]|
+              8[0189]|
               9[3-9]
             )|
             (?:
@@ -19451,14 +19586,12 @@
                mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
+          590\d{6}|
           (?:
-            590|
-            (?:
-              69|
-              80
-            )\d|
-            976
-          )\d{6}
+            69|
+            80|
+            9\d
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -19504,14 +19637,22 @@
       <voip>
         <possibleLengths national="9"/>
         <exampleNumber>976012345</exampleNumber>
-        <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+        <nationalNumberPattern>
+          9(?:
+            (?:
+              395|
+              76[018]
+            )\d|
+            475[0-2]
+          )\d{4}
+        </nationalNumberPattern>
       </voip>
     </territory>
 
     <!-- Madagascar (MG) -->
     <!-- http://www.itu.int/oth/T020200007F/en -->
     <territory id="MG" countryCode="261" internationalPrefix="00" nationalPrefix="0"
-               nationalPrefixForParsing="0|([24-9]\d{6})$" nationalPrefixTransformRule="20$1">
+               nationalPrefixForParsing="([24-9]\d{6})$|0" nationalPrefixTransformRule="20$1">
       <availableFormats>
         <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
           <leadingDigits>[23]</leadingDigits>
@@ -19545,7 +19686,7 @@
       <mobile>
         <possibleLengths national="9"/>
         <exampleNumber>321234567</exampleNumber>
-        <nationalNumberPattern>3[2-489]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>3[2-47-9]\d{7}</nationalNumberPattern>
       </mobile>
       <!-- Putting VSAT numbers here. -->
       <voip>
@@ -19579,6 +19720,7 @@
         <nationalNumberPattern>
           (?:
             247|
+            45[78]|
             528|
             625
           )\d{4}
@@ -19691,16 +19833,15 @@
         <nationalNumberPattern>
           7(?:
             3555|
-            4747|
-            9(?:
-              [019]77|
-              42[0-4]
-            )
+            (?:
+              474|
+              9[019]7
+            )7
           )\d{3}|
           7(?:
             [0-25-8]\d\d|
             3(?:
-              [1-4]\d|
+              [1-48]\d|
               7[01578]
             )|
             4(?:
@@ -19709,8 +19850,8 @@
               7[01578]
             )|
             9(?:
-              [23]\d|
-              4[01]|
+              [2-4]\d|
+              5[01]|
               7[015]
             )
           )\d{4}
@@ -19923,11 +20064,9 @@
                 [89][0-6]
               )\d|
               4(?:
-                2[2-469]|
-                39|
-                46|
-                6[25]|
-                7[0-3]|
+                2[29]|
+                62|
+                7[0-2]|
                 83
               )|
               6
@@ -19939,11 +20078,8 @@
               )|
               4(?:
                 0\d|
-                2[246]|
-                39|
-                46|
-                62|
-                7[0-3]|
+                [26]2|
+                7[0-2]|
                 83
               )|
               51\d\d
@@ -19951,7 +20087,7 @@
             4(?:
               2(?:
                 2\d\d|
-                48[0-3]
+                48[013]
               )|
               3(?:
                 20\d|
@@ -19973,35 +20109,31 @@
                 124|
                 [56]2\d
               )\d|
-              247[23]|
+              2472|
               3(?:
                 20\d|
                 470
               )|
               4(?:
                 2[04]\d|
-                47[23]
+                472
               )|
               7(?:
                 (?:
                   3\d|
                   8[01459]
                 )\d|
-                4(?:
-                  39|
-                  60|
-                  7[013]
-                )
+                4[67]0
               )
             )
           )\d{4}|
           5(?:
             2(?:
               2\d{5,6}|
-              47[023]\d{4}
+              47[02]\d{4}
             )|
             (?:
-              347[23]|
+              3472|
               4(?:
                 2(?:
                   1|
@@ -20016,7 +20148,7 @@
               )|
               7(?:
                 20\d|
-                48[0-2]
+                48[01]
               )|
               8(?:
                 20\d|
@@ -20024,7 +20156,7 @@
               )|
               9(?:
                 20\d|
-                47[01]
+                470
               )
             )\d{4}
           )|
@@ -20071,10 +20203,15 @@
               )|
               4[24-7]|
               5(?:
-                2\d|
-                4[1-9]|
-                51
-              )\d|
+                (?:
+                  2\d|
+                  51
+                )\d|
+                4(?:
+                  [1-35-9]\d|
+                  4[0-57-9]
+                )
+              )|
               6[23]
             )\d{4}
           )|
@@ -20155,16 +20292,13 @@
                 )|
                 (?:
                   6\d|
+                  8[89]|
                   9[4-8]
                 )\d|
                 7(?:
                   3|
                   40|
                   [5-9]\d
-                )|
-                8(?:
-                  78|
-                  [89]\d
                 )
               )\d|
               4(?:
@@ -20189,7 +20323,7 @@
         <exampleNumber>8008001234</exampleNumber>
         <nationalNumberPattern>
           80080(?:
-            [01][1-9]|
+            0[1-9]|
             2\d
           )\d{3}
         </nationalNumberPattern>
@@ -20294,11 +20428,11 @@
         <nationalNumberPattern>
           (?:
             83[01]|
-            920
+            92[039]
           )\d{5}|
           (?:
             5[05]|
-            6[06]|
+            6[069]|
             8[015689]|
             9[013-9]
           )\d{6}
@@ -20314,7 +20448,7 @@
           712[0-79]\d{4}|
           7(?:
             1[013-9]|
-            [25-8]\d
+            [25-9]\d
           )\d{5}
         </nationalNumberPattern>
       </voip>
@@ -20391,7 +20525,7 @@
     <!-- http://www.itu.int/oth/T02020000EE/en -->
     <!-- http://www.cnmiphonebook.com/ -->
     <territory id="MP" countryCode="1" leadingDigits="670" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="670$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -20522,7 +20656,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -20553,14 +20687,12 @@
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
+          596\d{6}|
           (?:
             69|
-            80
-          )\d{7}|
-          (?:
-            59|
-            97
-          )6\d{6}
+            80|
+            9\d
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -20602,9 +20734,13 @@
         <possibleLengths national="9"/>
         <exampleNumber>976612345</exampleNumber>
         <nationalNumberPattern>
-          976(?:
-            6\d|
-            7[0-367]
+          9(?:
+            397[01]|
+            477[0-2]|
+            76(?:
+              6\d|
+              7[0-367]
+            )
           )\d{4}
         </nationalNumberPattern>
       </voip>
@@ -20658,7 +20794,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T020200008F/en -->
     <territory id="MS" countryCode="1" leadingDigits="664" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([34]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([34]\d{6})$|1"
                nationalPrefixTransformRule="664$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -20746,7 +20882,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -20876,7 +21012,7 @@
           <format>$1 $2</format>
         </numberFormat>
         <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>5</leadingDigits>
+          <leadingDigits>[57]</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
         <numberFormat pattern="(\d{5})(\d{5})">
@@ -20887,7 +21023,7 @@
       <generalDesc>
         <nationalNumberPattern>
           (?:
-            5|
+            [57]|
             8\d\d
           )\d{7}|
           [2-468]\d{6}
@@ -20931,12 +21067,18 @@
             )|
             87[15-8]
           )\d{4}|
-          5(?:
-            2[5-9]|
-            4[3-689]|
-            [57]\d|
-            8[0-689]|
-            9[0-8]
+          (?:
+            5(?:
+              2[5-9]|
+              4[3-689]|
+              [57]\d|
+              8[0-689]|
+              9[0-8]
+            )|
+            7(?:
+              0[0-2]|
+              3[013]
+            )
           )\d{5}
         </nationalNumberPattern>
       </mobile>
@@ -20973,10 +21115,7 @@
                internationalPrefix="0(?:0|19)">
       <availableFormats>
         <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>
-            [3467]|
-            9[13-9]
-          </leadingDigits>
+          <leadingDigits>[34679]</leadingDigits>
           <format>$1-$2</format>
         </numberFormat>
         <!-- It's not clear whether 800 and 900 numbers have a leading zero; 900 numbers have been
@@ -21022,11 +21161,10 @@
         <possibleLengths national="7"/>
         <exampleNumber>7712345</exampleNumber>
         <nationalNumberPattern>
-          46[46]\d{4}|
           (?:
-            7\d|
-            9[13-9]
-          )\d{5}
+            46[46]|
+            [79]\d\d
+          )\d{4}
         </nationalNumberPattern>
       </mobile>
       <tollFree>
@@ -21165,6 +21303,7 @@
         <nationalNumberPattern>
           1(?:
             (?:
+              [27]2|
               44|
               99
             )[1-9]|
@@ -21172,10 +21311,12 @@
           )\d{7}|
           (?:
             1(?:
-              [017]\d|
-              [235][1-9]|
+              [01]\d|
+              2[13-9]|
+              [35][1-9]|
               4[0-35-9]|
               6[0-46-9]|
+              7[013-9]|
               8[1-79]|
               9[1-8]
             )|
@@ -21193,7 +21334,7 @@
           (?:
             2(?:
               0[01]|
-              2[1-9]|
+              2\d|
               3[1-35-8]|
               4[13-9]|
               7[1-689]|
@@ -21230,7 +21371,8 @@
               9[4-8]
             )|
             7(?:
-              [1-467][1-9]|
+              [13467][1-9]|
+              2\d|
               5[13-9]|
               8[1-69]|
               9[17]
@@ -21328,7 +21470,7 @@
               )
             )|
             2(?:
-              2[1-9]|
+              2\d|
               3[1-35-8]|
               4[13-9]|
               7[1-689]|
@@ -21365,7 +21507,8 @@
               9[4-8]
             )|
             7(?:
-              [1-467][1-9]|
+              [13467][1-9]|
+              2\d|
               5[13-9]|
               8[1-69]|
               9[17]
@@ -21582,8 +21725,7 @@
                 [1-9]\d
               )|
               7(?:
-                [0134]\d|
-                2[1-9]|
+                [0-4]\d|
                 5[0-6]
               )
             )|
@@ -22122,20 +22264,17 @@
         <nationalNumberPattern>
           (?:
             702[0-24-9]|
-            8(?:
-              01|
-              19
-            )[01]
+            819[01]
           )\d{6}|
           (?:
             70[13-689]|
             8(?:
-              0[2-9]|
+              0[1-9]|
               1[0-8]
             )|
             9(?:
               0[1-9]|
-              1[2356]
+              1[1-356]
             )
           )\d{7}
         </nationalNumberPattern>
@@ -22430,14 +22569,11 @@
                internationalPrefix="00" mobileNumberPortableRegion="true">
       <availableFormats>
         <numberFormat pattern="(\d{3})(\d{2})(\d{3})">
-          <leadingDigits>
-            [489]|
-            59
-          </leadingDigits>
+          <leadingDigits>8</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[235-7]</leadingDigits>
+          <leadingDigits>[2-79]</leadingDigits>
           <format>$1 $2 $3 $4</format>
         </numberFormat>
       </availableFormats>
@@ -22800,7 +22936,10 @@
         <exampleNumber>211234567</exampleNumber>
         <nationalNumberPattern>
           2[0-27-9]\d{7,8}|
-          21\d{6}
+          2(?:
+            1\d|
+            75
+          )\d{5}
         </nationalNumberPattern>
       </mobile>
       <pager>
@@ -22891,7 +23030,7 @@
       <fixedLine>
         <possibleLengths national="8"/>
         <exampleNumber>23123456</exampleNumber>
-        <nationalNumberPattern>2[2-6]\d{6}</nationalNumberPattern>
+        <nationalNumberPattern>2[1-6]\d{6}</nationalNumberPattern>
       </fixedLine>
       <mobile>
         <possibleLengths national="8"/>
@@ -22901,7 +23040,7 @@
           (?:
             7(?:
               [1289]\d|
-              7[0-4]
+              7[0-5]
             )|
             9(?:
               0[1-9]|
@@ -24017,6 +24156,10 @@
           <leadingDigits>[45]</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
+        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
+          <leadingDigits>7</leadingDigits>
+          <format>$1 $2 $3</format>
+        </numberFormat>
         <numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
           <leadingDigits>8</leadingDigits>
           <format>$1 $2 $3 $4</format>
@@ -24024,10 +24167,11 @@
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
+          [45]\d{5}|
           (?:
-            [45]|
-            80\d\d
-          )\d{5}
+            708|
+            80\d
+          )\d{6}
         </nationalNumberPattern>
       </generalDesc>
       <!-- Fixed-line and mobile numbers do not include any main prefix (like country code)
@@ -24048,12 +24192,13 @@
       <!-- 44 XXXX might be a mobile range as it is assigned to Globaltel. Category is not
            mentioned in the ITU doc. -->
       <mobile>
-        <possibleLengths national="6"/>
+        <possibleLengths national="6,9"/>
         <exampleNumber>551234</exampleNumber>
         <nationalNumberPattern>
           (?:
             4[02-4]|
-            5[056]
+            5[056]|
+            708[45][0-5]
           )\d{4}
         </nationalNumberPattern>
       </mobile>
@@ -24153,7 +24298,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -24348,9 +24493,13 @@
         <exampleNumber>707123456</exampleNumber>
         <nationalNumberPattern>
           70(?:
-            7\d|
-            8[17]
-          )\d{5}
+            38[01]|
+            596|
+            (?:
+              7\d|
+              8[17]
+            )\d
+          )\d{4}
         </nationalNumberPattern>
       </uan>
       <voicemail>
@@ -24613,23 +24762,27 @@
       <availableFormats>
         <numberFormat pattern="(\d{3})(\d{4})">
           <leadingDigits>
-            2[126]|
+            2[16]|
             8
           </leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
         <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>[2-7]</leadingDigits>
+          <leadingDigits>[3-7]</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
-          [2-7]\d{7}|
-          800\d{4}(?:
-            \d{2}
-          )?|
-          2\d{6}
+          800\d{4}|
+          (?:
+            2|
+            800
+          )\d{6}|
+          (?:
+            0080|
+            [3-7]
+          )\d{7}
         </nationalNumberPattern>
       </generalDesc>
       <!-- The prefix 40 has now been allocated, based on numbers seen online.
@@ -24638,41 +24791,37 @@
         <possibleLengths national="8"/>
         <exampleNumber>44123456</exampleNumber>
         <nationalNumberPattern>
-          414[1-4]\d{4}|
-          (?:
-            23|
-            4[04]
-          )\d{6}
+          4(?:
+            1111|
+            2022
+          )\d{3}|
+          4(?:
+            [04]\d\d|
+            14[0-6]|
+            999
+          )\d{4}
         </nationalNumberPattern>
       </fixedLine>
       <mobile>
         <possibleLengths national="8"/>
         <exampleNumber>33123456</exampleNumber>
-        <nationalNumberPattern>
-          (?:
-            2[89]|
-            [35-7]\d
-          )\d{6}
-        </nationalNumberPattern>
+        <nationalNumberPattern>[35-7]\d{7}</nationalNumberPattern>
       </mobile>
       <pager>
         <possibleLengths national="7"/>
         <exampleNumber>2123456</exampleNumber>
-        <nationalNumberPattern>
-          2(?:
-            [12]\d|
-            61
-          )\d{4}
-        </nationalNumberPattern>
+        <nationalNumberPattern>2[16]\d{5}</nationalNumberPattern>
       </pager>
       <!-- Prefix 800 with 9 digit length is added based on user report. -->
       <tollFree>
-        <possibleLengths national="7,9"/>
+        <possibleLengths national="7,9,11"/>
         <exampleNumber>8001234</exampleNumber>
         <nationalNumberPattern>
-          800\d{4}(?:
-            \d{2}
-          )?
+          800\d{4}|
+          (?:
+            0080[01]|
+            800
+          )\d{6}
         </nationalNumberPattern>
       </tollFree>
     </territory>
@@ -24681,8 +24830,8 @@
     <!-- Main region for 'YT' -->
     <!-- http://www.itu.int/oth/T020200004B/en -->
     <!-- http://www.arcep.fr/index.php?id=2137&bloc=0596&CMD=RESULTS_NUMEROTATION -->
-    <territory id="RE" mainCountryForCode="true" countryCode="262" leadingDigits="26[23]|69|[89]"
-               internationalPrefix="00" nationalPrefix="0">
+    <territory id="RE" mainCountryForCode="true" countryCode="262" internationalPrefix="00"
+               nationalPrefix="0">
       <availableFormats>
         <numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
           <leadingDigits>[2689]</leadingDigits>
@@ -24691,10 +24840,9 @@
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
-          976\d{6}|
           (?:
             26|
-            [68]\d
+            [689]\d
           )\d{7}
         </nationalNumberPattern>
       </generalDesc>
@@ -24707,7 +24855,7 @@
             2\d\d|
             3(?:
               0\d|
-              1[01]
+              1[0-3]
             )
           )\d{4}
         </nationalNumberPattern>
@@ -24732,10 +24880,14 @@
                 9[0-479]
               )
             )|
-            976(?:
-              2[27]|
-              3[0-37]|
-              9\d
+            9(?:
+              399[0-3]|
+              479[0-2]|
+              76(?:
+                2[27]|
+                3[0-37]|
+                9\d
+              )
             )
           )\d{4}
         </nationalNumberPattern>
@@ -24840,7 +24992,7 @@
             1[0-3]|
             [2-7]\d|
             8[03-8]|
-            9[019]
+            9[0-29]
           )\d{6}
         </nationalNumberPattern>
       </mobile>
@@ -24998,7 +25150,8 @@
           <leadingDigits>
             7(?:
               1(?:
-                [0-6]2|
+                [0-356]2|
+                4[29]|
                 7|
                 8[27]
               )|
@@ -25011,7 +25164,8 @@
           <leadingDigits>
             7(?:
               1(?:
-                [0-6]2|
+                [0-356]2|
+                4[29]|
                 7|
                 8[27]
               )|
@@ -25839,7 +25993,7 @@
           <leadingDigits>
             [369]|
             8(?:
-              0[1-5]|
+              0[1-6]|
               [1-9]
             )
           </leadingDigits>
@@ -25888,12 +26042,12 @@
         <exampleNumber>81234567</exampleNumber>
         <nationalNumberPattern>
           8(?:
-            05[0-7]|
+            06[0-689]|
             95[0-2]
           )\d{4}|
           (?:
             8(?:
-              0[1-4]|
+              0[1-5]|
               [1-8]\d|
               9[0-4]
             )|
@@ -26043,10 +26197,9 @@
         <exampleNumber>31234567</exampleNumber>
         <nationalNumberPattern>
           65(?:
-            1\d|
-            55|
-            6[01]|
-            70
+            [178]\d|
+            5[56]|
+            6[01]
           )\d{4}|
           (?:
             [37][01]|
@@ -26552,7 +26705,10 @@
         </numberFormat>
         <numberFormat pattern="(\d)(\d{7})">
           <leadingDigits>
-            24|
+            (?:
+              2|
+              90
+            )4|
             [67]
           </leadingDigits>
           <format>$1 $2</format>
@@ -26639,7 +26795,10 @@
               8
             )
           )\d{5}|
-          [67]\d{7}
+          (?:
+            [67]\d\d|
+            904
+          )\d{5}
         </nationalNumberPattern>
       </mobile>
     </territory>
@@ -26852,7 +27011,7 @@
     <!-- http://www.nanpa.com/pdf/PL_429.pdf -->
     <!-- http://www.itu.int/oth/T02020000F7/en -->
     <territory id="SX" countryCode="1" leadingDigits="721" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|(5\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="(5\d{6})$|1"
                nationalPrefixTransformRule="721$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -26942,7 +27101,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -27077,7 +27236,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000D8/en -->
     <territory id="TC" countryCode="1" leadingDigits="649" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-479]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-479]\d{6})$|1"
                nationalPrefixTransformRule="649$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -27171,7 +27330,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -27232,7 +27391,7 @@
         <exampleNumber>63012345</exampleNumber>
         <nationalNumberPattern>
           (?:
-            6[023568]|
+            6[0235689]|
             77|
             9\d
           )\d{6}
@@ -27272,7 +27431,7 @@
         <exampleNumber>90112345</exampleNumber>
         <nationalNumberPattern>
           (?:
-            7[09]|
+            7[019]|
             9[0-36-9]
           )\d{6}
         </nationalNumberPattern>
@@ -27402,12 +27561,7 @@
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            00|
-            [1-57-9]\d
-          )\d{7}
-        </nationalNumberPattern>
+        <nationalNumberPattern>[0-57-9]\d{8}</nationalNumberPattern>
       </generalDesc>
       <fixedLine>
         <possibleLengths national="9" localOnly="3,[5-7]"/>
@@ -27439,11 +27593,13 @@
         <nationalNumberPattern>
           41[18]\d{6}|
           (?:
-            [034]0|
-            [17][017]|
+            0[0-27]|
+            1[017]|
             2[02]|
+            [34]0|
             5[05]|
-            8[08]|
+            7[0178]|
+            8[078]|
             9\d
           )\d{7}
         </nationalNumberPattern>
@@ -27772,7 +27928,7 @@
       </voip>
     </territory>
 
-    <!-- Turkey (TR) -->
+    <!-- Türkiye (TR) -->
     <!-- http://en.wikipedia.org/wiki/%2B90 -->
     <!-- http://www.itu.int/oth/T02020000D6/en -->
     <!-- https://eng.btk.gov.tr/en-US/Pages/National-Numbering-Plan -->
@@ -27965,7 +28121,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000D4/en -->
     <territory id="TT" countryCode="1" leadingDigits="868" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-46-8]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-46-8]\d{6})$|1"
                nationalPrefixTransformRule="868$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -28083,7 +28239,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -28755,13 +28911,14 @@
         <possibleLengths national="10" localOnly="7"/>
         <exampleNumber>2015550123</exampleNumber>
         <nationalNumberPattern>
-          505(?:
-            [2-57-9]\d\d|
-            6(?:
-              [0-35-9]\d|
-              44
-            )
+          5056(?:
+            [0-35-9]\d|
+            4[46]
           )\d{4}|
+          (?:
+            4722|
+            505[2-57-9]
+          )\d{6}|
           (?:
             2(?:
               0[1-35-9]|
@@ -28780,7 +28937,7 @@
               2[01356]|
               3[0-24679]|
               4[167]|
-              5[12]|
+              5[0-2]|
               6[014]|
               8[056]
             )|
@@ -28801,7 +28958,7 @@
               20|
               3[0149]|
               4[01]|
-              5[19]|
+              5[179]|
               6[1-47]|
               7[0-5]|
               8[0256]
@@ -28831,7 +28988,7 @@
               0[1-68]|
               1[02-8]|
               2[068]|
-              3[0-289]|
+              3[0-2589]|
               4[03578]|
               5[046-9]|
               6[02-5]|
@@ -28854,13 +29011,14 @@
         <possibleLengths national="10" localOnly="7"/>
         <exampleNumber>2015550123</exampleNumber>
         <nationalNumberPattern>
-          505(?:
-            [2-57-9]\d\d|
-            6(?:
-              [0-35-9]\d|
-              44
-            )
+          5056(?:
+            [0-35-9]\d|
+            4[46]
           )\d{4}|
+          (?:
+            4722|
+            505[2-57-9]
+          )\d{6}|
           (?:
             2(?:
               0[1-35-9]|
@@ -28879,7 +29037,7 @@
               2[01356]|
               3[0-24679]|
               4[167]|
-              5[12]|
+              5[0-2]|
               6[014]|
               8[056]
             )|
@@ -28900,7 +29058,7 @@
               20|
               3[0149]|
               4[01]|
-              5[19]|
+              5[179]|
               6[1-47]|
               7[0-5]|
               8[0256]
@@ -28930,7 +29088,7 @@
               0[1-68]|
               1[02-8]|
               2[068]|
-              3[0-289]|
+              3[0-2589]|
               4[03578]|
               5[046-9]|
               6[02-5]|
@@ -29003,7 +29161,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -29046,10 +29204,18 @@
           <leadingDigits>4</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
+        <!-- 13 digit toll free numbers -->
+        <numberFormat pattern="(\d{3})(\d{3})(\d{3})(\d{4})">
+          <leadingDigits>0</leadingDigits>
+          <format>$1 $2 $3 $4</format>
+        </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
-          4\d{9}|
+          (?:
+            0004|
+            4
+          )\d{9}|
           [1249]\d{7}|
           (?:
             [49]\d|
@@ -29080,11 +29246,14 @@
         <nationalNumberPattern>9[1-9]\d{6}</nationalNumberPattern>
       </mobile>
       <tollFree>
-        <possibleLengths national="7,10"/>
+        <possibleLengths national="7,10,13"/>
         <exampleNumber>8001234</exampleNumber>
         <nationalNumberPattern>
           (?:
-            4\d{5}|
+            (?:
+              0004|
+              4
+            )\d{5}|
             80[05]
           )\d{4}|
           405\d{4}
@@ -29113,8 +29282,7 @@
         <nationalNumberPattern>
           (?:
             33|
-            55|
-            [679]\d|
+            [5-79]\d|
             88
           )\d{7}
         </nationalNumberPattern>
@@ -29126,6 +29294,7 @@
         <exampleNumber>669050123</exampleNumber>
         <nationalNumberPattern>
           (?:
+            55\d\d|
             6(?:
               1(?:
                 22|
@@ -29212,13 +29381,10 @@
           (?:
             (?:
               33|
+              50|
               88|
               9[0-57-9]
             )\d{3}|
-            55(?:
-              50[013]|
-              90\d
-            )|
             6(?:
               1(?:
                 2(?:
@@ -29595,7 +29761,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000B3/en -->
     <territory id="VC" countryCode="1" leadingDigits="784" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
                nationalPrefixTransformRule="784$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -29708,7 +29874,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -29796,7 +29962,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T020200001E/en -->
     <territory id="VG" countryCode="1" leadingDigits="284" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-578]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-578]\d{6})$|1"
                nationalPrefixTransformRule="284$1" mobileNumberPortableRegion="true">
       <generalDesc>
         <nationalNumberPattern>
@@ -29813,7 +29979,6 @@
         <possibleLengths national="10" localOnly="7"/>
         <exampleNumber>2842291234</exampleNumber>
         <nationalNumberPattern>
-          284496[0-5]\d{3}|
           284(?:
             229|
             4(?:
@@ -29834,7 +29999,6 @@
         <possibleLengths national="10" localOnly="7"/>
         <exampleNumber>2843001234</exampleNumber>
         <nationalNumberPattern>
-          284496[6-9]\d{3}|
           284(?:
             245|
             3(?:
@@ -29846,7 +30010,7 @@
             4(?:
               4[0-6]|
               68|
-              99
+              9[69]
             )|
             5(?:
               4[0-7]|
@@ -29910,7 +30074,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -29925,7 +30089,7 @@
     <!-- Calling code and formatting shared with 'US' -->
     <!-- http://www.itu.int/oth/T02020000DF/en -->
     <territory id="VI" countryCode="1" leadingDigits="340" internationalPrefix="011"
-               nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+               nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
                nationalPrefixTransformRule="340$1">
       <generalDesc>
         <nationalNumberPattern>
@@ -29945,7 +30109,7 @@
         <nationalNumberPattern>
           340(?:
             2(?:
-              0[0-38]|
+              0[0-368]|
               2[06-8]|
               4[49]|
               77
@@ -29986,7 +30150,7 @@
         <nationalNumberPattern>
           340(?:
             2(?:
-              0[0-38]|
+              0[0-368]|
               2[06-8]|
               4[49]|
               77
@@ -30075,7 +30239,7 @@
           52[34][2-9]1[02-9]\d{4}|
           5(?:
             00|
-            2[125-7]|
+            2[125-9]|
             33|
             44|
             66|
@@ -30168,12 +30332,11 @@
             0[3-9]|
             1[0-689]|
             2[0-25-9]|
-            3[2-9]|
+            [38][2-9]|
             4[2-8]|
             5[124-9]|
             6[0-39]|
             7[0-7]|
-            8[2-79]|
             9[0-4679]
           )\d{7}
         </nationalNumberPattern>
@@ -30504,7 +30667,10 @@
         <numberFormat pattern="(\d)(\d{3})(\d{3,4})" nationalPrefixFormattingRule="$NP$FG">
           <leadingDigits>
             [1-6]|
-            7[24-68]
+            7(?:
+              [24-6]|
+              8[0-7]
+            )
           </leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
@@ -30542,7 +30708,7 @@
       <mobile>
         <possibleLengths national="9"/>
         <exampleNumber>712345678</exampleNumber>
-        <nationalNumberPattern>7[0137]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>7[01378]\d{7}</nationalNumberPattern>
       </mobile>
     </territory>
 
@@ -30553,15 +30719,20 @@
     <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_France -->
     <!-- http://www.comores-online.com/mwezinet/internet/262 -->
     <!-- http://www.arcep.fr/index.php?id=2137&bloc=0596&CMD=RESULTS_NUMEROTATION -->
-    <territory id="YT" countryCode="262" leadingDigits="269|63" internationalPrefix="00"
+    <territory id="YT" countryCode="262" leadingDigits="269|63|9398" internationalPrefix="00"
                nationalPrefix="0">
       <generalDesc>
         <nationalNumberPattern>
-          80\d{7}|
           (?:
-            26|
-            63
-          )9\d{6}
+            (?:
+              (?:
+                26|
+                63
+              )9|
+              80\d
+            )\d|
+            9398
+          )\d{5}
         </nationalNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -30569,7 +30740,7 @@
         <exampleNumber>269601234</exampleNumber>
         <nationalNumberPattern>
           269(?:
-            0[0-367]|
+            0[0-467]|
             5[0-3]|
             6\d|
             [78]0
@@ -30580,14 +30751,17 @@
         <possibleLengths national="9"/>
         <exampleNumber>639012345</exampleNumber>
         <nationalNumberPattern>
-          639(?:
-            0[0-79]|
-            1[019]|
-            [267]\d|
-            3[09]|
-            40|
-            5[05-9]|
-            9[04-79]
+          (?:
+            639(?:
+              0[0-79]|
+              1[019]|
+              [267]\d|
+              3[09]|
+              40|
+              5[05-9]|
+              9[04-79]
+            )|
+            9398[01]
           )\d{4}
         </nationalNumberPattern>
       </mobile>
@@ -31357,12 +31531,15 @@
         </numberFormat>
         <!-- For 8 digit mobile numbers. -->
         <numberFormat pattern="(\d{2})(\d{6})">
-          <leadingDigits>4</leadingDigits>
+          <leadingDigits>49</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
         <!-- For 8 digit VOIP numbers. -->
         <numberFormat pattern="(\d{2})(\d{2})(\d{4})">
-          <leadingDigits>[19]</leadingDigits>
+          <leadingDigits>
+            1[36]|
+            9
+          </leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <!-- For 9 digit mobile numbers. -->
@@ -31372,12 +31549,21 @@
         </numberFormat>
         <!-- For 9 and 10 digit VOIP numbers. -->
         <numberFormat pattern="(\d{2})(\d{3,4})(\d{4})">
-          <leadingDigits>1</leadingDigits>
+          <leadingDigits>16</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <!-- For 10 digit numbers in general. -->
         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>34[57]</leadingDigits>
+          <leadingDigits>
+            10|
+            23|
+            3(?:
+              [15]|
+              4[57]
+            )|
+            4|
+            51
+          </leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <!-- For voice mail numbers. -->
@@ -31387,7 +31573,7 @@
         </numberFormat>
         <!-- For 11 and 12 digit numbers except voice mail. -->
         <numberFormat pattern="(\d{2})(\d{4,5})(\d{5})">
-          <leadingDigits>[1-3]</leadingDigits>
+          <leadingDigits>[1-35]</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
       </availableFormats>
@@ -31396,11 +31582,13 @@
           [13]\d{6}(?:
             \d{2,5}
           )?|
-          285\d{9}|
+          [19]\d{7}|
           (?:
-            [19]\d|
-            49
-          )\d{6}
+            [25]\d\d|
+            4
+          )\d{7}(?:
+            \d{2}
+          )?
         </nationalNumberPattern>
       </generalDesc>
       <!-- Bebbicell Mobile numbers, MCP and Oration. We are guessing the number length for
@@ -31415,10 +31603,13 @@
             337|
             49
           )\d{6}|
-          3(?:
-            2|
-            47|
-            7\d{3}
+          (?:
+            3(?:
+              2|
+              47|
+              7\d{3}
+            )|
+            50\d{3}
           )\d{7}
         </nationalNumberPattern>
       </mobile>
@@ -31443,15 +31634,22 @@
             6\d{5,10}
           )|
           (?:
-            (?:
-              285\d\d|
-              3(?:
-                45|
-                [69]\d{3}
-              )
-            )\d|
+            345\d|
             9[89]
-          )\d{6}
+          )\d{6}|
+          (?:
+            10|
+            2(?:
+              3|
+              85\d
+            )|
+            3(?:
+              [15]|
+              [69]\d\d
+            )|
+            4[15-8]|
+            51
+          )\d{8}
         </nationalNumberPattern>
       </voip>
       <voicemail>
@@ -31469,12 +31667,21 @@
     <!-- http://www.itu.int/oth/T02020000F3/en -->
     <territory id="001" countryCode="883">
       <availableFormats>
+        <numberFormat pattern="(\d{3})(\d{3})(\d{2,8})">
+          <leadingDigits>
+            [14]|
+            2[24-689]|
+            3[02-689]|
+            51[24-9]
+          </leadingDigits>
+          <format>$1 $2 $3</format>
+        </numberFormat>
         <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
           <leadingDigits>510</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>2</leadingDigits>
+          <leadingDigits>21</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <!-- When only 8 digits follow the area code formatting as XXXX XXXX
@@ -31484,33 +31691,42 @@
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>[35]</leadingDigits>
+          <leadingDigits>[235]</leadingDigits>
           <format>$1 $2 $3 $4</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
           (?:
-            210|
-            370\d\d
-          )\d{7}|
-          51\d{7}(?:
-            \d{3}
-          )?
+            [1-4]\d|
+            51
+          )\d{6,10}
         </nationalNumberPattern>
       </generalDesc>
       <voip>
-        <possibleLengths national="9,10,12"/>
+        <possibleLengths national="[8-12]"/>
         <exampleNumber>510012345</exampleNumber>
         <nationalNumberPattern>
           (?:
-            210|
+            2(?:
+              00\d\d|
+              10
+            )|
             (?:
               370[1-9]|
-              51[013]0
+              51\d0
             )\d
           )\d{7}|
-          5100\d{5}
+          51(?:
+            00\d{5}|
+            [24-9]0\d{4,7}
+          )|
+          (?:
+            1[013-79]|
+            2[24-689]|
+            3[02-689]|
+            4[0-4]
+          )0\d{5,9}
         </nationalNumberPattern>
       </voip>
     </territory>
diff --git a/resources/ShortNumberMetadata.xml b/resources/ShortNumberMetadata.xml
index 3828fb82..f10e425b 100644
--- a/resources/ShortNumberMetadata.xml
+++ b/resources/ShortNumberMetadata.xml
@@ -641,42 +641,55 @@
       <generalDesc>
         <nationalNumberPattern>
           [168]\d\d(?:
-            \d{3}
+            \d(?:
+              \d{2}
+            )?
           )?
         </nationalNumberPattern>
       </generalDesc>
       <shortCode>
-        <possibleLengths national="3,6"/>
+        <possibleLengths national="3,4,6"/>
         <exampleNumber>112</exampleNumber>
         <nationalNumberPattern>
-          116(?:
-            00[06]|
+          1(?:
             1(?:
-              17|
-              23
+              2|
+              6(?:
+                00[06]|
+                1(?:
+                  17|
+                  23
+                )
+              )
+            )|
+            2[0238]|
+            3[03]|
+            4(?:
+              [0-247]|
+              5[05]|
+              84
             )
           )|
           (?:
             61|
             8108[1-3]
-          )0|
-          1(?:
-            [12]2|
-            33|
-            44
-          )
+          )0
         </nationalNumberPattern>
       </shortCode>
       <tollFree>
-        <possibleLengths national="3,6"/>
+        <possibleLengths national="3,4,6"/>
         <exampleNumber>112</exampleNumber>
         <nationalNumberPattern>
-          116\d{3}|
           1(?:
-            [12]2|
-            33|
-            44
-          )
+            12|
+            2[0238]|
+            3[03]|
+            4[0-247]
+          )|
+          1(?:
+            16\d\d|
+            4[58]
+          )\d
         </nationalNumberPattern>
       </tollFree>
       <!-- Added yesss! numbers 810810 , 810820 and 810830 based on their website. 
@@ -701,9 +714,19 @@
         </nationalNumberPattern>
       </emergency>
       <expandedEmergency>
-        <possibleLengths national="6"/>
-        <exampleNumber>116000</exampleNumber>
-        <nationalNumberPattern>116\d{3}</nationalNumberPattern>
+        <possibleLengths national="3,4,6"/>
+        <exampleNumber>120</exampleNumber>
+        <nationalNumberPattern>
+          1(?:
+            16\d{3}|
+            2[038]|
+            30|
+            4(?:
+              [0-27]|
+              [58]\d
+            )
+          )
+        </nationalNumberPattern>
       </expandedEmergency>
     </territory>
 
@@ -1172,10 +1195,7 @@
         <nationalNumberPattern>
           1(?:
             0[0-8]|
-            1(?:
-              [027]|
-              6117
-            )|
+            16117|
             2(?:
               12|
               3[0-24]
@@ -1203,6 +1223,7 @@
             81[39]
           )|
           [2-9]\d{3}|
+          11[02679]|
           1(?:
             1600|
             45
@@ -1222,7 +1243,7 @@
         <nationalNumberPattern>
           1(?:
             0[0-35-8]|
-            1[02]|
+            1[0269]|
             7(?:
               12|
               77
@@ -1275,8 +1296,8 @@
           1(?:
             0[235-8]|
             1(?:
-              0|
-              60\d\d
+              [09]|
+              6000
             )
           )
         </nationalNumberPattern>
@@ -2435,7 +2456,7 @@
             )|
             4(?:
               [03-57]|
-              1[45]
+              1[0145]
             )|
             6(?:
               00|
@@ -2444,7 +2465,7 @@
             8(?:
               02|
               1[189]|
-              50|
+              [25]0|
               7|
               8[08]|
               99
@@ -2493,7 +2514,7 @@
         <nationalNumberPattern>
           1(?:
             14|
-            8[01589]
+            8[0-2589]
           )\d|
           543|
           83111
@@ -3481,7 +3502,7 @@
               2|
               3\d
             )\d{2,3}|
-            5[0568]|
+            5\d|
             99
           )|
           1(?:
@@ -3505,7 +3526,7 @@
                 )
               )
             )|
-            5[0568]
+            5\d
           )
         </nationalNumberPattern>
       </tollFree>
@@ -3515,7 +3536,7 @@
         <nationalNumberPattern>
           1(?:
             12|
-            5[0568]
+            5\d
           )
         </nationalNumberPattern>
       </emergency>
@@ -3614,16 +3635,10 @@
     <!-- http://www.dba.erhvervsstyrelsen.dk/numbering-lists -->
     <territory id="DK">
       <generalDesc>
-        <nationalNumberPattern>
-          1\d\d(?:
-            \d(?:
-              \d{2}
-            )?
-          )?
-        </nationalNumberPattern>
+        <nationalNumberPattern>1\d{2,5}</nationalNumberPattern>
       </generalDesc>
       <shortCode>
-        <possibleLengths national="3,4,6"/>
+        <possibleLengths national="[3-6]"/>
         <exampleNumber>112</exampleNumber>
         <nationalNumberPattern>
           1(?:
@@ -3634,12 +3649,14 @@
                 111
               )
             )|
+            619[0-2]|
             8(?:
-              [08]1|
+              01|
               1[0238]|
               28|
               30|
-              5[13]
+              5[13]|
+              8[18]
             )
           )
         </nationalNumberPattern>
@@ -4674,7 +4691,10 @@
             2|
             6(?:
               00[06]|
-              11[17]
+              1(?:
+                1[17]|
+                23
+              )
             )
           )|
           75[12]\d\d
@@ -4835,7 +4855,10 @@
         <possibleLengths national="3,4"/>
         <exampleNumber>112</exampleNumber>
         <nationalNumberPattern>
-          11[248]|
+          1(?:
+            1[248]|
+            819
+          )|
           1(?:
             4[124]|
             71|
@@ -4844,15 +4867,25 @@
         </nationalNumberPattern>
       </shortCode>
       <tollFree>
-        <possibleLengths national="3"/>
+        <possibleLengths national="3,4"/>
         <exampleNumber>112</exampleNumber>
-        <nationalNumberPattern>11[24]</nationalNumberPattern>
+        <nationalNumberPattern>
+          1(?:
+            1[24]|
+            81\d
+          )
+        </nationalNumberPattern>
       </tollFree>
       <emergency>
         <possibleLengths national="3"/>
         <exampleNumber>112</exampleNumber>
         <nationalNumberPattern>11[24]</nationalNumberPattern>
       </emergency>
+      <expandedEmergency>
+        <possibleLengths national="4"/>
+        <exampleNumber>1810</exampleNumber>
+        <nationalNumberPattern>181\d</nationalNumberPattern>
+      </expandedEmergency>
     </territory>
 
     <!-- France (FR) -->
@@ -4940,10 +4973,6 @@
             99
           )|
           202\d|
-          3(?:
-            646|
-            9[07]0
-          )|
           634|
           70[06]|
           (?:
@@ -4957,14 +4986,15 @@
            here as it is given "libre" which does not mean zero cost instead it is up to the
            provider http://www.telecom-infoconso.fr/les-numeros-08-et-les-numeros-courts/ -->
       <premiumRate>
-        <possibleLengths national="5,6"/>
-        <exampleNumber>36665</exampleNumber>
+        <possibleLengths national="[4-6]"/>
+        <exampleNumber>3200</exampleNumber>
         <nationalNumberPattern>
+          366\d\d|
+          3[2-9]\d\d|
           (?:
             118|
             [4-8]\d
-          )\d{3}|
-          36665
+          )\d{3}
         </nationalNumberPattern>
       </premiumRate>
       <!-- http://www.appel118.fr/detail.php lists 118777 as only being accessible from SFR. 224
@@ -7605,41 +7635,39 @@
       </generalDesc>
       <shortCode>
         <possibleLengths national="3,5"/>
-        <exampleNumber>109</exampleNumber>
+        <exampleNumber>102</exampleNumber>
         <nationalNumberPattern>
           1(?:
-            09|
-            1[0-248]|
+            0[2359]|
+            1[0-68]|
             9[0-24-79]
           )|
-          9(?:
-            0903|
-            11|
-            8788
-          )
+          9[0-4689]\d{3}|
+          911
         </nationalNumberPattern>
       </shortCode>
       <tollFree>
         <possibleLengths national="3"/>
-        <exampleNumber>112</exampleNumber>
+        <exampleNumber>102</exampleNumber>
         <nationalNumberPattern>
           1(?:
-            1[24]|
+            0[235]|
+            1[2-6]|
             9[127]
           )|
           911
         </nationalNumberPattern>
       </tollFree>
+      <premiumRate>
+        <possibleLengths national="5"/>
+        <exampleNumber>90000</exampleNumber>
+        <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
+      </premiumRate>
       <!-- https://support.twitter.com/articles/20170024 -->
       <carrierSpecific>
         <possibleLengths national="5"/>
-        <exampleNumber>90900</exampleNumber>
-        <nationalNumberPattern>
-          9(?:
-            09|
-            87
-          )\d\d
-        </nationalNumberPattern>
+        <exampleNumber>90000</exampleNumber>
+        <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
       </carrierSpecific>
       <!-- 192 is only available in Amman, 197 in the suburbs. -->
       <emergency>
@@ -7666,13 +7694,8 @@
       <!-- https://support.twitter.com/articles/20170024 -->
       <smsServices>
         <possibleLengths national="5"/>
-        <exampleNumber>90900</exampleNumber>
-        <nationalNumberPattern>
-          9(?:
-            09|
-            87
-          )\d\d
-        </nationalNumberPattern>
+        <exampleNumber>90000</exampleNumber>
+        <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
       </smsServices>
     </territory>
 
@@ -11275,7 +11298,10 @@
         <possibleLengths national="[3-5]"/>
         <exampleNumber>100</exampleNumber>
         <nationalNumberPattern>
-          999|
+          9(?:
+            00|
+            [19]\d
+          )|
           (?:
             1|
             20|
@@ -11285,14 +11311,24 @@
       </shortCode>
       <tollFree>
         <possibleLengths national="3"/>
-        <exampleNumber>999</exampleNumber>
-        <nationalNumberPattern>999</nationalNumberPattern>
+        <exampleNumber>990</exampleNumber>
+        <nationalNumberPattern>99\d</nationalNumberPattern>
       </tollFree>
+      <premiumRate>
+        <possibleLengths national="3"/>
+        <exampleNumber>900</exampleNumber>
+        <nationalNumberPattern>900</nationalNumberPattern>
+      </premiumRate>
       <emergency>
         <possibleLengths national="3"/>
         <exampleNumber>999</exampleNumber>
         <nationalNumberPattern>999</nationalNumberPattern>
       </emergency>
+      <expandedEmergency>
+        <possibleLengths national="3"/>
+        <exampleNumber>990</exampleNumber>
+        <nationalNumberPattern>99[0-8]</nationalNumberPattern>
+      </expandedEmergency>
     </territory>
 
     <!-- Réunion (RE) -->
@@ -11693,13 +11729,14 @@
         <nationalNumberPattern>
           1(?:
             [06]\d|
-            1[0-2467]|
+            1[0-246-8]|
             2[0-8]|
             3[13]|
             4[0-2]|
-            [59][15]|
+            5[15]|
             7[124-6]|
-            8[158]
+            8[158]|
+            9[015]
           )|
           9(?:
             6\d\d|
@@ -11712,7 +11749,7 @@
         <exampleNumber>111</exampleNumber>
         <nationalNumberPattern>
           1(?:
-            1[146]|
+            1[1468]|
             60
           )|
           999
@@ -11728,7 +11765,7 @@
         <exampleNumber>111</exampleNumber>
         <nationalNumberPattern>
           1(?:
-            1[146]|
+            1[1468]|
             60
           )
         </nationalNumberPattern>
@@ -13034,7 +13071,7 @@
       </emergency>
     </territory>
 
-    <!-- Turkey (TR) -->
+    <!-- Türkiye (TR) -->
     <territory id="TR">
       <generalDesc>
         <nationalNumberPattern>[1-9]\d{2,4}</nationalNumberPattern>
diff --git a/resources/carrier/en/1.txt b/resources/carrier/en/1.txt
index b00aefef..2bdd7d6a 100644
--- a/resources/carrier/en/1.txt
+++ b/resources/carrier/en/1.txt
@@ -59,23 +59,23 @@
 124272|BaTelCo
 124273|aliv
 12428|aliv
-124623|LIME
-124624|LIME
-124625|LIME
+124623|Cable & Wireless
+124624|Cable & Wireless
+124625|Cable & Wireless
 1246256|Digicel
 1246257|Digicel
 1246258|Digicel
 1246259|Digicel
 124626|Digicel
 124628|Cable & Wireless
-124635|LIME
-1246360|LIME
-1246361|LIME
-1246362|LIME
-1246363|LIME
-1246364|LIME
-1246365|LIME
-1246366|LIME
+124635|Cable & Wireless
+1246360|Cable & Wireless
+1246361|Cable & Wireless
+1246362|Cable & Wireless
+1246363|Cable & Wireless
+1246364|Cable & Wireless
+1246365|Cable & Wireless
+1246366|Cable & Wireless
 1246446|Neptune Communications
 124645|Sunbeach Communications
 12465211|Digicel
@@ -118,10 +118,7 @@
 128439|Digicel
 128444|CCT
 12844689|CCT
-12844966|CCT
-12844967|CCT
-12844968|CCT
-12844969|CCT
+1284496|CCT
 1284499|CCT
 1284546|Cable & Wireless
 128456|Cable & Wireless
@@ -153,6 +150,7 @@
 144159|Digicel Bermuda
 14417|Cellular One
 14418|Cellular One
+14419|Deltronics
 1473402|Affordable Island Communications
 147341|Digicel Grenada
 147342|Digicel Grenada
@@ -182,7 +180,13 @@
 166434|Cable & Wireless
 166439|Digicel
 1670284|PTI PACIFICA
-167148|GTA
+1671480|GTA
+1671482|GTA
+1671483|GTA
+1671486|GTA
+1671487|GTA
+1671488|GTA
+1671489|GTA
 167174|PTI PACIFICA
 167183|i CAN_GSM
 167184|i CAN_GSM
diff --git a/resources/carrier/en/220.txt b/resources/carrier/en/220.txt
index 7f5eacc4..4aac136c 100644
--- a/resources/carrier/en/220.txt
+++ b/resources/carrier/en/220.txt
@@ -18,6 +18,7 @@
 22051|QCell
 22052|QCell
 22053|QCell
+22054|QCell
 22058|QCell
 22059|QCell
 2206|Comium
diff --git a/resources/carrier/en/228.txt b/resources/carrier/en/228.txt
index 757d5a59..23378b54 100644
--- a/resources/carrier/en/228.txt
+++ b/resources/carrier/en/228.txt
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 22870|TOGOCEL
+22871|TOGOCEL
 22879|Moov
 22890|TOGOCEL
 22891|TOGOCEL
diff --git a/resources/carrier/en/229.txt b/resources/carrier/en/229.txt
index 35efe793..c0d5c644 100644
--- a/resources/carrier/en/229.txt
+++ b/resources/carrier/en/229.txt
@@ -14,7 +14,12 @@
 
 # Libercom is brand name of Benintelecoms and Moov is brand name of Etisalat.
 
-2294|SBIN
+22940|SBIN
+22941|SBIN
+22942|MTN
+22943|SBIN
+22945|SBIN
+22946|MTN
 2295|MTN
 22955|Moov
 22956|Moov
diff --git a/resources/carrier/en/230.txt b/resources/carrier/en/230.txt
index a5b94dd1..66d1385a 100644
--- a/resources/carrier/en/230.txt
+++ b/resources/carrier/en/230.txt
@@ -23,6 +23,7 @@
 2305471|Cellplus
 23055|Emtel
 230550|Cellplus
+230552|MTML
 23057|Cellplus
 230571|Emtel
 230572|Emtel
@@ -51,3 +52,9 @@
 230596|MTML
 230597|Emtel
 230598|Emtel
+230700|Cellplus
+230701|Emtel
+230702|MTML
+230730|Emtel
+230731|MTML
+230733|Cellplus
diff --git a/resources/carrier/en/231.txt b/resources/carrier/en/231.txt
index 4f8355b8..074385ea 100644
--- a/resources/carrier/en/231.txt
+++ b/resources/carrier/en/231.txt
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+231220|Liberia Telecom
 231330|West Africa Telecom
 231555|Lonestar Cell
 2316|Lonestar Cell
diff --git a/resources/carrier/en/233.txt b/resources/carrier/en/233.txt
index 92d05d28..02c7934a 100644
--- a/resources/carrier/en/233.txt
+++ b/resources/carrier/en/233.txt
@@ -13,16 +13,17 @@
 # limitations under the License.
 
 23320|Vodafone
-23323|Globacom (Zain)
+23323|airteltiGO
 23324|MTN
 23325|MTN
-23326|Airtel
-23327|tiGO
+23326|airteltiGO
+23327|airteltiGO
 23328|Expresso
 23329|National Security
 23350|Vodafone
+23353|MTN
 23354|MTN
 23355|MTN
-23356|Airtel
-23357|tiGO
+23356|airteltiGO
+23357|airteltiGO
 23359|MTN
diff --git a/resources/carrier/en/234.txt b/resources/carrier/en/234.txt
index 4ccb35a7..ea5bfa1b 100644
--- a/resources/carrier/en/234.txt
+++ b/resources/carrier/en/234.txt
@@ -31,7 +31,7 @@
 234706|MTN
 234708|Airtel
 234709|Multilinks
-234801|Megatech
+234801|MAFAB
 234802|Airtel
 234803|MTN
 234804|Ntel
@@ -59,6 +59,7 @@
 234907|Airtel
 234908|9mobile
 234909|9mobile
+234911|Airtel
 234912|Airtel
 234913|MTN
 234915|Glo
diff --git a/resources/carrier/en/235.txt b/resources/carrier/en/235.txt
index 6bef9ffb..ad4ae406 100644
--- a/resources/carrier/en/235.txt
+++ b/resources/carrier/en/235.txt
@@ -12,6 +12,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-2356|Airtel
+23560|Airtel
+23562|Airtel
+23563|Airtel
+23565|Airtel
+23566|Airtel
+23568|Airtel
 2357|Sotel
 2359|Tigo
diff --git a/resources/carrier/en/236.txt b/resources/carrier/en/236.txt
index 88433ea4..6a8595da 100644
--- a/resources/carrier/en/236.txt
+++ b/resources/carrier/en/236.txt
@@ -16,4 +16,5 @@
 23672|Orange
 23674|Orange
 23675|Telecel
+23676|Telecel
 23677|Nationlink
diff --git a/resources/carrier/en/252.txt b/resources/carrier/en/252.txt
index e91e402c..488adfb0 100644
--- a/resources/carrier/en/252.txt
+++ b/resources/carrier/en/252.txt
@@ -18,6 +18,7 @@
 25239|AirSom
 25248|AirSom
 25249|AirSom
+252604|Golis Telecom
 252605|Golis Telecom
 252606|Golis Telecom
 252607|Golis Telecom
diff --git a/resources/carrier/en/260.txt b/resources/carrier/en/260.txt
index bd405eca..f72c4655 100644
--- a/resources/carrier/en/260.txt
+++ b/resources/carrier/en/260.txt
@@ -21,3 +21,4 @@
 26095|ZAMTEL
 26096|MTN
 26097|Airtel
+26098|Beeline Telecoms
diff --git a/resources/carrier/en/261.txt b/resources/carrier/en/261.txt
index 2846a753..ebdef1e9 100644
--- a/resources/carrier/en/261.txt
+++ b/resources/carrier/en/261.txt
@@ -15,5 +15,6 @@
 26132|Orange
 26133|Airtel
 26134|Telma
+26137|Orange
 26138|Telma
 26139|Blueline
diff --git a/resources/carrier/en/27.txt b/resources/carrier/en/27.txt
index b1a3cdbf..541ae99f 100644
--- a/resources/carrier/en/27.txt
+++ b/resources/carrier/en/27.txt
@@ -125,7 +125,6 @@
 2772|Vodacom
 2773|MTN
 2774|Cell C
-27741|Virgin Mobile
 2776|Vodacom
 2778|MTN
 2779|Vodacom
diff --git a/resources/carrier/en/298.txt b/resources/carrier/en/298.txt
index 1a93ae95..ebfda199 100644
--- a/resources/carrier/en/298.txt
+++ b/resources/carrier/en/298.txt
@@ -25,5 +25,5 @@
 2987|Vodafone
 29878|Faroese Telecom
 29879|Faroese Telecom
-29891|Tosa
+29891|Faroese Telecom
 29896|Faroese Telecom
diff --git a/resources/carrier/en/32.txt b/resources/carrier/en/32.txt
index 093bc2b1..078da639 100644
--- a/resources/carrier/en/32.txt
+++ b/resources/carrier/en/32.txt
@@ -25,16 +25,10 @@
 32456|Mobile Vikings/JIM Mobile
 32460|Proximus
 324618|N.M.B.S.
-324630|TISMI BV
-324651|Lycamobile
-324652|Lycamobile
-324653|Lycamobile
-324654|Lycamobile
-324655|Lycamobile
-324656|Lycamobile
-324657|Lycamobile
-324658|Lycamobile
-324659|Lycamobile
+324630|Lancelot Telecom
+324631|Lancelot Telecom
+32465|Lycamobile
+324650|Telenet
 324660|Lycamobile
 324661|Lycamobile
 324662|Lycamobile
@@ -55,13 +49,15 @@
 324679|Interactive Digital Media GmbH
 32468|Telenet
 324686|OnOff Télécom SASU
-324687|Premium Routing GmbH
-324688|Premium Routing GmbH
+324687|Lancelot Telecom
+324688|Lancelot Telecom
 324689|Febo Telecom
 32469|Telenet
 3247|Proximus
 324802|TISMI BV
+324803|Lancelot Telecom
 324805|Voyacom SPRL
+324806|Telenet
 324807|MessageBird BV
 324809|Ericsson NV
 32483|Telenet
diff --git a/resources/carrier/en/33.txt b/resources/carrier/en/33.txt
index 14a09f20..3206d2ed 100644
--- a/resources/carrier/en/33.txt
+++ b/resources/carrier/en/33.txt
@@ -170,15 +170,9 @@
 3366|Bouygues
 3367|Orange France
 3368|Orange France
+33695|Free Mobile
 33698|Bouygues
 33699|Bouygues
-33700000|Orange France
-33700001|SFR
-33700002|Mobiquithings
-33700003|Bouygues
-33700004|Afone
-33700005|Coriolis Telecom
-33700006|Mobiquithings
 337500|Euroinformation Telecom
 337501|SFR
 337502|SFR
@@ -285,6 +279,8 @@
 3375705|Mobiweb telecom limited
 3375706|Nordnet
 3375707|Keyyo
+3375714|AIF
+3375715|AIF
 3375717|Keyyo
 337572|Mobiquithings
 337573|Mobiquithings
@@ -303,6 +299,7 @@
 3375774|SFR
 3375777|Euroinformation Telecom
 3375779|Halys
+3375786|Orange France
 3375787|Euroinformation Telecom
 3375788|BJT
 3375789|BJT
diff --git a/resources/carrier/en/34.txt b/resources/carrier/en/34.txt
index c1ec1012..5559f749 100644
--- a/resources/carrier/en/34.txt
+++ b/resources/carrier/en/34.txt
@@ -64,9 +64,9 @@
 3460228|Orange
 3460229|Boutique
 346023|Lycamobile
-346024|Lebara
-346025|Lebara
-346026|Lebara
+346024|Yoigo
+346025|Yoigo
+346026|Yoigo
 346027|Lebara
 346028|Lycamobile
 346029|DIA
@@ -80,18 +80,25 @@
 3460307|Lebara
 3460308|Lebara
 3460309|Lebara
-346031|Lebara
-346032|Lebara
-346033|Lebara
+346031|Yoigo
+346032|Yoigo
+346033|Yoigo
 346034|Vodafone
 346035|Vodafone
 346036|Vodafone
 346037|Vodafone
 346038|Vodafone
 346039|Lebara
-34604|Lebara
 346040|Orange
+346041|Yoigo
+346042|Yoigo
+346043|Yoigo
+346044|Lebara
 346045|Orange
+346046|Lebara
+346047|Lebara
+346048|Lebara
+346049|Lebara
 34605|Orange
 3460529|MasMovil
 34606|Movistar
@@ -101,8 +108,8 @@
 34610|Vodafone
 34611|Republica Movil
 346110|Orange
-346112|Lebara
-346113|Lebara
+346112|Yoigo
+346113|Yoigo
 34612|Syma
 346122|Lycamobile
 346124|Lycamobile
diff --git a/resources/carrier/en/350.txt b/resources/carrier/en/350.txt
index dfc9093b..d69ce6ae 100644
--- a/resources/carrier/en/350.txt
+++ b/resources/carrier/en/350.txt
@@ -12,5 +12,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-3505|GibTel
-3506|GibTel
+35051|Gibfibre
+35052|Gibfibre
+35054|GibTel
+35056|GibTel
+35057|GibTel
+35058|GibTel
+350601|Melmasti
+350606|GibTel
diff --git a/resources/carrier/en/357.txt b/resources/carrier/en/357.txt
index df7b109a..ac5f7944 100644
--- a/resources/carrier/en/357.txt
+++ b/resources/carrier/en/357.txt
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+35791|Cytamobile-Vodafone
 35794|Lemontel
 35795|PrimeTel
 35796|MTN
diff --git a/resources/carrier/en/359.txt b/resources/carrier/en/359.txt
index 3e6ca430..9c044585 100644
--- a/resources/carrier/en/359.txt
+++ b/resources/carrier/en/359.txt
@@ -19,5 +19,22 @@
 35989|Telenor
 359988|Bob
 359989|A1
-359996|Bulsatcom
-359999|MAX
+3599960|A1
+3599961|A1
+3599962|A1
+3599964|Telenor
+3599965|Telenor
+3599966|Telenor
+3599967|Vivacom
+3599968|Vivacom
+3599969|Vivacom
+3599990|A1
+3599991|A1
+3599992|A1
+3599993|A1
+3599994|Telenor
+3599995|Telenor
+3599996|Vivacom
+3599997|Vivacom
+3599998|Vivacom
+3599999|Vivacom
diff --git a/resources/carrier/en/370.txt b/resources/carrier/en/370.txt
index f72d7ddb..44c0e52d 100644
--- a/resources/carrier/en/370.txt
+++ b/resources/carrier/en/370.txt
@@ -13,8 +13,8 @@
 # limitations under the License.
 
 37060|Tele 2
-37061|Omnitel
-37062|Omnitel
+37061|Telia
+37062|Telia
 37063|BITĖ
 37064|BITĖ
 370645|Tele 2
@@ -25,7 +25,9 @@
 370660|BITĖ
 370661|BITĖ
 3706610|Tele 2
-370662|Omnitel
+37066186|Lancelot Telecom
+370662|Telia
+3706630|Telia
 37066313|BITĖ
 37066314|BITĖ
 37066315|BITĖ
@@ -34,10 +36,28 @@
 37066318|BITĖ
 37066319|BITĖ
 37066320|BITĖ
+37066321|Lancelot Telecom
 37066323|BITĖ
-37066522|BITĖ
+37066324|Lancelot Telecom
+37066325|Lancelot Telecom
+37066326|Lancelot Telecom
+37066327|Lancelot Telecom
+37066328|Lancelot Telecom
+37066329|Lancelot Telecom
+3706650|Telia
+3706651|Telia
+37066522|Telia
+37066523|Telia
+37066524|Telia
+37066525|Telia
+37066526|Telia
+37066527|Telia
+37066528|Telia
+37066529|Telia
+3706653|Telia
 3706660|BITĖ
 3706661|BITĖ
+37066621|Telia
 37066622|BITĖ
 37066623|BITĖ
 37066624|BITĖ
@@ -46,6 +66,8 @@
 37066627|BITĖ
 37066628|BITĖ
 37066629|BITĖ
+3706663|Telia
+3706664|Telia
 3706665|BITĖ
 3706666|Tele 2
 3706667|BITĖ
@@ -73,26 +95,40 @@
 37066865|Tele 2
 37066876|BITĖ
 37066877|BITĖ
-370669|Omnitel
+370669|Telia
 37067|Tele 2
-370680|Omnitel
+370680|Telia
 370681|BITĖ
-370682|Omnitel
+370682|Telia
 370683|Tele 2
 370684|Tele 2
 370685|BITĖ
-370686|Omnitel
-370687|Omnitel
-370688|Omnitel
+370686|Telia
+370687|Telia
+370688|Telia
 370689|BITĖ
 370690|BITĖ
 370691|BITĖ
-370692|Omnitel
-370693|Omnitel
-370694|Omnitel
-370695|Omnitel
-370696|Omnitel
+370692|Telia
+370693|Telia
+370694|Telia
+370695|Telia
+370696|Telia
+3706970|Telia
+3706971|Telia
+3706972|Telia
+3706973|Telia
+37069740|Telia
+37069741|Telia
 37069742|BITĖ
 37069743|BITĖ
-370698|Omnitel
+37069744|Telia
+37069747|Telia
+37069748|Telia
+37069749|Telia
+3706975|Telia
+3706976|Lancelot Telecom
+3706977|Telia
+3706979|Telia
+370698|Telia
 370699|BITĖ
diff --git a/resources/carrier/en/372.txt b/resources/carrier/en/372.txt
index 41a6bb49..eb4172ce 100644
--- a/resources/carrier/en/372.txt
+++ b/resources/carrier/en/372.txt
@@ -49,6 +49,7 @@
 37281|Telia Eesti AS
 3728110|Tele 2
 3728111|Elisa
+3728123|Elisa
 37282|Elisa
 3728200|Telia Eesti AS
 3728203|Telia Eesti AS
@@ -62,7 +63,10 @@
 3728217|Tele 2
 3728218|Tele 2
 37282199|Tele 2
-3728273|Tele 2
+3728270|Telia Eesti AS
+3728271|Telia Eesti AS
+3728272|Telia Eesti AS
+3728273|Telia Eesti AS
 3728282|Telia Eesti AS
 3728285|Tele 2
 3728286|Tele 2
diff --git a/resources/carrier/en/381.txt b/resources/carrier/en/381.txt
index 51e14651..167b5096 100644
--- a/resources/carrier/en/381.txt
+++ b/resources/carrier/en/381.txt
@@ -19,8 +19,8 @@
 
 # Mundio Mobile operates under the brand name Vectone Mobile https://en.wikipedia.org/wiki/Vectone_Mobile
 
-38160|VIP
-38161|VIP
+38160|A1
+38161|A1
 38162|Telenor
 38163|Telenor
 38164|Telekom Srbija a.d.
@@ -29,5 +29,5 @@
 381676|GLOBALTEL
 381677|GLOBALTEL
 381678|Vectone Mobile
-38168|VIP
+38168|A1
 38169|Telenor
diff --git a/resources/carrier/en/383.txt b/resources/carrier/en/383.txt
index 5ea2e51c..2e5c726d 100644
--- a/resources/carrier/en/383.txt
+++ b/resources/carrier/en/383.txt
@@ -33,7 +33,15 @@
 383457|vala
 383458|vala
 383459|vala
-383461|Z Mobile
+383461|vala
+383462|vala
+383463|vala
+383464|vala
+383465|vala
+383466|vala
+383467|vala
+383468|vala
+383469|vala
 38347|mts d.o.o.
 38348|IPKO
 38349|IPKO
diff --git a/resources/carrier/en/385.txt b/resources/carrier/en/385.txt
index c85c7965..22e196ac 100644
--- a/resources/carrier/en/385.txt
+++ b/resources/carrier/en/385.txt
@@ -20,7 +20,9 @@
 38592|A1 Telekom
 38595|Tele2
 385970|Hrvatski Telekom
+3859750|Lancelot Telecom
 3859751|Telefocus
+3859754|Lancelot Telecom
 3859757|Mobile One
 38597596|Altavox
 38597597|INNOVAC
diff --git a/resources/carrier/en/386.txt b/resources/carrier/en/386.txt
index 9b580594..8416c4d6 100644
--- a/resources/carrier/en/386.txt
+++ b/resources/carrier/en/386.txt
@@ -21,11 +21,14 @@
 38651|Telekom Slovenije
 38664|T-2
 386651|SŽ - Infrastruktura
-386655|Telekom Slovenije
+3866555|Telekom Slovenije
+3866556|Sloexport
 386656|SoftNet
 386657|Novatel
+386658|Novatel
 38668|A1
 38669|A1
 3866910|Compatel
+386695|Novatel
 38670|Telemach
 38671|Telemach
diff --git a/resources/carrier/en/389.txt b/resources/carrier/en/389.txt
index 04487706..cc4ed286 100644
--- a/resources/carrier/en/389.txt
+++ b/resources/carrier/en/389.txt
@@ -14,21 +14,17 @@
 
 # Source: https://e-agencija.aek.mk/aek-crm-portal/Pages/Public/PublicFreeSeries/PublicFreeSeries
 # Mapped ranges at 3-4 digit granularity level for easier maintenance. Added
-# some additional ranges based on respective IR.21 docs.
+# some additional ranges based on respective IR.21 docs. MVNOs ranges are listed
+# if the assignments are clear. Ex: 79[019]77 range is assigned to A1 which is
+# further assigned to respective MVNOs.
+
 
 38970|T-Mobile
 38971|T-Mobile
 38972|T-Mobile
-389731|A1
-389732|A1
-389733|A1
-389734|A1
-389735|A1
+38973|A1
 3897370|T-Mobile
 3897371|T-Mobile
-3897375|A1
-3897377|A1
-3897378|A1
 389742|T-Mobile
 3897421|Mobik
 389746|T-Mobile
@@ -43,6 +39,13 @@
 38976|A1
 38977|A1
 38978|A1
-38979|A1
+389790|A1
+389791|A1
+389792|Lyca Mobile
+389793|Lyca Mobile
+389794|Lyca Mobile
+389795|Lyca Mobile
 3897970|T-Mobile
 3897971|T-Mobile
+3897975|A1
+389799|A1
diff --git a/resources/carrier/en/41.txt b/resources/carrier/en/41.txt
index 07e886d8..7f9af0cd 100644
--- a/resources/carrier/en/41.txt
+++ b/resources/carrier/en/41.txt
@@ -17,11 +17,8 @@
 417508|Swisscom
 417509|Swisscom
 417519|Swisscom
-417520|Swisscom
-417521|Swisscom
-417522|Swisscom
-417523|Swisscom
-417524|Swisscom
+41752|Swisscom
+41753|Swisscom
 41754|Swisscom
 417550|Swisscom
 417551|Swisscom
diff --git a/resources/carrier/en/420.txt b/resources/carrier/en/420.txt
index 950a0261..3770bf76 100644
--- a/resources/carrier/en/420.txt
+++ b/resources/carrier/en/420.txt
@@ -87,10 +87,10 @@
 4207702|Vodafone
 4207703|Vodafone
 4207704|Vodafone
+4207705|O2
 42077050|Compatel
 42077051|3ton s.r.o.
 42077052|3ton s.r.o.
-42077055|ASTELNET
 4207706|Vodafone
 42077070|O2
 42077071|Cesky bezdrat
@@ -151,6 +151,12 @@
 42079191|T-Mobile
 42079192|3ton s.r.o.
 42079193|GOPE Systems a.s.
+42079194|O2
+42079195|O2
+42079196|O2
+42079197|O2
+42079198|O2
+42079199|O2
 420792|O2
 42079234|Tesco Mobile CR
 42079235|Tesco Mobile CR
@@ -175,6 +181,8 @@
 4207948|O2
 4207950|Vectone Distribution Czech Republic s.r.o(Mundio)
 4207951|Vectone Distribution Czech Republic s.r.o(Mundio)
+4207952|O2
+4207953|O2
 42079750|Dial Telecom
 4207976|T-Mobile
 42079770|T-Mobile
@@ -196,5 +204,6 @@
 42079954|T-Mobile
 42079955|GoMobil
 42079956|GoMobil
+42079957|T-Mobile
 42079979|miniTEL
 42079999|T-Mobile
diff --git a/resources/carrier/en/44.txt b/resources/carrier/en/44.txt
index dac2093c..ec4a76be 100644
--- a/resources/carrier/en/44.txt
+++ b/resources/carrier/en/44.txt
@@ -134,6 +134,8 @@
 4473684|Sky
 4473685|Sky
 4473686|Sky
+4473690|Telet Research
+4473692|Sky
 4473699|Anywhere Sim
 447375|EE
 447376|EE
@@ -292,7 +294,7 @@
 4474579|CardBoardFish
 4474580|Gamma Telecom
 4474581|Gamma Telecom
-4474582|Premium Routing
+4474582|Lancelot Telecom
 4474583|Virgin Mobile
 4474584|Airwave
 4474585|Marathon Telecom
diff --git a/resources/carrier/en/45.txt b/resources/carrier/en/45.txt
index 4576ddeb..f00c3ed9 100644
--- a/resources/carrier/en/45.txt
+++ b/resources/carrier/en/45.txt
@@ -252,7 +252,7 @@
 45458|telenor
 45459|telenor
 45461|telenor
-45462|telenor
+454626|Lancelot Telecom
 45463|telenor
 45464|telenor
 45465|telenor
diff --git a/resources/carrier/en/46.txt b/resources/carrier/en/46.txt
index 2d006e63..c7733662 100644
--- a/resources/carrier/en/46.txt
+++ b/resources/carrier/en/46.txt
@@ -250,7 +250,12 @@
 46726006|Telavox AB
 46726008|Global Telefoni Sve
 4672601|Telavox AB
+4672603|Tele2 Sverige
+4672604|Tele2 Sverige
+4672605|Tele2 Sverige
 4672606|Tele2 Sverige
+4672607|Tele2 Sverige
+4672608|Tele2 Sverige
 467261|GLOBETOUCH AB
 467262|GLOBETOUCH AB
 467263|GLOBETOUCH AB
@@ -302,6 +307,7 @@
 4672754|Telenor Sverige
 4672755|FINK TELECOM SERVIC
 4672756|FINK TELECOM SERVIC
+4672758|Lancelot Telecom
 467276|Lycamobile Sweden
 467277|Lycamobile Sweden
 467278|Lycamobile Sweden
@@ -395,6 +401,7 @@
 46734527|Soatso AB
 46734528|Soatso AB
 46734529|Soatso AB
+4673453|TeliaSonera
 4673454|Tele2 Sverige
 4673455|Viatel Sweden
 4673456|Svea Billing System
diff --git a/resources/carrier/en/47.txt b/resources/carrier/en/47.txt
index 9135d74f..4d96e400 100644
--- a/resources/carrier/en/47.txt
+++ b/resources/carrier/en/47.txt
@@ -222,6 +222,7 @@
 474898|telenor norge
 474899|telia
 47591|telenor norge
+47596|ice norge
 4790|telenor norge
 479042|svea billing services
 479043|svea billing services
@@ -317,9 +318,9 @@
 479441|telenor norge
 479442|telia
 479443|telia
-479444|telenor norge
-479445|telenor norge
-479446|telenor norge
+479444|ice norge
+479445|ice norge
+479446|ice norge
 479447|telia
 479448|telia
 479449|telia
diff --git a/resources/carrier/en/48.txt b/resources/carrier/en/48.txt
index 86952edb..b4770326 100644
--- a/resources/carrier/en/48.txt
+++ b/resources/carrier/en/48.txt
@@ -18,6 +18,7 @@
 482115|Plus
 48212|Orange
 48450|Play
+48454|Orange
 484590|Play
 4845910|Play
 4845911|Play
@@ -242,6 +243,7 @@
 487864|Orange
 487865|Orange
 487866|Orange
+4878670|Lancelot Telecom
 4878671|Plus
 4878672|Plus
 4878673|Plus
diff --git a/resources/carrier/en/509.txt b/resources/carrier/en/509.txt
index 9a8daf67..47d95fe6 100644
--- a/resources/carrier/en/509.txt
+++ b/resources/carrier/en/509.txt
@@ -12,13 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-50930|Digicel
-50931|Digicel
-50934|Digicel
-50936|Digicel
-50937|Digicel
-50938|Digicel
-50939|Digicel
+5093|Digicel
+50932|Natcom
+50933|Natcom
+50935|Natcom
 50940|Natcom
 50941|Natcom
 50942|Natcom
@@ -28,3 +25,4 @@
 50947|Digicel
 50948|Digicel
 50949|Digicel
+5095|Natcom
diff --git a/resources/carrier/en/51.txt b/resources/carrier/en/51.txt
index b54c8c17..a434b5dc 100644
--- a/resources/carrier/en/51.txt
+++ b/resources/carrier/en/51.txt
@@ -14,6 +14,11 @@
 
 51900|Claro
 51901|Claro
+51904|Entel
+51905|Entel
+51906|Entel
+51907|Entel
+51908|Entel
 51910|Claro
 51912|Entel
 51913|Claro
diff --git a/resources/carrier/en/56.txt b/resources/carrier/en/56.txt
index 846e5f7c..77908cd5 100644
--- a/resources/carrier/en/56.txt
+++ b/resources/carrier/en/56.txt
@@ -514,7 +514,12 @@
 5623351|Claro
 5623352|Claro
 562336|Movistar
-562337|Movistar
+562337|Claro
+5623370|Movistar
+5623371|Movistar
+5623372|Movistar
+5623373|Movistar
+562338|Claro
 56236|Entel
 56322162|Entel
 56322163|Entel
@@ -850,24 +855,7 @@
 5641219|Entel
 564122|Compania De Telecomunicaciones De Chile S.A.
 5641229|Gtd Telesat S.A.
-5641230|Compania De Telecomunicaciones De Chile S.A.
-5641231|Compania De Telecomunicaciones De Chile S.A.
-5641232|Compania De Telecomunicaciones De Chile S.A.
-5641233|Compania De Telecomunicaciones De Chile S.A.
-5641234|Compania De Telecomunicaciones De Chile S.A.
-5641235|Compania De Telecomunicaciones De Chile S.A.
-5641236|Compania De Telecomunicaciones De Chile S.A.
-5641237|Compania De Telecomunicaciones De Chile S.A.
-56412380|Compania De Telecomunicaciones De Chile S.A.
-56412381|Compania De Telecomunicaciones De Chile S.A.
-56412382|Compania De Telecomunicaciones De Chile S.A.
-56412383|Compania De Telecomunicaciones De Chile S.A.
-56412384|Compania De Telecomunicaciones De Chile S.A.
-56412385|Compania De Telecomunicaciones De Chile S.A.
-56412386|Compania De Telecomunicaciones De Chile S.A.
-56412387|Compania De Telecomunicaciones De Chile S.A.
-56412388|Compania De Telecomunicaciones De Chile S.A.
-5641239|Compania De Telecomunicaciones De Chile S.A.
+564123|Compania De Telecomunicaciones De Chile S.A.
 564124|Compania De Telecomunicaciones De Chile S.A.
 5641246|Telefonica Del Sur S.A.
 564125|Compania De Telecomunicaciones De Chile S.A.
@@ -969,6 +957,9 @@
 56413383|Compania De Telecomunicaciones De Chile S.A.
 56413384|Compania De Telecomunicaciones De Chile S.A.
 5641339|Telefonica Del Sur S.A.
+5641350|Entel
+5641351|Entel
+5641352|Entel
 5641355|Claro
 5641356|Claro
 5641357|Claro
@@ -1775,6 +1766,10 @@
 5657281|Gtd Telesat S.A.
 5657283|Movistar
 5657284|Gtd Manquehue S.A.
+5657285|Entel
+5657286|Entel
+5657287|Entel
+5657288|Entel
 565822|Compania De Telecomunicaciones De Chile S.A.
 5658231|Vtr Banda Ancha (Chile) S.A.
 5658232|Vtr Banda Ancha (Chile) S.A.
@@ -2294,6 +2289,10 @@
 5671274|Entel
 5671277|Telestar
 5671279|Vtr Banda Ancha (Chile) S.A.
+5671280|Entel
+5671281|Entel
+5671282|Entel
+5671283|Entel
 5671288|Compania De Telecomunicaciones De Chile S.A.
 56712970|Comunicacion Y Telefonia Rural S.A.
 56712971|Comunicacion Y Telefonia Rural S.A.
diff --git a/resources/carrier/en/592.txt b/resources/carrier/en/592.txt
index 024f575f..1969c0b1 100644
--- a/resources/carrier/en/592.txt
+++ b/resources/carrier/en/592.txt
@@ -36,3 +36,5 @@
 59269|Digicel Guyana
 592700|Digicel Guyana
 592701|Digicel Guyana
+592702|Digicel Guyana
+592703|Digicel Guyana
diff --git a/resources/carrier/en/60.txt b/resources/carrier/en/60.txt
index aa40aaec..8528d59a 100644
--- a/resources/carrier/en/60.txt
+++ b/resources/carrier/en/60.txt
@@ -265,6 +265,7 @@
 601171|Celecom
 6011710|DiGi
 6011711|DiGi
+6011720|Celecom
 6011721|Celecom
 6011722|Maxis
 6011723|Maxis
diff --git a/resources/carrier/en/61.txt b/resources/carrier/en/61.txt
index bba80862..2e4f2f0e 100644
--- a/resources/carrier/en/61.txt
+++ b/resources/carrier/en/61.txt
@@ -97,8 +97,7 @@
 61476|Telstra
 61477|Telstra
 61478|Optus
-614790|Optus
-614791|Optus
+61479|Optus
 614800|Pivotel Satellite
 614801|Telstra
 614803|Telstra
@@ -106,7 +105,12 @@
 614808|Pivotel Satellite
 61481|Optus
 61482|Optus
-61483|Telstra
+614830|Telstra
+614831|Telstra
+614832|Telstra
+614833|Telstra
+614838|Telstra
+614839|Optus
 61484|Telstra
 61485|TravelSIM
 614858|Pivotel Satellite
diff --git a/resources/carrier/en/62.txt b/resources/carrier/en/62.txt
index bf3179fe..cb815e45 100644
--- a/resources/carrier/en/62.txt
+++ b/resources/carrier/en/62.txt
@@ -15,9 +15,9 @@
 62811|Telkomsel
 62812|Telkomsel
 62813|Telkomsel
-62814|IM3
-62815|IM3
-62816|IM3
+62814|Indosat Ooredoo Hutchison
+62815|Indosat Ooredoo Hutchison
+62816|Indosat Ooredoo Hutchison
 62817|XL
 62818|XL
 62819|XL
@@ -31,10 +31,10 @@
 62851|Telkomsel
 62852|Telkomsel
 62853|Telkomsel
-62855|IM3
-62856|IM3
-62857|IM3
-62858|IM3
+62855|Indosat Ooredoo Hutchison
+62856|Indosat Ooredoo Hutchison
+62857|Indosat Ooredoo Hutchison
+62858|Indosat Ooredoo Hutchison
 62859|XL
 62877|XL
 62878|XL
@@ -45,8 +45,8 @@
 62887|Smartfren
 62888|Smartfren
 62889|Smartfren
-62895|Hutchison
-62896|3
-62897|3
-62898|3
-62899|3
+62895|Indosat Ooredoo Hutchison
+62896|Indosat Ooredoo Hutchison
+62897|Indosat Ooredoo Hutchison
+62898|Indosat Ooredoo Hutchison
+62899|Indosat Ooredoo Hutchison
diff --git a/resources/carrier/en/65.txt b/resources/carrier/en/65.txt
index d98d6ff7..c77e431a 100644
--- a/resources/carrier/en/65.txt
+++ b/resources/carrier/en/65.txt
@@ -47,6 +47,9 @@
 658055|Geenet
 658056|Simba
 658057|Simba
+658058|Simba
+658059|M1
+65806|Simba
 6581|StarHub
 65810|M1
 65812|SingTel
diff --git a/resources/carrier/en/686.txt b/resources/carrier/en/686.txt
index cc6e4cfb..0a90711a 100644
--- a/resources/carrier/en/686.txt
+++ b/resources/carrier/en/686.txt
@@ -14,6 +14,171 @@
 
 68662|Ocean Link
 68663|Ocean Link
+68670|ATHKL
+68671|ATHKL
 686720|ATHKL
+686721|ATHKL
+686722|ATHKL
+686723|ATHKL
+686724|ATHKL
+686725|ATHKL
+686726|ATHKL
+686728|ATHKL
+686729|ATHKL
 686730|ATHKL
+68673101|ATHKL
+68673102|ATHKL
+68673103|ATHKL
+68673104|ATHKL
+68673105|ATHKL
+68673106|ATHKL
+68673107|ATHKL
+68673108|ATHKL
+68673109|ATHKL
+6867311|ATHKL
+6867312|ATHKL
+6867313|ATHKL
 6867314|ATHKL
+6867315|ATHKL
+6867316|ATHKL
+6867317|ATHKL
+6867318|ATHKL
+6867319|ATHKL
+686732|ATHKL
+686733|ATHKL
+686734|ATHKL
+686735|ATHKL
+686736|ATHKL
+686737|ATHKL
+686738|ATHKL
+686739|ATHKL
+68674|ATHKL
+6867500|ATHKL
+6867501|ATHKL
+68675020|ATHKL
+68675023|ATHKL
+68675024|ATHKL
+68675025|ATHKL
+68675026|ATHKL
+68675027|ATHKL
+68675028|ATHKL
+68675029|ATHKL
+6867503|ATHKL
+6867504|ATHKL
+6867505|ATHKL
+6867506|ATHKL
+6867507|ATHKL
+6867508|ATHKL
+6867509|ATHKL
+6867510|ATHKL
+6867511|ATHKL
+68675120|ATHKL
+68675121|ATHKL
+68675122|ATHKL
+68675123|ATHKL
+68675124|ATHKL
+68675127|ATHKL
+68675128|ATHKL
+68675129|ATHKL
+6867513|ATHKL
+6867514|ATHKL
+6867515|ATHKL
+6867516|ATHKL
+6867517|ATHKL
+6867518|ATHKL
+6867519|ATHKL
+6867520|ATHKL
+6867521|ATHKL
+68675220|ATHKL
+68675221|ATHKL
+68675222|ATHKL
+68675223|ATHKL
+68675224|ATHKL
+68675225|ATHKL
+68675226|ATHKL
+68675227|ATHKL
+6867523|ATHKL
+6867524|ATHKL
+6867525|ATHKL
+6867526|ATHKL
+6867527|ATHKL
+6867528|ATHKL
+6867529|ATHKL
+68675301|ATHKL
+68675302|ATHKL
+68675303|ATHKL
+68675304|ATHKL
+68675305|ATHKL
+68675306|ATHKL
+68675307|ATHKL
+68675308|ATHKL
+68675309|ATHKL
+6867531|ATHKL
+6867532|ATHKL
+6867533|ATHKL
+6867534|ATHKL
+6867535|ATHKL
+6867536|ATHKL
+6867537|ATHKL
+68675380|ATHKL
+68675382|ATHKL
+68675383|ATHKL
+68675384|ATHKL
+68675385|ATHKL
+68675386|ATHKL
+68675387|ATHKL
+68675388|ATHKL
+68675389|ATHKL
+6867539|ATHKL
+68675401|ATHKL
+68675402|ATHKL
+68675403|ATHKL
+68675404|ATHKL
+68675405|ATHKL
+68675406|ATHKL
+68675407|ATHKL
+68675408|ATHKL
+68675409|ATHKL
+6867541|ATHKL
+6867542|ATHKL
+6867543|ATHKL
+6867544|ATHKL
+6867545|ATHKL
+6867546|ATHKL
+6867547|ATHKL
+68675480|ATHKL
+68675482|ATHKL
+68675483|ATHKL
+68675484|ATHKL
+68675485|ATHKL
+68675486|ATHKL
+68675487|ATHKL
+68675488|ATHKL
+68675489|ATHKL
+6867549|ATHKL
+68675501|ATHKL
+68675502|ATHKL
+68675503|ATHKL
+68675504|ATHKL
+68675505|ATHKL
+68675506|ATHKL
+68675507|ATHKL
+68675508|ATHKL
+68675509|ATHKL
+6867551|ATHKL
+6867552|ATHKL
+6867553|ATHKL
+6867554|ATHKL
+6867555|ATHKL
+6867556|ATHKL
+6867557|ATHKL
+6867558|ATHKL
+6867559|ATHKL
+686756|ATHKL
+686757|ATHKL
+686758|ATHKL
+686759|ATHKL
+68676|ATHKL
+68677|ATHKL
+68678|ATHKL
+68679|ATHKL
diff --git a/resources/carrier/en/692.txt b/resources/carrier/en/692.txt
index cf46417f..9c230af4 100644
--- a/resources/carrier/en/692.txt
+++ b/resources/carrier/en/692.txt
@@ -14,5 +14,7 @@
 
 69223|National Telecommunications Authority
 6923|National Telecommunications Authority
-6924|National Telecommunications Authority
+692453|National Telecommunications Authority
+692455|National Telecommunications Authority
+692456|National Telecommunications Authority
 69254|National Telecommunications Authority
diff --git a/resources/carrier/en/7.txt b/resources/carrier/en/7.txt
index 9c6f84c7..5486c440 100644
--- a/resources/carrier/en/7.txt
+++ b/resources/carrier/en/7.txt
@@ -134,6 +134,8 @@
 79010134|Tele2
 79010135|Tele2
 79010136|Tele2
+79010138|Multiregional Transit Telecom (MTT)
+79010139|Multiregional Transit Telecom (MTT)
 7901014|Tele2
 7901015|Tele2
 7901016|Tele2
diff --git a/resources/carrier/en/81.txt b/resources/carrier/en/81.txt
index eba3c2fc..4628a71a 100644
--- a/resources/carrier/en/81.txt
+++ b/resources/carrier/en/81.txt
@@ -55,6 +55,11 @@
 817055|Softbank
 817056|Softbank
 8170581|Softbank
+8170585|KDDI
+8170586|KDDI
+8170587|KDDI
+8170588|KDDI
+8170589|KDDI
 817059|KDDI
 817061|Softbank
 817062|Softbank
diff --git a/resources/carrier/en/882.txt b/resources/carrier/en/882.txt
index aa169320..64475603 100644
--- a/resources/carrier/en/882.txt
+++ b/resources/carrier/en/882.txt
@@ -17,4 +17,5 @@
 882342|BebbiCell AG
 882347|BebbiCell AG
 88237|AT&T Cingular Wireless Network
-8824|Monaco Telecom
+88249|Monaco Telecom
+88250|Phonegroup
diff --git a/resources/carrier/en/90.txt b/resources/carrier/en/90.txt
index f9dba740..21015530 100644
--- a/resources/carrier/en/90.txt
+++ b/resources/carrier/en/90.txt
@@ -19,6 +19,7 @@
 90510221|Netgsm
 90510222|Netgsm
 90510223|Netgsm
+90510227|Netgsm
 90510232|Foniv Telecommunications Services
 90510244|Nida Telekomunikasyon
 90510255|TTM
diff --git a/resources/carrier/en/960.txt b/resources/carrier/en/960.txt
index 967a7546..29f2ec08 100644
--- a/resources/carrier/en/960.txt
+++ b/resources/carrier/en/960.txt
@@ -13,11 +13,4 @@
 # limitations under the License.
 
 9607|Dhiraagu
-96091|Ooredoo
-96093|Ooredoo
-96094|Ooredoo
-96095|Ooredoo
-96096|Ooredoo
-96097|Ooredoo
-96098|Ooredoo
-96099|Ooredoo
+9609|Ooredoo
diff --git a/resources/carrier/en/967.txt b/resources/carrier/en/967.txt
index 555db7c5..5ac0d68f 100644
--- a/resources/carrier/en/967.txt
+++ b/resources/carrier/en/967.txt
@@ -19,3 +19,4 @@
 96771|SabaFon
 96773|MTN
 96777|Yemen Mobile
+96778|Yemen Mobile
diff --git a/resources/carrier/en/974.txt b/resources/carrier/en/974.txt
index b5eff651..7b7c6b64 100644
--- a/resources/carrier/en/974.txt
+++ b/resources/carrier/en/974.txt
@@ -12,8 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-97428|ooredoo
-97429|Vodafone
 97430|Vodafone
 974310|Vodafone
 974311|Vodafone
diff --git a/resources/carrier/en/976.txt b/resources/carrier/en/976.txt
index 3cb1c158..113cdf5b 100644
--- a/resources/carrier/en/976.txt
+++ b/resources/carrier/en/976.txt
@@ -14,7 +14,9 @@
 
 97650|Unitel
 97655|Unitel
-9766|ONDO
+97660|ONDO
+97666|ONDO
+97669|Skytel
 97680|Unitel
 97681|ONDO
 97683|G-Mobile
diff --git a/resources/carrier/en/98.txt b/resources/carrier/en/98.txt
index faf354b5..f131a016 100644
--- a/resources/carrier/en/98.txt
+++ b/resources/carrier/en/98.txt
@@ -28,6 +28,7 @@
 98994|IR-MCI
 98996|IR-MCI
 989981|Shatel Mobile
+989982|Shatel Mobile
 9899900|LOTUSTEL
 9899902|IR-MCI
 989991|Irancell
diff --git a/resources/carrier/en/992.txt b/resources/carrier/en/992.txt
index abac6a97..308dc5c5 100644
--- a/resources/carrier/en/992.txt
+++ b/resources/carrier/en/992.txt
@@ -25,7 +25,9 @@
 99270|Tcell
 99271|Babilon-M
 99277|Tcell
+99278|Megafon
 99280|Tacom
+99287|Megafon
 99288|Megafon
 99290|Megafon
 99291|Tacom
@@ -33,5 +35,6 @@
 99292|Tcell
 99293|Tcell
 99294|Babilon-M
+99297|Megafon
 99298|Babilon-M
 99299|Tcell
diff --git a/resources/carrier/en/995.txt b/resources/carrier/en/995.txt
index 479c4fc9..5a604a63 100644
--- a/resources/carrier/en/995.txt
+++ b/resources/carrier/en/995.txt
@@ -14,30 +14,49 @@
 
 # Veon was formerly known as Beeline/VimpelCom.
 
-9955000|Mobilaive
+9955000|Silknet
+9955004|Silknet
 99550050|MagtiCom
 99550055|Silknet
-9955007|MyPhone
-995505|MagtiCom
-995511|MagtiCom
+99550070|MyPhone
+99550077|Silknet
+9955008|Silknet
+9955009|Silknet
+9955050|Silknet
+9955055|MagtiCom
+995510|Silknet
+99551100|MagtiCom
+99551107|Silknet
+9955111|MagtiCom
+9955112|MagtiCom
+9955113|MagtiCom
+9955114|MagtiCom
 9955115|Silknet
-995514|Geocell
+9955117|MagtiCom
+995514|Silknet
 995515|MagtiCom
 995517|MagtiCom
-99552|MagtiCom
-99553|MagtiCom
+995520|Silknet
+99552222|MagtiCom
+99552225|Silknet
+9955225|Silknet
+995530|Silknet
+9955333|MagtiCom
+9955335|Silknet
+995540|Silknet
 99554444|MagtiCom
+9955445|Silknet
 995550|MagtiCom
-99555000|Geocell
-99555005|Geocell
-99555050|Geocell
+99555000|Silknet
+99555005|Silknet
+99555050|Silknet
 99555055|Datacom
 995551|MagtiCom
 9955520|Premium Net International SRL
 9955522|Asanet
-995555|Geocell
-995557|Geocell
-995558|Geocell
+995555|Silknet
+995557|Silknet
+995558|Silknet
 995559|Globalcell
 995559995|DataHouse Global
 995559996|DataHouse Global
@@ -53,15 +72,15 @@
 99557575|Silknet
 99557577|MagtiCom
 99557578|MagtiCom
-995577|Geocell
+995577|Silknet
 995579|Veon
 995580|Silknet
 995585|MagtiCom
-9955885|Silknet
-9955888|Geocell
+995588|Silknet
+995590|Silknet
 995591|MagtiCom
 995592|Veon
-995593|Geocell
+995593|Silknet
 995595|MagtiCom
 995596|MagtiCom
 995597|Veon
diff --git a/resources/carrier/en/996.txt b/resources/carrier/en/996.txt
index 18d7e658..e5427af4 100644
--- a/resources/carrier/en/996.txt
+++ b/resources/carrier/en/996.txt
@@ -23,6 +23,7 @@
 99655|ALFA Telecom
 99656|Winline
 99657|Sotel
+996600|Sky mobile
 99670|Nur Telecom
 99675|ALFA Telecom
 99677|Sky mobile
diff --git a/resources/carrier/en/998.txt b/resources/carrier/en/998.txt
index 00935d65..a1c55686 100644
--- a/resources/carrier/en/998.txt
+++ b/resources/carrier/en/998.txt
@@ -12,8 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-9983|Uzbektelecom
-998555|Uzbektelecom
+9983|HUMANS
+99850|Ucell
 99861220|MobiUZ
 99861221|MobiUZ
 9986129|MobiUZ
diff --git a/resources/carrier/fa/98.txt b/resources/carrier/fa/98.txt
index 740c5e18..c24200c2 100644
--- a/resources/carrier/fa/98.txt
+++ b/resources/carrier/fa/98.txt
@@ -26,6 +26,7 @@
 98994|همراه اول
 98996|همراه اول
 989981|شاتل موبایل
+989982|شاتل موبایل
 9899900|لوتوس‌تل
 9899902|همراه اول
 989991|ایرانسل
diff --git a/resources/carrier/ru/7.txt b/resources/carrier/ru/7.txt
index ec957c76..545ac148 100644
--- a/resources/carrier/ru/7.txt
+++ b/resources/carrier/ru/7.txt
@@ -140,6 +140,8 @@
 79010134|Tele2
 79010135|Tele2
 79010136|Tele2
+79010138|ОАО МТТ
+79010139|ОАО МТТ
 7901014|Tele2
 7901015|Tele2
 7901016|Tele2
diff --git a/resources/geocoding/en/1.txt b/resources/geocoding/en/1.txt
index 4fd72326..d370920c 100644
--- a/resources/geocoding/en/1.txt
+++ b/resources/geocoding/en/1.txt
@@ -7572,6 +7572,7 @@
 1339|Massachusetts
 1340200|Chtamstths, VI
 1340203|Chtamstths, VI
+1340206|St. Croix, VI
 1340208|St. Croix, VI
 1340423|Chtamstths, VI
 134044|Chtamstths, VI
@@ -7627,6 +7628,7 @@
 1347843|Bronx, NY
 1347862|Bronx, NY
 1347915|Brooklyn, NY
+1350|California
 1351|Massachusetts
 1352|Florida
 1352205|Lady Lake, FL
@@ -7765,6 +7767,7 @@
 1352872|Gainesville, FL
 1352873|Ocala, FL
 1352955|Gainesville, FL
+1354|Quebec
 1360|Washington State
 1360210|Camas, WA
 1360213|Vancouver, WA
@@ -8106,6 +8109,7 @@
 1367|Quebec
 1368|Alberta
 1380|Ohio
+1382|Ontario
 1385|Utah
 1386|Florida
 1386218|Orange City, FL
@@ -10958,6 +10962,7 @@
 1425899|Kirkland, WA
 1425957|Bellevue, WA
 1425990|Bellevue, WA
+1428|New Brunswick
 1430|Texas
 1431|Manitoba
 1432|Texas
@@ -11499,6 +11504,7 @@
 1469916|Dallas, TX
 1469952|McKinney, TX
 1470|Georgia
+1472|North Carolina
 1474|Saskatchewan
 1475|Connecticut
 1478|Georgia
@@ -14831,6 +14837,7 @@
 1541998|Junction City, OR
 1548|Ontario
 1551|New Jersey
+1557|Missouri
 1559|California
 155922|Fresno, CA
 1559230|Fresno, CA
@@ -19332,6 +19339,7 @@
 1682622|Mansfield, TX
 1682647|Fort Worth, TX
 1682885|Fort Worth, TX
+1683|Ontario
 1689|Florida
 1701|North Dakota
 1701221|Bismarck, ND
@@ -26336,6 +26344,7 @@
 1832826|Houston, TX
 1832912|Houston, TX
 1832934|Magnolia, TX
+1835|Pennsylvania
 1838|New York
 1839|South Carolina
 1840|California
diff --git a/resources/geocoding/en/251.txt b/resources/geocoding/en/251.txt
index fbf11dcf..48a1f329 100644
--- a/resources/geocoding/en/251.txt
+++ b/resources/geocoding/en/251.txt
@@ -97,6 +97,7 @@
 25111645|Yeka I, Addis Ababa
 25111646|Yeka II, Addis Ababa
 25111647|Yeka Rss III, Addis Ababa
+25111650|Addis Ababa
 25111651|East Addis Ababa Zone
 25111652|South Addis Ababa Zone
 25111653|South-West Addis Ababa Zone
diff --git a/resources/geocoding/en/504.txt b/resources/geocoding/en/504.txt
index 34762886..31e77ed6 100644
--- a/resources/geocoding/en/504.txt
+++ b/resources/geocoding/en/504.txt
@@ -18,11 +18,16 @@
 5042201|Polo Paz
 5042202|Tegucigalpa
 5042203|Polo Paz
+5042204|Francisco Morazan
 5042209|Res. Centro América, Tegucigalpa
 5042211|El Picacho
 5042212|Rdsi Tegucigalpa (Pri3)
 5042213|Telef. Inalámbrica Tegucig.
+5042214|Francisco Morazan
+5042215|Francisco Morazan
 5042216|Rdsi Tegucigalpa (Pri3)
+5042218|Francisco Morazan
+5042219|Francisco Morazan
 5042220|Principal
 5042221|Almendros
 5042222|Principal
@@ -44,13 +49,17 @@
 5042238|Principal
 5042239|Miraflores
 5042240|Kennedy, Tegucigalpa
+5042242|Francisco Morazan
 5042244|Tegucigalpa
 5042245|La Vega, Tegucigalpa
 5042246|La Vega, Tegucigalpa
 5042255|El Hato
 5042257|Prados Universitarios
+5042281|Francisco Morazan
+5042283|Francisco Morazan
 5042290|Toncontin
 5042291|Toncontin
+5042405|Atlantida
 5042407|Roatán, Bay Islands
 5042423|La Ceiba
 5042424|Sabá
@@ -73,7 +82,16 @@
 5042452|Coyoles Central
 5042453|Guanaja
 5042455|French Harbour
-504251|San Pedro Sula, Cortés
+5042458|Atlantida
+5042459|Atlantida
+5042502|Cortes
+5042503|Cortes
+5042505|Cortes
+5042511|Cortes
+5042512|San Pedro Sula, Cortés
+5042513|Cortes
+5042515|Cortes
+5042516|San Pedro Sula, Cortés
 5042540|San Pedro Sula, Cortés
 5042543|Inalámbrica Sps
 5042544|Rdsi San Pedro Sula
@@ -91,8 +109,11 @@
 5042564|San Pedro Sula, Cortés
 5042565|Chamelecón
 5042566|Jardines Del Valle
+5042569|Cortes
+5042570|Cortes
 5042574|Búfalo
 504261|Choloma, Cortés
+5042637|Santa Barbra
 5042640|C. Comunitarios
 5042641|C. Comunitarios
 5042642|C. Comunitarios
@@ -119,6 +140,7 @@
 504268|La Lima
 5042690|El Negrito
 5042691|Morazán
+504270|Olancho
 5042764|Amarat/Marcala
 5042766|Valle De Ángeles
 5042767|Ojojona
diff --git a/resources/geocoding/en/52.txt b/resources/geocoding/en/52.txt
index 814c54d1..7daab49a 100644
--- a/resources/geocoding/en/52.txt
+++ b/resources/geocoding/en/52.txt
@@ -15,6 +15,7 @@
 # Generated from:
 # https://www.itu.int/oth/T020200008A/en
 
+52220|Puebla
 52221|Puebla
 52222|Puebla
 52223|Puebla
@@ -252,6 +253,7 @@
 52717|Estado de Mexico
 52718|Estado de Mexico
 52719|San Francisco Xonacatlan/Temoaya, MEX
+52720|Toluca
 52721|Ixtapan de la Sal, MEX
 52722|Estado de Mexico
 52723|Coatepec Harinas, MEX
diff --git a/resources/geocoding/en/57.txt b/resources/geocoding/en/57.txt
index 19a491d8..4502a902 100644
--- a/resources/geocoding/en/57.txt
+++ b/resources/geocoding/en/57.txt
@@ -149,6 +149,9 @@
 5760633|Pereira
 5760634|Pereira
 5760635|Pereira
+5760636|Eje Cafetero
+5760637|Eje Cafetero
+5760638|Eje Cafetero
 5760687|Manizales
 5760688|Manizales
 5760689|Manizales
diff --git a/resources/geocoding/en/61.txt b/resources/geocoding/en/61.txt
index e603f2b0..d162f032 100644
--- a/resources/geocoding/en/61.txt
+++ b/resources/geocoding/en/61.txt
@@ -14,6 +14,17 @@
 
 # Source: https://www.thenumberingsystem.com.au/#/number-register/search
 
+6120|New South Wales
+6121|New South Wales
+6122|New South Wales
+61230|New South Wales
+61231|New South Wales
+61232|New South Wales
+61233|Gosford
+61234|New South Wales
+61235|New South Wales
+61236|New South Wales
+61237|New South Wales
 61238000|Bowral
 61238001|Barrallier
 61238002|Bevendale
@@ -41,9 +52,9 @@
 61238024|Wombeyan Caves
 61238025|Woodhouselee
 61238026|Yerrinbool
-61238027|Bowral
-61238028|Bowral
-61238029|Bowral
+61238027|Barrallier
+61238028|Bevendale
+61238029|Binda
 61238030|Barrallier
 61238031|Bevendale
 61238032|Binda
@@ -151,32 +162,32 @@
 61238134|Wombeyan Caves
 61238135|Woodhouselee
 61238136|Yerrinbool
-61238137|Barrallier
+61238137|Goulburn
 61238138|Bevendale
 61238139|Binda
-61238140|Bowral
-61238141|Braidwood
-61238142|Breadalbane
-61238143|Bundanoon
-61238144|Bungonia
-61238145|Crookwell
-61238146|Golspie
-61238147|Goulburn
-61238148|Gundillion
-61238149|Gunning
-61238150|Lost River
-61238151|Marulan
-61238152|Nerriga
-61238153|Paddys River
-61238154|Reidsdale
-61238155|Robertson
-61238156|Rugby
-61238157|Tarago
-61238158|Taralga
-61238159|Tuena
-61238160|Wombeyan Caves
-61238161|Woodhouselee
-61238162|Yerrinbool
+61238140|Bevendale
+61238141|Bevendale
+61238142|Binda
+61238143|Binda
+61238144|Bowral
+61238145|Bowral
+61238146|Braidwood
+61238147|Braidwood
+61238148|Breadalbane
+61238149|Breadalbane
+61238150|Bundanoon
+61238151|Bundanoon
+61238152|Bungonia
+61238153|Bungonia
+61238154|Crookwell
+61238155|Crookwell
+61238156|Golspie
+61238157|Golspie
+61238158|Goulburn
+61238159|Goulburn
+61238160|Bowral
+61238161|Gundillion
+61238162|Gundillion
 61238163|Barrallier
 61238164|Bevendale
 61238165|Binda
@@ -204,16 +215,16 @@
 61238187|Woodhouselee
 61238188|Yerrinbool
 61238189|Bowral
-61238190|Barrallier
-61238191|Bevendale
-61238192|Binda
-61238193|Bowral
-61238194|Braidwood
-61238195|Breadalbane
-61238196|Bundanoon
-61238197|Bungonia
-61238198|Crookwell
-61238199|Golspie
+61238190|Paddys River
+61238191|Reidsdale
+61238192|Wombeyan Caves
+61238193|Gunning
+61238194|Gunning
+61238195|Lost River
+61238196|Lost River
+61238197|Marulan
+61238198|Marulan
+61238199|Nerriga
 61238200|Goulburn
 61238201|Gundillion
 61238202|Gunning
@@ -226,10 +237,21 @@
 61238209|Rugby
 61238210|Tarago
 61238211|Taralga
-61238212|Tuena
-61238213|Wombeyan Caves
-61238214|Woodhouselee
-61238215|Yerrinbool
+61238212|Taralga
+61238213|Tuena
+61238214|Tuena
+61238215|Wombeyan Caves
+61238216|Yerrinbool
+61238219|Woodhouselee
+6123822|Wombeyan Caves/Yerrinbool/Woodhouselee/Bowral/Braidwood/Breadalbane/Bundanoon/Bungonia/Crookwell
+6123823|Golspie/Gunning/Taralga/Goulburn/Nerriga/Paddys/River/Reidsdale/Robertson/Rugby/Tarago
+612383|Goulburn
+612384|New South Wales
+612385|Goulburn
+612386|Goulburn
+612387|New South Wales
+612388|Goulburn
+612389|New South Wales
 61240000|Bandon Grove
 61240001|Branxton
 61240002|Bulahdelah
@@ -261,28 +283,28 @@
 61240028|Tea Gardens
 61240029|Wards River
 61240030|Wootton
-61240031|Bandon Grove
-61240032|Branxton
+61240031|Laguna
+61240032|Wards River
 61240033|Newcastle
 61240034|Newcastle
 61240035|Newcastle
 61240036|Newcastle
 61240037|Newcastle
-61240038|Eccleston
+61240038|Maitland
 61240039|Karuah
 61240040|Laguna
 61240041|Maitland
 61240042|Mulbring
-61240043|Nelson Bay
+61240043|Maitland
 61240044|Raymond Terrace
 61240045|Maitland
 61240046|Newcastle
 61240047|Raymond Terrace
 61240048|Stroud
 61240049|Swansea
-61240050|Tea Gardens
-61240051|Wards River
-61240052|Wootton
+61240050|Bandon Grove
+61240051|Bandon Grove
+61240052|Newcastle
 61240053|Bandon Grove
 61240054|Branxton
 61240055|Bulahdelah
@@ -341,26 +363,26 @@
 61240108|Wards River
 61240109|Wootton
 61240110|Bandon Grove
-61240111|Bandon Grove
+61240111|Newcastle
 61240112|Branxton
 61240113|Bulahdelah
 61240114|Cessnock
 61240115|Clarence Town
-61240116|Dungog
-61240117|East Gresford
-61240118|Eccleston
-61240119|Karuah
-61240120|Laguna
-61240121|Maitland
-61240122|Mulbring
-61240123|Nelson Bay
-61240124|Newcastle
-61240125|Raymond Terrace
-61240126|Stroud
-61240127|Swansea
-61240128|Tea Gardens
-61240129|Wards River
-61240130|Wootton
+61240116|Branxton
+61240117|Branxton
+61240118|Bulahdelah
+61240119|Bulahdelah
+61240120|Cessnock
+61240121|Cessnock
+61240122|Clarence Town
+61240123|Clarence Town
+61240124|Dungog
+61240125|Dungog
+61240126|East Gresford
+61240127|East Gresford
+61240128|Eccleston
+61240129|Eccleston
+61240130|Cessnock
 61240131|Newcastle
 61240132|Newcastle
 61240133|Newcastle
@@ -729,55 +751,55 @@
 61240709|Tea Gardens
 61240710|Wards River
 61240711|Wootton
-61240712|Bandon Grove
-61240713|Branxton
-61240714|Bulahdelah
-61240715|Cessnock
-61240716|Clarence Town
-61240717|Dungog
-61240718|East Gresford
-61240719|Eccleston
-61240720|Karuah
+61240712|Karuah
+61240713|Karuah
+61240714|Laguna
+61240715|Laguna
+61240716|Maitland
+61240717|Mulbring
+61240718|Mulbring
+61240719|Nelson Bay
+61240720|Newcastle
 61240721|Laguna
-61240722|Maitland
+61240722|Newcastle
 61240723|Mulbring
 61240724|Nelson Bay
 61240725|Newcastle
 61240726|Raymond Terrace
-61240727|Stroud
-61240728|Swansea
+61240727|Newcastle
+61240728|Maitland
 61240729|Tea Gardens
-61240730|Wards River
+61240730|Cessnock
 61240731|Wootton
-61240732|Bandon Grove
-61240733|Branxton
-61240734|Bulahdelah
-61240735|Cessnock
-61240736|Clarence Town
-61240737|Dungog
-61240738|East Gresford
-61240739|Eccleston
-61240740|Karuah
-61240741|Laguna
-61240742|Maitland
-61240743|Mulbring
-61240744|Nelson Bay
-61240745|Newcastle
-61240746|Raymond Terrace
-61240747|Stroud
-61240748|Swansea
-61240749|Tea Gardens
-61240750|Wards River
-61240751|Wootton
+61240732|Branxton
+61240733|Bandon Grove
+61240734|Branxton
+61240735|Bulahdelah
+61240736|Cessnock
+61240737|Clarence Town
+61240738|Dungog
+61240739|East Gresford
+61240740|Eccleston
+61240741|Karuah
+61240742|Laguna
+61240743|Maitland
+61240744|Mulbring
+61240745|Nelson Bay
+61240746|Newcastle
+61240747|Raymond Terrace
+61240748|Stroud
+61240749|Swansea
+61240750|Tea Gardens
+61240751|Wards River
 61240752|Newcastle
-61240753|Bandon Grove
-61240754|Branxton
-61240755|Bulahdelah
-61240756|Cessnock
-61240757|Clarence Town
-61240758|Dungog
-61240759|East Gresford
-61240760|Eccleston
+61240753|Nelson Bay
+61240754|Raymond Terrace
+61240755|Newcastle
+61240756|Stroud
+61240757|Raymond Terrace
+61240758|Swansea
+61240759|Stroud
+61240760|Newcastle
 61240761|Karuah
 61240762|Laguna
 61240763|Maitland
@@ -787,14 +809,30 @@
 61240767|Raymond Terrace
 61240768|Stroud
 61240769|Swansea
-61240770|Tea Gardens
-61240771|Wards River
-61240772|Wootton
+61240770|Swansea
+61240771|Tea Gardens
+61240772|Tea Gardens
+61240773|Newcastle
+61240774|Newcastle
+61240776|Newcastle
+6124078|Swansea
+6124079|Swansea
+6124080|Newcastle
+6124081|Newcastle/Raymond Terrace
+6124082|Cessnock/Newcastle/Maitland/Wards River/Wootton
+6124083|Nelson Bay/Newcastle/Karuah/Bandon Grove/Branxton/Bulahdelah/Cessnock/Clarence Town
+6124084|Dungog/East Gresford/Eccleston/Karuah/Laguna/Maitland/Mulbring/Nelson Bay
+6124085|Maitland/Nelson Bay/Newcastle/Raymond Terrace/Stroud/Swansea
+6124086|Tea Gardens/Wards River/Wootton/Maitland/Newcastle
+6124087|Cessnock/Maitland/Newcastle
 6124088|Newcastle
 6124089|Newcastle
 61240896|Raymond Terrace
 61240897|Raymond Terrace
 61240898|Raymond Terrace
+6124090|Newcastle
+6124091|Newcastle/Maitland
+6124092|Newcastle
 6124099|Newcastle
 6124200|Wollongong
 6124201|Wollongong
@@ -850,41 +888,37 @@
 61242092|Kiama
 61242097|Helensburgh
 61242098|Kiama
+6124210|Wollongong
 61242100|Kiama
 61242101|Helensburgh
 61242102|Kiama
-61242103|Wollongong
-61242104|Helensburgh
-61242105|Kiama
-61242106|Wollongong
-61242107|Wollongong
-61242108|Wollongong
-61242109|Wollongong
+61242105|Helensburgh
 6124211|Wollongong
 61242111|Kiama
 61242112|Kiama
 61242113|Kiama
 6124212|Wollongong
 6124213|Wollongong
-6124214|Wollongong
+61242140|Wollongong
+61242141|Wollongong
+61242142|Wollongong
+61242143|Wollongong
+61242144|Kiama
 61242145|Helensburgh
 61242146|Kiama
+61242147|Wollongong
 61242148|Helensburgh
 61242149|Kiama
-61242150|Wollongong
+61242150|Helensburgh
+61242151|Wollongong
+6124216|Kiama/Wollongong
+6124217|Helensburgh/Kiama/Wollongong
 612422|Wollongong
-6124230|Kiama
+612423|Kiama
 6124231|Wollongong
-6124232|Kiama
-6124233|Kiama
-6124234|Kiama
-6124235|Kiama
-6124236|Kiama
-6124237|Kiama
 6124238|Wollongong
 61242380|Helensburgh
-61242381|Kiama
-61242389|Kiama
+6124239|Wollongong
 6124240|Wollongong
 6124242|Wollongong
 6124243|Wollongong
@@ -893,6 +927,7 @@
 6124245|Wollongong
 6124246|Wollongong
 6124247|Wollongong
+6124248|Wollongong
 61242490|Wollongong
 61242491|Wollongong
 61242492|Wollongong
@@ -975,8 +1010,8 @@
 61243072|Mangrove Mountain
 61243073|Mangrove Mountain
 61243074|Wyong
-61243075|Gosford
-61243076|Mangrove Mountain
+61243075|Mangrove Mountain
+61243076|Wyong
 61243077|Wyong
 61243078|Gosford
 61243079|Gosford
@@ -1033,9 +1068,12 @@
 61243166|Gosford
 61243167|Mangrove Mountain
 61243168|Wyong
-61243169|Gosford
+61243169|Wyong
 61243170|Mangrove Mountain
 61243171|Wyong
+61243172|Wyong
+6124318|Gosford
+6124319|Gosford/Mangrove Mountain/Wyong
 612432|Gosford
 61243262|Wyong
 61243263|Wyong
@@ -1068,6 +1106,7 @@
 61243465|Gosford
 61243466|Gosford
 61243474|Gosford
+61243475|Wyong
 6124348|Gosford
 6124349|Gosford
 612435|Wyong
@@ -1083,8 +1122,10 @@
 61243809|Gosford
 6124381|Gosford
 6124382|Gosford
+6124383|Wyong
 6124384|Gosford
 6124385|Gosford
+6124386|Gosford
 6124388|Gosford
 6124389|Gosford
 6124390|Wyong
@@ -1114,7 +1155,7 @@
 61244016|Milton-ulladulla
 61244017|Milton-ulladulla
 61244018|Milton-ulladulla
-61244019|Jilliga
+61244019|Bawley Point
 61244020|Moruya
 61244021|Moruya
 61244022|Moruya
@@ -1135,13 +1176,13 @@
 61244037|Huskisson
 61244038|Milton-ulladulla
 61244039|Nowra
-61244040|Moruya
-61244041|Narooma
-61244042|Bawley Point
-61244043|Berry
-61244044|Huskisson
-61244045|Milton-ulladulla
-61244046|Nowra
+61244040|Berry
+61244041|Batemans Bay
+61244042|Huskisson
+61244043|Bawley Point
+61244044|Jilliga
+61244045|Berry
+61244046|Milton-ulladulla
 61244047|Batemans Bay
 61244048|Jilliga
 61244049|Moruya
@@ -1159,12 +1200,12 @@
 61244061|Berry
 61244062|Huskisson
 61244063|Milton-ulladulla
-61244064|Batemans Bay
-61244065|Jilliga
-61244066|Moruya
-61244067|Narooma
-61244068|Bawley Point
-61244069|Berry
+61244064|Moruya
+61244065|Huskisson
+61244066|Narooma
+61244067|Jilliga
+61244068|Nowra
+61244069|Milton-ulladulla
 61244070|Batemans Bay
 61244071|Jilliga
 61244072|Moruya
@@ -1174,9 +1215,9 @@
 61244076|Huskisson
 61244077|Milton-ulladulla
 61244078|Nowra
-61244079|Huskisson
-61244080|Milton-ulladulla
-61244081|Nowra
+61244079|Batemans Bay
+61244080|Moruya
+61244081|Bawley Point
 61244082|Batemans Bay
 61244083|Nowra
 61244084|Moruya
@@ -1273,15 +1314,15 @@
 61244175|Moruya
 61244176|Narooma
 61244177|Nowra
-61244178|Batemans Bay
-61244179|Bawley Point
-61244180|Berry
-61244181|Huskisson
-61244182|Jilliga
+61244178|Berry
+61244179|Narooma
+61244180|Huskisson
+61244181|Nowra
+61244182|Nowra
 61244183|Milton-ulladulla
-61244184|Moruya
-61244185|Narooma
-61244186|Nowra
+61244184|Jilliga
+61244185|Milton-ulladulla
+61244186|Moruya
 61244187|Batemans Bay
 61244188|Bawley Point
 61244189|Berry
@@ -1291,15 +1332,17 @@
 61244193|Moruya
 61244194|Narooma
 61244195|Nowra
-61244196|Batemans Bay
-61244197|Bawley Point
-61244198|Berry
-61244199|Huskisson
-61244200|Jilliga
-61244201|Milton-ulladulla
-61244202|Moruya
-61244203|Narooma
-61244204|Nowra
+61244196|Narooma
+61244197|Nowra
+61244198|Batemans Bay
+61244199|Bawley Point
+61244200|Berry
+61244201|Huskisson
+61244202|Jilliga
+61244203|Milton-ulladulla
+61244204|Moruya
+61244205|Batemans Bay
+61244208|Batemans Bay
 6124421|Nowra
 6124422|Nowra
 6124423|Nowra
@@ -1324,6 +1367,7 @@
 61244276|Bawley Point
 61244277|Bawley Point
 61244278|Jilliga
+61244279|Batemans Bay
 6124428|Nowra
 61244280|Huskisson
 61244281|Huskisson
@@ -1339,6 +1383,7 @@
 61244297|Huskisson
 61244298|Milton-ulladulla
 61244299|Milton-ulladulla
+612443|Batemans Bay/Narooma/Nowra
 6124441|Huskisson
 6124442|Huskisson
 6124443|Huskisson
@@ -1360,6 +1405,8 @@
 6124446|Nowra
 6124447|Nowra
 6124448|Nowra
+6124449|Nowra
+6124450|Nowra
 6124454|Milton-ulladulla
 6124455|Milton-ulladulla
 6124456|Milton-ulladulla
@@ -1425,10 +1472,10 @@
 61245013|Wisemans Ferry
 61245014|Wisemans Ferry
 61245015|Wisemans Ferry
-61245016|Kurrajong Heights
-61245017|St Albans
-61245018|Windsor
-61245019|Wisemans Ferry
+61245016|St Albans
+61245017|Colo Heights
+61245018|Colo Heights
+61245019|Kurrajong Heights
 61245020|Colo Heights
 61245021|Kurrajong Heights
 61245022|St Albans
@@ -1443,10 +1490,10 @@
 61245031|Kurrajong Heights
 61245032|St Albans
 61245033|Wisemans Ferry
-61245034|Colo Heights
+61245034|St Albans
 61245035|Kurrajong Heights
-61245036|St Albans
-61245037|Windsor
+61245036|Windsor
+61245037|St Albans
 61245038|Wisemans Ferry
 61245039|Wisemans Ferry
 61245040|Colo Heights
@@ -1504,19 +1551,24 @@
 61245097|Wisemans Ferry
 61245098|Colo Heights
 61245099|Kurrajong Heights
-61245100|St Albans
-61245101|Windsor
-61245102|Wisemans Ferry
+61245100|Kurrajong Heights
+61245101|Wisemans Ferry
+61245102|St Albans
 61245103|Colo Heights
 61245104|Kurrajong Heights
 61245105|St Albans
 61245106|Windsor
 61245107|Wisemans Ferry
-61245108|Colo Heights
-61245109|Kurrajong Heights
-61245110|St Albans
-61245111|Windsor
-61245112|Wisemans Ferry
+61245108|Windsor
+61245109|Wisemans Ferry
+61245110|Colo Heights
+61245111|Kurrajong Heights
+61245112|St Albans
+61245113|Windsor
+61245114|Wisemans Ferry
+61245115|St Albans
+61245116|Windsor
+61245117|Wisemans Ferry
 6124545|Windsor
 61245460|Windsor
 6124555|Windsor
@@ -1542,6 +1594,7 @@
 6124566|Wisemans Ferry
 6124567|Kurrajong Heights
 6124568|St Albans
+6124569|Windsor
 612457|Windsor
 6124580|Windsor
 6124581|Wisemans Ferry
@@ -1580,7 +1633,7 @@
 61246020|Campbelltown
 61246021|Camden
 61246022|Campbelltown
-61246023|Picton
+61246023|Camden
 61246024|Camden
 61246025|Campbelltown
 61246026|Camden
@@ -1632,8 +1685,8 @@
 61246114|Campbelltown
 61246115|Picton
 61246116|Picton
-61246117|Camden
-61246118|Campbelltown
+61246117|Campbelltown
+61246118|Picton
 61246119|Picton
 61246120|Camden
 61246121|Campbelltown
@@ -1641,6 +1694,11 @@
 61246123|Camden
 61246124|Campbelltown
 61246125|Picton
+61246126|Campbelltown/Camden
+61246127|Campbelltown/Camden
+61246128|Campbelltown/Camden
+61246129|Campbelltown/Camden
+6124613|Campbelltown/Picton
 612462|Campbelltown
 61246232|Camden
 61246234|Picton
@@ -1744,11 +1802,11 @@
 61247050|Lawson
 61247051|Mount Wilson
 61247052|Mulgoa
-61247053|Katoomba
-61247054|Lawson
-61247055|Mount Wilson
+61247053|Mulgoa
+61247054|Mount Wilson
+61247055|Penrith
 61247056|Mulgoa
-61247057|Penrith
+61247057|Katoomba
 61247058|Katoomba
 61247059|Lawson
 61247060|Penrith
@@ -1804,8 +1862,8 @@
 61247124|Mount Wilson
 61247125|Mulgoa
 61247126|Penrith
-61247127|Katoomba
-61247128|Lawson
+61247127|Lawson
+61247128|Penrith
 61247129|Mount Wilson
 61247130|Mulgoa
 61247131|Penrith
@@ -1819,6 +1877,12 @@
 61247139|Mount Wilson
 61247140|Mulgoa
 61247141|Penrith
+61247142|Penrith
+61247146|Lawson/Katoomba/Penrith
+61247147|Lawson/Katoomba/Penrith
+61247148|Lawson/Katoomba/Penrith
+61247149|Lawson/Katoomba/Penrith
+6124715|Mount Wilson/Lawson
 612472|Penrith
 6124720|Mulgoa
 612473|Penrith
@@ -1837,9 +1901,9 @@
 6124743|Penrith
 6124744|Penrith
 61247444|Mulgoa
+6124745|Katoomba
 6124747|Penrith
-61247480|Penrith
-61247489|Penrith
+6124748|Penrith
 6124749|Penrith
 6124750|Lawson
 6124751|Penrith
@@ -1869,6 +1933,7 @@
 61247608|Katoomba
 61247609|Katoomba
 6124761|Penrith
+6124762|Mulgoa
 6124773|Mulgoa
 6124774|Mulgoa
 6124775|Mulgoa
@@ -1891,12 +1956,14 @@
 61247835|Mulgoa
 61247836|Mulgoa
 61247837|Penrith
+61247838|Penrith
 6124784|Katoomba
 6124785|Katoomba
 6124786|Penrith
 6124787|Katoomba
 6124788|Katoomba
 6124789|Penrith
+6124790|Penrith
 61247999|Penrith
 61248000|Barrallier
 61248001|Barrallier
@@ -1990,6 +2057,7 @@
 61248098|Lost River
 61248099|Rugby
 61248100|Goulburn
+61248101|Goulburn
 61248107|Gundillion
 61248108|Lost River
 61248109|Nerriga
@@ -2003,8 +2071,8 @@
 61248117|Crookwell
 61248118|Lost River
 61248119|Rugby
-61248120|Tuena
-61248121|Bevendale
+61248120|Robertson
+61248121|Marulan
 61248122|Braidwood
 61248123|Breadalbane
 61248124|Bungonia
@@ -2211,6 +2279,8 @@
 61248517|Bungonia
 61248518|Robertson
 61248519|Yerrinbool
+61248520|Lost River
+61248521|Gundillion
 61248526|Braidwood
 61248527|Breadalbane
 61248528|Gundillion
@@ -2404,6 +2474,7 @@
 61248797|Taralga
 61248798|Golspie
 61248799|Bowral
+61248800|Nerriga
 61248801|Bowral
 61248802|Gundillion
 61248803|Crookwell
@@ -2413,6 +2484,8 @@
 61248807|Tuena
 61248808|Rugby
 61248809|Braidwood
+6124881|Tarago/Woodhouselee/Robertson
+6124882|Tarago/Woodhouselee/Robertson
 6124883|Bundanoon
 61248839|Yerrinbool
 6124884|Bundanoon
@@ -2428,6 +2501,7 @@
 6124889|Yerrinbool
 61248900|Tuena
 61248901|Goulburn
+61248902|Tuena
 61248997|Bowral
 61248998|Goulburn
 61248999|Goulburn
@@ -2675,6 +2749,7 @@
 61250087|Albury
 61250088|Albury
 61250089|Albury
+61250105|Albury
 61250106|Balldale
 61250107|Barnawartha
 61250108|Coppabella
@@ -2731,33 +2806,33 @@
 61250159|Walwa
 61250160|Yackandandah
 61250161|Albury
-61250162|Balldale
-61250163|Barnawartha
-61250164|Coppabella
-61250165|Corowa
-61250166|Corryong
-61250167|Cudgewa
-61250168|Culcairn
-61250169|Dartmouth
-61250170|Eskdale
-61250171|Gerogery
-61250172|Holbrook
-61250173|Howlong
-61250174|Koetong
-61250175|Leicester Park
-61250176|Little Billabong
-61250177|Nariel
-61250178|Oaklands
-61250179|Ournie
-61250180|Rand
-61250181|Rennie
-61250182|Talgarno
-61250183|Tallangatta
-61250184|Tallangatta Valley
-61250185|Talmalmo
-61250186|Walla Walla
-61250187|Walwa
-61250188|Yackandandah
+61250162|Albury
+61250163|Balldale
+61250164|Balldale
+61250165|Barnawartha
+61250166|Barnawartha
+61250167|Coppabella
+61250168|Coppabella
+61250169|Corowa
+61250170|Corowa
+61250171|Corryong
+61250172|Corryong
+61250173|Cudgewa
+61250174|Cudgewa
+61250175|Culcairn
+61250176|Culcairn
+61250177|Dartmouth
+61250178|Dartmouth
+61250179|Eskdale
+61250180|Eskdale
+61250181|Gerogery
+61250182|Gerogery
+61250183|Holbrook
+61250184|Holbrook
+61250185|Howlong
+61250186|Howlong
+61250187|Koetong
+61250188|Koetong
 61250189|Albury
 61250190|Balldale
 61250191|Barnawartha
@@ -2786,34 +2861,45 @@
 61250214|Walla Walla
 61250215|Walwa
 61250216|Yackandandah
-61250217|Albury
-61250218|Balldale
-61250219|Barnawartha
-61250220|Coppabella
-61250221|Corowa
-61250222|Corryong
-61250223|Cudgewa
-61250224|Culcairn
-61250225|Dartmouth
-61250226|Eskdale
-61250227|Gerogery
-61250228|Holbrook
-61250229|Howlong
-61250230|Koetong
-61250231|Leicester Park
-61250232|Little Billabong
-61250233|Nariel
-61250234|Oaklands
-61250235|Ournie
-61250236|Rand
-61250237|Rennie
-61250238|Talgarno
-61250239|Tallangatta
-61250240|Tallangatta Valley
-61250241|Talmalmo
-61250242|Walla Walla
-61250243|Walwa
+61250217|Leicester Park
+61250218|Leicester Park
+61250219|Little Billabong
+61250220|Little Billabong
+61250221|Nariel
+61250222|Nariel
+61250223|Oaklands
+61250224|Oaklands
+61250225|Ournie
+61250226|Ournie
+61250227|Rand
+61250228|Rand
+61250229|Rennie
+61250230|Rennie
+61250231|Talgarno
+61250232|Talgarno
+61250233|Tallangatta
+61250234|Tallangatta
+61250235|Tallangatta Valley
+61250236|Tallangatta Valley
+61250237|Talmalmo
+61250238|Talmalmo
+61250239|Walla Walla
+61250240|Walla Walla
+61250241|Walwa
+61250242|Walwa
+61250243|Yackandandah
 61250244|Yackandandah
+61250245|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250246|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250247|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250248|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250249|Albury/Balldale/Barnawartha/Coppabella/Corowa
+6125025|Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park
+6125026|Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo
+6125027|Walla Walla/Walwa/Yackandandah/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta
+6125028|Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah/Albury/Balldale/Barnawartha/Coppabella/Corowa
+6125029|Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park
+612503|Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah
 612510|Canberra
 61251010|Anembo
 61251011|Binalong
diff --git a/resources/geocoding/en/64.txt b/resources/geocoding/en/64.txt
index 65ed15f6..3a9cf936 100644
--- a/resources/geocoding/en/64.txt
+++ b/resources/geocoding/en/64.txt
@@ -43,11 +43,19 @@
 643226|Otautau
 643230|Invercargill
 643231|Invercargill
+643232|Riverton/Winton
+643233|Riverton/Winton
 643234|Riverton
 643235|Invercargill
 643236|Winton
+643237|Riverton/Winton
+643238|Riverton/Winton
 643239|Invercargill
+643240|Tokanui/Lumsden/Te Anau
+643241|Tokanui/Lumsden/Te Anau
 6432420|Christchurch
+6432421|Tokanui/Lumsden/Te Anau
+6432422|Tokanui/Lumsden/Te Anau
 6432423|Dunedin
 6432424|Nelson
 6432425|Invercargill
@@ -55,6 +63,7 @@
 6432427|Greymouth
 6432428|Queenstown
 6432429|Timaru
+643243|Tokanui/Lumsden/Te Anau
 6432440|Christchurch
 6432441|Christchurch
 6432442|Christchurch
@@ -65,9 +74,12 @@
 6432447|Timaru
 6432448|Dunedin
 6432449|Queenstown
+643245|Tokanui/Lumsden/Te Anau
 643246|Tokanui
+643247|Tokanui/Lumsden/Te Anau
 643248|Lumsden
 643249|Te Anau
+64325|South Island
 643250|Christchurch
 643260|Christchurch
 6432606|Dunedin
@@ -78,7 +90,7 @@
 6432611|Kaikoura
 6432612|Rangiora
 6432613|Waitangi (Chatham Is.)
-6432614|Akaroa
+6432614|South Island
 6432615|Amberley
 6432616|Ashburton
 6432617|Cheviot
@@ -129,8 +141,14 @@
 6432662|Christchurch
 6432663|Christchurch
 6432664|Christchurch
+6432665|South Island
+6432666|South Island
+6432667|South Island
 6432668|Blenheim
 6432669|Rangiora
+643267|South Island
+643268|South Island
+643269|South Island
 643270|Christchurch
 6432710|Christchurch
 6432711|Akaroa
@@ -181,6 +199,12 @@
 6432756|Gore
 6432757|Lumsden
 6432758|Otautau
+6432759|South Island
+643276|South Island
+643277|South Island
+643278|South Island
+643279|South Island
+64328|South Island
 6432800|Te Anau
 6432801|Lumsden
 6432802|Gore
@@ -205,6 +229,7 @@
 6432887|Nelson
 6432888|Nelson
 6432889|Blenheim
+64329|South Island
 6432990|Lumsden
 6432991|Milton
 6432992|Gore
@@ -215,14 +240,7 @@
 6432997|Edendale
 6432998|Tokanui
 6432999|Invercargill
-643300|Ashburton/Akaroa/Chatham Islands
-643302|Ashburton/Akaroa/Chatham Islands
-643303|Ashburton/Akaroa/Chatham Islands
-643304|Ashburton/Akaroa/Chatham Islands
-643305|Ashburton/Akaroa/Chatham Islands
-643306|Ashburton/Akaroa/Chatham Islands
-643307|Ashburton/Akaroa/Chatham Islands
-643308|Ashburton/Akaroa/Chatham Islands
+64330|Ashburton/Akaroa/Chatham Islands
 64331|Rangiora/Amberley/Culverden/Darfield/Cheviot/Kaikoura
 64332|Christchurch
 643331|Christchurch
@@ -235,7 +253,7 @@
 643339|Christchurch
 64334|Christchurch
 64335|Christchurch
-64336|Christchurch
+64336|South Island
 64337|Christchurch
 64338|Christchurch
 643390|Christchurch
@@ -249,6 +267,7 @@
 6433917|Franz Josef
 6433918|Fox Glacier
 6433919|Haast
+643392|South Island
 643393|Christchurch
 6433940|Westport
 6433941|Blenheim
@@ -270,6 +289,8 @@
 6433957|Palmerston
 6433958|Oamaru
 6433959|Balclutha
+643396|South Island
+643397|South Island
 6433980|Milton
 6433981|Twizel
 6433982|Kurow
@@ -280,6 +301,7 @@
 6433987|Cromwell
 6433988|Wanaka
 6433989|Waimate
+6433990|South Island
 6433991|Invercargill
 6433992|Riverton
 6433993|Te Anau
@@ -289,10 +311,15 @@
 6433997|Gore
 6433998|Lumsden
 6433999|Otautau
+64340|South Island
 643409|Queenstown
+643410|Balclutha/Milton
+643411|Balclutha/Milton
 643412|Balclutha
 643413|Balclutha
+643414|Balclutha/Milton
 643415|Balclutha
+643416|Balclutha/Milton
 643417|Milton
 643418|Balclutha
 643419|Balclutha
@@ -369,24 +396,25 @@
 6434297|Westport
 6434298|Hokitika
 6434299|Haast
+64343|Oamaru
 643430|Mt Cook
-643431|Oamaru
-643432|Oamaru
-643433|Oamaru
-643434|Oamaru
+643435|Oamaru/Mount Cook/Twizel/Kurow
 6434350|Twizel
 6434351|Mt Cook
 6434353|Twizel
 6434359|Twizel
 643436|Kurow
-643437|Oamaru
 643438|Kurow
-643439|Oamaru
 6434400|Alexandra
 6434401|Cromwell
 6434402|Alexandra
+6434403|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
 6434404|Alexandra
 6434405|Alexandra
+6434406|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434407|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434408|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434409|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
 643441|Queenstown
 643442|Queenstown
 643443|Wanaka
@@ -404,6 +432,11 @@
 643455|Dunedin
 643456|Dunedin
 643457|Dunedin
+643458|Dunedin/Queenstown
+643459|Dunedin/Queenstown
+643460|Dunedin/Palmerston
+643461|Dunedin/Palmerston
+643462|Dunedin/Palmerston
 643463|Palmerston
 643464|Dunedin
 643465|Palmerston
@@ -412,14 +445,11 @@
 643468|Dunedin
 643469|Dunedin
 64347|Dunedin
-643481|Dunedin
-643482|Dunedin
-643484|Dunedin
+64348|Dunedin
+643480|Dunedin/Lawrence/Mosgiel
+643483|Dunedin/Lawrence/Mosgiel
 643485|Lawrence
-643486|Dunedin
-643487|Dunedin
-643488|Dunedin
-643489|Dunedin
+64349|South Island
 6434990|Queenstown
 6434991|Cromwell
 6434992|Ranfurly
@@ -430,6 +460,7 @@
 6434997|Lawrence
 6434998|Dunedin
 6434999|Dunedin
+6435|South Island
 643520|Blenheim
 643521|Nelson
 643522|Nelson
@@ -557,13 +588,7 @@
 6435888|Timaru
 6435889|Timaru
 643590|Christchurch
-6435950|Christchurch
-6435951|Christchurch
-6435952|Christchurch
-6435953|Christchurch
-6435954|Christchurch
-6435955|Christchurch
-6435956|Christchurch
+643595|Christchurch
 6435990|Hokitika
 6435991|Franz Josef
 6435992|Fox Glacier
@@ -574,9 +599,11 @@
 6435997|Amberley
 6435998|Rangiora
 6435999|Christchurch
-643612|Timaru
-643614|Timaru
-643615|Timaru
+64360|South Island
+64361|Timaru
+64362|South Island
+64363|South Island
+64364|South Island
 6436500|Christchurch
 6436501|Akaroa
 6436502|Amberley
@@ -707,20 +734,14 @@
 6436688|Waitangi (Chatham Is.)
 6436689|Christchurch
 643669|Christchurch
+64367|South Island
+64368|Timaru
 643680|Fairlie
-643681|Timaru
-643683|Timaru
-643684|Timaru
+643682|Timaru/Waimate/Fairlie
 643685|Fairlie
-643686|Timaru
-643687|Timaru
-643688|Timaru
 643689|Waimate
+64369|Geraldine
 643690|Waimate
-643692|Geraldine
-643693|Geraldine
-643696|Geraldine
-643697|Geraldine
 6436990|Cheviot
 6436991|Culverden
 6436992|Greymouth
@@ -731,10 +752,10 @@
 6436997|Motueka
 6436998|Blenheim
 6436999|Nelson
-643731|Greymouth
-643732|Greymouth
-643736|Greymouth
-643738|Greymouth
+64370|South Island
+64371|South Island
+64372|South Island
+64373|Greymouth
 643740|Christchurch
 643741|Christchurch
 643742|Dunedin
@@ -787,17 +808,21 @@
 6437485|Te Anau
 6437486|Tokanui
 6437487|Winton
+6437488|South Island
+6437489|South Island
 643749|Christchurch
 643750|Haast
 643751|Fox Glacier
 643752|Franz Josef
 643753|Hokitika
+643754|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
 643755|Hokitika
 643756|Hokitika
-643762|Greymouth
-643767|Greymouth
-643768|Greymouth
-643769|Greymouth
+643757|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+643758|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+643759|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+64376|Greymouth
+64377|South Island
 6437770|Nelson
 6437771|Blenheim
 6437772|Timaru
@@ -808,9 +833,8 @@
 6437777|Christchurch
 6437778|Greymouth
 6437779|Invercargill
-643782|Westport
-643788|Westport
-643789|Westport
+64378|Westport
+64379|South Island
 6439000|Christchurch
 6439001|Christchurch
 6439002|Rangiora
@@ -824,12 +848,16 @@
 6439010|Queenstown
 6439011|Queenstown
 6439012|Queenstown
+6439013|Ashburton
+6439014|Ashburton
 6439015|Wanaka
 6439016|Alexandra
 6439017|Cromwell
 6439018|Ranfurly
 6439019|Roxburgh
 6439020|Gore
+6439021|Ashburton
+6439022|Ashburton
 6439023|Te Anau
 6439024|Lumsden
 6439025|Otautau
@@ -839,31 +867,41 @@
 6439029|Tokanui
 643903|Christchurch
 6439040|Balclutha
+6439041|Ashburton
 6439042|Oamaru
+6439043|Ashburton
 6439044|Milton
 6439045|Twizel
 6439046|Kurow
 6439047|Alexandra
 6439048|Lawrence
 6439049|Palmerston
+643905|Ashburton
 6439050|Geraldine
 6439052|Mt Cook
 6439055|Fairlie
 6439057|Waimate
 6439060|Greymouth
 6439061|Greymouth
+6439062|Ashburton
 6439063|Westport
+6439064|Ashburton
+6439065|Ashburton
 6439066|Hokitika
 6439067|Franz Josef
 6439068|Fox Glacier
 6439069|Haast
 6439070|Motueka
 6439071|Motueka
+6439072|Ashburton
 6439073|Motueka
+6439074|Ashburton
 6439075|Takaka
+6439076|Ashburton
+6439077|Ashburton
+6439078|Ashburton
 6439079|Murchison
-6439080|Ashburton
-6439081|Ashburton
+643908|Ashburton
 6439082|Culverden
 6439083|Cheviot
 6439084|Amberley
@@ -871,9 +909,14 @@
 6439090|Rangiora
 6439091|Rangiora
 6439092|Rangiora
+6439093|Ashburton
+6439094|Ashburton
+6439095|Ashburton
+6439096|Ashburton
 6439097|Darfield
 6439098|Akaroa
 6439099|Kaikoura
+64391|South Island
 643920|Rangiora
 643921|Blenheim
 643922|Nelson
@@ -934,6 +977,8 @@
 6439325|Kaikoura
 6439326|Rangiora
 6439327|Ashburton
+6439328|South Island
+6439329|South Island
 6439330|Westport
 6439331|Greymouth
 6439332|Hokitika
@@ -943,6 +988,7 @@
 6439336|Cromwell
 6439337|Wanaka
 6439338|Queenstown
+6439339|South Island
 6439340|Mt Cook
 6439341|Fairlie
 6439342|Geraldine
@@ -951,6 +997,13 @@
 6439345|Christchurch
 6439346|Christchurch
 6439347|Christchurch
+6439348|South Island
+6439349|South Island
+643935|South Island
+643936|South Island
+643937|South Island
+643938|South Island
+643939|South Island
 643940|Christchurch
 643941|Christchurch
 643942|Christchurch
@@ -989,18 +1042,16 @@
 6439534|Mt Cook
 6439535|Fairlie
 6439536|Waimate
+6439537|Dunedin/Timaru
+6439538|Dunedin/Timaru
+6439539|Dunedin/Timaru
+643954|Dunedin/Timaru
 643955|Dunedin
 643956|Timaru
 643957|Timaru
-643960|Christchurch
-643961|Christchurch
-643962|Christchurch
-643963|Christchurch
-643964|Christchurch
-643965|Christchurch
-643966|Christchurch
-643967|Christchurch
-643968|Christchurch
+643958|Dunedin/Timaru
+643959|Dunedin/Timaru
+64396|Christchurch
 6439700|Nelson
 6439701|Nelson
 6439702|Nelson
@@ -1088,12 +1139,15 @@
 6439856|Darfield
 6439857|Akaroa
 6439858|Kaikoura
+6439859|Christchurch/Blenheim/Nelson
 6439860|Nelson
 6439861|Nelson
 6439862|Nelson
 6439863|Motueka
 6439864|Takaka
 6439865|Murchison
+6439866|Christchurch/Blenheim/Nelson
+6439867|Christchurch/Blenheim/Nelson
 6439868|Blenheim
 6439869|Blenheim
 6439870|Queenstown
@@ -1103,14 +1157,21 @@
 6439874|Cromwell
 6439875|Ranfurly
 6439876|Roxburgh
+6439877|Christchurch/Blenheim/Nelson
+6439878|Christchurch/Blenheim/Nelson
+6439879|Christchurch/Blenheim/Nelson
 6439880|Greymouth
 6439881|Greymouth
 6439882|Westport
 6439883|Hokitika
 6439884|Franz Josef
 6439885|Fox Glacier
-6439886|Haast
+6439886|Christchurch/Blenheim/Nelson
+6439887|Christchurch/Blenheim/Nelson
+6439888|Christchurch/Blenheim/Nelson
+6439889|Christchurch/Blenheim/Nelson
 643989|Nelson
+64399|South Island
 644202|Wellington
 644203|Wellington
 644204|Wellington
@@ -1141,56 +1202,19 @@
 644281|Wellington
 6442820|Wellington
 6442821|Wellington
-644290|Paraparaumu
-644292|Paraparaumu
-644293|Paraparaumu
-644296|Paraparaumu
-644297|Paraparaumu
-644298|Paraparaumu
-644299|Paraparaumu
-6443330|Wellington
-6443331|Wellington
-6443332|Wellington
+64429|Paraparaumu
+6443|Wellington
 6443333|Paraparaumu
-644370|Wellington
 6443708|Paraparaumu
 6443709|Paraparaumu
-64438|Wellington
-644390|Wellington
-644391|Wellington
-644392|Wellington
 644393|Paraparaumu
-644399|Wellington
 6443990|Paraparaumu
-644436|Wellington
-644437|Wellington
-644439|Wellington
-644460|Wellington
-644461|Wellington
-644462|Wellington
-644463|Wellington
-644464|Wellington
-644465|Wellington
-644466|Wellington
-644467|Wellington
-64447|Wellington
-644488|Wellington
+6444|Wellington
 6444887|Paraparaumu
 6444888|Paraparaumu
 6444889|Paraparaumu
-644493|Wellington
-644494|Wellington
-644495|Wellington
-644496|Wellington
-644497|Wellington
-644498|Wellington
-644499|Wellington
-644524|Wellington
-644525|Wellington
-644526|Wellington
-644527|Wellington
-644528|Wellington
-644529|Wellington
+6445|Wellington/Hutt Valley
+64452|Wellington
 644550|Wellington
 644551|Paraparaumu
 644555|Wellington
@@ -1204,13 +1228,7 @@
 644587|Wellington
 644589|Wellington
 644590|Wellington
-6445950|Wellington
-6445951|Wellington
-6445952|Wellington
-6445953|Wellington
-6445954|Wellington
-6445955|Wellington
-6445956|Wellington
+644595|Wellington
 644619|Wellington
 644650|Wellington
 6446509|Paraparaumu
@@ -1218,12 +1236,7 @@
 644777|Wellington
 6447770|Paraparaumu
 6447771|Paraparaumu
-644801|Wellington
-644802|Wellington
-644803|Wellington
-644804|Wellington
-644805|Wellington
-644806|Wellington
+64480|Wellington
 644810|Wellington
 644815|Wellington
 644816|Wellington
@@ -1245,44 +1258,15 @@
 644895|Paraparaumu
 644896|Wellington
 644897|Wellington
-644900|Wellington
+6449|Wellington
 6449008|Paraparaumu
-644901|Wellington
 644902|Paraparaumu
-644903|Wellington
 6449030|Paraparaumu
 6449031|Paraparaumu
 644904|Paraparaumu
 644905|Paraparaumu
 644906|Paraparaumu
-644907|Wellington
-6449080|Paraparaumu
-6449081|Paraparaumu
-6449082|Wellington
-6449083|Wellington
-6449084|Wellington
-644909|Wellington
-644910|Wellington
-6449120|Wellington
-6449121|Wellington
-6449122|Wellington
-6449123|Wellington
-6449124|Wellington
-644913|Wellington
-644914|Wellington
-644915|Wellington
-644916|Wellington
-644917|Wellington
-644918|Wellington
-644920|Wellington
-644922|Wellington
-644924|Wellington
-644928|Wellington
-644931|Wellington
-644934|Wellington
-644938|Wellington
-644939|Wellington
-64497|Wellington
+644908|Paraparaumu
 6449740|Paraparaumu
 6449741|Paraparaumu
 644975|Paraparaumu
@@ -1352,7 +1336,6 @@
 6462412|Gisborne
 6462413|Gisborne
 6462414|Napier
-6462415|Levin
 6462416|Waipukurau
 6462417|Wanganui
 6462418|Palmerston North
@@ -1392,11 +1375,7 @@
 6462627|Wanganui
 6462628|Wanganui
 6462629|Levin
-646272|Hawera
-646273|Hawera
-646274|Hawera
-646278|Hawera
-646279|Hawera
+64627|Hawera
 6462800|Palmerston North
 6462801|Palmerston North
 6462802|Palmerston North
@@ -1417,46 +1396,22 @@
 6462817|Napier
 6462818|New Plymouth
 6462819|Levin
-646304|Featherston
-646306|Featherston
-646307|Featherston
-646308|Featherston
+64630|Featherston
+64632|Palmerston North
+646320|Palmerston North/Marton
 646321|Marton
 646322|Marton
-646323|Palmerston North
-646324|Palmerston North
-646325|Palmerston North
-646326|Palmerston North
 646327|Marton
-646328|Palmerston North
-646329|Palmerston North
-646341|Wanganui
-646342|Wanganui
-646343|Wanganui
-646344|Wanganui
-646345|Wanganui
-646346|Wanganui
-646347|Wanganui
-646348|Wanganui
-646349|Wanganui
+64634|Wanganui
 64635|Palmerston North
-646362|Levin
-646363|Levin
-646364|Levin
+64636|Levin
 646365|Palmerston North
-646366|Levin
-646367|Levin
-646368|Levin
-646369|Levin
-646370|Masterton
-646372|Masterton
-646373|Masterton
+64637|Masterton
+646371|Masterton/Dannevirke/Pahiatua
 646374|Dannevirke
 646375|Pahiatua
 646376|Pahiatua
-646377|Masterton
-646378|Masterton
-646379|Masterton
+64638|Taihape/Ohakune/Waiouru
 646382|Taihape
 646385|Ohakune
 646387|Waiouru
@@ -1542,11 +1497,15 @@
 6466007|Stratford
 6466008|Ohakune
 6466009|Waiouru
-646601|Napier
 6466010|Taihape
 6466011|Marton
-6466012|Pahiatua
 6466013|Featherston
+6466014|Napier
+6466015|Napier
+6466016|Napier
+6466017|Napier
+6466018|Napier
+6466019|Napier
 646650|Napier
 6466508|Napier/Wairoa
 6466509|Napier/Waipukurau
@@ -1588,32 +1547,19 @@
 6466997|New Plymouth
 6466998|New Plymouth
 6466999|New Plymouth
+64675|New Plymouth
 646750|Mokau
-646751|New Plymouth
-646752|New Plymouth
 6467525|Mokau
 6467529|Mokau
-646753|New Plymouth
-646754|New Plymouth
-6467550|New Plymouth
-6467551|New Plymouth
-6467552|New Plymouth
-6467553|New Plymouth
-6467554|New Plymouth
-6467555|New Plymouth
-6467557|New Plymouth
-6467558|New Plymouth
-6467559|New Plymouth
-646756|New Plymouth
-646757|New Plymouth
-646758|New Plymouth
-646759|New Plymouth
+6467556|New Plymouth/Mokau
+646760|New Plymouth/Opunake/Stratford
 646761|Opunake
 646762|Stratford
 646763|Opunake
 646764|Stratford
 646765|Stratford
 646766|New Plymouth
+646767|New Plymouth/Opunake/Stratford
 646768|New Plymouth
 646769|New Plymouth
 6467770|Gisborne
@@ -1652,40 +1598,31 @@
 6468264|Palmerston North
 6468268|New Plymouth
 6468269|New Plymouth
-6468300|Napier
-6468301|Napier
-6468302|Napier
-6468303|Napier
-6468308|Napier
-6468309|Napier
-646831|Napier/Hastings
-646833|Napier/Hastings
-646834|Napier/Hastings
-646835|Napier/Hastings
-646836|Napier/Hastings
+64683|Napier/Hastings
+646830|Napier
+6468304|Napier/Wairoa
+6468305|Napier/Wairoa
+6468306|Napier/Wairoa
+6468307|Napier/Wairoa
+646832|Napier/Wairoa
 646837|Wairoa
 646838|Wairoa
-646839|Napier/Hastings
+646840|Napier City
+646841|Napier City
 646842|Napier/Hastings
 646843|Napier/Hastings
 646844|Napier/Hastings
 646845|Napier/Hastings
+646846|Napier City
 646847|Napier/Hastings
-646855|Waipukurau
-646856|Waipukurau
-646857|Waipukurau
-646858|Waipukurau
-646861|Gisborne
-646862|Gisborne
-646863|Gisborne
+646848|Napier City
+646849|Napier City
+64685|Waipukurau
+64686|Gisborne
+646860|Gisborne/Ruatoria
 646864|Ruatoria
-646865|Gisborne
-646867|Gisborne
-646868|Gisborne
-6468690|Gisborne
-6468691|Gisborne
-6468692|Gisborne
-6468693|Gisborne
+646866|Gisborne/Ruatoria
+646869|Gisborne/Ruatoria
 64687|Napier/Hastings
 6468800|Napier/Hastings
 6468801|Wanganui
@@ -1819,13 +1756,17 @@
 6469317|Pahiatua
 6469318|Levin
 6469319|Masterton
+64694|Masterton/Levin
 646946|Masterton
 6469468|Featherston
 646949|Levin W100
+646950|Palmerston North/New Plymouth
 646951|Palmerston North
 646952|Palmerston North W100
 646953|Palmerston North W100
 646954|Palmerston North W100
+646955|Palmerston North/New Plymouth
+646956|Palmerston North/New Plymouth
 6469570|Palmerston North
 6469571|Palmerston North
 6469572|Palmerston North
@@ -1836,17 +1777,28 @@
 6469577|Ohakune
 6469578|Marton
 6469579|Pahiatua
+646958|Palmerston North/New Plymouth
+646959|Palmerston North/New Plymouth
+646960|Wanganui/New Plymouth
 6469610|Wanganui
 6469611|Wanganui
+6469612|Wanganui/New Plymouth
 6469613|Levin
 6469614|Levin
 6469615|Masterton
 6469616|Featherston
+6469617|Wanganui/New Plymouth
+6469618|Wanganui/New Plymouth
+6469619|Wanganui/New Plymouth
+646962|Wanganui/New Plymouth
+646963|Wanganui/New Plymouth
 646964|Wanganui
 646965|Wanganui W100
+646966|Wanganui/New Plymouth
 646967|New Plymouth
 646968|New Plymouth W100
 646969|New Plymouth
+64697|Napier
 6469710|New Plymouth
 6469711|New Plymouth
 6469712|New Plymouth
@@ -1854,19 +1806,13 @@
 6469714|Hawera
 6469715|Mokau
 6469716|Opunake
-646974|Napier
-646975|Napier
-646976|Napier
+64698|Gisborne
 6469850|Napier
 6469851|Napier
 6469852|Napier
-6469853|Wairoa
+6469853|Waiouru
 6469854|Waipukurau
-646986|Gisborne
 6469869|Ruatoria
-6469890|Gisborne
-6469891|Gisborne
-6469892|Gisborne
 6469893|Ruatoria
 647210|Hamilton
 647211|Hamilton
@@ -1985,17 +1931,13 @@
 6472827|Tauranga
 6472828|Tauranga
 6472829|Tauranga
-647304|Whakatane
-647305|Whakatane
-647306|Whakatane
-647307|Whakatane
-647308|Whakatane
-647309|Whakatane
+64730|Whakatane
+64731|Whakatane/Opotiki
 647312|Whakatane
 647315|Opotiki
-647322|Whakatane
-647323|Whakatane
+64732|Whakatane
 647325|Opotiki
+64733|Rotorua/Taupo
 647332|Rotorua
 6473331|Rotorua
 6473332|Rotorua
@@ -2003,27 +1945,11 @@
 6473338|Rotorua
 6473339|Taupo
 647334|Rotorua
-647343|Rotorua
-647345|Rotorua
-647346|Rotorua
-647347|Rotorua
-647348|Rotorua
-647349|Rotorua
-647350|Rotorua
-647351|Rotorua
-647357|Rotorua
-647362|Rotorua
-647366|Rotorua
-647372|Taupo
-647374|Taupo
-647376|Taupo
-647377|Taupo
-647378|Taupo
-6473841|Taupo
-6473842|Taupo
-6473843|Taupo
-6473847|Taupo
-647386|Taupo
+64734|Rotorua
+64735|Rotorua
+64736|Rotorua
+64737|Taupo
+64738|Taupo
 647390|Hamilton
 647391|Hamilton
 6473920|Huntly
@@ -2089,17 +2015,7 @@
 6474659|Whangamata
 647466|Tauranga
 647533|Tauranga
-647541|Tauranga
-647542|Tauranga
-647543|Tauranga
-647544|Tauranga
-647546|Tauranga
-647547|Tauranga
-6475480|Tauranga
-6475481|Tauranga
-6475482|Tauranga
-6475483|Tauranga
-647549|Tauranga
+64754|Tauranga
 647551|Tauranga
 647552|Tauranga
 647557|Tauranga
@@ -2169,7 +2085,7 @@
 6478070|Morrinsville
 6478071|Otorohanga
 6478072|Paeroa
-6478073|Tokoroa/Putaruru
+6478073|Putaruru/Tokoroa
 6478074|Taumarunui
 6478075|Te Kuiti
 6478076|Te Awamutu
@@ -2208,6 +2124,9 @@
 6478142|Whakatane
 6478143|Opotiki
 6478144|Tauranga
+647820|Hamilton/Huntly
+647821|Hamilton/Huntly
+647822|Hamilton/Huntly
 647823|Hamilton
 647824|Hamilton
 647825|Hamilton
@@ -2215,38 +2134,11 @@
 647827|Hamilton
 647828|Huntly
 647829|Hamilton
-647832|Hamilton
-647833|Hamilton
-647834|Hamilton
-647836|Hamilton
-647837|Hamilton
-647838|Hamilton
-647839|Hamilton
-647843|Hamilton
-6478450|Hamilton
-6478451|Hamilton
-647846|Hamilton
-647847|Hamilton
-647848|Hamilton
-647849|Hamilton
-647850|Hamilton
-647851|Hamilton
-647852|Hamilton
-647853|Hamilton
-647854|Hamilton
-647855|Hamilton
-647856|Hamilton
-647857|Hamilton
-647858|Hamilton
-6478590|Hamilton
-6478591|Hamilton
-6478592|Hamilton
-6478593|Hamilton
-6478594|Hamilton
-6478595|Hamilton
-6478597|Hamilton
-6478598|Hamilton
-6478599|Hamilton
+64783|Hamilton
+64784|Hamilton
+64785|Hamilton
+647860|Paeroa/Waihi/Thames/Whangamata
+647861|Paeroa/Waihi/Thames/Whangamata
 647862|Paeroa
 647863|Waihi
 647864|Thames
@@ -2259,9 +2151,12 @@
 647871|Te Awamutu
 647872|Te Awamutu
 647873|Otorohanga
+647874|Te Awamutu/Otorohanga/Te Kuiti
+647875|Te Awamutu/Otorohanga/Te Kuiti
 647876|Te Kuiti
 647877|Te Kuiti
 647878|Te Kuiti
+647879|Te Awamutu/Otorohanga/Te Kuiti
 647880|Matamata
 647881|Matamata
 647882|Putaruru/Tokoroa
@@ -2272,11 +2167,7 @@
 647887|Morrinsville
 647888|Matamata
 647889|Morrinsville
-647892|Taumarunui
-647893|Taumarunui
-647894|Taumarunui
-647895|Taumarunui
-647896|Taumarunui
+64789|Taumarunui
 6478990|Thames
 6478991|Whangamata
 6478992|Paeroa
@@ -2287,13 +2178,13 @@
 6478997|Morrinsville
 6478998|Hamilton
 6478999|Hamilton
+64790|Taupo
 6479000|Hamilton
 6479001|Hamilton
 6479002|Matamata
 6479003|Thames
 6479004|Te Awamutu
 6479005|Tauranga
-6479006|Taupo
 6479007|Whakatane
 6479008|Rotorua
 6479009|Hamilton
@@ -2312,10 +2203,6 @@
 6479040|Otorohanga
 6479045|Taumarunui
 6479049|Te Kuiti
-647905|Taupo
-647906|Taupo
-6479090|Taupo
-6479091|Taupo
 6479100|Rotorua
 6479101|Rotorua
 6479102|Rotorua
@@ -2331,10 +2218,12 @@
 6479240|Taupo
 6479241|Whakatane
 6479242|Rotorua
+6479243|Rotorua/Whakatane/Tauranga
 6479244|Tauranga
 6479245|Matamata
 6479246|Thames
 6479247|Hamilton
+6479248|Rotorua/Whakatane/Tauranga
 6479249|Huntly
 647925|Tauranga
 647926|Tauranga
@@ -2350,18 +2239,15 @@
 6479297|Tauranga
 6479298|Taupo
 6479299|Rotorua
+64793|Tauranga
 6479420|Tauranga
 6479421|Tauranga
 6479422|Tauranga
 647949|Hamilton
+64795|Hamilton
 6479500|Whakatane
 6479501|Opotiki
-647957|Hamilton
-647958|Hamilton
-647959|Hamilton
-647960|Hamilton
-647961|Hamilton
-647968|Hamilton
+64796|Hamilton
 647970|Hamilton
 6479708|Thames
 6479709|Matamata
@@ -2411,55 +2297,24 @@
 647987|Tauranga
 647988|Rotorua
 647989|Taupo
-649200|Auckland
+6492|Auckland
 6492006|Helensville
 6492007|Warkworth
 6492008|Hibiscus Coast
 6492009|Pukekohe
-649210|Auckland
-649211|Auckland
-649212|Auckland
-649213|Auckland
-649214|Auckland
-649215|Auckland
-649216|Auckland
-649218|Auckland
-649220|Auckland
-6492220|Auckland
-6492221|Auckland
-6492222|Auckland
-6492223|Auckland
-6492224|Auckland
 6492225|Pukekohe
 6492226|Helensville
 6492227|Whangarei
 6492228|Warkworth
 6492229|Hibiscus Coast
-649230|Pukekohe
-649232|Pukekohe
-649233|Pukekohe
-649235|Pukekohe
-649236|Pukekohe
-649237|Pukekohe
-649238|Pukekohe
-649239|Pukekohe
-6492420|Auckland
+64923|Pukekohe
 6492426|Whangarei
 6492427|Warkworth
 6492428|Hibiscus Coast
 6492429|Pukekohe
-649248|Auckland
-649249|Auckland
-64925|Auckland
-64926|Auckland
-64927|Auckland
-649280|Auckland
 6492807|Helensville
 6492808|Great Barrier Island
 6492809|Maungaturoto
-649281|Auckland
-649282|Auckland
-6492830|Auckland
 6492831|Maungaturoto
 6492832|Dargaville
 6492833|Warkworth
@@ -2469,27 +2324,23 @@
 6492837|Hibiscus Coast
 6492838|Pukekohe
 6492839|Whangarei
-649291|Auckland
-649292|Auckland
-649294|Auckland
-649295|Auckland
-649296|Auckland
-649297|Auckland
-649298|Auckland
-649299|Auckland
 64930|Auckland
+64931|Auckland/Waiheke Island
+64932|Auckland/Waiheke Island
 649320|Auckland
 6493206|Pukekohe
 6493207|Hibiscus Coast
 6493208|Helensville
 6493209|Great Barrier Island
 64933|Auckland
+64934|Auckland/Waiheke Island
 649347|Auckland
 649348|Auckland
 649349|Auckland
 64935|Auckland
 64936|Auckland
 64937|Auckland
+64938|Auckland/Waiheke Island
 649390|Auckland
 649391|Auckland
 649392|Auckland
@@ -2507,6 +2358,10 @@
 6493942|Great Barrier Island
 6493943|Helensville
 6493944|Hibiscus Coast
+649395|Auckland/Waiheke Island
+649396|Auckland/Waiheke Island
+649397|Auckland/Waiheke Island
+649398|Auckland/Waiheke Island
 649399|Auckland
 6493990|Great Barrier Island
 6493991|Pukekohe
@@ -2543,33 +2398,16 @@
 649452|Auckland
 649458|Dargaville
 649459|Whangarei
-6494700|Whangarei
-6494701|Whangarei
-6494702|Whangarei
-6494703|Whangarei
-6494704|Whangarei
-6494705|Whangarei
-6494706|Whangarei
-649473|Auckland
-649475|Auckland
-649476|Auckland
-649477|Auckland
-649478|Auckland
-649479|Auckland
+64947|Auckland
+649470|Whangarei
 64948|Auckland
-64952|Auckland
-64953|Auckland
-649550|Auckland
-649551|Auckland
+6495|Auckland
 649552|Pukekohe
 6495530|Great Barrier Island
 6495531|Helensville
 6495532|Warkworth
 6495533|Whangarei
-6495538|Auckland
-6495539|Auckland
 649554|Hibiscus Coast
-649555|Auckland
 6495560|Whangarei
 6495561|Whangarei
 6495562|Whangarei
@@ -2580,46 +2418,20 @@
 6495567|Kaitaia
 6495568|Kawakawa
 6495569|Maungaturoto
-649557|Auckland
-649558|Auckland
 6495588|Hibiscus Coast
 6495589|Pukekohe
-64957|Auckland
-649580|Auckland
-649581|Auckland
-649582|Auckland
-649583|Auckland
-649585|Auckland
-649588|Auckland
-649589|Auckland
-649590|Auckland
-649600|Auckland
+6496|Auckland
 6496007|Helensville
 6496008|Hibiscus Coast
 6496009|Pukekohe
 6496010|Kaitaia
-6496011|Kaikohe
 6496012|Kawakawa
 6496013|Whangarei
 6496014|Dargaville
 6496015|Maungaturoto
 6496016|Warkworth
 6496017|Great Barrier Island
-6496018|Auckland
-6496019|Auckland
 6496100|Pukekohe
-64962|Auckland
-649630|Auckland
-649631|Auckland
-649632|Auckland
-649633|Auckland
-649634|Auckland
-649635|Auckland
-649636|Auckland
-649638|Auckland
-649639|Auckland
-649640|Auckland
-649650|Auckland
 6496507|Helensville
 6496508|Hibiscus Coast
 6496509|Pukekohe
@@ -2634,12 +2446,6 @@
 6496518|Kawakawa
 6496519|Maungaturoto
 649652|Warkworth
-649666|Auckland
-6496880|Auckland
-6496881|Auckland
-6496882|Auckland
-6496883|Auckland
-6496884|Auckland
 6496990|Kaitaia
 6496991|Kaikohe
 6496992|Kawakawa
@@ -2649,7 +2455,6 @@
 6496996|Warkworth
 6496997|Hibiscus Coast
 6496998|Helensville
-6496999|Auckland
 6497770|Whangarei
 6497771|Kaikohe
 6497772|Kaitaia
@@ -2660,38 +2465,13 @@
 6497777|Auckland
 6497778|Pukekohe
 6497779|Great Barrier Island
-649801|Auckland
+6498|Auckland
 6498016|Hibiscus Coast
 6498017|Hibiscus Coast
 6498018|Whangarei
 6498019|Pukekohe
-649810|Auckland
-649811|Auckland
-649812|Auckland
-649813|Auckland
-649814|Auckland
-649815|Auckland
-649816|Auckland
-649817|Auckland
-649818|Auckland
-649820|Auckland
-649822|Auckland
-649825|Auckland
-649826|Auckland
-649827|Auckland
-649828|Auckland
-649829|Auckland
-64983|Auckland
-649840|Auckland
-649845|Auckland
-649846|Auckland
-649847|Auckland
-649849|Auckland
-649869|Auckland
 6498690|Kawakawa
 6498691|Maungaturoto
-649880|Auckland
-649881|Auckland
 6498814|Pukekohe
 6498815|Helensville
 6498816|Great Barrier Island
@@ -2703,8 +2483,6 @@
 6498824|Kawakawa
 6498825|Maungaturoto
 6498826|Warkworth
-649883|Auckland
-649884|Auckland
 6498850|Great Barrier Island
 6498851|Pukekohe
 6498852|Warkworth
@@ -2715,28 +2493,18 @@
 6498857|Dargaville
 6498858|Kaikohe
 6498859|Kaitaia
-649886|Auckland
-649887|Auckland
-649888|Auckland
 6498880|Helensville
 6498881|Hibiscus Coast
 6498882|Whangarei
 6498883|Whangarei
-649889|Auckland
-649890|Auckland
 6498900|Pukekohe
 6498901|Pukekohe
-649892|Auckland
-6499000|Auckland
-6499001|Auckland
-6499002|Auckland
+6499|Auckland
 6499003|Warkworth
 6499004|Hibiscus Coast
-6499005|Auckland
 6499006|Whangarei
 6499007|Kaikohe
 6499008|Pukekohe
-6499009|Auckland
 6499010|Kaitaia
 6499011|Kaitaia
 6499012|Kawakawa
@@ -2748,7 +2516,6 @@
 6499018|Maungaturoto
 6499019|Maungaturoto
 649902|Warkworth
-649903|Auckland
 6499040|Helensville
 6499041|Helensville
 6499042|Hibiscus Coast
@@ -2759,7 +2526,7 @@
 6499047|Pukekohe
 6499048|Pukekohe
 6499049|Great Barrier Island
-649905|Auckland
+6499060|Warkworth
 6499061|Hibiscus Coast
 6499062|Hibiscus Coast
 6499063|Hibiscus Coast
@@ -2769,34 +2536,18 @@
 6499067|Pukekohe
 6499068|Pukekohe
 6499069|Pukekohe
-649908|Auckland
-649909|Auckland
+649907|Warkworth
 6499100|Pukekohe
 6499101|Pukekohe
-649912|Auckland
-649913|Auckland
-649914|Auckland
-649915|Auckland
-649916|Auckland
-649917|Auckland
-649918|Auckland
-649919|Auckland
-64992|Auckland
 6499295|Kaikohe
 6499296|Kaitaia
 6499297|Hibiscus Coast
 6499298|Pukekohe
 6499299|Whangarei
-649930|Auckland
-649940|Auckland
-649941|Auckland
 6499420|Pukekohe
 6499421|Hibiscus Coast
 6499422|Helensville
 6499423|Great Barrier Island
-6499424|Auckland
-6499425|Auckland
-6499426|Auckland
 6499428|Warkworth
 6499450|Warkworth
 6499451|Warkworth
@@ -2824,17 +2575,9 @@
 6499473|Helensville
 6499474|Helensville
 6499475|Hibiscus Coast
-6499476|Auckland
 6499477|Pukekohe
 6499478|Pukekohe
 6499479|Pukekohe
-649948|Auckland
-649949|Auckland
-649950|Auckland
-649951|Auckland
-649952|Auckland
-649953|Auckland
-649954|Auckland
 6499551|Whangarei
 6499552|Dargaville
 6499553|Kaikohe
@@ -2844,21 +2587,11 @@
 6499557|Warkworth
 6499558|Great Barrier Island
 6499559|Whangarei
-649956|Auckland
 649957|Pukekohe
 649958|Helensville
 649959|Hibiscus Coast
-649962|Auckland
-649963|Auckland
 6499630|Pukekohe
 6499631|Pukekohe
-649964|Auckland
-649965|Auckland
-649966|Auckland
-649967|Auckland
-649968|Auckland
-649969|Auckland
-64997|Auckland
 6499716|Helensville
 6499717|Whangarei
 6499718|Whangarei
@@ -2871,19 +2604,11 @@
 6499746|Kawakawa
 6499747|Dargaville
 6499748|Whangarei
-649980|Auckland
+64998|Whangarei
 6499810|Hibiscus Coast
 6499811|Hibiscus Coast
 6499818|Great Barrier Island
 6499819|Helensville
-649982|Whangarei
-649983|Whangarei
-649984|Auckland
-649985|Auckland
-649986|Whangarei
-6499870|Whangarei
-6499871|Whangarei
-6499872|Whangarei
 6499873|Kaitaia
 6499874|Kawakawa
 6499875|Dargaville
@@ -2891,4 +2616,3 @@
 6499877|Maungaturoto
 6499878|Warkworth
 6499879|Warkworth
-649988|Whangarei
diff --git a/resources/geocoding/en/686.txt b/resources/geocoding/en/686.txt
index 6f5c0bcb..c52a7537 100644
--- a/resources/geocoding/en/686.txt
+++ b/resources/geocoding/en/686.txt
@@ -49,14 +49,17 @@
 686654|Gilbert Islands
 686655|Phoenix Islands
 68672700|Gilbert Islands
-686750|Bairiki
-686751|Betio
-686752|Bikenibeu
-6867530|Gilbert Islands
-6867538|Line Islands
-6867540|Phoenix Islands
-6867548|Line Islands
-686755|Phoenix Islands
+68675021|Bairiki
+68675022|Bairiki
+68675125|Betio
+68675126|Betio
+68675228|Bikenibeu
+68675229|Bikenibeu
+68675300|Gilbert Islands
+68675381|Line Islands
+68675400|Phoenix Islands
+68675481|Line Islands
+68675500|Phoenix Islands
 68681|Kiritimati
 68682|Kiritimati
 68683|Fanning
diff --git a/resources/geocoding/en/7.txt b/resources/geocoding/en/7.txt
index 293bba7d..9e8bec99 100644
--- a/resources/geocoding/en/7.txt
+++ b/resources/geocoding/en/7.txt
@@ -174,6 +174,7 @@
 771458|Kostanai Region
 77145834|Krasnogorsk
 771459|Kostanai Region
+77149|Kostanai
 77152|Petropavlovsk
 771531|Bulayevo
 771532|Smirnovo
@@ -225,10 +226,11 @@
 771839|Akku
 771840|Bayanaul
 771841|Aktogai
-771842|Aktogaisky District
+771842|Koktobe
 771843|Maisky District
 771844|Irtyshsky District
 771845|Pavlodar Area
+77185|Shaldai
 77187|Ekibastuz
 77212|Karaganda
 77213|Aktau/Temirtau
@@ -301,7 +303,9 @@
 772540|Arys
 772541|Myrzakent
 772542|Asykata
+772543|Aqsumbe
 772544|Shaulder
+772545|Ikan
 772546|Sholakkorgan
 772547|Lenger
 772548|Shayan
diff --git a/resources/geocoding/en/86.txt b/resources/geocoding/en/86.txt
index 6d317338..6cfdb4ca 100644
--- a/resources/geocoding/en/86.txt
+++ b/resources/geocoding/en/86.txt
@@ -89249,6 +89249,22 @@
 861769513|Wuzhong, Ningxia
 861769514|Guyuan, Ningxia
 861769515|Zhongwei, Ningxia
+861769530|Wuzhong, Ningxia
+861769531|Wuzhong, Ningxia
+861769532|Shizuishan, Ningxia
+861769533|Wuzhong, Ningxia
+861769534|Wuzhong, Ningxia
+861769535|Zhongwei, Ningxia
+861769536|Yinchuan, Ningxia
+861769537|Yinchuan, Ningxia
+861769538|Yinchuan, Ningxia
+861769539|Yinchuan, Ningxia
+86176954|Tianjin
+86176955|Tianjin
+86176956|Tianjin
+86176957|Tianjin
+86176958|Tianjin
+86176959|Tianjin
 86176960|Taiyuan, Shanxi
 861769610|Taiyuan, Shanxi
 861769611|Taiyuan, Shanxi
diff --git a/resources/geocoding/en/95.txt b/resources/geocoding/en/95.txt
index 5cbada15..24626ecb 100644
--- a/resources/geocoding/en/95.txt
+++ b/resources/geocoding/en/95.txt
@@ -18,13 +18,11 @@
 951426|Yangon
 951429|Yangon
 951439|Yangon
-951446|Yangon
 951462|Yangon
 951465|Yangon
 951470|Yangon
 951471|Yangon
 951472|Yangon
-951473|Yangon
 951483|Yangon
 951550|Bahan
 951551|Bahan
@@ -44,17 +42,14 @@
 952424|Mandalay
 952426|Mandalay
 952439|Mandalay
-952446|Mandalay
 952462|Mandalay
 952470|Yangon
 952471|Mandalay
 952472|Mandalay
-952473|Mandalay
 952483|Mandalay
 95256|Amarapura
 9542480|Pathein
 9542481|Pathein
-9542482|Ayeyarwaddy
 9542483|Ayeyarwaddy/Pathein
 9543202|Rakhine
 9543470|Sittwe
@@ -69,21 +64,17 @@
 95522230|Oathar Myothit
 9552470|Bago
 9552472|Bago
-9552473|Bago
 9553472|Pyay
-9553473|Pyay
 9554470|Taungoo
 955620|Mandalay
 955645|Tandar
 9556483|Thanlyin
 9557480|Mawlamyine/Thanbyuzayat
 9557481|Mawlamyine
-9557482|Mon
 9558470|Hpa-An
 9558472|Hpa-An
 955851|Myawaddy
 9559470|Dawei
-9559471|Tanintharyi
 9561200|Chauk
 956124620|Chauk
 956124621|Chauk
@@ -96,7 +87,6 @@
 956124643|Bagan
 956124644|Bagan
 9562472|Pakokku
-9562473|Magway
 956260|Kanma
 956320|Magway
 956323|Magway
@@ -104,13 +94,9 @@
 9563470|Magway
 95642487|Shawpin
 9564472|Meiktila
-9564473|Mandalay
 956525|Ngape
-9567439|Naypyidaw
 9567460|Naypyitaw
 9567470|Naypyitaw
-9567471|Naypyitaw
-9567473|Naypyitaw
 9567550|Naypyidaw
 9569200|Aunglan
 956940|Sinpaungwae
@@ -144,7 +130,15 @@
 958541|Pyinoolwin
 958542|Pyinoolwin
 958543|Pyinoolwin
-958544|Pyinoolwin
+9585440|Pyinoolwin
+9585441|Pyinoolwin
+9585442|Pyinoolwin
+9585443|Pyinoolwin
+9585444|Pyinoolwin
+9585445|Pyinoolwin
+9585447|Pyinoolwin
+9585448|Pyinoolwin
+9585449|Pyinoolwin
 958545|Pyinoolwin
 958546|Pyinoolwin
 958547|Pyinoolwin
diff --git a/resources/geocoding/es/52.txt b/resources/geocoding/es/52.txt
index 3828794d..7fac5af8 100644
--- a/resources/geocoding/es/52.txt
+++ b/resources/geocoding/es/52.txt
@@ -15,6 +15,7 @@
 # Generated from:
 # https://www.itu.int/dms_pub/itu-t/oth/02/02/T020200008A0002PDFS.pdf
 
+52220|Puebla
 52221|Puebla
 52222|Puebla
 52223|Puebla
@@ -252,6 +253,7 @@
 52717|Estado de México
 52718|Estado de México
 52719|San Francisco Xonacatlán/Temoaya, MEX
+52720|Toluca
 52721|Ixtapan de la Sal, MEX
 52722|Estado de México
 52723|Coatepec Harinas, MEX
diff --git a/resources/geocoding/es/57.txt b/resources/geocoding/es/57.txt
index 19a491d8..4502a902 100644
--- a/resources/geocoding/es/57.txt
+++ b/resources/geocoding/es/57.txt
@@ -149,6 +149,9 @@
 5760633|Pereira
 5760634|Pereira
 5760635|Pereira
+5760636|Eje Cafetero
+5760637|Eje Cafetero
+5760638|Eje Cafetero
 5760687|Manizales
 5760688|Manizales
 5760689|Manizales
diff --git a/resources/geocoding/ru/7.txt b/resources/geocoding/ru/7.txt
index 0a527081..441d64c3 100644
--- a/resources/geocoding/ru/7.txt
+++ b/resources/geocoding/ru/7.txt
@@ -177,6 +177,7 @@
 771458|Костанайская область
 77145834|Красногорск
 771459|Костанайская область
+77149|Костанай
 77152|Петропавловск
 771531|Магжана Жумабаева р-н
 771532|Аккайынский р-н
@@ -228,10 +229,11 @@
 771839|Лебяжинский р-н
 771840|Баянаульский р-н
 771841|Актогайский р-н
-771842|Актогайский р-н
+771842|Майский р-он
 771843|Майский р-н
 771844|Иртышский р-н
 771845|Павлодар
+77185|Шалдай
 77187|Экибастуз
 77212|Караганда
 77213|Темиртау
@@ -304,7 +306,9 @@
 772540|Арыс
 772541|Мырзакент
 772542|Асыката
+772543|Аксумбе
 772544|Шаульдер
+772545|Икан
 772546|Шолаккорган
 772547|Ленгер
 772548|Шаян
diff --git a/resources/geocoding/zh/86.txt b/resources/geocoding/zh/86.txt
index e73faf19..b9aba33e 100644
--- a/resources/geocoding/zh/86.txt
+++ b/resources/geocoding/zh/86.txt
@@ -89249,6 +89249,22 @@
 861769513|宁夏吴忠市
 861769514|宁夏固原市
 861769515|宁夏中卫市
+861769530|宁夏吴忠市
+861769531|宁夏吴忠市
+861769532|宁夏石嘴山市
+861769533|宁夏吴忠市
+861769534|宁夏吴忠市
+861769535|宁夏中卫市
+861769536|宁夏银川市
+861769537|宁夏银川市
+861769538|宁夏银川市
+861769539|宁夏银川市
+86176954|天津市
+86176955|天津市
+86176956|天津市
+86176957|天津市
+86176958|天津市
+86176959|天津市
 86176960|山西省太原市
 861769610|山西省太原市
 861769611|山西省太原市
diff --git a/resources/phonemetadata.proto b/resources/phonemetadata.proto
index e5bfab39..f76bf305 100644
--- a/resources/phonemetadata.proto
+++ b/resources/phonemetadata.proto
@@ -285,15 +285,14 @@ message PhoneMetadata {
   // should not overlap.
   optional string leading_digits = 23;
 
-  // Deprecated: do not use. Will be deletd when there are no references to this
-  // later.
-  optional bool leading_zero_possible = 26 [default=false];
-
   // This field is set when this country has implemented mobile number
   // portability. This means that transferring mobile numbers between carriers
   // is allowed. A consequence of this is that phone prefix to carrier mapping
   // is less reliable.
   optional bool mobile_number_portable_region = 32 [default=false];
+
+  reserved 26;
+  reserved "leading_zero_possible";
 }
 
 message PhoneMetadataCollection {
diff --git a/resources/timezones/map_data.txt b/resources/timezones/map_data.txt
index 23ebd57a..074b9ef4 100644
--- a/resources/timezones/map_data.txt
+++ b/resources/timezones/map_data.txt
@@ -703,8 +703,10 @@
 1345|America/Cayman
 1346|America/Chicago
 1347|America/New_York
+1350|America/Los_Angeles
 1351|America/New_York
 1352|America/New_York
+1354|America/Toronto
 1360|America/Los_Angeles
 1361|America/Chicago
 1364|America/New_York
@@ -712,6 +714,7 @@
 1367|America/Toronto
 1368|America/Edmonton
 1380|America/New_York
+1382|America/Toronto
 1385|America/Denver
 1386|America/New_York
 1401|America/New_York
@@ -913,6 +916,7 @@
 1423989|America/New_York
 1424|America/Los_Angeles
 1425|America/Los_Angeles
+1428|America/Halifax
 1430|America/Chicago
 1431|America/Winnipeg
 1432|America/Chicago
@@ -934,6 +938,7 @@
 1468|America/Toronto
 1469|America/Chicago
 1470|America/New_York
+1472|America/New_York
 1473|America/Grenada
 1474|America/Winnipeg
 1475|America/New_York
@@ -972,6 +977,7 @@
 1541889|America/Denver
 1548|America/Toronto
 1551|America/New_York
+1557|America/Chicago
 1559|America/Los_Angeles
 1561|America/New_York
 1562|America/Los_Angeles
@@ -1207,6 +1213,7 @@
 1680|America/New_York
 1681|America/New_York
 1682|America/Chicago
+1683|America/Toronto
 1684|Pacific/Pago_Pago
 1689|America/Chicago
 1701|America/Denver&America/North_Dakota/Center
@@ -1629,6 +1636,7 @@
 1830|America/Chicago
 1831|America/Los_Angeles
 1832|America/Chicago
+1835|America/New_York
 1838|America/New_York
 1839|America/New_York
 1840|America/Los_Angeles
@@ -2082,7 +2090,10 @@
 26282|Indian/Reunion
 26288|Indian/Reunion
 26289|Indian/Reunion
-2629|Indian/Reunion
+2629398|Indian/Mayotte
+2629399|Indian/Reunion
+26294|Indian/Reunion
+26297|Indian/Reunion
 263|Africa/Harare
 264|Africa/Windhoek
 265|Africa/Blantyre
@@ -3116,8 +3127,7 @@
 645|Pacific/Auckland
 646|Pacific/Auckland
 647|Pacific/Auckland
-6480|Pacific/Auckland
-6486|Pacific/Auckland
+648|Pacific/Auckland
 649|Pacific/Auckland
 65|Asia/Singapore
 66|Asia/Bangkok
@@ -3195,6 +3205,7 @@
 7713|Asia/Aqtobe
 772|Asia/Almaty
 7729|Asia/Aqtobe
+779|Asia/Almaty
 7800|Asia/Almaty&Asia/Aqtobe&Europe/Moscow
 7803|Europe/Moscow
 7804|Europe/Moscow
diff --git a/tools/python/makefile b/tools/python/makefile
index ae5b5344..de9e0f73 100644
--- a/tools/python/makefile
+++ b/tools/python/makefile
@@ -56,7 +56,7 @@ $(PYDIR)/tests/testdata/__init__.py:  $(TOPDIR)/resources/PhoneNumberMetadataFor
 	$(PYTHON) buildmetadatafromxml.py --lax $(TOPDIR)/resources/PhoneNumberMetadataForTesting.xml $(PYDIR)/tests/testdata phonenumbers
 metadata: $(PYDIR)/phonenumbers/data/__init__.py $(PYDIR)/phonenumbers/shortdata/__init__.py $(PYDIR)/tests/testdata/__init__.py geodata carrierdata tzdata
 
-alldata: metadata geodata carrierdata tzdata locale
+alldata: metadata geodata carrierdata tzdata
 
 test: alldata
 	cd $(PYDIR) && $(PYTHON) -m testwrapper
@@ -128,11 +128,16 @@ clean: coverage_clean profile_clean
 
 metaclean:
 	rm -rf $(PYDIR)/phonenumbers/data $(PYDIR)/phonenumbers/shortdata $(PYDIR)/tests/testdata
-	rm -rf $(PYDIR)/phonenumbers/geodata $(PYDIR)/tests/testgeodata
+	rm -rf $(PYDIR)/phonenumbers/geodata/__init__.py*
+	rm -rf $(PYDIR)/phonenumbers/geodata/data*.py*
+	rm -f $(PYDIR)/phonenumbers/geodata/*.pyc
+	rm -rf $(PYDIR)/phonenumbers/geodata/__pycache__
+	rm -rf $(PYDIR)/tests/testgeodata
 	rm -rf $(PYDIR)/phonenumbers/carrierdata $(PYDIR)/tests/testcarrierdata
 	rm -rf $(PYDIR)/phonenumbers/tzdata $(PYDIR)/tests/testtzdata
 
-distclean: clean metaclean
+distclean: metaclean
+	rm -rf $(PYDIR)/phonenumbers/geodata/locale.py
 	rm -rf $(PYDIR)/$(PACKAGE).egg-info
 	rm -rf $(PYDIR)/build
 	rm -f DumpLocale.class

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/PKG-INFO
-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/dependency_links.txt
-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/top_level.txt

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/PKG-INFO
-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/dependency_links.txt
-rw-r--r--  root/root   /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/top_level.txt

No differences were encountered in the control files

More details

Full run details