diff --git a/README.android b/README.android
index 2641eb6..026ab5d 100644
--- a/README.android
+++ b/README.android
@@ -1,4 +1,4 @@
 URL: http://code.google.com/p/libphonenumber/
-Version: r136
+Version: r206
 License: Apache 2
 Description: Google Phone Number Library.
diff --git a/java/pom.xml b/java/pom.xml
index c610776..92134a6 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -3,7 +3,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>libphonenumber</artifactId>
-  <version>3.0.1-SNAPSHOT</version>
+  <version>3.5-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>libphonenumber</name>
   <url>http://code.google.com/p/libphonenumber/</url>
@@ -125,6 +125,15 @@
           </tagBase>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.3.2</version>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/java/release_notes.txt b/java/release_notes.txt
index 1873786..1963e56 100644
--- a/java/release_notes.txt
+++ b/java/release_notes.txt
@@ -1,3 +1,65 @@
+May 24th, 2011
+* Code changes:
+ - Phonenumber now implements Serializable.
+ - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers
+ - An offline phone number geocoder has been added. The current implementation just returns the
+   region name for the phone number; more detailed geocoding will be added later.
+* Metadata changes:
+ - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU
+ - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI
+
+May 9th, 2011
+* Code changes:
+ - Fixed potential for a null-ptr exception in getExampleNumber
+ - Potential speed improvement with replacement of StringBuffer with StringBuilder
+* Metadata changes
+ - Changed way that international formats are specified to make it easier to do so
+ - New countries: AX, CC, CX, WF
+ - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM,
+   KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM
+
+Apr 26th, 2011
+* Code changes:
+ - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number.
+ - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters
+   (e.g. '*' in Israeli star numbers).
+* Metadata changes:
+ - New countries: FJ, FM, GY, NF, NI, NR, TV.
+ - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US.
+* Minor documentation updates
+
+Apr 11th, 2011
+* Bug fixes:
+ - Adding date exclusion pattern in PhoneNumberMatcher.
+ - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions
+   for that country code are possible.
+* Metadata changes:
+ - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR,
+   MS, NO, PR, TC, TR, TT, US, VC, VG, VI
+ - New countries: CK, FK, GT, IO, KI, SJ, SV
+* Documentation updates and some small refactoring to AsYouTypeFormatter
+
+Mar 31st, 2011
+* New functionality:
+ - Can parse and format numbers in RFC-3966 format.
+ - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number
+ - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1
+   800-SIX-FLAG to dial an American alpha-number from Australia).
+* Code changes:
+ - Renamed private vars, private methods and fixed comments to try and differentiate between country
+   (calling) codes and region codes.
+ == Non-backwards-compatible API changes: ==
+ - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the
+   library is based around region codes.
+ - getNationalSignificantNumber is no longer a static method, but is instead an instance method.
+* Metadata changes:
+ - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA
+ - New country: ME
+
+Mar 22nd, 2011
+* Metadata changes:
+ - New mobile-number pattern for AU
+
 Mar 10th, 2011
 * New functionality:
  - New function to format a number with the preferred domestic carrier code used when parsing,
diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
index 04f7849..a73ffee 100644
--- a/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
+++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
@@ -80,7 +80,7 @@
       String regionCode = metadata.getId();
       int countryCode = metadata.getCountryCode();
       if (countryCodeToRegionCodeMap.containsKey(countryCode)) {
-        if (metadata.getMainCountryForCode()) {
+        if (metadata.isMainCountryForCode()) {
           countryCodeToRegionCodeMap.get(countryCode).add(0, regionCode);
         } else {
           countryCodeToRegionCodeMap.get(countryCode).add(regionCode);
@@ -154,14 +154,20 @@
     if (element.hasAttribute("mainCountryForCode")) {
       metadata.setMainCountryForCode(true);
     }
+    if (element.hasAttribute("leadingZeroPossible")) {
+      metadata.setLeadingZeroPossible(true);
+    }
 
     // Extract availableFormats
     NodeList numberFormatElements = element.getElementsByTagName("numberFormat");
+    boolean hasExplicitIntlFormatDefined = false;
+
     int numOfFormatElements = numberFormatElements.getLength();
     if (numOfFormatElements > 0) {
       for (int i = 0; i < numOfFormatElements; i++) {
         Element numberFormatElement = (Element) numberFormatElements.item(i);
         NumberFormat format = new NumberFormat();
+
         if (numberFormatElement.hasAttribute("nationalPrefixFormattingRule")) {
           format.setNationalPrefixFormattingRule(
               getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix));
@@ -175,28 +181,11 @@
         } else {
           format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule);
         }
-        setLeadingDigitsPatterns(numberFormatElement, format);
-        format.setPattern(validateRE(numberFormatElement.getAttribute("pattern")));
-        NodeList formatPattern = numberFormatElement.getElementsByTagName("format");
-        if (formatPattern.getLength() != 1) {
-          LOGGER.log(Level.SEVERE,
-                     "Only one format pattern for a numberFormat element should be defined.");
-          throw new RuntimeException("Invalid number of format patterns for country: " +
-                                     regionCode);
-        }
-        format.setFormat(formatPattern.item(0).getFirstChild().getNodeValue());
-        metadata.addNumberFormat(format);
-      }
-    }
 
-    NodeList intlNumberFormatElements = element.getElementsByTagName("intlNumberFormat");
-    int numOfIntlFormatElements = intlNumberFormatElements.getLength();
-    if (numOfIntlFormatElements > 0) {
-      for (int i = 0; i < numOfIntlFormatElements; i++) {
-        Element numberFormatElement = (Element) intlNumberFormatElements.item(i);
-        NumberFormat format = new NumberFormat();
+        // Extract the pattern for the national format.
         setLeadingDigitsPatterns(numberFormatElement, format);
         format.setPattern(validateRE(numberFormatElement.getAttribute("pattern")));
+
         NodeList formatPattern = numberFormatElement.getElementsByTagName("format");
         if (formatPattern.getLength() != 1) {
           LOGGER.log(Level.SEVERE,
@@ -204,15 +193,46 @@
           throw new RuntimeException("Invalid number of format patterns for country: " +
                                      regionCode);
         }
-        format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue()));
-        if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) {
-          format.setDomesticCarrierCodeFormattingRule(validateRE(
-              getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement,
-                                                              nationalPrefix)));
+        String nationalFormat = formatPattern.item(0).getFirstChild().getNodeValue();
+        format.setFormat(nationalFormat);
+        metadata.addNumberFormat(format);
+
+        // Extract the pattern for international format. If there is no intlFormat, default to
+        // using the national format. If the intlFormat is set to "NA" the intlFormat should be
+        // ignored.
+        NumberFormat intlFormat = new NumberFormat();
+        setLeadingDigitsPatterns(numberFormatElement, intlFormat);
+        intlFormat.setPattern(numberFormatElement.getAttribute("pattern"));
+        NodeList intlFormatPattern = numberFormatElement.getElementsByTagName("intlFormat");
+
+        if (intlFormatPattern.getLength() > 1) {
+          LOGGER.log(Level.SEVERE,
+                     "A maximum of one intlFormat pattern for a numberFormat element should be " +
+                     "defined.");
+          throw new RuntimeException("Invalid number of intlFormat patterns for country: " +
+                                     regionCode);
+        } else if (intlFormatPattern.getLength() == 0) {
+          // Default to use the same as the national pattern if none is defined.
+          intlFormat.setFormat(nationalFormat);
         } else {
-          format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule);
+           String intlFormatPatternValue =
+               intlFormatPattern.item(0).getFirstChild().getNodeValue();
+           if (!intlFormatPatternValue.equals("NA")) {
+             intlFormat.setFormat(intlFormatPatternValue);
+           }
+           hasExplicitIntlFormatDefined = true;
         }
-        metadata.addIntlNumberFormat(format);
+
+        if (intlFormat.hasFormat()) {
+          metadata.addIntlNumberFormat(intlFormat);
+        }
+      }
+      // Only a small number of regions need to specify the intlFormats in the xml. For the majority
+      // of countries the intlNumberFormat metadata is an exact copy of the national NumberFormat
+      // metadata. To minimize the size of the metadata file, we only keep intlNumberFormats that
+      // actually differ in some way to the national formats.
+      if (!hasExplicitIntlFormatDefined) {
+        metadata.clearIntlNumberFormat();
       }
     }
 
diff --git a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto b/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto
deleted file mode 100644
index 42f0a99..0000000
--- a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc.
- *
- * 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
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Definition of protocol buffer for holding metadata for international
-// telephone numbers.
-// @author Shaopeng Jia
-
-syntax = "proto2";
-
-option java_package = "com.google.i18n.phonenumbers";
-option optimize_for = LITE_RUNTIME;
-package i18n.phonenumbers;
-
-message NumberFormat {
-  // pattern is a regex that is used to match the national (significant)
-  // number. For example, the pattern "(20)(\d{4})(\d{4})" will match number
-  // "2070313000", which is the national (significant) number for Google London.
-  // Note the presence of the parentheses, which are capturing groups what
-  // specifies the grouping of numbers.
-  required string pattern = 1;
-
-  // format specifies how the national (significant) number matched by
-  // pattern should be formatted.
-  // Using the same example as above, format could contain "$1 $2 $3",
-  // meaning that the number should be formatted as "20 7031 3000".
-  // Each $x are replaced by the numbers captured by group x in the
-  // regex specified by pattern.
-  required string format = 2;
-
-  // This field is a regex that is used to match a certain number of digits
-  // at the beginning of the national (significant) number. When the match is
-  // successful, the accompanying pattern and format should be used to format
-  // this number. For example, if leading_digits="[1-3]|44", then all the
-  // national numbers starting with 1, 2, 3 or 44 should be formatted using the
-  // accompanying pattern and format.
-  //
-  // The first leadingDigitsPattern matches up to the first three digits of the
-  // national (significant) number; the next one matches the first four digits,
-  // then the first five and so on, until the leadingDigitsPattern can uniquely
-  // identify one pattern and format to be used to format the number.
-  //
-  // In the case when only one formatting pattern exists, no
-  // leading_digits_pattern is needed.
-  repeated string leading_digits_pattern = 3;
-
-  // This field specifies how the national prefix ($NP) together with the first
-  // group ($FG) in the national significant number should be formatted in
-  // the NATIONAL format when a national prefix exists for a certain country.
-  // For example, when this field contains "($NP$FG)", a number from Beijing,
-  // China (whose $NP = 0), which would by default be formatted without
-  // national prefix as 10 1234 5678 in NATIONAL format, will instead be
-  // formatted as (010) 1234 5678; to format it as (0)10 1234 5678, the field
-  // would contain "($NP)$FG". Note $FG should always be present in this field,
-  // but $NP can be omitted. For example, having "$FG" could indicate the
-  // number should be formatted in NATIONAL format without the national prefix.
-  // This is commonly used to override the rule from generalDesc.
-  //
-  // When this field is missing, a number will be formatted without national
-  // prefix in NATIONAL format. This field does not affect how a number
-  // is formatted in other formats, such as INTERNATIONAL.
-  optional string national_prefix_formatting_rule = 4;
-
-  // This field specifies how any carrier code ($CC) together with the first
-  // group ($FG) in the national significant number should be formatted
-  // when formatWithCarrierCode is called, if carrier codes are used for a
-  // certain country.
-  optional string domestic_carrier_code_formatting_rule = 5;
-}
-
-message PhoneNumberDesc {
-  // The national_number_pattern is the pattern that a valid national
-  // significant number would match. This specifies information such as its
-  // total length and leading digits.
-  optional string national_number_pattern = 2;
-
-  // The possible_number_pattern represents what a potentially valid phone
-  // number for this region may be written as. This is a superset of the
-  // national_number_pattern above and includes numbers that have the area code
-  // omitted. Typically the only restrictions here are in the number of digits.
-  // This could be used to highlight tokens in a text that may be a phone
-  // number, or to quickly prune numbers that could not possibly be a phone
-  // number for this locale.
-  optional string possible_number_pattern = 3;
-
-  // An example national significant number for the specific type. It should
-  // not contain any formatting information.
-  optional string example_number = 6;
-}
-
-message PhoneMetadata {
-  // The general_desc contains information which is a superset of descriptions
-  // for all types of phone numbers. If any element is missing in the
-  // description of a specific type in the XML file, the element will inherit
-  // from its counterpart in the general_desc. Every locale is assumed to have
-  // fixed line and mobile numbers - if these types are missing in the XML
-  // file, they will inherit all fields from the general_desc. For all other
-  // types, if the whole type is missing in the xml file, it will be given a
-  // national_number_pattern of "NA" and a possible_number_pattern of "NA".
-  required PhoneNumberDesc general_desc = 1;
-  required PhoneNumberDesc fixed_line = 2;
-  required PhoneNumberDesc mobile = 3;
-  required PhoneNumberDesc toll_free = 4;
-  required PhoneNumberDesc premium_rate = 5;
-  required PhoneNumberDesc shared_cost = 6;
-  required PhoneNumberDesc personal_number = 7;
-  required PhoneNumberDesc voip = 8;
-  required PhoneNumberDesc pager = 21;
-  required PhoneNumberDesc uan = 25;
-  // The rules here distinguish the numbers that are only able to be dialled
-  // nationally.
-  required PhoneNumberDesc no_international_dialling = 24;
-
-  // The ISO 3166-1 alpha-2 representation of a country/region
-  required string id = 9;
-
-  // The country calling code that one would dial from overseas when trying to
-  // dial a phone number in this country. For example, this would be "64" for
-  // New Zealand.
-  required int32 country_code = 10;
-
-  // The international_prefix of country A is the number that needs to be
-  // dialled from country A to another country (country B). This is followed
-  // by the country code for country B. Note that some countries may have more
-  // than one international prefix, and for those cases, a regular expression
-  // matching the international prefixes will be stored in this field.
-  required string international_prefix = 11;
-
-  // If more than one international prefix is present, a preferred prefix can
-  // be specified here for out-of-country formatting purposes. If this field is
-  // not present, and multiple international prefixes are present, then "+"
-  // will be used instead.
-  optional string preferred_international_prefix = 17;
-
-  // The national prefix of country A is the number that needs to be dialled
-  // before the national significant number when dialling internally. This
-  // would not be dialled when dialling internationally. For example, in New
-  // Zealand, the number that would be locally dialled as 09 345 3456 would be
-  // dialled from overseas as +64 9 345 3456. In this case, 0 is the national
-  // prefix.
-  optional string national_prefix = 12;
-
-  // The preferred prefix when specifying an extension in this country. This is
-  // used for formatting only, and if this is not specified, a suitable default
-  // should be used instead. For example, if you wanted extensions to be
-  // formatted in the following way:
-  // 1 (365) 345 445 ext. 2345
-  // " ext. "  should be the preferred extension prefix.
-  optional string preferred_extn_prefix = 13;
-
-  // This field is used for cases where the national prefix of a country
-  // contains a carrier selection code, and is written in the form of a
-  // regular expression. For example, to dial the number 2222-2222 in
-  // Fortaleza, Brazil (area code 85) using the long distance carrier Oi
-  // (selection code 31), one would dial 0 31 85 2222 2222. Assuming the
-  // only other possible carrier selection code is 32, the field will
-  // contain "03[12]".
-  //
-  // When it is missing from the XML file, this field inherits the value of
-  // national_prefix, if that is present.
-  optional string national_prefix_for_parsing = 15;
-
-  // This field is only populated and used under very rare situations.
-  // For example, mobile numbers in Argentina are written in two completely
-  // different ways when dialed in-country and out-of-country
-  // (e.g. 0343 15 555 1212 is exactly the same number as +54 9 343 555 1212).
-  // This field is used together with national_prefix_for_parsing to transform
-  // the number into a particular representation for storing in the phonenumber
-  // proto buffer in those rare cases.
-  optional string national_prefix_transform_rule = 16;
-
-  // Specifies whether the mobile and fixed-line patterns are the same or not.
-  // This is used to speed up determining phone number type in countries where
-  // these two types of phone numbers can never be distinguished.
-  optional bool same_mobile_and_fixed_line_pattern = 18 [default=false];
-
-  // Note that the number format here is used for formatting only, not parsing.
-  // Hence all the varied ways a user *may* write a number need not be recorded
-  // - just the ideal way we would like to format it for them. When this element
-  // is absent, the national significant number will be formatted as a whole
-  // without any formatting applied.
-  repeated NumberFormat number_format = 19;
-
-  // This field is populated only when the national significant number is
-  // formatted differently when it forms part of the INTERNATIONAL format
-  // and NATIONAL format. A case in point is mobile numbers in Argentina:
-  // The number, which would be written in INTERNATIONAL format as
-  // +54 9 343 555 1212, will be written as 0343 15 555 1212 for NATIONAL
-  // format. In this case, the prefix 9 is inserted when dialling from
-  // overseas, but otherwise the prefix 0 and the carrier selection code
-  // 15 (inserted after the area code of 343) is used.
-  repeated NumberFormat intl_number_format = 20;
-
-  // This field is set when this country is considered to be the main country
-  // for a calling code. It may not be set by more than one country with the
-  // same calling code, and it should not be set by countries with a unique
-  // calling code. This can be used to indicate that "GB" is the main country
-  // for the calling code "44" for example, rather than Jersey or the Isle of
-  // Man.
-  optional bool main_country_for_code = 22 [default=false];
-
-  // This field is populated only for countries or regions that share a country
-  // calling code. If a number matches this pattern, it could belong to this
-  // region. This is not intended as a replacement for IsValidForRegion, and
-  // does not mean the number must come from this region (for example, 800
-  // numbers are valid for all NANPA countries.) This field should be a regular
-  // expression of the expected prefix match.
-  optional string leading_digits = 23;
-}
-
-message PhoneMetadataCollection {
-  repeated PhoneMetadata metadata = 1;
-}
diff --git a/java/resources/com/google/i18n/phonenumbers/proto/phonenumber.proto b/java/resources/com/google/i18n/phonenumbers/proto/phonenumber.proto
deleted file mode 100644
index 8a5e7ab..0000000
--- a/java/resources/com/google/i18n/phonenumbers/proto/phonenumber.proto
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc.
- *
- * 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
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Definition of protocol buffer for representing international telephone numbers.
-// @author Shaopeng Jia
-
-syntax = "proto2";
-
-option java_package = "com.google.i18n.phonenumbers";
-option optimize_for = LITE_RUNTIME;
-package i18n.phonenumbers;
-
-message PhoneNumber {
-// The country calling code for this number, as defined by the International Telecommunication Union
-// (ITU). Fox example, this would be 1 for NANPA countries, and 33 for France.
-  required int32 country_code = 1;
-
-// National (significant) Number is defined in International Telecommunication Union Recommendation
-// E.164. It is a language/country-neutral representation of a phone number at a country level. For
-// countries which have the concept of Area Code, the National (significant) Number contains the
-// area code. It contains a maximum number of digits which equal to 15 - n, where n is the number of
-// digits of the country code. Take note that National (significant) Number does not contain
-// National(trunk) prefix. Obviously, as a uint64, it will never contain any formatting (hypens,
-// spaces, parentheses), nor any alphanumeric spellings.
-  required uint64 national_number = 2;
-
-// Extension is not standardized in ITU recommendations, except for being defined as a series of
-// numbers with a maximum length of 40 digits. It is defined as a string here to accommodate for the
-// possible use of a leading zero in the extension (organizations have complete freedom to do so,
-// as there is no standard defined). However, only ASCII digits should be stored here.
-  optional string extension = 3;
-
-// In some countries, the national (significant) number starts with a "0" without this being a
-// national prefix or trunk code of some kind. For example, the leading zero in the national
-// (significant) number of an Italian phone number indicates the number is a fixed-line number.
-// There have been plans to migrate fixed-line numbers to start with the digit two since December
-// 2000, but it has not happened yet. See http://en.wikipedia.org/wiki/%2B39 for more details.
-//
-// This field can be safely ignored (there is no need to set it) for most countries. Some limited
-// amount of countries behave like Italy - for these cases, if the leading zero of a number would be
-// retained even when dialling internationally, set this flag to true.
-//
-// Clients who use the parsing functionality of the i18n phone number libraries
-// will have this field set if necessary automatically.
-  optional bool italian_leading_zero = 4;
-
-// The next few fields are non-essential fields for a phone number. They retain extra information
-// about the form the phone number was in when it was provided to us to parse. They can be safely
-// ignored by most clients.
-
-// This field is used to store the raw input string containing phone numbers before it was
-// canonicalized by the library. For example, it could be used to store alphanumerical numbers
-// such as "1-800-GOOG-411".
-  optional string raw_input = 5;
-
-// The source from which the country_code is derived. This is not set in the general parsing method,
-// but in the method that parses and keeps raw_input. New fields could be added upon request.
-  enum CountryCodeSource {
-    // The country_code is derived based on a phone number with a leading "+", e.g. the French
-    // number "+33 (0)1 42 68 53 00".
-    FROM_NUMBER_WITH_PLUS_SIGN = 1;
-
-    // The country_code is derived based on a phone number with a leading IDD, e.g. the French
-    // number "011 33 (0)1 42 68 53 00", as it is dialled from US.
-    FROM_NUMBER_WITH_IDD = 5;
-
-    // The country_code is derived based on a phone number without a leading "+", e.g. the French
-    // number "33 (0)1 42 68 53 00" when defaultCountry is supplied as France.
-    FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;
-
-    // The country_code is derived NOT based on the phone number itself, but from the defaultCountry
-    // parameter provided in the parsing function by the clients. This happens mostly for numbers
-    // written in the national format (without country code). For example, this would be set when
-    // parsing the French number "(0)1 42 68 53 00", when defaultCountry is supplied as France.
-    FROM_DEFAULT_COUNTRY = 20;
-  }
-
-// The source from which the country_code is derived.
-  optional CountryCodeSource country_code_source = 6;
-
-// The carrier selection code that is preferred when calling this phone number domestically. This
-// also includes codes that need to be dialed in some countries when calling from landlines to
-// mobiles or vice versa. For example, in Columbia, a "3" needs to be dialed before the phone number
-// itself when calling from a mobile phone to a domestic landline phone and vice versa.
-//
-// Note this is the "preferred" code, which means other codes may work as well.
-  optional string preferred_domestic_carrier_code = 7;
-}
-
-// Examples
-//
-// Google MTV, +1 650-253-0000, (650) 253-0000
-// country_code: 1
-// national_number: 6502530000
-//
-// Google Paris, +33 (0)1 42 68 53 00, 01 42 68 53 00
-// country_code: 33
-// national_number: 142685300
-//
-// Google Beijing, +86-10-62503000, (010) 62503000
-// country_code: 86
-// national_number: 1062503000
-//
-// Google Italy, +39 02-36618 300, 02-36618 300
-// country_code: 39
-// national_number: 236618300
-// italian_leading_zero: true
diff --git a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml
deleted file mode 100644
index 86ea951..0000000
--- a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml
+++ /dev/null
@@ -1,18425 +0,0 @@
-<!-- Copyright (C) 2009 Google Inc.
-
-     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
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
-
-     @author: Shaopeng Jia
-     @author: Lara Rennie
-
-     MetaData on Phone Number Plan and formatting rules
-     Note: Territories are in alphabetical order by their IDs, which are based on ISO 3166-1
-           two-letter country codes. The country names in the comments are the official short names
-           in English according to ISO 3166-1.
-
-     For more information on what each element represents, see
-     java/com/google/i18n/phonenumbers/phonemetadata.proto
-
-     Note that if you want to add validation metadata, the generalDesc nationalNumberPattern and
-     possibleNumberPattern must be provided. If this is missing, then the country will be
-     considered to have no more specific phone-number type metadata (fixedLine, mobile etc) and
-     hence only basic validation rules (numbers should be between 3 and 15 digits long) will be
-     applied.
-
-     Country code, international and national prefix information main source:
-     http://www.itu.int/publ/T-SP-E.164C-2010/en
--->
-
-<!DOCTYPE phoneNumberMetadata [
-    <!ELEMENT phoneNumberMetadata (territories)>
-    <!ELEMENT territories (territory+)>
-    <!ELEMENT territory (availableFormats?, generalDesc?, noInternationalDialling?,
-        areaCodeOptional?, fixedLine?, mobile?, pager?, tollFree?, premiumRate?,
-        sharedCost?, personalNumber?, voip?, uan?, shortCode?)>
-    <!ELEMENT generalDesc (nationalNumberPattern, possibleNumberPattern)>
-    <!ELEMENT noInternationalDialling (nationalNumberPattern, possibleNumberPattern,
-        exampleNumber?)>
-    <!ELEMENT areaCodeOptional (nationalNumberPattern, possibleNumberPattern, exampleNumber?)>
-    <!ELEMENT fixedLine (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT mobile (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT pager (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT tollFree (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT premiumRate (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT sharedCost (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT personalNumber (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT voip (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT uan (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT shortCode (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
-    <!ELEMENT availableFormats (numberFormat+, intlNumberFormat*)>
-    <!ELEMENT nationalNumberPattern (#PCDATA)>
-    <!ELEMENT possibleNumberPattern (#PCDATA)>
-    <!ELEMENT exampleNumber (#PCDATA)>
-    <!ELEMENT numberFormat (leadingDigits*, format)>
-    <!ELEMENT intlNumberFormat (leadingDigits*, format)>
-    <!ELEMENT format (#PCDATA)>
-    <!ELEMENT leadingDigits (#PCDATA)>
-
-    <!ATTLIST territory id CDATA #REQUIRED>
-    <!ATTLIST territory countryCode CDATA #REQUIRED>
-    <!ATTLIST territory leadingDigits CDATA #IMPLIED>
-    <!ATTLIST territory preferredInternationalPrefix CDATA #IMPLIED>
-    <!ATTLIST territory internationalPrefix CDATA #REQUIRED>
-    <!ATTLIST territory nationalPrefix CDATA #IMPLIED>
-    <!ATTLIST territory nationalPrefixForParsing CDATA #IMPLIED>
-    <!ATTLIST territory nationalPrefixTransformRule CDATA #IMPLIED>
-    <!ATTLIST territory preferredExtnPrefix CDATA #IMPLIED>
-    <!ATTLIST territory nationalPrefixFormattingRule CDATA #IMPLIED>
-    <!ATTLIST territory mainCountryForCode (true) #IMPLIED>
-    <!ATTLIST territory carrierCodeFormattingRule CDATA #IMPLIED>
-    <!ATTLIST numberFormat nationalPrefixFormattingRule CDATA #IMPLIED>
-    <!ATTLIST numberFormat carrierCodeFormattingRule CDATA #IMPLIED>
-    <!ATTLIST numberFormat pattern CDATA #REQUIRED>
-    <!ATTLIST intlNumberFormat pattern CDATA #REQUIRED>
-    <!ATTLIST intlNumberFormat carrierCodeFormattingRule CDATA #IMPLIED>
-]>
-
-<phoneNumberMetadata>
-  <territories>
-    <!-- Ascension Island -->
-    <!-- www.itu.int/oth/T02020000AF -->
-    <territory id="AC" countryCode="247" internationalPrefix="00">
-      <!-- Formatted as a block. -->
-      <generalDesc>
-        <nationalNumberPattern>[2-46]\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3[0-5]|
-            4[4-6]|
-            [26]\d
-          )\d{2}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-        <exampleNumber>6889</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>NA</nationalNumberPattern>
-        <possibleNumberPattern>NA</possibleNumberPattern>
-      </mobile>
-    </territory>
-
-    <!-- Andorra -->
-    <!-- http://www.itu.int/oth/T0202000005/en -->
-    <territory id="AD" countryCode="376" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})">
-          <leadingDigits>[346-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(180[02])(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [346-9]|
-            180
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[78]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>712345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[346]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>312345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Note that the definitions of 1800 and 1802 numbers differ in the plan and on the
-             Andorran www.sta.ad website, but we consider both to be freephone here. -->
-        <nationalNumberPattern>180[02]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>18001234</exampleNumber>
-      </tollFree>
-      <!-- The national numbering plan says that numbers beginning with 9 are reserved for special
-           services, so we assume they are premium rate here, although we cannot find examples
-           online. -->
-      <premiumRate>
-        <nationalNumberPattern>9\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>912345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!--  United Arab Emirates -->
-    <!-- http://www.itu.int/oth/T02020000DC/en -->
-    <territory id="AE" countryCode="971" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([2-4679])(\d{3})(\d{4})">
-          <leadingDigits>[2-4679][2-8]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(5[056])(\d{3})(\d{4})">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([4679]00)(\d)(\d{5})" nationalPrefixFormattingRule="$FG">
-          <leadingDigits>[4679]0</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{2,9})" nationalPrefixFormattingRule="$FG">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-79]\d{7,8}|
-          800\d{2,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [2-4679][2-8]\d|
-            600[25]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>22345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>5[056]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>501234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          400\d{6}|
-          800\d{2,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,12}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[02]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>900234567</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>700[05]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>700012345</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Afghanistan -->
-    <!-- http://www.itu.int/oth/T0202000001/en -->
-    <territory id="AF" countryCode="93" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([2-7]\d)(\d{3})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-7]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [25][0-8]|
-            [34][0-4]|
-            6[0-5]
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>234567890</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[057-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>701234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Antigua and Barbuda -->
-    <!-- http://www.itu.int/oth/T0202000008/en -->
-    <territory id="AG" countryCode="1" leadingDigits="268"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[289]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 268 468 is not in the plan, but has been added after numbers with this prefix have been
-             found in online searches. -->
-        <nationalNumberPattern>
-          268(?:
-            4(?:
-              6[0-38]|
-              84
-            )|
-            56[0-2]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2684601234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 268 776/778/779 are not in the plan, but have been added after numbers with these
-             prefixes have been found in online searches. Same for 268 780/782/784/786. -->
-        <nationalNumberPattern>
-          268(?:
-            464|
-            7(?:
-              2[0-9]|
-              64|
-              7[0-689]|
-              8[02-68]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2684641234</exampleNumber>
-      </mobile>
-      <pager>
-        <nationalNumberPattern>26840[69]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2684061234</exampleNumber>
-      </pager>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <!-- This is included as Centrex in the plan. -->
-        <nationalNumberPattern>26848[01]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2684801234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Anguilla -->
-    <!-- http://www.itu.int/oth/T0202000007/en -->
-    <territory id="AI" countryCode="1" leadingDigits="264"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[289]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2644(?:
-            6[12]|
-            9[78]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2644612345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          264(?:
-            235|
-            476|
-            5(?:
-              3[6-9]|
-              8[1-4]
-            )|
-            7(?:
-              29|
-              72
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2642351234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Albania -->
-    <!-- http://www.itu.int/oth/T0202000002/en -->
-    <territory id="AL" countryCode="355" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formats mostly follow http://tirana.usembassy.gov/list_of_doctors.html -->
-        <numberFormat pattern="(4)(\d{3})(\d{4})">
-          <leadingDigits>4[0-6]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(6[6-9])(\d{3})(\d{4})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            [2358][2-5]|
-            4[7-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,5})">
-          <leadingDigits>
-            [235][16-9]|
-            8[016-9]|
-            [79]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-57]\d{7}|
-          6\d{8}|
-          8\d{5,7}|
-          9\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [168][1-9]|
-              [247]\d|
-              9[1-7]
-            )|
-            3(?:
-              1[1-3]|
-              [2-6]\d|
-              [79][1-8]|
-              8[1-9]
-            )|
-            4\d{2}|
-            5(?:
-              1[1-4]|
-              [2-578]\d|
-              6[1-5]|
-              9[1-7]
-            )|
-            8(?:
-              [19][1-5]|
-              [2-6]\d|
-              [78][1-7]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-        <exampleNumber>22345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[6-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>661234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- It is named "Shared Revenue Services" in the plan, but as there is a separate "Shared
-             Cost Services", it is highly likely these numbers are premium rate numbers. No
-             information/example is found in the Internet. -->
-        <nationalNumberPattern>900\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>900123</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>808\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>808123</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>700\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>70012345</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Armenia -->
-    <!-- http://www.itu.int/oth/T020200000A/en -->
-    <!-- We think the national dialling prefix is 0 - it seems this was a change in 2005 (or 2008)
-         along with the new city codes. However, their official document makes no mention of it,
-         websites disagree, and we are not sure if the change has actually been made. -->
-    <territory id="AM" countryCode="374" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{6})">
-          <leadingDigits>
-            [17]|
-            9[1-469]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{5})">
-          <leadingDigits>[23]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{3})"
-          nationalPrefixFormattingRule="$NP $FG">
-          <leadingDigits>
-            8|
-            90
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-37-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            10\d|
-            2(?:
-              2[2-46]|
-              3[1-8]|
-              4[2-69]|
-              5[2-7]|
-              6[1-9]|
-              8[1-7]
-            )|
-            3[12]2
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>10123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            77|
-            9[1-469]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>77123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[016]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>80[1-4]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80112345</exampleNumber>
-      </sharedCost>
-      <shortCode>
-        <nationalNumberPattern>
-          8[1-7]\d{2}|
-          1\d{2}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,4}</possibleNumberPattern>
-        <exampleNumber>8711</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Netherlands Antilles -->
-    <!-- http://www.itu.int/oth/T0202000097/en -->
-    <territory id="AN" countryCode="599" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>[13-7]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(9)(\d{3})(\d{4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13-79]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            318|
-            5(?:
-              25|
-              4\d|
-              8[239]
-            )|
-            7(?:
-              1[578]|
-              50
-            )|
-            9(?:
-              [48]\d{2}|
-              50\d|
-              7(?:
-                2[0-2]|
-                [34]\d|
-                6[35-7]|
-                77
-              )
-            )
-          )\d{4}|
-          416[0239]\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>7151234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            318|
-            5(?:
-              1[01]|
-              2[0-7]|
-              5\d|
-              8[016-8]
-            )|
-            7(?:
-              0[01]|
-              [89]\d
-            )|
-            9(?:
-              5(?:
-                [1246]\d|
-                3[01]
-              )|
-              6(?:
-                [1679]\d|
-                3[01]
-              )
-            )
-          )\d{4}|
-          416[15-8]\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>3181234</exampleNumber>
-      </mobile>
-      <!-- Value-added services are lumped together under shared cost, since we are not sure exactly
-           what they are. -->
-      <sharedCost>
-        <nationalNumberPattern>
-          (?:
-            10|
-            69
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>1011234</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Angola -->
-    <!-- http://www.itu.int/oth/T0202000006/en -->
-    <territory id="AO" countryCode="244" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[29]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2\d(?:
-            [26-9]\d|
-            \d[26-9]
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>222123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Expanded the 92 prefix possibilities to match numbers found online. -->
-        <nationalNumberPattern>9[1-3]\d{7}</nationalNumberPattern>
-        <exampleNumber>923123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Argentina -->
-    <!-- http://www.itu.int/oth/T0202000009/en -->
-    <!-- http://www.cnc.gov.ar/numeracion/IndicativosInterurbanos.asp -->
-    <territory id="AR" countryCode="54" internationalPrefix="00"
-               nationalPrefix="0"  nationalPrefixForParsing="0(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1-367])|3(?:[06]2|1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|7)|47[3-578]|6(?:1|2[2-7]|4[6-8]?|5[125-8])|9(?:0[1-3]|[19]|2\d|3[1-6]|4[0-24-68]|5[2-4]|6[2-6]|72?|8[23]?))|3(?:3(?:2[79]|8[2578])|4(?:0[124-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6\d|7[126]|8[237-9]|9[1-36-8])|5(?:1|2[1245]|3[2-4]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|7(?:1[15-8]|2[125]|3[1245]|4[13]|5[124-8]|7[2-57]|8[1-36])|8(?:1|2[125-7]|3[23578]|4[13-6]|5[4-8]?|6[1-357-9]|7[5-8]?|8[4-7]?|9[124])))15)?"
-               nationalPrefixTransformRule="9$1" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([68]\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[68]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="([68]\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[68]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="9(11)(\d{4})(\d{4})">
-          <leadingDigits>91</leadingDigits>
-          <format>$1 15-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="9(11)(\d{4})(\d{4})">
-          <leadingDigits>91</leadingDigits>
-          <format>9 $1 $2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="9(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            9(?:
-              2[2369]|
-              3[458]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            9(?:
-              2(?:
-                2[013]|
-                37|
-                6[14]|
-                9[179]
-              )|
-              3(?:
-                4[1235]|
-                5[138]|
-                8[1578]
-              )
-            )
-          </leadingDigits>
-          <format>$1 15-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="9(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            9(?:
-              2[2369]|
-              3[458]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            9(?:
-              2(?:
-                2[013]|
-                37|
-                6[14]|
-                9[179]
-              )|
-              3(?:
-                4[1235]|
-                5[138]|
-                8[1578]
-              )
-            )
-          </leadingDigits>
-          <format>9 $1 $2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="9(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>
-            9(?:
-              2[2-469]|
-              3[3-578]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            9(?:
-              2(?:
-                2[24-9]|
-                3[0-69]|
-                47|
-                6[25]|
-                9[02-68]
-              )|
-              3(?:
-                3[28]|
-                4[046-9]|
-                5[2467]|
-                7[1-578]|
-                8[23469]
-              )
-            )
-          </leadingDigits>
-          <format>$1 15-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="9(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>
-            9(?:
-              2[2-469]|
-              3[3-578]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            9(?:
-              2(?:
-                2[24-9]|
-                3[0-69]|
-                47|
-                6[25]|
-                9[02-68]
-              )|
-              3(?:
-                3[28]|
-                4[046-9]|
-                5[2467]|
-                7[1-578]|
-                8[23469]
-              )
-            )
-          </leadingDigits>
-          <format>9 $1 $2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(11)(\d{4})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(11)(\d{4})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2-$3</format>
-        </intlNumberFormat>
-        <!-- Some 4-digit area codes actually are caught by this rule. I'm giving however preference
-             to the 3-digit area codes, since they are considerably larger communities. -->
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            2(?:
-              2[013]|
-              37|
-              6[14]|
-              9[179]
-            )|
-            3(?:
-              4[1235]|
-              5[138]|
-              8[1578]
-            )
-          </leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            2(?:
-              2[013]|
-              37|
-              6[14]|
-              9[179]
-            )|
-            3(?:
-              4[1235]|
-              5[138]|
-              8[1578]
-            )
-          </leadingDigits>
-          <format>$1 $2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>[23]</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>[23]</leadingDigits>
-        <format>$1 $2-$3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{9,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[1-9]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-        <exampleNumber>1123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          9(?:
-            11[2-9]\d{7}|
-            (?:
-              2(?:
-                2[013]|
-                37|
-                6[14]|
-                9[179]
-              )|
-              3(?:
-                4[1235]|
-                5[138]|
-                8[1578]
-              )
-            )[2-9]\d{6}|
-            \d{4}[2-9]\d{5}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,12}</possibleNumberPattern>
-        <exampleNumber>91123456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8012345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          6(?:
-            0\d|
-            10
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>6001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- American Samoa -->
-    <!-- http://www.itu.int/oth/T0202000004/en -->
-    <territory id="AS" countryCode="1" leadingDigits="684"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[689]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          6846(?:
-            22|
-            33|
-            44|
-            55|
-            77|
-            88|
-            9[19]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6846221234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          684(?:
-            733|
-            258
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>6847331234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Austria -->
-    <!-- http://www.rtr.at/en/tk/E129 -->
-    <territory id="AT" countryCode="43" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([15])(\d{3,12})">
-          <leadingDigits>
-            1|
-            5[079]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,10})">
-          <leadingDigits>
-            316|
-            46|
-            51|
-            732|
-            6(?:
-              44|
-              5[0-3579]|
-              [6-9]
-            )|
-            7(?:
-              1|
-              [28]0
-            )|
-            [89]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{3,9})">
-          <leadingDigits>
-            2|
-            3(?:
-              1[1-578]|
-              [3-8]
-            )|
-            4[2378]|
-            5[2-6]|
-            6(?:
-              [12]|
-              4[1-35-9]|
-              5[468]
-            )|
-            7(?:
-              2[1-8]|
-              35|
-              4[1-8]|
-              [57-9]
-            )
-          </leadingDigits>
-            <format>$1 $2</format>
-          </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{4,13}</nationalNumberPattern>
-        <possibleNumberPattern>\d{3,13}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Note the 050, 057 and 059 prefixes are defined as "private network" in the Austrian
-             plan. This just means they are registered to companies who are distributed over
-             different geographical areas and maintain their own network. Examples here:
-             http://www.rtr.at/?id=4506&S=05&art=d Also note that the full area code is not
-             validated - just the first 3 digits. This also means that even though for most
-             Austrian numbers the minimum length is 7, we allow 6 since we don't differentiate below
-             between 3 and 4 digit area codes for reasons of efficiency. -->
-        <nationalNumberPattern>
-          1\d{3,12}|
-          (?:
-            2(?:
-              1[467]|
-              2[134-8]|
-              5[2357]|
-              6[1-46-8]|
-              7[1-8]|
-              8[124-7]|
-              8[1458]
-            )|
-            3(?:
-              1[1-8]|
-              3[23568]|
-              4[5-7]|
-              5[1378]|
-              6[1-38]|
-              8[3-68]
-            )|
-            4(?:
-              2[1-8]|
-              35|
-              63|
-              7[1368]|
-              8[2457]
-            )|
-            5(?:
-              1[27]|
-              2[1-8]|
-              3[357]|
-              4[147]|
-              5[12578]|
-              6[37]
-            )|
-            6(?:
-              13|
-              2[1-47]|
-              4[1-35-8]|
-              5[468]|
-              62
-            )|
-            7(?:
-              2[1-8]|
-              3[25]|
-              4[13478]|
-              5[68]|
-              6[16-8]|
-              7[1-6]|
-              9[45]
-            )
-          )\d{3,10}|
-          5(?:
-            0[1-9]|
-            [79]\d
-          )\d{2,10}|
-          720\d{6,10}
-        </nationalNumberPattern>
-        <exampleNumber>1234567890</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          6(?:
-            44|
-            5[0-3579]|
-            6[013-9]|
-            [7-9]\d
-          )\d{4,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,13}</possibleNumberPattern>
-        <exampleNumber>644123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[02]\d{6,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,13}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            711|
-            9(?:
-              0[01]|
-              3[019]
-            )
-          )\d{6,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,13}</possibleNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            10|
-            2[018]
-          )\d{6,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,13}</possibleNumberPattern>
-        <exampleNumber>810123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>780\d{6,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,13}</possibleNumberPattern>
-        <exampleNumber>780123456</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Australia -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200000D0001MSWE.doc -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Australia -->
-    <territory id="AU" countryCode="61" preferredInternationalPrefix="0011"
-               internationalPrefix="(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"
-               nationalPrefix="0">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="([2378])(\d{4})(\d{4})">
-          <leadingDigits>[2378]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(4\d{2})(\d{3})(\d{3})">
-          <leadingDigits>4</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(5[05]0)(\d{3})(\d{3})">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(1[389]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            1(?:
-              [38]0|
-              9
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              [38]00|
-              9
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Although the national plan doesn't explicitly say so, there is no evidence that a 180
-             xxxx number could be 180 0xxx. -->
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(180)(\d{4})">
-          <leadingDigits>180</leadingDigits>
-          <leadingDigits>180[1-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(13)(\d{2})(\d{2})">
-          <leadingDigits>13[1-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-578]\d{5,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2378]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>4[0-68]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>412345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Local-rate (SmartNumbers) are put here for now because they are also a reverse-charge
-             network, although they charge a small local call connect fee (around 25c). These start
-             with 13 or 1300. -->
-        <nationalNumberPattern>
-          1(?:
-            80(?:
-              0\d{2}
-            )? |
-            3(?:
-              00\d{2}
-            )?
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>190[0126]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1900123456</exampleNumber>
-      </premiumRate>
-      <!-- Wikipedia was the source for these types of numbers, and number allocation search here
-           http://web.acma.gov.au/numb/openAccess/inquiry/allocationSearch.do confirms this. (Search
-           from 0500000000 to 0590000000) -->
-      <personalNumber>
-        <nationalNumberPattern>500\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>500123456</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>550\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>550123456</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Aruba -->
-    <!-- http://www.itu.int/oth/T020200000B/en -->
-    <territory id="AW" countryCode="297" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([5-9]\d{2})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[5-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          5(?:
-            2\d{2}|
-            8(?:
-              [2-7]\d|
-              8[0-79]|
-              9[48]
-            )
-          )\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>5212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 660 since SMS messages have been successfully delivered to numbers with this
-             prefix, and numbers can be found in the yellow pages. -->
-        <nationalNumberPattern>
-          (?:
-            5[69]\d|
-            660|
-            9(?:
-              6\d|
-              9[02-9]
-            )|
-            7[34]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>5601234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4}</nationalNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{4}</nationalNumberPattern>
-        <exampleNumber>9001234</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Azerbaijan -->
-    <!-- http://www.itu.int/oth/T020200000F/en -->
-    <territory id="AZ" countryCode="994" internationalPrefix="00"
-        nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>1[28]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>22</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2,3})(\d{2})(\d{2})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d)(\d{2})(\d{2})">
-          <leadingDigits>
-            1[013-79]|
-            2[013-9]
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})"
-          nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>[4-8]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-8]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Added the 164 area code after it was found in other online lists and in many online
-             numbers. -->
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              (?:
-                [28]\d|
-                9
-              )\d|
-              02|
-              1[0-589]|
-              3[358]|
-              4[013-79]|
-              5[0-479]|
-              6[02346-9]|
-              7[0-24-8]
-            )|
-            2(?:
-              16|
-              2\d|
-              3[0-24]|
-              4[1468]|
-              55|
-              6[56]|
-              79
-            )|
-            365?\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>123123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            4[04]|
-            5[015]|
-            60|
-            7[07]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>401234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>88\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>881234567</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Bosnia and Herzegovina -->
-    <!-- http://www.cra.ba/en/telecom/numbering/ -->
-    <!-- http://en.wikipedia.org/wiki/+387 -->
-    <territory id="BA" countryCode="387" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([3-689]\d)(\d{3})(\d{3})">
-          <format>$1 $2-$3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3-689]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [35]\d|
-            49
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>30123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[1-356]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>61123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>8[08]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>9[0246]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <!-- Using this category to model national tariff numbers - these are under Shared Cost in
-             the plan. -->
-        <nationalNumberPattern>82\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>82123456</exampleNumber>
-      </sharedCost>
-      <uan>
-        <nationalNumberPattern>81\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>81123456</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Barbados -->
-    <!-- http://www.itu.int/oth/T0202000013/en -->
-    <territory id="BB" countryCode="1" leadingDigits="246"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[289]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>246[2-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>2462345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          246(?:
-            (?:
-              2[346]|
-              45|
-              82
-            )\d|
-            25[0-4]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2462501234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Bangladesh -->
-    <!-- http://www.itu.int/oth/T0202000012/en -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Bangladesh -->
-    <!-- http://www.btrc.gov.bd/engineering/national_numbering_plan_2005.pdf -->
-    <territory id="BD" countryCode="880" internationalPrefix="00[12]?"
-               preferredInternationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(2)(\d{7})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{4,6})">
-          <leadingDigits>[3-79]1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,7})">
-          <leadingDigits>
-            [3-79][2-9]|
-            8
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{6})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-      <!-- This is quite complex so we can define that numbers beginning with 88 are not part of the
-           plan, so the country code can be accurately stripped off. -->
-        <nationalNumberPattern>
-          [2-79]\d{5,9}|
-          1\d{9}|
-          8[0-7]\d{4,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- There was a plan to move to 10 digit fixed-line numbers, but this does not seem to have
-             been realised, judging by online numbers and wikipedia. These patterns are grouped
-             first by leading digit, then within by number of digits. Several Dhaka prefixes (02
-             731, 751 etc) are included despite not being mentioned on the wikipedia page due to
-             online evidence. Another oddity is Chittagong - some numbers have a leading 2, others
-             do not - both are allowed for now. -->
-             <nationalNumberPattern>
-               2(?:
-                 7\d1|
-                 8(?:
-                   [026]1|
-                   [1379][1-5]|
-                   8[1-8]
-                 )|
-                 9(?:
-                   0[0-2]|
-                   1[1-4]|
-                   3[3-5]|
-                   5[56]|
-                   6[67]|
-                   71|
-                   8[078]
-                 )
-               )\d{4}|
-               3(?:
-                 [6-8]1|
-                 (?:
-                   0[23]|
-                   [25][12]|
-                   82|
-                   416
-                 )\d|
-                 (?:
-                   31|
-                   12?[5-7]
-                 )\d{2}
-               )\d{3}|
-               4(?:
-                 (?:
-                   02|
-                   [49]6|
-                   [68]1
-                 )|
-                 (?:
-                   0[13]|
-                   21\d? |
-                   [23]2|
-                   [457][12]|
-                   6[28]
-                 )\d|
-                 (?:
-                   23|
-                   [39]1
-                 )\d{2}|
-                 1\d{3}
-               )\d{3}|
-               5(?:
-                 (?:
-                   [457-9]1|
-                   62
-                 )|
-                 (?:
-                   1\d? |
-                   2[12]|
-                   3[1-3]|
-                   52
-                 )\d|
-                 61{2}
-               )|
-               6(?:
-                 [45]1|
-                 (?:
-                   11|
-                   2[15]|
-                   [39]1
-                 )\d|
-                 (?:
-                   [06-8]1|
-                   62
-                 )\d{2}
-               )|
-               7(?:
-                 (?:
-                   32|
-                   91
-                 )|
-                 (?:
-                   02|
-                   31|
-                   [67][12]
-                 )\d|
-                 [458]1\d{2}|
-                 21\d{3}
-               )\d{3}|
-               8(?:
-                 (?:
-                   4[12]|
-                   [5-7]2|
-                   1\d?
-                 )|
-                 (?:
-                   0|
-                   3[12]|
-                   [5-7]1|
-                   217
-                 )\d
-               )\d{4}|
-               9(?:
-                 [35]1|
-                 (?:
-                   [024]2|
-                   81
-                 )\d|
-                 (?:
-                   1|
-                   [24]1
-                 )\d{2}
-               )\d{3}
-             </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>27111234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Presuming that mobile numbers with the prefixes 66, 37, 44 and 38 must be followed by
-             numbers [02-9] or they would clash with fixed-line codes. According to the plan, mobile
-             numbers should be moving to 1[13-9] anyway. -->
-        <nationalNumberPattern>
-          (?:
-            1[13-9]\d|
-            (?:
-              3[78]|
-              44
-            )[02-9]|
-            6(?:
-              44|
-              6[02-9]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1812345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Note: Including Tele-voting numbers here as they are free of charge. -->
-        <nationalNumberPattern>80[03]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Belgium -->
-    <!-- http://www.bipt.be/en/161/ShowContent/502/Database/Databases.aspx -->
-    <!-- http://www.telefoonzones.be/ -->
-    <!-- Information on non-geographic numbers here: (Dutch)
-         http://www.scarletbusiness.be/business/largeenterprise/nl/products/voiceservices/servicenumbers.jsp
-         -->
-    <territory id="BE" countryCode="32" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(4[7-9]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>4[7-9]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([2-49])(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>
-            [23]|
-            [49][23]
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([15-8]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            [156]|
-            7[0178]|
-            8(?:
-              0[1-9]|
-              [1-79]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([89]\d{2})(\d{2})(\d{3})">
-          <leadingDigits>
-            (?:
-              80|
-              9
-            )0
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Note that 80 is a valid area code, so we explicitly check for this case that the third
-             digit begins with 1-9 -->
-        <nationalNumberPattern>
-          (?:
-            1[0-69]|
-            [23][2-8]|
-            [49][23]|
-            5\d|
-            6[013-57-9]|
-            7[18]
-          )\d{6}|
-          8(?:
-            0[1-9]|
-            [1-69]\d
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          4(?:
-            7\d|
-            8[4-9]|
-            9[1-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>470123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            90|
-            7[07]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>87\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>87123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Burkina Faso -->
-    <!-- http://www.itu.int/oth/T0202000021/en -->
-    <territory id="BF" countryCode="226" internationalPrefix="00">
-      <availableFormats>
-        <!-- The national numbering plan from ITU suggests grouping of 2, 2 and 4, but we have
-             chosen to use the standard from numbers found on the internet instead. -->
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2457]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 50 48 and 50 49 exist as well. -->
-        <nationalNumberPattern>
-          (?:
-            20(?:
-              49|
-              5[23]|
-              9[016-9]
-            )|
-            40(?:
-              4[569]|
-              55|
-              7[0179]
-            )|
-            50[34]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>20491234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Including the whole range of 75 despite the document restricting it to only a few,
-             since even the Zain help-line is outside the range that the document specifies. -->
-        <nationalNumberPattern>
-          7(?:
-            [024-6]\d|
-            1[0-489]|
-            3[0124]|
-            7[01]|
-            8[013-9]|
-            9[0-4]
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>70123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Bulgaria -->
-    <!-- http://www.itu.int/oth/T0202000020/en -->
-    <territory id="BG" countryCode="359" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(2)(\d{3})(\d{3,4})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1/$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>
-            43[124-7]|
-            70[1-9]
-          </leadingDigits>
-          <format>$1/$2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{2})">
-          <leadingDigits>
-            43[124-7]|
-            70[1-9]
-          </leadingDigits>
-          <format>$1/$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{3})">
-          <leadingDigits>[78]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2,3})">
-          <leadingDigits>
-            [356]|
-            7[1-9]|
-            8[1-6]|
-            9[1-7]
-          </leadingDigits>
-          <format>$1/$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            48|
-            8[7-9]|
-            9[08]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{6,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2\d|
-            [36]\d|
-            5[1-9]|
-            8[1-6]|
-            9[1-7]
-          )\d{5,6}|
-          (?:
-            4(?:
-              [124-7]\d|
-              3[1-6]
-            )|
-            7(?:
-              0[1-9]|
-              [1-9]\d
-            )
-          )\d{4,5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>2123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            8[7-9]|
-            98
-          )\d{7}|
-          4(?:
-            3[0789]|
-            8\d
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>48123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>700\d{5}</nationalNumberPattern>
-        <exampleNumber>70012345</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Bahrain -->
-    <!-- http://www.itu.int/oth/T0202000011/en -->
-    <!-- http://www.tra.org.bh/en/pdf/National_Numbering_Plan_2.pdf -->
-    <territory id="BH" countryCode="973" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[136-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <!-- Universal Service numbers are under both Mobile and Fixed-Line, as they can be assigned
-           to either. -->
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              3[3-6]|
-              6[0156]|
-              7\d
-            )|
-            6(?:
-              1[16]|
-              6[03469]|
-              9[69]
-            )|
-            77\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>17001234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            3(?:
-              [369]\d|
-              77|
-              8[38]
-            )|
-            6(?:
-              1[16]|
-              6[03469]|
-              9[69]
-            )|
-            77\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>36001234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <!-- 87 numbers are "wholly paid by the caller", so they are slotted under premium-rate for
-           now. -->
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            87|
-            9[014578]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>84\d{6}</nationalNumberPattern>
-        <exampleNumber>84123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Burundi -->
-    <!-- http://www.itu.int/oth/T0202000022/en -->
-    <territory id="BI" countryCode="257" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat
-          pattern="([27]\d)(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[27]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          22(?:
-            2[0-7]|
-            [3-5]0
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>22201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Extra online mobile number prefixes found: 79 10, 78 \d{2} and 76 [29]\d. The 29
-             prefix is listed as a mobile prefix, but many people list it as their fixed home
-             number. We will keep it as mobile for now, but it may actually be a prefix for fixed
-             satellite phones. -->
-        <nationalNumberPattern>
-          (?:
-            29\d|
-            7(?:
-              1[1-3]|
-              [4-9]\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>79561234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Benin -->
-    <!-- http://www.itu.int/oth/T0202000017/en -->
-    <territory id="BJ" countryCode="229" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <!-- Numbers beginning with 7 should be formatted as a block. -->
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2689]\d{7}|
-          7\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- These come from the national numbering plan, but have been widened to include other
-             prefixes found in the yellow pages - specifically 21 0. -->
-        <nationalNumberPattern>
-          2(?:
-            02|
-            1[037]|
-            2[45]|
-            3[68]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>20211234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 93 0, 93 4, 93 5 and 93 8 have been added as many online examples of these prefixes can
-             be found. 9[68] and 97[23] prefixes have also been added because of online numbers
-             following these patterns and numbers where SMSs were successfully delivered. 66 has
-             been also added, as it seems to be a prefix for Mobile MTN. -->
-        <nationalNumberPattern>
-          66\d{6}|
-          9(?:
-            0[069]|
-            [35][0-2457-9]|
-            [6-8]\d
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90011234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>7[3-5]\d{2}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-        <exampleNumber>7312</exampleNumber>
-      </tollFree>
-      <!-- Other numbers beginning with 81 are reserved for _either_ free phone or shared-cost, but
-           there is no clear differentiation between these. -->
-      <voip>
-        <nationalNumberPattern>857[58]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>85751234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Saint Barthélemy, French Antilles -->
-    <!-- There seems to be some overlap with phone numbers from Saint Martin and Guadeloupe. The
-         national numbering plan does not specify any St Barthélemy-specific numbering prefixes, but
-         it appears from searches in online white and yellow pages that a subset of the prefixes
-         available in Guadeloupe are used. In these cases, if getRegionCodeForNumber is used, one of
-         these region codes will be returned, although numbers will be valid for both regions. -->
-    <!-- http://www.itu.int/oth/T0202000058/en -->
-    <territory id="BL" countryCode="590" internationalPrefix="00"
-      nationalPrefix="0">
-      <!-- Formatting rules borrowed from Guadeloupe. -->
-      <generalDesc>
-        <nationalNumberPattern>[56]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          590(?:
-            2[7-9]|
-            5[12]|
-            87
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>590271234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          690(?:
-            10|
-            2[27]|
-            66|
-            77|
-            8[78]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>690221234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Bermuda -->
-    <!-- http://www.itu.int/oth/T0202000018/en -->
-    <territory id="BM" countryCode="1" leadingDigits="441"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[489]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          441(?:
-            2(?:
-              02|
-              23|
-              61|
-              [3479]\d
-            )|
-            [46]\d{2}|
-            5(?:
-              4\d|
-              60|
-              89
-            )|
-            824
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>4412345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          441(?:
-            [37]\d|
-            5[0-39]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>4413701234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Brunei Darussalam -->
-    <!-- http://www.itu.int/oth/T020200001F/en -->
-    <territory id="BN" countryCode="673" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <!-- Format is from http://aiti.gov.bn/contact.html -->
-      <availableFormats>
-        <numberFormat pattern="([2-578]\d{2})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-578]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2-5]\d{6}</nationalNumberPattern>
-        <exampleNumber>2345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[78]\d{6}</nationalNumberPattern>
-        <exampleNumber>7123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Bolivia -->
-    <!-- http://www.itu.int/oth/T020200001A/en -->
-    <!-- http://www.bolivia.com/Servicios/Plandenumeracion.pdf -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200001A0001MSWE.doc -->
-    <territory id="BO" countryCode="591"
-               internationalPrefix="00(1\d)?"
-               nationalPrefix="0"
-               nationalPrefixForParsing="0(1\d)?"
-               carrierCodeFormattingRule="$NP$CC $FG">
-      <availableFormats>
-        <numberFormat pattern="([234])(\d{7})">
-          <leadingDigits>[234]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([67]\d{7})">
-          <leadingDigits>[67]</leadingDigits>
-          <format>$1</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[23467]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              2\d{2}|
-              5(?:11|[258]\d|9[67])|
-              6(?:12|2\d|9[34])|
-              8(?:2[34]|39|62)
-            )|
-            3(?:
-              3\d{2}|
-              4(?:6\d|8[24])|
-              8(?:25|42|5[257]|86|9[25])|
-              9(?:2\d|3[234]|4[248]|5[24]|6[2-6]|7\d)
-            )|
-            4(?:
-              4\d{2}|
-              6(?:11|[24689]\d|72)
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[67]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>71234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Brazil -->
-    <!-- http://en.wikipedia.org/wiki/%2B55 -->
-    <territory id="BR" countryCode="55"
-               internationalPrefix="00(?:1[45]|2[135]|[34]1|43)"
-               nationalPrefix="0"
-               nationalPrefixForParsing="0(?:(1[245]|2[135]|[34]1)(\d{10}))?"
-               nationalPrefixTransformRule="$2">
-      <!--The national prefix for parsing here also contains a capturing group for the main number,
-           since the carrier codes here may also be area codes, so we want to check the length of
-           the number after capturing. We also need a nationalTransformRule to repopulate with the
-           number without the carrier code. -->
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($FG)"
-          pattern="(\d{2})(\d{4})(\d{4})"
-          carrierCodeFormattingRule="$NP $CC ($FG)">
-          <leadingDigits>[1-9][1-9]</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="([34]00\d)(\d{4})">
-          <leadingDigits>[34]00</leadingDigits>
-          <leadingDigits>
-            400|
-            3003
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([3589]00)(\d{2,3})(\d{4})">
-          <leadingDigits>[3589]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [14689][1-9]|
-            2[12478]|
-            3[1-578]|
-            5[13-5]|
-            7[13-579]
-          )[2-5]\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>1123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            [14689][1-9]|
-            2[12478]|
-            3[1-578]|
-            5[13-5]|
-            7[13-579]
-          )[6-9]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1161234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6,7}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>[359]00\d{6,7}</nationalNumberPattern>
-        <exampleNumber>300123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          (?:
-            400\d|
-            3003
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>40041234</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Bahamas -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000100001MSWE.pdf -->
-    <territory id="BS" countryCode="1" leadingDigits="242"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[289]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          242(?:
-            3(?:
-              02|
-              [236][1-9]|
-              4[0-24-9]|
-              5[0-68]|
-              7[3467]|
-              8[0-4]|
-              9[2-467]
-            )|
-            461|
-            502|
-            6(?:
-              12|
-              7[67]|
-              8[78]|
-              9[89]
-            )|
-            702
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2423456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          242(?:
-            3(?:
-              5[79]|
-              [79]5
-            )|
-            4(?:
-              [2-4][1-9]|
-              5[1-8]|
-              6[2-8]|
-              7\d|
-              81
-            )|
-            5(?:
-              2[34]|
-              3[35]|
-              44|
-              5[1-9]|
-              65|
-              77
-            )|
-            6[34]6|
-            727
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2423591234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- 242 300 is a Domestic Toll Free service. -->
-        <nationalNumberPattern>
-          242300\d{4}|
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Bhutan -->
-    <!-- http://www.itu.int/oth/T0202000019/en -->
-    <territory id="BT" countryCode="975" internationalPrefix="00">
-      <availableFormats>
-        <!-- Format is from
-             http://www.tourism.gov.bt/tour-operators/bhutan-abbot-tours-and-travels.html -->
-        <numberFormat pattern="(17)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([2-8])(\d{3})(\d{3})">
-          <leadingDigits>[2-8]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            17|
-            [2-8]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[3-6]|
-            [34][5-7]|
-            5[236]|
-            6[2-46]|
-            7[246]|
-            8[2-4]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,7}</possibleNumberPattern>
-        <exampleNumber>2345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>17\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>17123456</exampleNumber>
-      </mobile>
-      <!-- No information on other types of phone numbers for Bhutan has been found. -->
-    </territory>
-
-    <!-- Botswana -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200001C0001MSWE.doc -->
-    <territory id="BW" countryCode="267" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(7[1-4])(\d{3})(\d{3})">
-          <leadingDigits>7</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(90)(\d{5})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              4[0-48]|
-              6[0-24]|
-              9[0578]
-            )|
-            3(?:
-              1[0235-9]|
-              55|
-              6\d|
-              7[01]|
-              9[0-57]
-            )|
-            4(?:
-              6[03]|
-              7[1267]|
-              9[0-5]
-            )|
-            5(?:
-              3[0389]|
-              4[0489]|
-              7[1-47]|
-              88|
-              9[0-49]
-            )|
-            6(?:
-              2[1-35]|
-              5[149]|
-              8[067]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>2401234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          7(?:
-            [1-3]\d{6}|
-            4[0-7]\d{5}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>71123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>8\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>8123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>9012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Belarus -->
-    <!-- http://eng.beltelecom.by/info/numbering/ -->
-    <!-- Information on national prefix provided by a Belarussian person. -->
-    <territory id="BY" countryCode="375" internationalPrefix="8~10"
-               nationalPrefixForParsing="80?" nationalPrefix="8">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$NP 0$FG"
-          pattern="([1-4]\d)(\d{3})(\d{4})">
-          <leadingDigits>[1-4]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP $FG"
-          pattern="([89]\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [12-4]\d{8}|
-          [89]\d{9}
-        </nationalNumberPattern>
-        <!-- Numbers are often written without the city code. -->
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              5(?:
-                1[1-5]|
-                2\d|
-                6[1-4]|
-                9[1-7]
-              )|
-              6(?:
-                [235]\d|
-                4[1-7]
-              )|
-              7\d{2}
-            )|
-            2(?:
-              1(?:
-                [246]\d|
-                3[0-35-9]|
-                5[1-9]
-              )|
-              2(?:
-                [235]\d|
-                4[0-8]
-              )|
-              3(?:
-                2\d|
-                3[02-79]|
-                4[024-7]|
-                5[0-7]
-              )
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <!-- Using test number for Grodno from the plan. -->
-        <exampleNumber>152450911</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              5[679]|
-              9[1-9]
-            )|
-            33\d|
-            44\d
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <!-- Using test number for BelCel from the plan. -->
-        <exampleNumber>294911911</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Putting Interactive Polling Service (free) here too. -->
-        <nationalNumberPattern>80[13]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8011234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>902\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9021234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Belize -->
-    <!-- http://www.itu.int/oth/T0202000016/en -->
-    <!-- The trunk prefix, formally 0, was dropped in the last reorganisation of the numbering plan.
-         -->
-    <territory id="BZ" countryCode="501" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>[2-8]</leadingDigits>
-          <!-- Adding hyphen following the Belize Telemedia formatting rules. -->
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(0)(800)(\d{4})(\d{3})">
-          <leadingDigits>0</leadingDigits>
-          <format>$1-$2-$3-$4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-8]\d{6}|
-          0\d{10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}(?:\d{4})?</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[234578][02]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>2221234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          6(?:
-            [01]\d|
-            2[0-5]|
-            [67][01])\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>6221234</exampleNumber>
-      </mobile>
-      <!-- We don't know how these would be dialled internationally - it is possible that they can't
-           be dialled internationally at all - so we represent the leading 0 as part of the number.
-           Information from www.belizetelemedia.net. -->
-      <tollFree>
-        <nationalNumberPattern>0800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>08001234123</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Canada -->
-    <!-- http://www.cnac.ca/canadian_dial_plan/canadian_dial_plan.htm -->
-    <territory id="CA" countryCode="1" internationalPrefix="011"
-      nationalPrefix="1">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>
-          [2-9]\d{9}|
-          3\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              04|
-              26|
-              50|
-              89
-            )|
-            3(?:
-              06|
-              43
-            )|
-            4(?:
-              03|
-              1[68]|
-              38|
-              5[06]
-            )|
-            5(?:
-              0[06]|
-              1[49]|
-              79|
-              8[17]
-            )|
-            6(?:
-              0[04]|
-              13|
-              47
-            )|
-            7(?:
-              0[059]|
-              [18]0|
-              78
-            )|
-            8(?:
-              [06]7|
-              19|
-            )|
-            90[25]
-          )[2-9]\d{6}|
-          310\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2042345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              04|
-              26|
-              50|
-              89
-            )|
-            3(?:
-              06|
-              43
-            )|
-            4(?:
-              03|
-              1[68]|
-              38|
-              5[06]
-            )|
-            5(?:
-              0[06]|
-              1[49]|
-              79|
-              8[17]
-            )|
-            6(?:
-              0[04]|
-              13|
-              47
-            )|
-            7(?:
-              0[059]|
-              [18]0|
-              78
-            )|
-            8(?:
-              [06]7|
-              19|
-            )|
-            90[25]
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>2042345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}|
-          310\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Congo, Dem. Rep. of the (formerly Zaire) -->
-    <!-- http://www.itu.int/oth/T0202000037/en -->
-    <territory id="CD" countryCode="243" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([89]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([1-6]\d)(\d{5})">
-          <leadingDigits>[1-6]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [89]\d{8}|
-          [1-6]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[1-6]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>1234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            8[0-2489]|
-            9[7-9]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>991234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Central African Republic -->
-    <!-- http://www.itu.int/oth/T0202000028/en -->
-    <territory id="CF" countryCode="236" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[278]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2[12]\d{6}</nationalNumberPattern>
-        <exampleNumber>21612345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[0257]\d{6}</nationalNumberPattern>
-        <exampleNumber>70012345</exampleNumber>
-      </mobile>
-      <premiumRate>
-        <nationalNumberPattern>8776\d{4}</nationalNumberPattern>
-        <exampleNumber>87761234</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Congo (Rep. of the) (Brazzaville) -->
-    <!-- http://www.itu.int/oth/T020200002E/en -->
-    <territory id="CG" countryCode="242" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[02]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})(\d{4})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[028]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>222[1-589]\d{5}</nationalNumberPattern>
-        <exampleNumber>222123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>0[14-6]\d{7}</nationalNumberPattern>
-        <exampleNumber>061234567</exampleNumber>
-      </mobile>
-      <!-- Referred to as a "Green number" in the telephone plan. -->
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Switzerland -->
-    <!-- http://www.bakom.admin.ch/themen/telekom/00479/00604/index.html?lang=en
-         under Technical prescriptions: Numbering plan for international carriers -->
-    <territory id="CH" countryCode="41" internationalPrefix="00"
-               nationalPrefix="0"  nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([2-9]\d)(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>
-            [2-7]|
-            [89]1
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([89]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            8[047]|
-            90
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[12467]|
-            3[1-4]|
-            4[134]|
-            5[12568]|
-            6[12]|
-            [7-9]1
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[46-9]\d{7}</nationalNumberPattern>
-        <exampleNumber>741234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[016]\d{6}</nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>84[0248]\d{6}</nationalNumberPattern>
-        <exampleNumber>840123456</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>878\d{6}</nationalNumberPattern>
-        <exampleNumber>878123456</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Côte d'Ivoire -->
-    <!-- http://www.itu.int/oth/T0202000031/en -->
-    <territory id="CI" countryCode="225" internationalPrefix="00">
-      <availableFormats>
-        <!-- Using format from online yellow pages over format implied in national numbering plan.
-             -->
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[02-5]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              0[023]|
-              1[02357]|
-              [23][045]|
-              4[03-5]
-            )|
-            3(?:
-              0[06]|
-              1[069]|
-              [2-4][07]|
-              5[09]|
-              6[08]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added the prefix 40 because SMS messages have been successfully delivered. Supported by
-             numbers found on the internet. -->
-        <nationalNumberPattern>
-          (?:
-            0[1-9]|
-            4[04-9]|
-            50|
-            6[067]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>01234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Cook Islands -->
-    <territory id="CK" countryCode="682" internationalPrefix="00"
-               nationalPrefix="00">
-    </territory>
-
-    <!-- Chile -->
-    <!-- http://www.itu.int/oth/T020200002A/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B56 -->
-    <!-- Carriers listed here: http://www.turismochile.com/datos/carrier.php -->
-    <territory id="CL" countryCode="56"
-      internationalPrefix="(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0"
-      nationalPrefix="0"
-      nationalPrefixForParsing="0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))"
-      nationalPrefixFormattingRule="$NP$FG">
-      <!-- When dialling mobile numbers from landlines, or vice versa, you need a prefix of 0, which
-      we strip here. National destinations may be dialled with a carrier if they are not local so
-      we extract these carrier codes as well. -->
-      <availableFormats>
-        <numberFormat pattern="(2)(\d{3})(\d{4})"
-          nationalPrefixFormattingRule="($FG)"
-          carrierCodeFormattingRule="$CC ($FG)">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2,3})(\d{4})"
-          nationalPrefixFormattingRule="($FG)"
-          carrierCodeFormattingRule="$CC ($FG)">
-          <leadingDigits>
-            [357]|
-            4[1-35]|
-            6[13-57]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9)([6-9]\d{3})(\d{4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(44)(\d{3})(\d{4})">
-          <leadingDigits>44</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="([68]00)(\d{3})(\d{3,4})">
-          <leadingDigits>
-            60|
-            8
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(600)(\d{3})(\d{2})(\d{3})">
-          <leadingDigits>60</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(1230)(\d{3})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [2-9]|
-            600|
-            123
-          )\d{7,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2|
-            32|
-            41
-          )\d{7}|
-          (?:
-            3[3-5]|
-            4[235]|
-            5[1-3578]|
-            6[13-57]|
-            7[1-35]
-          )\d{6,7}
-        </nationalNumberPattern>
-        <!-- Area codes do not need to be dialled when dialling within the same area, so the
-             smallest possible number is length 6. -->
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[6-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>961234567</exampleNumber>
-      </mobile>
-      <!-- Toll free and premium rate patterns have been collected by looking at numbers on the
-           internet, rather than from a definitive source. -->
-      <tollFree>
-        <!-- 1230 numbers are used by Visa/Mastercard helplines in Chile -->
-        <nationalNumberPattern>
-          800\d{6}|
-          1230\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,11}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>600\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>6001234567</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>44\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>441234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Cameroon -->
-    <!-- http://www.itu.int/oth/T0202000024/en -->
-    <territory id="CM" countryCode="237" internationalPrefix="00">
-      <availableFormats>
-        <!-- Formatting on the internet is consistently with the first 2 extracted, and usually in
-             the same format as France (all 2 digit groups) so we use this instead of the guidance
-             of the national numbering plan (which has 1 3 2 2 and 4 4 as its two formatting
-             examples.) -->
-        <numberFormat pattern="([237-9]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            [2379]|
-            88
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{2})(\d{3})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[237-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Technically, the numbers are required only to start with a 2 or a 3, but all numbers at
-             the moment start with 22 or 33 since they have been migrated from seven digit numbers
-             beginning with these numbers. This rule should be relaxed if/when we start getting
-             numbers beginning in other ways. -->
-        <nationalNumberPattern>
-          (?:
-            22|
-            33
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[79]\d{7}</nationalNumberPattern>
-        <exampleNumber>71234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- These numbers are listed as value-added in the guide, and in practice seem to begin
-             with 88 (usually 880). No information can be found as to whether these are premium rate
-             or shared cost. -->
-        <nationalNumberPattern>88\d{6}</nationalNumberPattern>
-        <exampleNumber>88012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- China -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200002B0001XLSE.xls -->
-    <territory id="CN" countryCode="86" internationalPrefix="00"
-               nationalPrefix="0">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(80\d{2})(\d{4})">
-          <leadingDigits>80[2678]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([48]00)(\d{3})(\d{4})">
-          <leadingDigits>[48]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Local numbers -->
-        <!-- Chinese fixed-line numbers can be dialed from a cell phone without area code and they
-             can be 7 to 8 digits. This rule is here to make formatting work with such numbers, as
-             people frequently store them in their cellphones. It has to stay before formatting
-             rules for fixed-line numbers to make AsYouTypeFormatter work with these numbers. The
-             leadingDigits prefix makes sure it doesn't clash with mobile numbers. -->
-        <numberFormat pattern="(\d{3,4})(\d{4})">
-          <leadingDigits>[2-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(21)(\d{4})(\d{4,6})">
-          <leadingDigits>21</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([12]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            10[1-9]|
-            2[02-9]
-          </leadingDigits>
-          <!-- Note the leadingDigitsPattern for 4 digits is the same as 3 digits, -->
-          <leadingDigits>
-            10[1-9]|
-            2[02-9]
-          </leadingDigits>
-          <leadingDigits>
-            10(?:
-              [1-79]|
-              8(?:
-                [1-9]|
-                0[1-9]
-              )
-            )|
-            2[02-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(\d{3})(\d{4})(\d{4})">
-          <leadingDigits>
-            3(?:
-              11|
-              7[159]
-            )|
-            4[135]1|
-            5(?:
-              1|
-              2[37]|
-              3[12]|
-              7[13-79]|
-              9[15]
-            )|
-            7(?:
-              31|
-              5[457]|
-              6[09]
-            )|
-            898
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            3(?:
-              1[02-9]|
-              35|
-              49|
-              5|
-              7[02-68]|
-              9[1-68]
-            )|
-            4(?:
-              1[02-9]|
-              2[179]|
-              [35][2-9]|
-              6[4789]|
-              7[0-46-9]|
-              8[23]
-            )|
-            5(?:
-              3[03-9]|
-              4[36]|
-              5|
-              6[1-6]|
-              7[028]|
-              80|
-              9[2-46-9]
-            )|
-            6(?:
-              3[1-5]|
-              6[0238]|
-              9[12]
-            )|
-            7(?:
-              01|
-              [1579]|
-              2[248]|
-              3[04-9]|
-              4[3-6]|
-              6[2368]
-            )|
-            8(?:
-              1[236-8]|
-              2[5-7]|
-              [37]|
-              5[1-9]|
-              8[3678]|
-              9[1-7]
-            )|
-            9(?:
-              0[1-3689]|
-              1[1-79]|
-              [379]|
-              4[13]|
-              5[1-5]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(1[3-58]\d)(\d{4})(\d{4})">
-          <leadingDigits>1[3-58]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(10800)(\d{3})(\d{4})">
-          <leadingDigits>108</leadingDigits>
-          <leadingDigits>1080</leadingDigits>
-          <leadingDigits>10800</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(21)(\d{4})(\d{4,6})">
-          <leadingDigits>21</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="([12]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            10[1-9]|
-            2[02-9]
-          </leadingDigits>
-          <!-- Note the leadingDigitsPattern for 4 digits is the same as 3 digits, -->
-          <leadingDigits>
-            10[1-9]|
-            2[02-9]
-          </leadingDigits>
-          <leadingDigits>
-            10(?:
-              [1-79]|
-              8(?:
-                [1-9]|
-                0[1-9]
-              )
-            )|
-            2[02-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(80\d{2})(\d{4})">
-          <leadingDigits>80[2678]</leadingDigits>
-          <format>$1 $2</format>
-        </intlNumberFormat>
-        <intlNumberFormat
-          pattern="(\d{3})(\d{4})(\d{4})">
-          <leadingDigits>
-            3(?:
-              11|
-              7[159]
-            )|
-            4[135]1|
-            5(?:
-              1|
-              2[37]|
-              3[12]|
-              7[13-79]|
-              9[15]
-            )|
-            7(?:
-              31|
-              5[457]|
-              6[09]
-            )|
-            898
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat
-          pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            3(?:
-              1[02-9]|
-              35|
-              49|
-              5|
-              7[02-68]|
-              9[1-68]
-            )|
-            4(?:
-              1[02-9]|
-              2[179]|
-              [35][2-9]|
-              6[4789]|
-              7[0-46-9]|
-              8[23]
-            )|
-            5(?:
-              3[03-9]|
-              4[36]|
-              5|
-              6[1-6]|
-              7[028]|
-              80|
-              9[2-46-9]
-            )|
-            6(?:
-              3[1-5]|
-              6[0238]|
-              9[12]
-            )|
-            7(?:
-              01|
-              [1579]|
-              2[248]|
-              3[04-9]|
-              4[3-6]|
-              6[2368]
-            )|
-            8(?:
-              1[236-8]|
-              2[5-7]|
-              [37]|
-              5[1-9]|
-              8[3678]|
-              9[1-7]
-            )|
-            9(?:
-              0[1-3689]|
-              1[1-79]|
-              [379]|
-              4[13]|
-              5[1-5]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(1[3-58]\d)(\d{4})(\d{4})">
-          <leadingDigits>1[3-58]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="([48]00)(\d{3})(\d{4})">
-          <leadingDigits>[48]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(10800)(\d{3})(\d{4})">
-          <leadingDigits>108</leadingDigits>
-          <leadingDigits>1080</leadingDigits>
-          <leadingDigits>10800</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-79]\d{7,11}|
-          8[0-357-9]\d{6,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          21\d{8,10}|
-          (?:
-            10|
-            2[02-57-9]|
-            3(?:
-              11|
-              7[159]
-            )|
-            4[135]1|
-            5(?:
-              1\d|
-              2[37]|
-              3[12]|
-              7[13-79]|
-              9[15]
-            )|
-            7(?:
-              31|
-              5[457]|
-              6[09]
-            )|
-            898
-          )\d{8}|
-          (?:
-            3(?:
-              1[02-9]|
-              35|
-              49|
-              5\d|
-              7[02-68]|
-              9[1-68]
-            )|
-            4(?:
-              1[02-9]|
-              2[179]|
-              [35][2-9]|
-              6[4789]|
-              7[0-46-9]|
-              8[23]
-            )|
-            5(?:
-              3[03-9]|
-              4[36]|
-              5\d|
-              6[1-6]|
-              7[028]|
-              80|
-              9[2-46-9]
-            )|
-            6(?:
-              3[1-5]|
-              6[0238]|
-              9[12]
-            )|
-            7(?:
-              01|
-              [1579]\d|
-              2[248]|
-              3[04-9]|
-              4[3-6]|
-              6[2368]
-            )|
-            8(?:
-              1[236-8]|
-              2[5-7]|
-              [37]\d|
-              5[1-9]|
-              8[3678]|
-              9[1-7]
-            )|
-            9(?:
-              0[1-3689]|
-              1[1-79]|
-              [379]\d|
-              4[13]|
-              5[1-5]
-            )
-          )\d{7}|
-          80(?:
-            29|
-            6[03578]|
-            7[018]|
-            81
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>1012345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          1(?:
-            3[0-9]|
-            47|
-            5[0135689]|
-            8[05-9]
-          )\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>13123456789</exampleNumber>
-      </mobile>
-      <!-- Toll free, premium rate, and VoIP numbers are not clearly defined in the official Chinese
-           number plan, and do not seem to have been standardized. The information below is
-           collected from searching the web. -->
-      <!-- http://en.wikipedia.org/wiki/Toll-free_telephone_number -->
-      <tollFree>
-        <nationalNumberPattern>
-          (?:
-            10
-          )?800\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10,12}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>16[08]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>16812345</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>400\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>4001234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Colombia -->
-    <!-- http://www.itu.int/oth/T020200002C/en
-         http://en.wikipedia.org/wiki/Telephone_numbers_in_Colombia -->
-    <territory id="CO" countryCode="57" internationalPrefix="00[579]|#555|#999"
-               nationalPrefix="0" nationalPrefixForParsing="0([3579]|4(?:44|56))">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{7})" carrierCodeFormattingRule="$NP$CC $FG"
-          nationalPrefixFormattingRule="($FG)">
-          <leadingDigits>
-            1(?:
-              8[2-9]|
-              9[0-3]|
-              [2-7]
-            )|
-            [24-8]
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              8[2-9]|
-              9(?:
-                09|
-                [1-3]
-              )|
-              [2-7]
-            )|
-            [24-8]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d)(\d{7})">
-          <leadingDigits>
-            1(?:
-              8[2-9]|
-              9[0-3]|
-              [2-7]
-            )|
-            [24-8]
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              8[2-9]|
-              9(?:
-                09|
-                [1-3]
-              )|
-              [2-7]
-            )|
-            [24-8]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{3})(\d{7})" carrierCodeFormattingRule="$NP$CC $FG">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{7})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(1)(\d{3})(\d{7})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>
-            1(?:
-              80|
-              9[04]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              800|
-              9(?:
-                0[01]|
-                4[78]
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(1)(\d{3})(\d{7})">
-          <leadingDigits>
-            1(?:
-              80|
-              9[04]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              800|
-              9(?:
-                0[01]|
-                4[78]
-              )
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [13]\d{0,3}|
-            [24-8]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[124-8][2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          3(?:
-            0[0-24]|
-            1[0-8]|
-            2[01]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>3211234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>18001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          19(?:
-            0[01]|
-            4[78]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>19001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Costa Rica -->
-    <!-- http://www.itu.int/oth/T0202000030/en -->
-    <territory id="CR" countryCode="506" internationalPrefix="00"
-      nationalPrefixForParsing="(1900)" carrierCodeFormattingRule="$CC $FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>
-            [24]|
-            8[389]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[89]0</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2489]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2[24-7]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>8[389]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>83123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- Includes "mass calls" numbers with prefix 905. -->
-        <nationalNumberPattern>90[059]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>4000\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>40001234</exampleNumber>
-      </voip>
-      <shortCode>
-        <!-- This pattern excludes 4-digit SMS content numbers for now. -->
-        <nationalNumberPattern>
-          1(?:
-            02[2-469]|
-            1(?:
-              1[0235-9]|
-              2|
-              37|
-              46|
-              75|
-              8[79]|
-              9[0-379]
-            )|
-            212)
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,4}</possibleNumberPattern>
-        <exampleNumber>1022</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Cuba -->
-    <!-- www.itu.int/oth/T0202000033/en -->
-    <territory id="CU" countryCode="53" internationalPrefix="119"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{6,7})">
-          <leadingDigits>7</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{4,6})">
-          <leadingDigits>[2-4]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{7})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-57]\d{5,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2[1-4]\d{5,6}|
-          3(?:
-            1\d{6}|
-            [23]\d{4,6})|
-          4(?:
-            [125]\d{5,6}|
-            [36]\d{6}|
-            [78]\d{4,6})|
-          7\d{6,7}
-        </nationalNumberPattern>
-        <exampleNumber>71234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>5\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>51234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Cape Verde -->
-    <!-- http://www.itu.int/oth/T0202000026/en -->
-    <territory id="CV" countryCode="238" internationalPrefix="0">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{2})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[259]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            2[1-7]|
-            3[0-8]|
-            4[12]|
-            5[1256]|
-            6\d|
-            7[1-3]|
-            8[1-5]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2211234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- It seems, contrary to their numbering plan, the entire 9X range is used for mobile
-             phones. SMS messages has been successfully sent to numbers starting with 95 and 97 for
-             example, and there are plenty of numbers on the internet that start with these
-             prefixes. -->
-        <nationalNumberPattern>
-          (?:
-            9\d|
-            59
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>9911234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Cyprus -->
-    <!-- http://www.itu.int/oth/T0202000034/en -->
-    <territory id="CY" countryCode="357" internationalPrefix="00">
-      <availableFormats>
-        <!-- Format from http://www.cyprusyellowpages.com/-->
-        <numberFormat pattern="([27-9]\d)(\d{6})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[27-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2[2-6]\d{6}</nationalNumberPattern>
-        <exampleNumber>22345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Universal Access Service numbers (7777 xxxx) are included here, as they are classified
-             as Mobile in the Cyprus national numbering plan. -->
-        <nationalNumberPattern>
-          7777\d{4}|
-          9(?:
-            [69]\d|
-            7[67]
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>96123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>8000\d{4}</nationalNumberPattern>
-        <exampleNumber>80001234</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>9009\d{4}</nationalNumberPattern>
-        <exampleNumber>90091234</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>700\d{5}</nationalNumberPattern>
-        <exampleNumber>70012345</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Czech Rep. -->
-    <!-- http://www.itu.int/oth/T0202000035/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B420 -->
-    <territory id="CZ" countryCode="420" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([2-9]\d{2})(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2\d{8}|
-          (?:
-            3[1257-9]|
-            4[16-9]|
-            5[13-9]
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          60[1-8]\d{6}|
-          7[2379]\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>601123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[0689]\d{6}</nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>8[134]\d{7}</nationalNumberPattern>
-        <exampleNumber>811234567</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70[01]\d{6}</nationalNumberPattern>
-        <exampleNumber>700123456</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Germany -->
-    <!-- http://www.itu.int/oth/T0202000051/en -->
-    <territory id="DE" countryCode="49" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4,11})">
-          <leadingDigits>
-            3[02]|
-            40|
-            [68]9
-          </leadingDigits>
-          <format>$1/$2</format>
-        </numberFormat>
-        <!-- The order of the rules on 3-5 digits area code matter as fallback is used here. -->
-        <!-- 3 digit area codes. -->
-        <numberFormat pattern="(\d{3})(\d{3,10})">
-          <leadingDigits>
-            2(?:
-              \d1|
-              0[2389]|
-              1[24]|
-              28|
-              34
-            )|
-            3(?:
-              [3-9][15]|
-              40
-            )|
-            [4-8][1-9]1|
-            9(?:
-              06|
-              [1-9]1
-            )
-          </leadingDigits>
-          <format>$1/$2</format>
-        </numberFormat>
-        <!-- 4 digit area codes. -->
-        <numberFormat pattern="(\d{4})(\d{2,8})">
-          <leadingDigits>
-            [24-6]|
-            [7-9](?:
-              \d[1-9]|
-              [1-9]\d
-            )|
-            3(?:
-              [3569][02-46-9]|
-              4[2-4679]|
-              7[2-467]|
-              8[2-46-8]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            [24-6]|
-            [7-9](?:
-              \d[1-9]|
-              [1-9]\d
-            )|
-            3(?:
-              3(?:
-                0[1-467]|
-                2[127-9]|
-                3[124578]|
-                [46][1246]|
-                7[1257-9]|
-                8[1256]|
-                9[145]
-              )|
-              4(?:
-                2[135]|
-                3[1357]|
-                4[13578]|
-                6[1246]|
-                7[1356]|
-                9[1346]
-              )|
-              5(?:
-                0[14]|
-                2[1-3589]|
-                3[1357]|
-                4[1246]|
-                6[1-4]|
-                7[1346]|
-                8[13568]|
-                9[1246]
-              )|
-              6(?:
-                0[356]|
-                2[1-489]|
-                3[124-6]|
-                4[1347]|
-                6[13]|
-                7[12579]|
-                8[1-356]|
-                9[135]
-              )|
-              7(?:
-                2[1-7]|
-                3[1357]|
-                4[145]|
-                6[1-5]|
-                7[1-4]
-              )|
-              8(?:
-                21|
-                3[1468]|
-                4[1347]|
-                6[0135-9]|
-                7[1467]|
-                8[136]
-              )|
-              9(?:
-                0[12479]|
-                2[1358]|
-                3[1357]|
-                4[134679]|
-                6[1-9]|
-                7[136]|
-                8[147]|
-                9[1468]
-              )
-            )
-          </leadingDigits>
-          <format>$1/$2</format>
-        </numberFormat>
-        <!-- 5 digit area codes. -->
-        <numberFormat pattern="(\d{5})(\d{1,6})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1/$2</format>
-        </numberFormat>
-        <!-- http://www.t-mobile.de/servicehotlines/0,13401,17660-_,00.html -->
-        <numberFormat pattern="([18]\d{2})(\d{7,9})">
-          <leadingDigits>
-            1[5-7]|
-            800
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d)(\d{4,10})">
-          <leadingDigits>
-            (?:
-              18|
-              90
-            )0
-          </leadingDigits>
-          <leadingDigits>
-            180|
-            900[1359]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(700)(\d{4})(\d{4})">
-          <leadingDigits>700</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- When deciding whether to assume a leading 49 is a country code or not, the number is
-             examined to see if it is valid with the 49 as part of the number. Due to the variable
-             length of German numbers, this test is hard to do. The national pattern is hence
-             stricter for numbers starting with 49, to try and remove the country code if the number
-             begins with 49 whenever possible. -->
-        <nationalNumberPattern>
-          [1-35-9]\d{3,13}|
-          4(?:
-            [0-8]\d{4,12}|
-            9(?:
-              4[1-8]|
-              [0-35-7]\d
-            )\d{2,7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{2,14}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The numbering plan defines rather optimistic longest-number limits - online numbers
-             don't seem to respect this. The max-length is hence extended. -->
-        <nationalNumberPattern>
-          [246]\d{5,13}|
-          3(?:
-            [03-9]\d{4,11}|
-            2\d{9}
-          )|
-          5(?:
-            0[2-8]|
-            [38][0-8]|
-            [124-6]\d|
-            [79][0-7]
-          )\d{3,10}|
-          7(?:
-            0[2-8]|
-            [1-9]\d
-          )\d{3,10}|
-          8(?:
-            0[2-9]|
-            [1-9]\d
-          )\d{3,10}|
-          9(?:
-            0[6-9]|
-            [1-9]\d
-          )\d{3,10}
-        </nationalNumberPattern>
-        <exampleNumber>30123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Note: 8 digit numbers seem to be available for prefix 176 now,
-        although no official documentation can be found, according to user
-        bug-reports. -->
-        <nationalNumberPattern>
-          1(?:
-            5\d{9}|
-            7(?:
-              [0-57-9]|
-              6\d
-            )\d{7}|
-            6(?:
-              [02]\d{7,8}|
-              3\d{7}
-            )
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>15123456789</exampleNumber>
-      </mobile>
-      <pager>
-        <nationalNumberPattern>
-          16(?:
-            4\d{1,10}|
-            [89]\d{1,11}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,14}</possibleNumberPattern>
-        <exampleNumber>16412345</exampleNumber>
-      </pager>
-      <tollFree>
-        <nationalNumberPattern>800\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,12}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          900(?:
-            [135]\d{6}|
-            9\d{7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <!-- See bug 1683119 for a discussion about maximum number lengths. -->
-        <nationalNumberPattern>180\d{5,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,14}</possibleNumberPattern>
-        <exampleNumber>18012345</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>700\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>70012345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Djibouti -->
-    <!-- http://www.itu.int/oth/T020200003A/en -->
-    <territory id="DJ" countryCode="253" internationalPrefix="00">
-      <availableFormats>
-        <!-- The number format here is suggested in the plan and used online,
-        although the phone numbers of the national numbering authority itself on
-        the plan do not follow this. -->
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-8]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes "Numéro long CDMA fixe" numbers starting with the digit 5. -->
-        <nationalNumberPattern>
-          (?:
-            1[05]|
-            [2-5]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>251234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[6-8]\d{5}</nationalNumberPattern>
-        <exampleNumber>601234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Denmark -->
-    <!-- http://en.itst.dk/telecom-internet-regulation/numbering-issues/numbering-lists -->
-    <territory id="DK" countryCode="45" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([1-9]\d)(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3[2-9]|
-            4[3-9]|
-            5[4-9]|
-            6[2-9]|
-            7[02-9]|
-            8[26-9]|
-            9[6-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>32123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- There are some overlaps for some number prefixes - the plan says that they are 'mainly'
-             used for a certain type of number. -->
-        <nationalNumberPattern>
-          (?:
-            2[0-9]|
-            3[0-2]|
-            4[0-2]|
-            5[0-3]|
-            6[01]|
-            7[12]|
-            81|
-            99
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>20123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{6}</nationalNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Dominica -->
-    <!-- http://www.itu.int/oth/T020200003B/en -->
-    <territory id="DM" countryCode="1" leadingDigits="767"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[7-9]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          767(?:
-            2(?:
-              55|
-              66
-            )|
-            4(?:
-              2[01]|
-              4[0-25-9]
-            )|
-            50[0-4]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>7674201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          767(?:
-            2(?:
-              [2346]5|
-              7[5-7]
-            )|
-            31[5-7]|
-            61[4-6]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7672251234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Dominican Rep. -->
-    <!-- http://www.itu.int/oth/T020200003C/en -->
-    <territory id="DO" countryCode="1" leadingDigits="8[024]9"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[89]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- We could be more detailed here, as the metadata contains information about some of the
-             mobile/fixed-line prefixes, but the data is incomplete, so we restrict ourselves to a
-             more generic rule for now. -->
-        <nationalNumberPattern>8[024]9[2-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>8092345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>8[024]9[2-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>8092345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Algeria -->
-    <!-- http://www.itu.int/oth/T0202000003/en -->
-    <!-- www.arpt.dz -->
-    <territory id="DZ" countryCode="213" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formatting from www.pagesjaunes-dz.com. -->
-        <numberFormat pattern="([1-4]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[1-4]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([5-8]\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[5-8]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(9\d)(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [1-4]|
-            [5-9]\d
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- We include the VSAT lines here. -->
-        <nationalNumberPattern>
-          (?:
-            1\d|
-            2[014-79]|
-            3[0-8]|
-            4[0135689]
-          )\d{6}|
-          9619\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5[56]|
-            6[69]|
-            7[79]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>551234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>80[3-689]1\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>808123456</exampleNumber>
-      </premiumRate>
-      <!-- The Algerian plan doesn't specify where the costs start to be considered "premium", so we
-           draw an arbitrary line here and say that from 50 Da up they will be considered premium.
-           -->
-      <sharedCost>
-        <nationalNumberPattern>80[12]1\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>801123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>98[23]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>983123456</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Ecuador -->
-    <!-- http://en.wikipedia.org/wiki/+593 -->
-    <!-- http://www.conatel.gov.ec -->
-    <!-- http://www.itu.int/oth/T020200003D/en -->
-    <!-- A new plan has been prepared, but no implementation date has yet been stated. -->
-    <territory id="EC" countryCode="593" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>[2-7]</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>[2-7]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3})"
-          nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(1800)(\d{3})(\d{3,4})"
-          nationalPrefixFormattingRule="$FG">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(1800)(\d{3})(\d{3,4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{7}|1\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2-7][2-7]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[89]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>99123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>18001234567</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Estonia -->
-    <!-- http://www.itu.int/oth/T0202000043/en -->
-    <!-- http://www.tja.ee/public/Legislation_side/Numbering_/Estonian_NP_eng.htm -->
-    <territory id="EE" countryCode="372" internationalPrefix="00">
-      <availableFormats>
-        <!-- When 7-digit 70 numbers are phased out, they should be removed from this formatting
-             pattern and only 7[1-9] left. -->
-        <numberFormat pattern="([34-79]\d{2})(\d{4})">
-          <leadingDigits>
-            [3679]|
-            4[3-8]|
-            5(?:
-              [0-2]|
-              5[0-478]|
-              6[45]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            [3679]|
-            4[3-8]|
-            5(?:
-              [02]|
-              1(?:
-                [0-8]|
-                95
-              )|
-              5[0-478]|
-              6(?:
-                4[0-4]|
-                5[1-589]
-              )
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(70)(\d{2})(\d{4})">
-          <leadingDigits>70</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(8000)(\d{3})(\d{3})">
-          <leadingDigits>800</leadingDigits>
-          <leadingDigits>8000</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([458]\d{3})(\d{3,4})">
-          <leadingDigits>
-            40|
-            5|
-            8(?:
-              00|
-              [1-5]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            40|
-            5|
-            8(?:
-              00[1-9]|
-              [1-5]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [3-9]\d{6,7}|
-          800\d{6,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <noInternationalDialling>
-        <nationalNumberPattern>800[2-9]\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>8002123</exampleNumber>
-      </noInternationalDialling>
-      <fixedLine>
-        <!-- Supporting eFax numbers here as well. -->
-        <nationalNumberPattern>
-          (?:
-            3[23589]|
-            4(?:
-              0\d|
-              [3-8]
-            )|
-            6\d|
-            7[1-9]|
-            88
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>3212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 7 digit mobile numbers currently in use with special prefixes are preserved - new
-             numbers are 8 digits. -->
-        <nationalNumberPattern>
-          (?:
-            5\d|
-            8[1-5]
-          )\d{6}|
-          5(?:
-            [02]\d{2}|
-            1(?:
-              [0-8]\d|
-              95
-            )|
-            5[0-478]\d|
-            64[0-4]|
-            65[1-589]
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>51234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          800(?:
-            0\d{3}|
-            1\d|
-            [2-9]
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>9001234</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- The third digit is optional until Jan 1st 2011, when numbers will have been changed to
-             the new 8 digit series. -->
-        <nationalNumberPattern>70[0-2]?\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>70012345</exampleNumber>
-      </personalNumber>
-      <shortCode>
-        <nationalNumberPattern>1[1-9]\d</nationalNumberPattern>
-        <possibleNumberPattern>\d{3}</possibleNumberPattern>
-        <exampleNumber>112</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Egypt -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200003E0001MSWE.doc -->
-    <territory id="EG" countryCode="20" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-       <availableFormats>
-         <!-- Note that no explicit formatting rule is here for 5-digit numbers starting with a 16
-              or 19. These are formatted without national prefix, as a block, so do not need to be
-              listed here. -->
-         <numberFormat pattern="(\d)(\d{7,8})">
-           <leadingDigits>[23]</leadingDigits>
-           <format>$1 $2</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{2})(\d{7})">
-           <leadingDigits>
-             [14-6]|
-             [89][2-9]
-           </leadingDigits>
-           <format>$1 $2</format>
-         </numberFormat>
-         <numberFormat pattern="([89]00)(\d{3})(\d{4})">
-           <leadingDigits>[89]00</leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-       </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          1\d{4,9}|
-          [2-689]\d{7,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Short numbers used for businesses (starting with 16 or 19) are covered here. -->
-        <nationalNumberPattern>
-          (?:
-            1[35][23]|
-            2[23]\d|
-            3\d|
-            4(?:
-              0[2-4]|
-              [578][23]|
-              64
-            )|
-            5(?:
-              0[234]|
-              [57][23]
-            )|
-            6[24-689]3|
-            8(?:
-              [28][2-4]|
-              42|
-              6[23]
-            )|
-            9(?:
-              [25]2|
-              3[24]|
-              6[23]|
-              7[2-4]
-            )
-          )\d{6}|
-          1[69]\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-        <exampleNumber>234567890</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1[0-246-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>101234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Eritrea -->
-    <!-- http://www.itu.int/oth/T0202000042/en -->
-    <territory id="ER" countryCode="291" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[178]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          1(?:
-            1[12568]|
-            20|
-            40|
-            55|
-            6[146]
-          )\d{4}|
-          8\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>8370362</exampleNumber><!-- Test number from plan. -->
-      </fixedLine>
-      <mobile>
-        <!-- It is unclear in the plan whether the 07 mobile prefix superseded the previous 017[1-3]
-             numbers or was in addition to them, so we support both here. -->
-        <nationalNumberPattern>
-          17[1-3]\d{4}|
-          7\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>7123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Spain -->
-    <!-- http://www.mityc.es/telecomunicaciones/es-ES/Servicios/Numeracion/Paginas/Plan.aspx -->
-    <territory id="ES" countryCode="34" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([5-9]\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[5-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[89][1-8]\d{7}</nationalNumberPattern>
-        <exampleNumber>812345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6\d{8}</nationalNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>[89]00\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>80[367]\d{6}</nationalNumberPattern>
-        <exampleNumber>803123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>90[12]\d{6}</nationalNumberPattern>
-        <exampleNumber>901123456</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70\d{7}</nationalNumberPattern>
-        <exampleNumber>701234567</exampleNumber>
-      </personalNumber>
-      <!-- Modelling non-geographic nomadic numbers as UAN. -->
-      <uan>
-        <nationalNumberPattern>51\d{7}</nationalNumberPattern>
-        <exampleNumber>511234567</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Ethiopia -->
-    <!-- http://www.itu.int/oth/T0202000044/en -->
-    <territory id="ET" countryCode="251" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([1-59]\d)(\d{3})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-59]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            11(?:
-              1(?:
-                1[124]|
-                2[2-57]|
-                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-23]|
-                6[5-8]
-              )|
-              5(?:
-                1[57]|
-                44|
-                5[0-4]
-              )|
-              6(?:
-                18|
-                2[69]|
-                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[0-6]|
-                33[0134689]|
-                44[04]|
-                55[0-6]|
-                66[01467]
-              )|
-              4(?:
-                44[0-8]|
-                55[0-69]|
-                66[0-3]|
-                77[1-5]
-              )
-            )|
-            4(?:
-              6(?:
-                22[0-24-7]|
-                33[1-5]|
-                44[13-69]|
-                55[14-689]|
-                660|
-                88[1-4]
-              )|
-              7(?:
-                11[1-9]|
-                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}
-        </nationalNumberPattern>
-        <exampleNumber>111112345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Some additional area codes are permitted here in line with online numbers, namely 91
-             13[4-6], 91 17[2-6], 91 31\d, 91 43[2489]. -->
-        <nationalNumberPattern>
-          91(?:
-            1(?:
-              [146]\d|
-              2[0-5]|
-              3[4-6]|
-              50|
-              7[2-6]|
-              8[46-9]
-            )|
-            31\d|
-            4(?:
-              3[0-2489]|
-              7[0-3]
-            )|
-            5(?:
-              3[23]|
-              7[3-5]
-            )|
-            6(?:
-              58|
-              8[23]
-            )|
-            7(?:
-              5[57]|
-              8[01]
-            )|
-            8(?:
-              3[45]|
-              7[67]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>911123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Finland -->
-    <!-- http://www.ficora.fi/en/index/palvelut/palvelutaiheittain/numerointi/numerotyypitjaalueet.html -->
-    <territory id="FI" countryCode="358" internationalPrefix="00|99[049]"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4,10})">
-          <leadingDigits>
-            2[09]|
-            [14]|
-            50|
-            7[135]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4,11})">
-          <leadingDigits>
-            [25689][1-8]|
-            3
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([6-8]00)(\d{4,7})">
-          <leadingDigits>[6-8]0</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{4,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- This is limited to geographic numbers - non-geographic nationwide
-        subscriber numbers are listed under UAN. -->
-        <nationalNumberPattern>
-          1(?:
-            [35689][1-8]\d{3,9}|
-            [47]\d{5,10}
-          )|
-          2[1-8]\d{3,9}|
-          3(?:
-            [1-8]\d{3,9}|
-            9\d{4,8}
-          )|
-          [5689][1-8]\d{3,9}|
-        </nationalNumberPattern>
-        <exampleNumber>1312345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          4\d{5,10}|
-          50\d{4,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-        <exampleNumber>412345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>[67]00\d{5,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>600123456</exampleNumber>
-      </premiumRate>
-      <uan>
-        <nationalNumberPattern>
-          10[1-9]\d{3,7}|
-          2(?:
-            0(?:
-              [16-8]\d{3,7}|
-              2[14-9]\d{1,6}|
-              [3-5]\d{2,7}|
-              9[0-7]\d{1,6}
-            )|
-            9\d{4,8}
-          )|
-          30[1-9]\d{3,7}|
-          7(?:
-            1\d{7}|
-            3\d{8}|
-            5[03-9]\d{2,7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-        <exampleNumber>10112345</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Fiji -->
-    <territory id="FJ" countryCode="679" internationalPrefix="00">
-    </territory>
-
-    <!-- Falkland Islands (Malvinas) -->
-    <territory id="FK" countryCode="500" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Micronesia, Federated States of -->
-    <territory id="FM" countryCode="691" internationalPrefix="00">
-    </territory>
-
-    <!-- Faroe Islands -->
-    <!-- http://www.itu.int/oth/T0202000047/en -->
-    <territory id="FO" countryCode="298" internationalPrefix="00"
-        nationalPrefixForParsing="(10(?:01|[12]0|88))"
-        carrierCodeFormattingRule="$CC $FG">
-      <!-- All numbers are formatted together, as a block. -->
-      <numberFormat pattern="(\d{6})">
-        <format>$1</format>
-      </numberFormat>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            20|
-            [3-4]\d|
-            8[19]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            2[1-9]|
-            5\d|
-            7[1-79]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>211234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[257-9]\d{3}</nationalNumberPattern>
-        <exampleNumber>802123</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          90(?:
-            [1345][15-7]|
-            2[125-7]|
-            99
-            )\d{2}
-        </nationalNumberPattern>
-        <exampleNumber>901123</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>
-          (?:
-            6[0-36]|
-            88
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>601234</exampleNumber>
-      </voip>
-      <shortCode>
-        <!-- Includes special numbers, special services and universal services.  -->
-        <nationalNumberPattern>
-          1(?:
-            1[248]|
-            4[124]\d|
-            71\d|
-            8[7-9]\d
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,4}</possibleNumberPattern>
-        <exampleNumber>211234</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- France -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T020200004A0001MSWE.doc -->
-    <!-- http://www.arcep.fr/index.php?id=8146 -->
-    <!-- http://en.wikipedia.org/wiki/%2B33 -->
-    <territory id="FR" countryCode="33" internationalPrefix="[04579]0"
-      preferredInternationalPrefix="00"
-      nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([1-79])(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[1-79]</leadingDigits>
-          <format>$1 $2 $3 $4 $5</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP $FG"
-          pattern="(8\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[1-5]\d{8}</nationalNumberPattern>
-        <exampleNumber>123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          6\d{8}|
-          7[5-9]\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>89[1-37-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>891123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            1[019]|
-            2[0156]|
-            84|
-            90
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>810123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>9\d{8}</nationalNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Gabon -->
-    <!-- http://www.itu.int/oth/T020200004E/en -->
-    <territory id="GA" countryCode="241" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[4-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(0\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>0</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [4-9]\d{5}|
-          0\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            4(?:
-              [04-8]\d|
-              2[04]
-            )|
-            (?:
-              5[04-689]|
-              6[024-9]|
-              7\d|
-              8[236]|
-              9[02368]
-            )\d
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>441234</exampleNumber>
-      </fixedLine>
-      <!-- The leading zero here is supposed to be temporary - at a later date,
-      Gabon intends to have a 0 as their national prefix for all numbers
-      instead. -->
-      <!-- http://www.wtng.info/wtng-241-ga.html was used as the basis for the acceptable prefixes,
-           with some supplementary prefixes added from internet research. There is supposedly a
-           resource on mobile prefixes on the Gabon Telecom website, but the site (www.ogooue.ga)
-           doesn't seem to work and no alternative can be found. Extra prefixes added: 07 12, 07 13,
-           06 71, 07 33, 07 [67]\d -->
-      <mobile>
-        <nationalNumberPattern>
-          0(?:
-            5(?:
-              0[89]|
-              3[0-4]|
-              8[0-26]|
-              9[238]
-            )|
-            6(?:
-              0[3-7]|
-              1[01]|
-              2[0-7]|
-              6[0-589]|
-              71|
-              83|
-              9[57]
-            )|
-            7(?:
-              1[2-5]|
-              2[89]|
-              3[35-9]|
-              4[01]|
-              5[0-347-9]|
-              [67]\d|
-              8[457-9]|
-              9[0146]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>06031234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- United Kingdom -->
-    <!-- http://stakeholders.ofcom.org.uk/telecoms/numbering/ -->
-    <!-- http://en.wikipedia.org/wiki/List_of_United_Kingdom_dialling_codes -->
-    <!-- http://www.numberingplans.com/?page=dialling&sub=areacodes&ac=GB -->
-    <!-- Note that this excludes Isle of Man, Jersey and Guernsey prefixes for the purposes of
-         validation, although the formatting rules are shared. -->
-    <territory id="GB" countryCode="44" internationalPrefix="00"
-               nationalPrefix="0" preferredExtnPrefix=" x" nationalPrefixFormattingRule="$NP$FG"
-               mainCountryForCode="true">
-      <availableFormats>
-        <!-- 2d, 55, 56, 70, 76 with 10 digits. -->
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>
-            2|
-            5[56]|
-            7[06]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 11d, 1d1, 3dd, 9dd with 10 digits. -->
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            1(?:
-              1|
-              \d1
-            )|
-            3|
-            9[018]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 1dddd with 9 or 10 digits.
-             These area codes are very rare in GB, and are only available in the following places:
-             13873(Langholm), 15242(Hornby), 15394(Hawkshead), 15395(Grange-over-Sands),
-             15396(Sedbergh), 16973(Wigton), 16974(Raughton Head), 16977(Brampton),
-             17683(Appleby), 17684(Pooley Bridge), 17687(Keswick), 19467(Gosforth). -->
-        <numberFormat pattern="(\d{5})(\d{4,5})">
-          <leadingDigits>
-            1(?:
-              38|
-              5[23]|
-              69|
-              76|
-              94
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              387|
-              5(?:
-                24|
-                39
-              )|
-              697|
-              768|
-              946
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              3873|
-              5(?:
-                242|
-                39[456]
-              )|
-              697[347]|
-              768[347]|
-              9467
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- 1ddd with 9 or 10 digits. -->
-        <numberFormat pattern="(1\d{3})(\d{5,6})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- 7ddd (not 70, 76) with 10 digits. -->
-        <numberFormat pattern="(7\d{3})(\d{6})">
-          <leadingDigits>7[1-5789]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- 800 1111 : UK ChildLine. -->
-        <numberFormat pattern="(800)(\d{4})">
-          <leadingDigits>800</leadingDigits>
-          <leadingDigits>8001</leadingDigits>
-          <leadingDigits>80011</leadingDigits>
-          <leadingDigits>800111</leadingDigits>
-          <leadingDigits>8001111</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- 845 46 47 : UK NHS Direct. -->
-        <numberFormat pattern="(845)(46)(4\d)">
-          <leadingDigits>845</leadingDigits>
-          <leadingDigits>8454</leadingDigits>
-          <leadingDigits>84546</leadingDigits>
-          <leadingDigits>845464</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 84d, 87d with 10 digits. -->
-        <numberFormat pattern="(8\d{2})(\d{3})(\d{4})">
-          <leadingDigits>
-            8(?:
-              4[2-5]|
-              7[0-3]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 80d (including 800) with 10 digits. -->
-        <numberFormat pattern="(80\d)(\d{3})(\d{4})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 500, 800 with 9 digits. -->
-        <numberFormat pattern="([58]00)(\d{6})">
-          <leadingDigits>[58]00</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{7,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <areaCodeOptional>
-        <!-- These are a subset of the fixed-line rules, with digits 2-9 as the leading digit of the
-             subscriber number. There are patterns for 2+8, 3+7 and a combined pattern for all
-             4+6/4+5 and 5+5/5+4 numbers. Note that numbers matching this pattern are not
-             necessarily valid numbers. -->
-        <nationalNumberPattern>
-          2\d[2-9]\d{7}|
-          1(?:
-            1\d|
-            \d1
-          )[2-9]\d{6}|
-          1(?:
-            [248][02-9]\d[2-9]\d{4,5}|
-            (?:
-              3(?:
-                [02-79]\d|
-                8[0-69]
-              )|
-              5(?:
-                [04-9]\d|
-                2[0-35-9]|
-                3[0-8]
-              )|
-              6(?:
-                [02-8]\d|
-                9[0-689]
-              )|
-              7(?:
-                [02-5789]\d|
-                6[0-79]
-              )|
-              9(?:
-                [0235-9]\d|
-                4[0-5789]
-              )
-            )[2-9]\d{4,5}|
-            (?:
-              387(?:
-                3[2-9]|
-                [24-9]\d
-              )|
-              5(?:
-                24(?:
-                  2[2-9]|
-                  [3-9]\d
-                )|
-                39(?:
-                  [4-6][2-9]|
-                  [237-9]\d
-                )
-              )|
-              697(?:
-                [347][2-9]|
-                [25689]\d
-              )|
-              768(?:
-                [347][2-9]|
-                [25679]\d
-              )|
-              946(?:
-                7[2-9]|
-                [2-689]\d
-              )
-            )\d{3,4}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>1332456789</exampleNumber>
-      </areaCodeOptional>
-      <fixedLine>
-        <!-- http://en.wikipedia.org/wiki/List_of_United_Kingdom_dialling_codes -->
-        <!-- Pattern matches geographic NSN=10 numbers as follows:
-             - area code and local number first digit for 2+8,
-             - area code and local number first digit for 3+7,
-             - area code only for 4+6 (including areas with embedded 5+5).
-             Pattern matches geographic NSN=9 numbers as follows:
-             - area code and local number first two digits for 4+5,
-             - area code and local number first three digits for 4+5 special case (01768) 88Ddd,
-             - area code and local number first digit for 5+4 special case (016977) Dddd.
-             All patterns exclude ranges used in GG, IM, JE. -->
-        <nationalNumberPattern>
-          2(?:
-            0[01378]|
-            3[0189]|
-            4[017]|
-            8[0-46-9]|
-            9[012]
-          )\d{7}|
-          1(?:
-            (?:1
-              (?:3[0-48]|
-                 [46][0-4]|
-                 5[012789]|
-                 7[0-39]|
-                 8[01349]
-              )|
-              21[0-7]|
-              31[0-8]|
-              [459]1\d|
-              61[0-46-9]
-            )
-          )\d{6}|
-          1(?:
-            2(?:
-              0[024-9]|
-              2[3-9]|
-              3[3-79]|
-              4[1-689]|
-              [58][02-9]|
-              6[0-4789]|
-              7[013-9]|
-              9\d
-            )|
-            3(?:
-              0\d|
-              [25][02-9]|
-              3[02-579]|
-              [468][0-46-9]|
-              7[1235679]|
-              9[24578]
-            )|
-            4(?:
-              0[03-9]|
-              [28][02-5789]|
-              [37]\d|
-              4[02-69]|
-              5[0-8]|
-              [69][0-79]
-            )|
-            5(?:
-              0[1235-9]|
-              2[024-9]|
-              3[015689]|
-              4[02-9]|
-              5[03-9]|
-              6\d|
-              7[0-35-9]|
-              8[0-468]|
-              9[0-5789]
-            )|
-            6(?:
-              0[034689]|
-              2[0-35689]|
-              [38][013-9]|
-              4[1-467]|
-              5[0-69]|
-              6[13-9]|
-              7[0-8]|
-              9[0124578]
-            )|
-            7(?:
-              0[0246-9]|
-              2\d|
-              3[023678]|
-              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-5789]|
-              3[02-578]|
-              4[0-578]|
-              5[124-9]|
-              6[2-69]|
-              7\d|
-              8[02-9]|
-              9[02569]
-            )|
-            9(?:
-              0[02-589]|
-              2[02-689]|
-              3[1-5789]|
-              4[2-9]|
-              5[0-579]|
-              6[234789]|
-              7[0124578]|
-              8\d|
-              9[2-57]
-            )
-          )\d{6}|
-          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-4789]|
-                  8[345]
-                )
-              )
-            )|
-            3(?:
-              638[2-5]|
-              647[23]|
-              8(?:
-                47[04-9]|
-                64[015789]
-              )
-            )|
-            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[123]
-              )
-            )|
-            5(?:
-              24(?:
-                3[2-79]|
-                6\d
-              )|
-              276\d|
-              6(?:
-                26[06-9]|
-                686
-              )
-            )|
-            6(?:
-              06(?:
-                4\d|
-                7[4-79]
-              )|
-              295[567]|
-              35[34]\d|
-              47(?:
-                24|
-                61
-              )|
-              59(?:
-                5[08]|
-                6[67]|
-                74
-              )|
-              955[0-4]
-            )|
-            7(?:
-              26(?:
-                6[13-9]|
-                7[0-7]
-              )|
-              442\d|
-              50(?:
-                2[0-3]|
-                [3-68]2|
-                76
-              )
-            )|
-            8(?:
-              27[56]\d|
-              37(?:
-                5[2-5]|
-                8[239]
-              )|
-              84(?:
-                3[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}|
-          176888[234678]\d{2}|
-          16977[23]\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>1212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- http://stakeholders.ofcom.org.uk/telecoms/numbering/telephone-no-availability/numbers-administered/
-             7100-7599, 7700-7999 with 10 digits; excluding ranges used in GG, IM, JE. -->
-        <nationalNumberPattern>
-          7(?:
-            [1-4]\d\d|
-            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(?:
-              [04-9]\d|
-              1[02-9]|
-              2[0135-9]|
-              3[0-689]
-            )
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7400123456</exampleNumber>
-      </mobile>
-      <pager>
-        <!-- 76 with 10 digits; excluding ranges used in IM. -->
-        <nationalNumberPattern>
-          76(?:
-            0[012]|
-            2[356]|
-            4[0134]|
-            5[49]|
-            6[0-369]|
-            77|
-            81|
-            9[39]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7640123456</exampleNumber>
-      </pager>
-      <!-- Source for non geographic numbers:
-           http://en.wikipedia.org/wiki/Non-geographical_telephone_numbers_in_the_UK -->
-      <tollFree>
-        <!-- 800 1111 with 7 digits, 800 with 9 or 10 digits, 808 with 10 digits, 500 with 9 digits. -->
-        <nationalNumberPattern>
-          80(?:
-            0(?:
-              1111|
-              \d{6,7}
-            )|
-            8\d{7}
-          )|
-          500\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}(?:\d{2,3})?</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- 871, 872, 873 with 10 digits are now Controlled Premium Rate Services, so are listed
-             here as well as 900-909, 910-919, 980-983 with 10 digits. -->
-        <nationalNumberPattern>
-          (?:
-            87[123]|
-            9(?:
-              [01]\d|
-              8[0-3]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9012345678</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <!-- Using shared cost to deal with the various revenue sharing number prefixes in the
-             United Kingdom: 845 46 47 with 7 digits, 842-845, 870 with 10 digits. -->
-        <nationalNumberPattern>
-          8(?:
-            4(?:
-              5464\d|
-              [2-5]\d{7}
-            )|
-            70\d{7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern>
-        <exampleNumber>8431234567</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <!-- 70 with 10 digits. -->
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <!-- 56 with 10 digits. -->
-        <nationalNumberPattern>56\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5612345678</exampleNumber>
-      </voip>
-      <uan>
-        <!-- 30d, 33d, 34d, 37d, 55 with 10 digits. -->
-        <nationalNumberPattern>
-          (?:
-            3[0347]|
-            55
-          )\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5512345678</exampleNumber>
-      </uan>
-      <shortCode>
-        <!-- This is a list of the ones that can be called. -->
-        <nationalNumberPattern>
-          1(?:
-            0[01]|
-            1(?:
-              [12]|
-              [68]\d{3}
-            )|
-            2[123]|
-            33|
-            4(?:
-              1|
-              7\d
-            )|
-            5\d|
-            70\d|
-            800\d|
-            9[15]
-          )|
-          2(?:
-            02|
-            2(?:
-              02|
-              11|
-              2
-            )|
-            3(?:
-              02|
-              45
-            )
-            425
-          )|
-          3[13]3|
-          4(?:
-            0[02]|
-            35[01]|
-            44[45]|
-            5\d
-          )|
-          650|
-          789|
-          9(?:
-            01|
-            99
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,6}</possibleNumberPattern>
-        <exampleNumber>150</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Grenada -->
-    <!-- http://www.itu.int/oth/T0202000057/en -->
-    <territory id="GD" countryCode="1" leadingDigits="473"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[489]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          473(?:
-            2(?:
-              3[0-2]|
-              69
-            )|
-            3(?:
-              2[89]|
-              86
-            )|
-            4(?:
-              [06]8|
-              3[5-9]|
-              4[0-49]|
-              5[5-79]|
-              73|
-              90
-            )|
-            63[68]|
-            7(?:
-              58|
-              84
-            )|
-            938
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>4732691234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          473(?:
-            4(?:
-              0[3-79]|
-              1[04-9]|
-              20|
-              58
-            )|
-            53[3-8]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>4734031234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Georgia -->
-    <!-- http://www.itu.int/oth/T0202000050/en -->
-    <territory id="GE" countryCode="995" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP $FG">
-      <availableFormats>
-        <!-- Format isn't very strictly defined - the yellow pages omits area code and does 2 2 2,
-             the chairman on the communications commission listed his as 2 2 4 (Tblisi area
-             code). -->
-        <numberFormat pattern="(32)(\d{2})(\d{2})(\d{2})"
-           nationalPrefixFormattingRule="$NP ($FG)">
-          <leadingDigits>32</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d)(\d{2})(\d{2})"
-           nationalPrefixFormattingRule="$NP ($FG)">
-          <leadingDigits>
-            [24]|
-            3[13-79]
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[5679]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-579]\d{7}|
-          8\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Added the 250, 253 and 255 prefixes as there are lots of numbers on the internet with
-             that prefix. We also list the old prefixes first, and then the new prefixes, to make it
-             easier to delete the old prefixes at the end of May 2011.  -->
-        <nationalNumberPattern>
-          (?:
-            122|
-            2(?:
-              22|
-              36|
-              5[035]
-            )|
-            3(?:
-              1[0-35-8]|
-              3[1-35679]|
-              4\d|
-              7[0-39]|
-              9[1-35-7]
-            )|
-            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{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-        <exampleNumber>32123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5[1578]|
-            6[28]|
-            7[0147-9]|
-            9[0135-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>55123456</exampleNumber>
-      </mobile>
-      <!-- Information from www.yell.ge, examples such as Wissol Petroleum Georgia hotline. -->
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <!-- It seems there may be special 6 digit numbers beginning with 91, but we are not sure, so
-           these are omitted for now. -->
-    </territory>
-
-    <!-- French Guiana (French Dept. of) -->
-    <territory id="GF" countryCode="594" internationalPrefix="00">
-    </territory>
-
-    <!-- Guernsey -->
-    <!-- Inherits formatting rules from the UK. -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
-    <territory id="GG" countryCode="44" internationalPrefix="00"
-               nationalPrefix="0" preferredExtnPrefix=" x" nationalPrefixFormattingRule="$NP$FG">
-      <generalDesc>
-        <nationalNumberPattern>[135789]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <areaCodeOptional>
-        <nationalNumberPattern>1481[2-9]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1481250123</exampleNumber>
-      </areaCodeOptional>
-      <!-- Specific to GG. -->
-      <fixedLine>
-        <!-- 1481 with 10 digits. -->
-        <nationalNumberPattern>1481\d{6}</nationalNumberPattern>
-        <exampleNumber>1481456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 7781, 7839, 7911 with 10 digits. -->
-        <nationalNumberPattern>
-          7(?:
-            781|
-            839|
-            911
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7781123456</exampleNumber>
-      </mobile>
-      <!-- Other numbers as per GB. -->
-      <pager>
-        <nationalNumberPattern>
-          76(?:
-            0[012]|
-            2[356]|
-            4[0134]|
-            5[49]|
-            6[0-369]|
-            77|
-            81|
-            9[39]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7640123456</exampleNumber>
-      </pager>
-      <tollFree>
-        <nationalNumberPattern>
-          80(?:
-            0(?:
-              1111|
-              \d{6,7}
-            )|
-            8\d{7}
-          )|
-          500\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}(?:\d{2,3})?</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            87[123]|
-            9(?:
-              [01]\d|
-              8[0-3]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9012345678</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            4(?:
-              5464\d|
-              [2-5]\d{7}
-            )|
-            70\d{7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern>
-        <exampleNumber>8431234567</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>56\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5612345678</exampleNumber>
-      </voip>
-      <uan>
-        <nationalNumberPattern>
-          (?:
-            3[0347]|
-            55
-          )\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5512345678</exampleNumber>
-      </uan>
-      <shortCode>
-        <nationalNumberPattern>
-          1\d{2}(?:\d{3})?|
-          999
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,6}</possibleNumberPattern>
-        <exampleNumber>150</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Ghana -->
-    <!-- http://www.itu.int/oth/T0202000052/en -->
-    <!-- http://www.nca.org.gh/index.php?option=com_content&view=article&id=90&Itemid=65 -->
-    <territory id="GH" countryCode="233" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-            <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[235]\d{6,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          3(?:
-            0[237]\d|
-            [167](?:
-              2[0-6]|
-              7\d
-            )|
-            2(?:
-              2[0-5]|
-              7\d
-            )|
-            3(?:
-              2[0-37]|
-              7\d
-            )|
-            4(?:
-              [27]\d|
-              30
-            )|
-            5(?:
-              2[0-7]|
-              7\d
-            )|
-            8(?:
-              2[0-2]|
-              7\d
-            )|
-            9(?:
-              20|
-              7\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>302345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          2(?:
-            (?:
-              [47]\d|
-              08
-            )\d{6}|
-            [368]\d{7}
-          )|
-          54\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>231234567</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Gibraltar -->
-    <territory id="GI" countryCode="350" internationalPrefix="00">
-      <!-- No formatting rules - numbers are always formatted as a block. -->
-      <generalDesc>
-        <nationalNumberPattern>[2568]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            00\d|
-            16[0-7]|
-            22[2457]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>20012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5[4-8]|
-            60
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>57123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>8[1-689]\d{6}</nationalNumberPattern>
-        <exampleNumber>88123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>87\d{6}</nationalNumberPattern>
-        <exampleNumber>87123456</exampleNumber>
-      </sharedCost>
-      <shortCode>
-        <nationalNumberPattern>
-          1(?:
-            00|
-            1(?:
-              2|
-              6(?:
-                00[06]|
-                11[17]
-              )|
-              8\d{2}
-            )|
-            23|
-            4(?:
-              1|
-              7[014]
-            )|
-            5[015]|
-            9[0349]
-          )|
-          8(?:
-            00|
-            4[0-2]|
-            8\d
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,6}</possibleNumberPattern>
-        <exampleNumber>116123</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Greenland -->
-    <!-- http://www.itu.int/oth/T0202000056/en -->
-    <territory id="GL" countryCode="299" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-689]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Including VSAT numbers here. -->
-        <nationalNumberPattern>
-          (?:
-            19|
-            3[1-6]|
-            6[14689]|
-            8[14-79]|
-            9\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>321000</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[245][2-9]\d{4}</nationalNumberPattern>
-        <exampleNumber>221234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{4}</nationalNumberPattern>
-        <exampleNumber>801234</exampleNumber>
-      </tollFree>
-      <voip>
-        <nationalNumberPattern>3[89]\d{4}</nationalNumberPattern>
-        <exampleNumber>381234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Gambia -->
-    <!-- http://www.itu.int/oth/T020200004F/en -->
-    <territory id="GM" countryCode="220" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            4(?:
-              [23]\d{2}|
-              4(?:
-                1[024679]|
-                [6-9]\d
-              )
-            )|
-            5(?:
-              54[0-7]|
-              6(?:
-                [67]\d
-              )|
-              7(?:
-                1[04]|
-                2[035]|
-                3[58]|
-                48
-              )
-            )|
-            8\d{3}
-          )\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>5661234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[3679]\d{6}</nationalNumberPattern>
-        <exampleNumber>3012345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Guinea -->
-    <!-- http://www.itu.int/oth/T020200005B/en -->
-    <territory id="GN" countryCode="224" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3567]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          30(?:
-            24|
-            3[12]|
-            4[1-35-7]|
-            5[13]|
-            6[189]|
-            [78]1|
-            9[1478]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>30241234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- WiMAX is in the plan - which is a wireless broadband protocol. Not including this in
-             the metadata for now unless this proves to be necessary. These would start with 79. -->
-        <nationalNumberPattern>
-          55\d{6}|
-          6(?:
-            0(?:
-              2\d|
-              3[3467]|
-              5[2457-9]
-            )|
-            [24578]\d{2}|
-            3(?:
-              [14]0|
-              35
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>60201234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Guadeloupe -->
-    <!-- http://www.itu.int/oth/T0202000058/en -->
-    <territory id="GP" countryCode="590" internationalPrefix="00"
-               mainCountryForCode="true" nationalPrefix="0"
-               nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([56]90)(\d{2})(\d{4})">
-          <format>$1 $2-$3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[56]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The plan says 59011 and 59012 are not implemented yet, but is from 2006 and online
-             examples can be found. -->
-        <nationalNumberPattern>
-          590(?:
-            1[12]|
-            2[0-68]|
-            3[28]|
-            4[126-8]|
-            5[067]|
-            6[018]|
-            [89]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>590201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          690(?:
-            00|
-            [3-5]\d|
-            6[0-57-9]|
-            7[1-6]|
-            8[0-6]|
-            9[09]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>690301234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Equatorial Guinea -->
-    <!-- http://www.itu.int/oth/T0202000041/en -->
-    <territory id="GQ" countryCode="240" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[235]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{6})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[23589]\d{8}</nationalNumberPattern>
-        <!-- The 6 here refers to the old number pattern - numbers written down may still be this
-             length although they can no longer be dialled. -->
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          3(?:
-            3(?:
-              3\d[7-9]|
-              [0-24-9]\d[46]
-            )|
-            5\d{2}[7-9]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>333091234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            222|
-            551
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>222123456</exampleNumber>
-      </mobile>
-      <!-- Note that personal and sharedCost numbers are said to go under here too - hopefully when
-           they start allocating them there will be a differentiation of prefixes, but this is not
-           clear now. -->
-      <tollFree>
-        <nationalNumberPattern>80\d[1-9]\d{5}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d[1-9]\d{5}</nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Greece -->
-    <!-- http://www.itu.int/oth/T0202000055/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B30 -->
-    <territory id="GR" countryCode="30" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([27]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            21|
-            7
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            2[2-9]1|
-            [689]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(2\d{3})(\d{6})">
-          <leadingDigits>2[2-9][02-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[26-9]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            1\d{2}|
-            2(?:
-              3[1-8]|
-              4[1-7]|
-              5[1-4]|
-              6[1-8]|
-              7[1-5]|
-              [289][1-9]
-            )|
-            3(?:
-              1\d|
-              2[1-5]|
-              3[1-4]|
-              [45][1-3]|
-              7[1-7]|
-              8[1-6]|
-              9[1-79]
-            )|
-            4(?:
-              1\d|
-              2[1-8]|
-              3[1-4]|
-              4[13-5]|
-              6[1-578]|
-              9[1-5]
-            )|
-            5(?:
-              1\d|
-              2[1-3]|
-              4[124]|
-              5[1-6]|
-              [39][1-4]
-            )|
-            6(?:
-              1\d|
-              3[24]|
-              4[1-7]|
-              5[13-9]|
-              [269][1-6]|
-              7[14]|
-              8[1-35]
-            )|
-            7(?:
-              1\d|
-              [23][1-5]|
-              4[1-7]|
-              5[1-57]|
-              6[134]|
-              9[15-7]
-            )|
-            8(?:
-              1\d|
-              2[1-5]|
-              [34][1-4]|
-              9[1-7]
-            )
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>2123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>69\d{8}</nationalNumberPattern>
-        <exampleNumber>6912345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[19]\d{7}</nationalNumberPattern>
-        <exampleNumber>9091234567</exampleNumber>
-      </premiumRate>
-      <!-- Including calls with maximum charge of 0,25 EUR/minute here instead of under premium
-           rate. -->
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            0[16]|
-            12|
-            25
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>8011234567</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Guatemala -->
-    <territory id="GT" countryCode="502" internationalPrefix="00">
-    </territory>
-
-    <!-- Guam -->
-    <!-- http://en.wikipedia.org/wiki/%2B1_671 -->
-    <territory id="GU" countryCode="1" leadingDigits="671"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[689]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          671(?:
-            3\d{2}|
-            47\d|
-            56\d|
-            6[3-5]\d|
-            7(?:
-              3\d|
-              89
-            )|
-            828
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6713123456</exampleNumber>
-      </fixedLine>
-      <!-- We assume mobile phone numbers to be the same as fixed-line - further info unavailable -->
-      <mobile>
-        <nationalNumberPattern>
-          671(?:
-            3\d{2}|
-            47\d|
-            56\d|
-            6[3-5]\d|
-            7(?:
-              3\d|
-              89
-            )|
-            828
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6713123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Guinea-Bissau -->
-    <!-- http://www.itu.int/oth/T020200005C/en -->
-    <territory id="GW" countryCode="245" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3567]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          3(?:
-            2[0125]|
-            3[1245]|
-            4[12]|
-            5[1-4]|
-            70|
-            9[1-467]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>3201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[5-7]\d{6}</nationalNumberPattern>
-        <exampleNumber>5012345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Guyana -->
-    <territory id="GY" countryCode="592" internationalPrefix="001"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Hong Kong -->
-    <!-- http://www.ofta.gov.hk/numbering/main.html -->
-    <territory id="HK" countryCode="852" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>
-            [235-7]|
-            [89](?:
-              0[1-9]|
-              [1-9]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{3})(\d{3})">
-          <leadingDigits>800</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(900)(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>900</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- Slightly more complex pattern to allow the country code to be stripped off if
-             necessary. -->
-        <nationalNumberPattern>
-          [235-7]\d{7}|
-          8\d{7,8}|
-          9\d{7,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[23]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[5-79]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>51234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>90012345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>8[1-3]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </personalNumber>
-    </territory>
-
-    <!-- Honduras -->
-    <!-- http://www.itu.int/oth/T020200005F/en -->
-    <!-- It seems there is no longer a trunk prefix in use, based on websites like
-         http://www.howtocallabroad.com/codes.html and on seeing how locals write their numbers in
-         national format. -->
-    <territory id="HN" countryCode="504" internationalPrefix="00" >
-      <availableFormats>
-       <numberFormat pattern="(\d{4})(\d{4})">
-         <format>$1-$2</format>
-       </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[237-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            2(?:
-              0[019]|
-              1[1-36]|
-              [23]\d|
-              4[056]|
-              5[57]|
-              9[01]
-            )|
-            4(?:
-              2|3-59]|
-              3[13-689]|
-              4[0-68]|
-              5[1-35]
-            )|
-            5(?:
-              4[3-5]|
-              5\d|
-              6[56]|
-              74
-            )|
-            6(?:
-              4[0-378]|
-              [56]\d|
-              [78][0-8]|
-              9[01]
-            )|
-            7(?:
-              6[46-9]|
-              7[02-9]|
-              8[34]
-            )|
-            8(?:
-              79|
-              8[0-35789]|
-              9[1-57-9]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[37-9]\d{7}</nationalNumberPattern>
-        <exampleNumber>91234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Croatia -->
-    <!-- http://www.itu.int/oth/T0202000032/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B385 -->
-    <territory id="HR" countryCode="385" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- The plan says 1 XXX XXXX but the government and local telecom websites are formatted 1
-             XXXX XXX, so we prefer that formatting here. These same sources prefer XXX XXX to XX
-             XXXX as well. -->
-       <numberFormat pattern="(1)(\d{4})(\d{3})">
-         <leadingDigits>1</leadingDigits>
-         <format>$1 $2 $3</format>
-       </numberFormat>
-       <numberFormat pattern="(6[029])(\d{4})(\d{3})">
-         <leadingDigits>6[029]</leadingDigits>
-         <format>$1 $2 $3</format>
-       </numberFormat>
-       <numberFormat pattern="([2-5]\d)(\d{3})(\d{3})">
-         <leadingDigits>[2-5]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9[12589])(\d{3,4})(\d{3,4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9[12589])(\d{3,4})(\d{3})(\d{3})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2,3})">
-          <leadingDigits>
-            6[145]|
-            7
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3,4})(\d{3})">
-          <leadingDigits>
-            6[145]|
-            7
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(80[01])(\d{2})(\d{2,3})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(80[01])(\d{3,4})(\d{3})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-7]\d{5,8}|
-          [89]\d{6,11}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Supporting 060 (general service), 062 (universal access), 069 (children service)
-             numbers here too. -->
-        <nationalNumberPattern>
-          (?:
-            1|
-            6[029]
-          )\d{7}|
-          (?:
-            2[0-3]|
-            3[1-5]|
-            4[02-47-9]|
-            5[1-3]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[12589]\d{6,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,12}</possibleNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[01]\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- 061 is for TeleVoting numbers - but these are charged at similar rates to premium rate
-             so we include them here. -->
-        <nationalNumberPattern>6[145]\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>611234</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>7[45]\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>741234567</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Haiti -->
-    <!-- http://www.itu.int/oth/T020200005E/en -->
-    <!-- http://www.numberingplans.com/ -->
-    <territory id="HT" countryCode="509" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-489]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The prefix 24 seems to be also used, based on online searches. -->
-        <nationalNumberPattern>
-          2(?:
-            [24]\d|
-            5[1-5]|
-            94
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>22453300</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            3[4-9]|
-            4\d
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>34101234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- 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
-             to suggest they are free. -->
-        <nationalNumberPattern>8\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <voip>
-        <!-- ITU document suggests 98\d{6}, but http://www.numberingplans.com/ restricts it to
-             98[89]\d{5}. -->
-        <nationalNumberPattern>98[89]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>98901234</exampleNumber>
-      </voip>
-      <shortCode>
-        <nationalNumberPattern>1\d{2}</nationalNumberPattern>
-        <possibleNumberPattern>\d{3}</possibleNumberPattern>
-        <exampleNumber>114</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Hungary -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000610001MSWE.doc -->
-    <territory id="HU" countryCode="36" internationalPrefix="00"
-               nationalPrefix="06" nationalPrefixFormattingRule="($FG)">
-      <!-- Although the national prefix is necessary for dialling, the preferred format (confirmed
-           by a Hungarian person and following the yellow pages) is to omit this when formatting.
-           Yellow pages: www.aranyoldalak.hu -->
-      <availableFormats>
-        <numberFormat pattern="(1)(\d{3})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>[2-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{8,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes numbers for corporate networks. -->
-        <nationalNumberPattern>
-          (?:
-            1\d|
-            2(?:
-              1\d|
-              [2-9]
-            )|
-            3[2-7]|
-            4[24-9]|
-            5[2-79]|
-            6[23689]|
-            7(?:
-              1\d|
-              [2-9]
-            )|
-            8[2-57-9]|
-            9[2-69]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            [27]0|
-            3[01]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>201234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>9[01]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>40\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>40123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Indonesia -->
-    <!-- http://www.itu.int/oth/T0202000064/en (from 2001, very out-of-date) -->
-    <!-- http://en.wikipedia.org/wiki/%2B62 -->
-    <territory id="ID" countryCode="62" internationalPrefix="0(?:0[1789]|10(?:00|1[67]))"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d{2})(\d{7,8})">
-          <leadingDigits>
-            2[124]|
-            [36]1
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d{3})(\d{5,7})">
-          <leadingDigits>
-            [4579]|
-            2[035-9]|
-            [36][02-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(8\d{2})(\d{3,4})(\d{3,4})">
-          <leadingDigits>8[1-35-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(177)(\d{6,8})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- http://en.wikipedia.org/wiki/Toll-free_telephone_number, and examples on the web show
-             that sometimes they are followed by less digits. -->
-        <numberFormat pattern="(800)(\d{5,7})">
-          <leadingDigits>800</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(809)(\d)(\d{3})(\d{3})">
-          <leadingDigits>809</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{6,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Area codes taken from wikipedia, with missing ones added from
-             http://www.telkom.co.id/customer-services/area-and-country-code/?type=area.
-             We also added 0770 after user feedback because it seems to be used on Bintan island.
-             -->
-        <nationalNumberPattern>
-          2[124]\d{7,8}|
-          (?:
-            2(?:
-              [35][1-4]|
-              6[0-8]|
-              7[1-6]|
-              8\d|
-              9[1-8]
-            )|
-            3(?:
-              1|
-              2[1-578]|
-              3[1-68]|
-              4[1-3]|
-              5[1-8]|
-              6[1-3568]|
-              7[0-46]|
-              8\d
-            )|
-            4(?:
-              0[1-589]|
-              1[01347-9]|
-              2[0-36-8]|
-              3[0-24-68]|
-              5[1-378]|
-              6[1-5]|
-              7[134]|
-              8[1245]
-            )|
-            5(?:
-              1[1-35-9]|
-              2[25-8]|
-              3[1246-9]|
-              4[1-3589]|
-              5[1-46]|
-              6[1-8]
-            )|
-            6(?:
-              19? |
-              [25]\d|
-              3[1-469]|
-              4[1-6]
-            )|
-            7(?:
-              1[1-46-9]|
-              2[14-9]|
-              [36]\d|
-              4[1-8]|
-              5[1-9]|
-              7[0-36-9]
-            )|
-            9(?:
-              0[12]|
-              1[0134-8]|
-              2[0-479]|
-              5[125-8]|
-              6[23679]|
-              7[159]|
-              8[01346]
-            )
-          )\d{5,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>8[1-35-9]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,11}</possibleNumberPattern>
-        <exampleNumber>812345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          177\d{6,8}|
-          800\d{5,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,11}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <!-- The infomation below is provided by an Indonesian -->
-      <premiumRate>
-        <nationalNumberPattern>809\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8091234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Ireland -->
-    <!-- http://www.comreg.ie/_fileupload/publications/ComReg0802.pdf -->
-    <!-- http://www.comreg.ie/_fileupload/publications/ComReg0435.pdf -->
-    <!-- http://www.comreg.ie/_fileupload/publications/ComReg03147.pdf -->
-    <territory id="IE" countryCode="353" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(1)(\d{3,4})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{5})">
-          <leadingDigits>
-            2[2-9]|
-            4[347]|
-            5[2-58]|
-            6[2-47-9]|
-            9[3-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{5})">
-          <leadingDigits>
-            40[24]|
-            50[45]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(48)(\d{4})(\d{4})">
-          <leadingDigits>48</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(818)(\d{3})(\d{3})">
-          <leadingDigits>81</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            [24-69]|
-            7[14]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([78]\d)(\d{3,4})(\d{4})">
-          <leadingDigits>
-            76|
-            8[35-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(700)(\d{3})(\d{3})">
-          <leadingDigits>70</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG" pattern="(\d{4})(\d{3})(\d{3})">
-          <leadingDigits>
-            1(?:
-              8[059]|
-              5
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              8[059]0|
-              5
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[124-9]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- We allow 6-7 digit subscriber numbers for the 021 area code since that seems to be
-             reflected by the numbers in the Yellow Pages. The 023, 043, 052 and 064 area codes also
-             may have 7 digit subscriber numbers, although limited to 5 in the plan. This was caused
-             by a numbering update in 2008 (http://www.wtng.info/wtng-353-ie.html has more details).
-             Other changes not in the plan include consolidating 0502, 0506 and 0509 into 057 and
-             054, 055 and 053 into 053, and making 044 be followed by 7 digits in some cases.
-             Another peculiarity is that 048 actually replaces 00 44 28 when Irish people dial,
-             allowing them to easily dial Northern Ireland. We support these numbers here, although
-             technically they are numbers for the UK. -->
-        <nationalNumberPattern>
-          1\d{7,8}|
-          2(?:
-            1\d{6,7}|
-            [24-9]\d{5}|
-            3\d{5,7}
-          )|
-          4(?:
-            0[24]\d{5}|
-            [1269]\d{7}|
-            [34]\d{5,7}|
-            5\d{6}|
-            7\d{5}|
-            8[0-46-9]\d{7}
-          )|
-          5(?:
-            0[45]\d{5}|
-            1\d{6}|
-            2\d{5,7}|
-            [3679]\d{7}|
-            8\d{5}
-          )|
-          6(?:
-            1\d{6}|
-            4\d{5,7}|
-            [237-9]\d{5}|
-            [56]\d{7}
-          )|
-          7[14]\d{7}|
-          9(?:
-            1\d{6}|
-            [04]\d{7}|
-            [3-9]\d{5}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-        <exampleNumber>2212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          8(?:
-            22\d{6}|
-            [35-9]\d{7,8}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>850123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          15(?:
-            1[2-9]|
-            [2-8]0|
-            59|
-            9[089]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1520123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>18[59]0\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1850123456</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>700\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>700123456</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>76\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>761234567</exampleNumber>
-      </voip>
-      <uan>
-        <nationalNumberPattern>818\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>818123456</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Israel -->
-    <!-- http://www.itu.int/oth/T020200006A/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B972 -->
-    <!-- http://www.wtng.info/wtng-972-il.html -->
-    <!-- http://www.moc.gov.il/new/documents/engineering/MISP0200.ppt (in Hebrew) -->
-    <!-- Formatting practice following wikipedia, and government sites. -->
-    <territory id="IL" countryCode="972" internationalPrefix="0(?:0|1[2-48])"
-               nationalPrefix="0" nationalPrefixFormattingRule="$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([2-489])(\d{3})(\d{4})">
-          <leadingDigits>[2-489]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([57]\d)(\d{3})(\d{4})">
-          <leadingDigits>[57]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(1)([7-9]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>1[7-9]</leadingDigits>
-          <format>$1-$2-$3-$4</format>
-        </numberFormat>
-        <!-- The following number is for hospitals. -->
-        <numberFormat pattern="(1255)(\d{3})">
-          <leadingDigits>125</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(1200)(\d{3})(\d{3})">
-          <leadingDigits>120</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(1212)(\d{2})(\d{2})">
-          <leadingDigits>121</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <!-- These are 4-digit star numbers which are only accessible within Israel and must be
-             dialed with a star in front of the number. -->
-        <numberFormat pattern="(\d{4})">
-          <leadingDigits>[2-689]</leadingDigits>
-          <format>*$1</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc >
-        <nationalNumberPattern>
-          [17]\d{6,9}|
-          [2-589]\d{3}(?:\d{3,6})?|
-          6\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <noInternationalDialling>
-        <nationalNumberPattern>
-          1700\d{6}|
-          [2-689]\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-        <exampleNumber>1700123456</exampleNumber>
-      </noInternationalDialling>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [2-489]|
-            7[2-46-8]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>5[024679]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>501234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          1(?:
-            80[01]\d{3}|
-            255
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-          <!-- Peculiarly, one source states that 1956 and 1957 are the new premium rate prefixes.
-               However, no online numbers starting with these prefixes can be found, and this data
-               is not found in any other source. Instead, 1919 numbers are commonly used online for
-               these services, so we support them. -->
-          <!-- 1200 and 1212 numbers are for televoting. -->
-        <nationalNumberPattern>
-          1(?:
-            212|
-            (?:
-              919|
-              200
-            )\d{2}
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-        <exampleNumber>1919123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          1(?:
-            700|
-            809
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1700123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>77\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>771234567</exampleNumber>
-      </voip>
-      <uan>
-        <!-- 4-digit star numbers. -->
-        <nationalNumberPattern>[2-689]\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-        <exampleNumber>2250</exampleNumber>
-      </uan>
-      <shortCode>
-        <nationalNumberPattern>1\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-        <exampleNumber>1455</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Isle of Man -->
-    <!-- Inherits formatting rules from the UK. -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
-    <territory id="IM" countryCode="44" internationalPrefix="00"
-               nationalPrefix="0" preferredExtnPrefix=" x" nationalPrefixFormattingRule="$NP$FG">
-      <generalDesc>
-        <nationalNumberPattern>[135789]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <areaCodeOptional>
-        <nationalNumberPattern>1624[2-9]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1624250123</exampleNumber>
-      </areaCodeOptional>
-      <!-- Specific to IM. -->
-      <fixedLine>
-        <!-- 1624 with 10 digits. -->
-        <nationalNumberPattern>1624\d{6}</nationalNumberPattern>
-        <exampleNumber>1624456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 7524, 7624, 7924 with 10 digits. -->
-        <nationalNumberPattern>7[569]24\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7924123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- 808 162 with 10 digits. -->
-        <nationalNumberPattern>808162\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8081624567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- 872 299, 900 624, 901 624, 906 624, 907 624 with 10 digits. -->
-        <nationalNumberPattern>
-          (?:
-            872299|
-            90[0167]624
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9016247890</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <!-- 844 040 6, 844 090 6, 845 624, 870 624 with 10 digits. -->
-        <nationalNumberPattern>
-          8(?:
-            4(?:
-              40[49]06|
-              5624\d
-            )|
-            70624\d
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8456247890</exampleNumber>
-      </sharedCost>
-      <!-- Other numbers as per GB. -->
-      <personalNumber>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>56\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5612345678</exampleNumber>
-      </voip>
-      <uan>
-        <!-- 308 162, 33d, 344 040 6, 344 090 6, 345 624, 370 624, 372 299, 55 with 10 digits. -->
-        <nationalNumberPattern>
-          3(?:
-            08162\d|
-            3\d{5}|
-            4(?:
-              40[49]06|
-              5624\d
-            )|
-            7(?:
-              0624\d|
-              2299\d
-            )
-          )\d{3}|
-          55\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5512345678</exampleNumber>
-      </uan>
-      <shortCode>
-        <nationalNumberPattern>
-          1\d{2}(?:\d{3})?|
-          999
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,6}</possibleNumberPattern>
-        <exampleNumber>150</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- India -->
-    <!-- http://www.itu.int/oth/T0202000063/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B91 -->
-    <!-- Note that several changes in area codes have occurred since the numbering plan was released
-         - changes are notified on the www.bsnl.co.in website. Area codes can be verified here at
-         http://www.bsnl.co.in/stdsearch.php. -->
-    <territory id="IN" countryCode="91" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-       <availableFormats>
-         <!-- Mobile numbers. -->
-         <numberFormat pattern="(\d{2})(\d{2})(\d{6})">
-           <leadingDigits>
-             7(?:
-               39|
-               5[5-9]|
-               [67][02-9]|
-               8[0-6]
-             )|
-             8(?:
-               0[01589]|
-               1[024]|
-               8[0479]|
-               9[057-9]
-             )|
-             9
-           </leadingDigits>
-           <leadingDigits>
-             7(?:
-               39|
-               5(?:
-                 50|
-                 [6-9]
-               )|
-               [67][02-9]|
-               8[0-6]
-             )|
-             8(?:
-               0[01589]|
-               1[024]|
-               8(?:
-                 [079]|
-                 44
-               )|
-               9[057-9]
-             )|
-             9
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <!-- 2 digits area code -->
-         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-           <leadingDigits>
-             11|
-             2[02]|
-             33|
-             4[04]|
-             79|
-             80[2-6]
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <!-- 3 digits area code -->
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             1(?:
-               2[0-249]|
-               3[0-25]|
-               4[145]|
-               [569][14]|
-               7[1257]|
-               8[1346]|
-               [68][1-9]
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             2(?:
-               1[257]|
-               3[013]|
-               4[01]|
-               5[0137]|
-               6[0158]|
-               78|
-               8[1568]|
-               9[14]
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             3(?:
-               26|
-               4[1-3]|
-               5[34]|
-               6[01489]|
-               7[02-46]|
-               8[159]
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             4(?:
-               1[36]|
-               2[1-47]|
-               3[15]|
-               5[12]|
-               6[126-9]|
-               7[0-24-9]|
-               8[013-57]|
-               9[014-7]
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             5(?:
-               [136][25]|
-               22|
-               4[28]|
-               5[12]|
-               [78]1|
-               9[15]
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             6(?:
-               12|
-               [2345]1|
-               57|
-               6[13]|
-               7[14]|
-               80
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             7(?:
-               12|
-               2[14]|
-               3[134]|
-               4[47]|
-               5[15]|
-               [67]1|
-               88
-             )
-           </leadingDigits>
-           <leadingDigits>
-             7(?:
-               12|
-               2[14]|
-               3[134]|
-               4[47]|
-               5(?:
-                 1|
-                 5[1-9]
-               )|
-               [67]1|
-               88
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-           <leadingDigits>
-             8(?:
-               16|
-               2[014]|
-               3[126]|
-               6[136]|
-               7[078]|
-               8[34]|
-               91
-             )
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <!-- 4 digits area code -->
-         <!-- Fallback for fixed-line numbers. -->
-         <numberFormat pattern="(\d{4})(\d{3})(\d{3})">
-           <leadingDigits>
-             1(?:
-               [2-579]|
-               [68][1-9]
-             )|
-             [2-8]
-           </leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat nationalPrefixFormattingRule="$FG"
-           pattern="(1600)(\d{2})(\d{4})">
-           <leadingDigits>160</leadingDigits>
-           <leadingDigits>1600</leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-         <numberFormat nationalPrefixFormattingRule="$FG"
-           pattern="(18[06]0)(\d{2,3})(\d{4})">
-           <leadingDigits>18[06]</leadingDigits>
-           <leadingDigits>18[06]0</leadingDigits>
-           <format>$1 $2 $3</format>
-         </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- This is a list of the 2 and 3 digit area codes and the first 3
-        digits of 4 digit area codes, so we can check the following digit
-        belongs to one of the operator-codes (2-6). Operator codes from
-        wikipedia, with the addition of 5 (HFCL Infotel). Area codes starting
-        with a 7 are listed separately, since the prefixes need to be more
-        detailed as they would otherwise clash with mobile phone prefixes. -->
-        <nationalNumberPattern>
-          (?:
-            11|
-            2[02]|
-            33|
-            4[04]|
-            79|
-            80
-          )[2-6]\d{7}|
-          (?:
-            1(?:
-              2[0-249]|
-              3[0-25]|
-              4[145]|
-              [59][14]|
-              6[014]|
-              7[1257]|
-              8[01346]
-            )|
-            2(?:
-              1[257]|
-              3[013]|
-              4[01]|
-              5[0137]|
-              6[0158]|
-              78|
-              8[1568]|
-              9[14]
-            )|
-            3(?:
-              26|
-              4[1-3]|
-              5[34]|
-              6[01489]|
-              7[02-46]|
-              8[159]
-            )|
-            4(?:
-              1[36]|
-              2[1-47]|
-              3[15]|
-              5[12]|
-              6[126-9]|
-              7[0-24-9]|
-              8[013-57]|
-              9[014-7]
-            )|
-            5(?:
-              [136][25]|
-              22|
-              4[28]|
-              5[12]|
-              [78]1|
-              9[15]
-            )|
-            6(?:
-              12|
-              [2345]1|
-              57|
-              6[13]|
-              7[14]|
-              80
-            )|
-            7(?:
-              12|
-              2[14]|
-              3[134]|
-              4[47]|
-              5[15]|
-              [67]1|
-              88
-            )|
-            8(?:
-              16|
-              2[014]|
-              3[126]|
-              6[136]|
-              7[078]|
-              8[34]|
-              91
-            )
-          )[2-6]\d{6}|
-          (?:
-            (?:
-              1(?:
-                2[35-8]|
-                3[346-9]|
-                4[236-9]|
-                [59][0235-9]|
-                6[235-9]|
-                7[34689]|
-                8[257-9]
-              )|
-              2(?:
-                1[134689]|
-                3[24-8]|
-                4[2-8]|
-                5[25689]|
-                6[2-4679]|
-                7[13-79]|
-                8[2-479]|
-                9[235-9]
-              )|
-              3(?:
-                01|
-                1[79]|
-                2[1-5]|
-                4[25-8]|
-                5[125689]|
-                6[235-7]|
-                7[157-9]|
-                8[2-467]
-              )|
-              4(?:
-                1[14578]|
-                2[5689]|
-                3[2-467]|
-                5[4-7]|
-                6[35]|
-                73|
-                8[2689]|
-                9[2389]
-              )|
-              5(?:
-                [16][146-9]|
-                2[14-8]|
-                3[1346]|
-                4[14-69]|
-                5[46]|
-                7[2-4]|
-                8[2-8]|
-                9[246]
-              )|
-              6(?:
-                1[1358]|
-                2[2457]|
-                3[2-4]|
-                4[235-7]|
-                5[2-689]|
-                6[24-58]|
-                7[23-689]|
-                8[1-6]
-              )|
-              8(?:
-                1[1357-9]|
-                2[235-8]|
-                3[03-57-9]|
-                4[0-24-9]|
-                5\d|
-                6[2457-9]|
-                7[1-6]|
-                8[1256]|
-                9[2-4]
-              )
-            )\d|
-            7(?:
-              (?:
-                1[013-9]|
-                2[0235-9]|
-                3[2679]|
-                4[1-35689]|
-                5[2-46-9]|
-                [67][02-9]|
-                9\d
-              )\d|
-              8(?:
-                2[0-6]|
-                [013-8]\d
-              )
-            )
-          )[2-6]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-        <exampleNumber>1123456789</exampleNumber>
-      </fixedLine>
-      <!--http://en.wikipedia.org/wiki/Mobile_telephone_numbering_in_India -->
-      <mobile>
-        <!-- A couple of additional prefixes not found on the wikipedia page,
-             namely 7696 and 779[56] are added because SMS messages have been
-             successfully sent to these numbers. -->
-        <nationalNumberPattern>
-          (?:
-            7(?:
-              39[89]|
-              5(?:
-                50|
-                6[6-8]|
-                79|
-                [89][7-9]
-              )|
-              6(?:
-                0[027]|
-                20|
-                3[19]|
-                54|
-                65|
-                7[67]|
-                9[6-9]
-              )|
-              7(?:
-                0[89]|
-                3[589]|
-                42|
-                60|
-                9[5-9]
-              )|
-              8(?:
-                [03][07-9]|
-                14|
-                2[7-9]|
-                4[25]|
-                6[09]
-              )
-            )\d|
-            9\d{4}|
-            8(?:
-              (?:
-                0[01589]|
-                1[024]
-              )\d|
-              8(?:
-                [079]\d|
-                44
-              )|
-              9[057-9]\d
-            )\d
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9123456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Information gathered from sites such as
-             http://www.surfindia.com/india-facts/toll-free-no.html and
-             http://indmusings.blogspot.com/2008/09/free-help-line-numbersindia.html -->
-        <nationalNumberPattern>
-          1(?:
-            800\d? |
-            600
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <!-- The metadata on premium rate is temporarily commented out as wikipedia says 900 is
-           mobile, conflicting with the national numbering plan. -->
-      <!--
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-      -->
-      <uan>
-        <!-- Information gathered from sites such as http://www.calcutta.bsnl.co.in/insuan.html -->
-        <nationalNumberPattern>1860345\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>18603451234</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- British Indian Ocean Territory / Diego Garcia -->
-    <territory id="IO" countryCode="246" internationalPrefix="00">
-    </territory>
-
-    <!-- Iraq -->
-    <!-- http://en.wikipedia.org/wiki/%2B964 -->
-    <!-- http://wtng.info/wtng-964-ik.html -->
-    <territory id="IQ" countryCode="964" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(1)(\d{3})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([2-6]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>[2-6]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(7[5-9]\d)(\d{3})(\d{4})">
-          <leadingDigits>7</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-7]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          1\d{7}|
-          (?:
-            2[13-5]|
-            3[02367]|
-            4[023]|
-            5[03]|
-            6[026]
-          )\d{6,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[5-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7912345678</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Iran, Islamic Republic of -->
-    <!-- http://en.wikipedia.org/wiki/%2B98 -->
-    <!-- http://www.itu.int/oth/T0202000066/en -->
-    <territory id="IR" countryCode="98" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formatting follows wikipedia. -->
-        <numberFormat pattern="(21)(\d{4})(\d{4})">
-          <leadingDigits>21</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            [13-89]|
-            2[02-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-6]\d{4,9}|[1789]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The patterns here are organized such that numbers with variable lengths come first,
-             followed by numbers that are 10 digits long. -->
-        <nationalNumberPattern>
-          2(?:
-            1[2-9]\d{2,7}|
-            51\d{3,7}
-          )|
-          (?:
-            241|
-            3(?:
-              11|
-              5[23]
-            )|
-            441|
-            5[14]1
-          )\d{4,7}|
-          (?:
-            3(?:
-              34|
-              41
-            )|
-            6(?:
-              11|
-              52
-            )|
-          )\d{6,7}|
-          (?:
-            1(?:
-              [134589][12]|
-              [27][1-4]
-            )|
-            2(?:
-              2[189]|
-              [3689][12]|
-              42|
-              5[256]|
-              7[34]
-            )|
-            3(?:
-              12|
-              2[1-4]|
-              3[125]|
-              4[24-9]|
-              51|
-              [6-9][12]
-            )|
-            4(?:
-              [135-9][12]|
-              2[1-467]|
-              4[2-4]
-            )|
-            5(?:
-              12|
-              2[89]|
-              3[1-5]|
-              4[2-8]|
-              [5-7][12]|
-              8[1245]
-            )|
-            6(?:
-              12|
-              [347-9][12]|
-              51|
-              6[1-6]
-            )|
-            7(?:
-              [13589][12]|
-              2[1289]|
-              4[1-4]|
-              6[1-6]|
-              7[1-3]
-            )|
-            8(?:
-              [145][12]|
-              3[124578]|
-              6[1256]|
-              7[1245]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>2123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          9(?:
-            1\d|
-            3[124-8]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9123456789</exampleNumber>
-      </mobile>
-      <pager>
-        <nationalNumberPattern>943[24678]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9432123456</exampleNumber>
-      </pager>
-      <!-- No tollFree or premiumRate information can be found. -->
-      <voip>
-        <!-- Includes VSAT and Boomehen Satellite numbers. -->
-        <nationalNumberPattern>993[12]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9932123456</exampleNumber>
-      </voip>
-      <uan>
-        <!-- TCI Public Relations numbers -->
-        <nationalNumberPattern>9990\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9990123456</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Iceland -->
-    <!-- http://www.pta.is/default.aspx?cat_id=85 -->
-    <territory id="IS" countryCode="354" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>[4-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(3\d{2})(\d{3})(\d{3})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [4-9]\d{6}|
-          38\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Including 87[23] XXXX here as it is listed as a fax number. -->
-        <nationalNumberPattern>
-          (?:
-            4(?:
-              1[0-245]|
-              2[0-7]|
-              [37][0-8]|
-              4[0245]|
-              5[0-356]|
-              6\d|
-              8[0-46-8]|
-              9[013-79]
-            )|
-            5(?:
-              05|
-              [156]\d|
-              2[02578]|
-              3[013-6]|
-              4[03-6]|
-              7[0-2578]|
-              8[0-25-9]|
-              9[013-689]
-            )|
-            87[23]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>4101234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          38[59]\d{6}|
-          (?:
-            6(?:
-              1[014-8]|
-              2[0-8]|
-              3[0-27-9]|
-              4[0-29]|
-              5[029]|
-              [67][0-69]|
-              [89]\d
-            )|
-            7(?:
-              5[057]|
-              7[0-7]
-            )|
-            8(?:
-              2[0-5]|
-              [469]\d|
-              5[1-9]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6101234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>9011234</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>49[013-79]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>4931234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Italy -->
-    <!-- http://en.wikipedia.org/wiki/%2B39 -->
-    <territory id="IT" countryCode="39" internationalPrefix="00">
-      <availableFormats>
-        <!-- The leading zero for fixed numbers will be prepended before the matching of these
-             regular expressions. -->
-        <numberFormat pattern="(0[26])(\d{3,4})(\d{4})">
-          <leadingDigits>0[26]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(0[26])(\d{4})(\d{5})">
-          <leadingDigits>0[26]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(0[26])(\d{4,6})">
-          <leadingDigits>0[26]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(0\d{2})(\d{3,4})(\d{4})">
-          <leadingDigits>0[13-57-9][0159]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(0\d{2})(\d{4,6})">
-          <leadingDigits>0[13-57-9][0159]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(0\d{3})(\d{3})(\d{4})">
-          <leadingDigits>0[13-57-9][2-46-8]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(0\d{3})(\d{4,6})">
-          <leadingDigits>0[13-57-9][2-46-8]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            [13]|
-            8(?:
-              00|
-              4[78]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,6})">
-          <leadingDigits>
-            8(?:
-              03|
-              9
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[01389]\d{5,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          0(?:
-            [26]\d{4,9}|
-            [13-57-9](?:
-              [0159]\d{4,8}|
-              [2-46-8]\d{5,8}
-            )
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-        <exampleNumber>0212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>3\d{8,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>312345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          80(?:
-            0\d{6}|
-            3\d{3}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          89(?:
-            2\d{3}|
-            9\d{6}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>899123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>84[78]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>8481234567</exampleNumber>
-      </sharedCost>
-      <!-- The plan says these should be 6 digits long, but when you go to telephone companies in
-           Italy, such as http://www.gnetwork.it/EmailServizi/Numerazioni178/tabid/91/Default.aspx
-           and when you search for 178 numbers, they seem to all be 7 digits, so we cover both
-           lengths here. -->
-      <personalNumber>
-        <nationalNumberPattern>178\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>1781234567</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Jersey -->
-    <!-- Inherits formatting rules from the UK. -->
-    <!-- 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" preferredExtnPrefix=" x" nationalPrefixFormattingRule="$NP$FG">
-      <generalDesc>
-        <nationalNumberPattern>[135789]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <areaCodeOptional>
-        <nationalNumberPattern>1534[2-9]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1534250123</exampleNumber>
-      </areaCodeOptional>
-      <!-- Specific to JE. -->
-      <fixedLine>
-        <!-- 1534 with 10 digits. -->
-        <nationalNumberPattern>1534\d{6}</nationalNumberPattern>
-        <exampleNumber>1534456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 7509, 7700, 7797, 7829, 7937 with 10 digits. -->
-        <nationalNumberPattern>
-          7(?:
-            509|
-            7(?:
-              00|
-              97
-            )|
-            829|
-            937
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7797123456</exampleNumber>
-      </mobile>
-      <pager>
-        <!-- Pager numbers as per GB. -->
-        <nationalNumberPattern>
-          76(?:
-            0[012]|
-            2[356]|
-            4[0134]|
-            5[49]|
-            6[0-369]|
-            77|
-            81|
-            9[39]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7640123456</exampleNumber>
-      </pager>
-      <!-- Specific to JE. -->
-      <tollFree>
-        <!-- 800 735, 800 781, 808 901 with 10 digits. -->
-        <nationalNumberPattern>
-          80(?:
-            07(?:
-              35|
-              81
-            )|
-            8901
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8007354567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- 871 206, 900 665, 900 669, 901 810, 907 107, 907 155 with 10 digits. -->
-        <nationalNumberPattern>
-          (?:
-            871206|
-            90(?:
-              066[59]|
-              1810|
-              71(?:
-                07|
-                55
-              )
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9018105678</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <!-- 844 405, 844 442, 844 469, 844 703, 845 041, 845 800, 870 002 with 10 digits. -->
-        <nationalNumberPattern>
-          8(?:
-            4(?:
-              4(?:
-                4(?:
-                  05|
-                  42|
-                  69
-                )|
-                703
-              )|
-              5(?:
-                041|
-                800
-              )
-            )|
-            70002
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8447034567</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <!-- 70 1511 with 10 digits. -->
-        <nationalNumberPattern>701511\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7015115678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <!-- VoIP numbers as per GB. -->
-        <nationalNumberPattern>56\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5612345678</exampleNumber>
-      </voip>
-      <uan>
-        <!-- 300 735, 300 781, 308 901, 33d, 344 405, 344 442, 344 469, 344 703, 345 041, 345 800,
-             370 002, 371 206, 55 with 10 digits. -->
-        <nationalNumberPattern>
-          3(?:
-            0(?:
-              07(?:
-                35|
-                81
-              )|
-              8901
-            )|
-            3\d{4}|
-            4(?:
-              4(?:
-                4(?:
-                  05|
-                  42|
-                  69
-                )|
-                703
-              )|
-              5(?:
-                041|
-                800
-              )
-            )|
-            7(?:
-              0002|
-              1206
-            )
-          )\d{4}|
-          55\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5512345678</exampleNumber>
-      </uan>
-      <shortCode>
-        <!-- http://www.jcra.je/cms3/v2/public/cmsChild.asp?pageID=1024&childID=1036 -->
-        <nationalNumberPattern>
-          1(?:
-            00|
-            1(?:
-              2|
-              8\d{3}
-            )|
-            23|
-            4(?:
-              [14]|
-              28|
-              7\d
-            )|
-            5\d|
-            7(?:
-              0[12]|
-              [128]|
-              35?
-            )|
-            808|
-            9[135]
-          )|
-          23[234]|
-          999
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,6}</possibleNumberPattern>
-        <exampleNumber>150</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Jamaica -->
-    <!-- http://www.itu.int/oth/T020200006C/en -->
-    <territory id="JM" countryCode="1" leadingDigits="876"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[89]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          876(?:
-            (?:
-              5[0-26]|
-              6\d|
-              7[1-6]|
-              9[2-8]
-            )\d{5}|
-            (?:
-              7(?:
-                0[2-689]|
-                8[056]|
-                9[45]
-              )|
-              9(?:
-                0[1-8]|
-                1[02378]|
-                9[2-468]
-              )
-            )\d{4}
-          )
-        </nationalNumberPattern>
-        <exampleNumber>8765123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 31 as the prefix was found to be valid by sending SMSs and looking at online
-             number lookup sites. -->
-        <nationalNumberPattern>
-          876(?:
-            (?:
-              21|
-              [348]\d|
-              5[78]|
-              77
-            )\d|
-            7(?:
-              0[07]|
-              8[1-47-9]|
-              9[0-36-9]
-            )|
-            9(?:
-              [01]9|
-              9[0579]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8762101234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Jordan -->
-    <!-- http://www.trc.gov.jo/images/stories/pdf/NNP_ver200[1].pdf?lang=english -->
-    <!-- http://www.itu.int/oth/T020200006E/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B962 -->
-    <territory id="JO" countryCode="962" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            [2356]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(7)(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>7[457-9]</leadingDigits>
-          <format>$1 $2 $3 $4 $5</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{5,6})">
-          <leadingDigits>
-            70|
-            [89]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[235-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Used the plan from www.trc.gov.jo since it is much more complete than the plan on the
-             ITU website. -->
-        <nationalNumberPattern>[2356][2-8]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>62001234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          7(?:
-            [1-8]\d|
-            9[02-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>790123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            10\d|
-            5\d{2}|
-            7(?:
-             [02]0|
-             7[08]|
-             9[09]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>85012345</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>700123456</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Japan -->
-    <!-- http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/fixed.html -->
-    <!-- http://www.numberingplans.com/?page=dialling&sub=areacodes&ac=JP -->
-    <territory id="JP" countryCode="81" internationalPrefix="010"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Toll-free numbers -->
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>
-            (?:
-              12|
-              99
-            )0
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <!-- Some leading digits are explicitly reserved for a particular purpose.
-             We handle them first in this rule, and let the following rules ignore those exceptions.
-             Note: The rule here is not in the files we rely on when creating the other rules.
-                   We would need to manually modify it if the Japanese goverment
-                   decided to change the rule.
-
-             (prefix): purpose
-             "50": IP phone
-             "90" and "80": Mobile phone
-             "70": PHS (Personal Handy-phone System, which has been used in Japan
-                   with Non-3G, Japanese-specific protocol).
-                   See also http://ja.wikipedia.org/wiki/PHS (Japanese)
-          -->
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>[57-9]0</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <!-- The order of the reg-exps are important.
-             Examples (not all):
-             - "15": 15420 -> 154-20, 15472 -> 1547-2, 15410 -> 15-410,
-             - "22": 22200 -> 22-200, 22300 -> 22-300, 22320 -> 223-20, 22350 -> 22-350
-             - "42": 42000 -> 4-2000, 42901 -> 4-2901, 42910 -> 42-910
-             - "82": 82200 -> 82-200, 82020 -> 820-20, 82400 -> 82-400
-             - "99": 99400 -> 99-400, 99430 -> 994-30, 99692 -> 9969-2, 99750 -> 997-50
-             - "993": 99330 -> 993-30, 99331 -> 99-331, 99332 -> 993-32
-          -->
-        <numberFormat pattern="(\d{4})(\d)(\d{4})">
-          <leadingDigits>
-            1(?:
-              26|
-              3[79]|
-              4[56]|
-              5[4-68]|
-              6[3-5]
-            )|
-            5(?:
-              76|
-              97
-            )|
-            499|
-            746|
-            8(?:
-              3[89]|
-              63|
-              47|
-              51
-            )|
-            9(?:
-              49|
-              80|
-              9[16]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              267|
-              3(?:
-                7[247]|
-                9[278]
-              )|
-              4(?:
-                5[67]|
-                66
-              )|
-              5(?:
-                47|
-                58|
-                64|
-                8[67]
-              )|
-              6(?:
-                3[245]|
-                48|
-                5[4-68]
-              )
-            )|
-            5(?:
-              76|
-              97
-            )9|
-            499[2468]|
-            7468|
-            8(?:
-              3(?:
-                8[78]|
-                96
-              )|
-              636|
-              477|
-              51[24]
-            )|
-            9(?:
-              496|
-              802|
-              9(?:
-                1[23]|
-                69
-              )
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              267|
-              3(?:
-                7[247]|
-                9[278]
-              )|
-              4(?:
-                5[67]|
-                66
-              )|
-              5(?:
-                47|
-                58|
-                64|
-                8[67]
-              )|
-              6(?:
-                3[245]|
-                48|
-                5[4-68]
-              )
-            )|
-            5(?:
-              769|
-              979[2-69]
-            )|
-            499[2468]|
-            7468|
-            8(?:
-              3(?:
-                8[78]|
-                96[2457-9]
-              )|
-              636[2-57-9]|
-              477|
-              51[24]
-            )|
-            9(?:
-              496|
-              802|
-              9(?:
-                1[23]|
-                69
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
-          <leadingDigits>
-            1(?:
-              2[3-6]|
-              3[3-9]|
-              4[2-6]|
-              5[2-8]|
-              [68][2-7]|
-              7[2-689]|
-              9[1-578]
-            )|
-            2(?:
-              2[034-9]|
-              3[3-58]|
-              4[0-468]|
-              5[04-8]|
-              6[013-8]|
-              7[06-9]|
-              8[02-57-9]|
-              9[13]
-            )|
-            4(?:
-              2[28]|
-              3[689]|
-              6[035-7]|
-              7[05689]|
-              80|
-              9[3-5]
-            )|
-            5(?:
-              3[1-36-9]|
-              4[4578]|
-              5[013-8]|
-              6[1-9]|
-              7[2-8]|
-              8[14-7]|
-              9[4-9]
-            )|
-            7(?:
-              2[15]|
-              3[5-9]|
-              4[02-9]|
-              6[135-8]|
-              7[0-4689]|
-              9[014-9]
-            )|
-            8(?:
-              2[49]|
-              3[3-8]|
-              4[5-8]|
-              5[2-9]|
-              6[35-9]|
-              7[579]|
-              8[03-579]|
-              9[2-8]
-            )|
-            9(?:
-              [23]0|
-              4[02-46-9]|
-              5[0245-79]|
-              6[4-9]|
-              7[2-47-9]|
-              8[02-7]|
-              9[3-7]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              2[3-6]|
-              3[3-9]|
-              4[2-6]|
-              5(?:
-                [236-8]|
-                [45][2-69]
-              )|
-              [68][2-7]|
-              7[2-689]|
-              9[1-578]
-            )|
-            2(?:
-              2(?:
-                [04-9]|
-                3[23]
-              )|
-              3[3-58]|
-              4[0-468]|
-              5(?:
-                5[78]|
-                7[2-4]|
-                [0468][2-9]
-              )|
-              6(?:
-                [0135-8]|
-                4[2-5]
-              )|
-              7(?:
-                [0679]|
-                8[2-7]
-              )|
-              8(?:
-                [024578]|
-                3[25-9]|
-                9[6-9]
-              )|
-              9(?:
-                11|
-                3[2-4]
-              )
-            )|
-            4(?:
-              2(?:
-                2[2-9]|
-                8[237-9]
-              )|
-              3[689]|
-              6[035-7]|
-              7(?:
-                [059][2-8]|
-                [68]
-              )|
-              80|
-              9[3-5]
-            )|
-            5(?:
-              3[1-36-9]|
-              4[4578]|
-              5[013-8]|
-              6[1-9]|
-              7[2-8]|
-              8[14-7]|
-              9(?:
-                [89][2-8]|
-                [4-7]
-              )
-            )|
-            7(?:
-              2[15]|
-              3[5-9]|
-              4[02-9]|
-              6[135-8]|
-              7[0-4689]|
-              9(?:
-                [017-9]|
-                4[6-8]|
-                5[2-478]|
-                6[2-589]
-              )
-            )|
-            8(?:
-              2(?:
-                4[4-8]|
-                9[2-8]
-              )|
-              3(?:
-                7[2-56]|
-                [3-6][2-9]|
-                8[2-5]
-              )|
-              4[5-8]|
-              5[2-9]|
-              6(?:
-                [37]|
-                5[4-7]|
-                6[2-9]|
-                8[2-8]|
-                9[236-9]
-              )|
-              7[579]|
-              8[03-579]|
-              9[2-8]
-            )|
-            9(?:
-              [23]0|
-              4[02-46-9]|
-              5[0245-79]|
-              6[4-9]|
-              7[2-47-9]|
-              8[02-7]|
-              9(?:
-                3[34]|
-                [4-7]
-              )
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              2[3-6]|
-              3[3-9]|
-              4[2-6]|
-              5(?:
-                [236-8]|
-                [45][2-69]
-              )|
-              [68][2-7]|
-              7[2-689]|
-              9[1-578]
-            )|
-            2(?:
-              2(?:
-                [04-9]|
-                3[23]
-              )|
-              3[3-58]|
-              4[0-468]|
-              5(?:
-                5[78]|
-                7[2-4]|
-                [0468][2-9]
-              )|
-              6(?:
-                [0135-8]|
-                4[2-5]
-              )|
-              7(?:
-                [0679]|
-                8[2-7]
-              )|
-              8(?:
-                [024578]|
-                3[25-9]|
-                9[6-9]
-              )|
-              9(?:
-                11|
-                3[2-4]
-              )
-            )|
-            4(?:
-              2(?:
-                2[2-9]|
-                8[237-9]
-              )|
-              3[689]|
-              6[035-7]|
-              7(?:
-                [059][2-8]|
-                [68]
-              )|
-              80|
-              9[3-5]
-            )|
-            5(?:
-              3[1-36-9]|
-              4[4578]|
-              5[013-8]|
-              6[1-9]|
-              7[2-8]|
-              8[14-7]|
-              9(?:
-                [89][2-8]|
-                [4-7]
-              )
-            )|
-            7(?:
-              2[15]|
-              3[5-9]|
-              4[02-9]|
-              6[135-8]|
-              7[0-4689]|
-              9(?:
-                [017-9]|
-                4[6-8]|
-                5[2-478]|
-                6[2-589]
-              )
-            )|
-            8(?:
-              2(?:
-                4[4-8]|
-                9(?:
-                  [3578]|
-                  20|
-                  4[04-9]|
-                  6[56]
-                )
-              )|
-              3(?:
-                7(?:
-                  [2-5]|
-                  6[0-59]
-                )|
-                [3-6][2-9]|
-                8[2-5]
-              )|
-              4[5-8]|
-              5[2-9]|
-              6(?:
-                [37]|
-                5(?:
-                  [467]|
-                  5[014-9]
-                )|
-                6(?:
-                  [2-8]|
-                  9[02-69]
-                )|
-                8[2-8]|
-                9(?:
-                  [236-8]|
-                  9[23]
-                )
-              )|
-              7[579]|
-              8[03-579]|
-              9[2-8]
-            )|
-            9(?:
-              [23]0|
-              4[02-46-9]|
-              5[0245-79]|
-              6[4-9]|
-              7[2-47-9]|
-              8[02-7]|
-              9(?:
-                3(?:
-                  3[02-9]|
-                  4[0-24689]
-                )|
-                4[2-69]|
-                [5-7]
-              )
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              2[3-6]|
-              3[3-9]|
-              4[2-6]|
-              5(?:
-                [236-8]|
-                [45][2-69]
-              )|
-              [68][2-7]|
-              7[2-689]|
-              9[1-578]
-            )|
-            2(?:
-              2(?:
-                [04-9]|
-                3[23]
-              )|
-              3[3-58]|
-              4[0-468]|
-              5(?:
-                5[78]|
-                7[2-4]|
-                [0468][2-9]
-              )|
-              6(?:
-                [0135-8]|
-                4[2-5]
-              )|
-              7(?:
-                [0679]|
-                8[2-7]
-              )|
-              8(?:
-                [024578]|
-                3[25-9]|
-                9[6-9]
-              )|
-              9(?:
-                11|
-                3[2-4]
-              )
-            )|
-            4(?:
-              2(?:
-                2[2-9]|
-                8[237-9]
-              )|
-              3[689]|
-              6[035-7]|
-              7(?:
-                [059][2-8]|
-                [68]
-              )|
-              80|
-              9[3-5]
-            )|
-            5(?:
-              3[1-36-9]|
-              4[4578]|
-              5[013-8]|
-              6[1-9]|
-              7[2-8]|
-              8[14-7]|
-              9(?:
-                [89][2-8]|
-                [4-7]
-              )
-            )|
-            7(?:
-              2[15]|
-              3[5-9]|
-              4[02-9]|
-              6[135-8]|
-              7[0-4689]|
-              9(?:
-                [017-9]|
-                4[6-8]|
-                5[2-478]|
-                6[2-589]
-              )
-            )|
-            8(?:
-              2(?:
-                4[4-8]|
-                9(?:
-                  [3578]|
-                  20|
-                  4[04-9]|
-                  6(?:
-                    5[25]|
-                    60
-                  )
-                )
-              )|
-              3(?:
-                7(?:
-                  [2-5]|
-                  6[0-59]
-                )|
-                [3-6][2-9]|
-                8[2-5]
-              )|
-              4[5-8]|
-              5[2-9]|
-              6(?:
-                [37]|
-                5(?:
-                  [467]|
-                  5[014-9]
-                )|
-                6(?:
-                  [2-8]|
-                  9[02-69]
-                )|
-                8[2-8]|
-                9(?:
-                  [236-8]|
-                  9[23]
-                )
-              )|
-              7[579]|
-              8[03-579]|
-              9[2-8]
-            )|
-            9(?:
-              [23]0|
-              4[02-46-9]|
-              5[0245-79]|
-              6[4-9]|
-              7[2-47-9]|
-              8[02-7]|
-              9(?:
-                3(?:
-                  3[02-9]|
-                  4[0-24689]
-                )|
-                4[2-69]|
-                [5-7]
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>
-            1|
-            2(?:
-              23|
-              5[5-89]|
-              64|
-              78|
-              8[39]|
-              91
-            )|
-            4(?:
-              2[2689]|
-              64|
-              7[347]
-            )|
-            5(?:
-              [2-589]|
-              39
-            )|
-            60|
-            8(?:
-              [46-9]|
-              3[279]|
-              2[124589]
-            )|
-            9(?:
-              [235-8]|
-              93
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1|
-            2(?:
-              23|
-              5(?:
-                [57]|
-                [68]0|
-                9[19]
-              )|
-              64|
-              78|
-              8[39]|
-              917
-            )|
-            4(?:
-              2(?:
-                [68]|
-                20|
-                9[178]
-              )|
-              64|
-              7[347]
-            )|
-            5(?:
-              [2-589]|
-              39[67]
-            )|
-            60|
-            8(?:
-              [46-9]|
-              3[279]|
-              2[124589]
-            )|
-            9(?:
-              [235-8]|
-              93[34]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1|
-            2(?:
-              23|
-              5(?:
-                [57]|
-                [68]0|
-                9(?:
-                  17|
-                  99
-                )
-              )|
-              64|
-              78|
-              8[39]|
-              917
-            )|
-            4(?:
-              2(?:
-                [68]|
-                20|
-                9[178]
-              )|
-              64|
-              7[347]
-            )|
-            5(?:
-              [2-589]|
-              39[67]
-            )|
-            60|
-            8(?:
-              [46-9]|
-              3[279]|
-              2[124589]
-            )|
-            9(?:
-              [235-8]|
-              93(?:
-                31|
-                4
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
-          <leadingDigits>
-            2(?:
-              9[14-79]|
-              74|
-              [34]7|
-              [56]9
-            )|
-            82|
-            993
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            3|
-            4(?:
-              2[09]|
-              7[01]
-            )|
-            6[1-9]
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[2479]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              1[236-8]|
-              2[3-6]|
-              3[3-9]|
-              4[2-6]|
-              [58][2-8]|
-              6[2-7]|
-              7[2-9]|
-              9[1-8]
-            )|
-            2[2-9]\d|
-            [36][1-9]\d|
-            4(?:
-              6[0235-8]|
-              [2-578]\d|
-              9[2-59]
-            )|
-            5(?:
-              6[1-9]|
-              7[2-8]|
-              [2-589]\d
-            )|
-            7(?:
-              3[4-9]|
-              4[02-9]|
-              [25-9]\d
-            )|
-            8(?:
-              3[2-9]|
-              4[5-9]|
-              5[1-9]|
-              8[03-9]|
-              [2679]\d
-            )|
-            9(?:
-              [679][1-9]|
-              [2-58]\d
-            )
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>312345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[7-9]0\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </mobile>
-      <!-- Toll free and premium rate numbers are not clearly defined in the official Japanese
-           number plan, and do not seem to have been standardized. The information below is
-           collected from searching the web. -->
-      <tollFree>
-        <nationalNumberPattern>120\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>120123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>990\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>990123456</exampleNumber>
-      </premiumRate>
-      <!-- Uncertain on number length allowed here. -->
-      <personalNumber>
-        <nationalNumberPattern>60\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>601234567</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>50\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5012345678</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Kenya -->
-    <!-- http://www.cck.go.ke/licensing/numbering/plan.html -->
-    <territory id="KE" countryCode="254" internationalPrefix="000"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4,7})">
-          <leadingDigits>
-            [2-6]|
-            91
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{6,7})">
-          <leadingDigits>
-            [78]|
-            90
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{6,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            20|
-            4[0-6]|
-            5\d|
-            6[0-24-9]
-          )\d{4,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,9}</possibleNumberPattern>
-        <exampleNumber>202012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 716 after successful delivery of SMSs. -->
-        <nationalNumberPattern>
-          7(?:
-            1[0-6]|
-            2\d|
-            3[2-8]|
-            5[0-2]|
-            7[023]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>712123456</exampleNumber>
-      </mobile>
-      <!-- There is no document that has the information on the actual length of premium rates and
-           tollfree numbers. The information below comes from research on existing numbers. -->
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            88
-          )\d{6,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-         <nationalNumberPattern>
-           9(?:
-             00|
-             1
-           )\d{6,7}
-         </nationalNumberPattern>
-         <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-         <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Kyrgyzstan -->
-    <!-- http://www.itu.int/oth/T0202000074/en -->
-    <territory id="KG" countryCode="996" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>
-            31[25]|
-            [5-8]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{5})">
-          <leadingDigits>
-            3(?:
-              1[36]|
-              [2-9]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[356-8]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3(?:
-              1(?:
-                2\d|
-                3[1-9]|
-                52|
-                6[1-8]
-              )|
-              2(?:
-                22|
-                3[0-479]|
-                6[0-7]
-              )|
-              4(?:
-                22|
-                5[6-9]|
-                6[0-4]
-              )|
-              5(?:
-                22|
-                3[4-7]|
-                59|
-                6[0-5]
-              )|
-              6(?:
-                22|
-                5[35-7]|
-                6[0-3]
-              )|
-              7(?:
-                22|
-                3[468]|
-                4[1-8]|
-                59|
-                6\d|
-                7[5-7]
-              )|
-              9(?:
-                22|
-                4[1-7]|
-                6[0-8]
-              )
-            )|
-            6(?:
-              09|
-              12|
-              2[2-4]
-            )\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>312123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added 705 since SMS messages have been successfully sent to numbers with this prefix.
-         -->
-        <nationalNumberPattern>
-          5[124-7]\d{7}|
-          7(?:
-            0[05]|
-            7\d
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>700123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <!-- No premiumRate information can be found. -->
-    </territory>
-
-    <!-- Cambodia -->
-    <!-- http://www.itu.int/oth/T0202000023/en -->
-    <territory id="KH" countryCode="855" internationalPrefix="00[178]"
-               nationalPrefix="0">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            1\d[1-9]|
-            [2-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(1[89]00)(\d{3})(\d{3})">
-          <leadingDigits>1[89]0</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[3-6]|
-            3[2-6]|
-            4[2-4]|
-            [5-7][2-5]
-          )[2-47-9]\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>23456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 171, 13X, 85[2-689] and 921 prefixes as SMS messages could be successfully
-             delivered to these mobile numbers. -->
-        <nationalNumberPattern>
-          (?:
-            (?:
-              1[0-35-9]|
-              9[1-49]
-            )[1-9]|
-            85[2-689]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>91234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          1800(?:
-            1\d|
-            2[09]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          1900(?:
-            1\d|
-            2[09]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Kiribati -->
-    <territory id="KI" countryCode="686" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Comoros -->
-    <!-- http://www.itu.int/oth/T020200002D/en -->
-    <territory id="KM" countryCode="269" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[37]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- CDMA phones are included here, as they are considered as an extension of fixed line:
-             http://www.comorestelecom.km/presentationcdma.php -->
-        <nationalNumberPattern>
-          7(?:
-            6[0-37-9]|
-            7[0-57-9]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>7712345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>3[23]\d{5}</nationalNumberPattern>
-        <exampleNumber>3212345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Saint Kitts and Nevis -->
-    <!-- http://www.itu.int/oth/T02020000B0/en -->
-    <territory id="KN" countryCode="1" leadingDigits="869"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[89]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          869(?:
-            2(?:
-              29|
-              36
-            )|
-            4(?:
-              6[5-9]|
-              70
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>8692361234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          869(?:
-            5(?:
-              5[6-8]|
-              6[5-7]
-            )|
-            66[2-9]|
-            76[2-5]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8695561234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!--  Korea, Dem. People's Rep. of -->
-    <territory id="KP" countryCode="850" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Korea (Rep. of) -->
-    <!-- http://www.itu.int/oth/T0202000072/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B82 -->
-    <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2349 -->
-    <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2240 -->
-    <!-- http://www.telecentro.co.kr/sub/index.php?job=detail&ebcf_id=faq&page=1&mid=0503&eb_seq=36 -->
-    <!-- Exceptions :
-        internationalPrefix
-            0031, 0033, 0071, 0073 - Special services of KT and DACOM, ignorable
-        nationalPrefix
-            1[4-6]XX-YYYY - Country-wide common number services, display as it is without hyphens -->
-    <territory id="KR" countryCode="82" internationalPrefix="00(?:[124-68]|[37]\d{2})"
-               nationalPrefix="0" nationalPrefixForParsing="0(8[1-46-8]|85\d{2})?"
-               nationalPrefixFormattingRule="$NP$FG" carrierCodeFormattingRule="$NP$CC-$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>
-            1(?:
-              0|
-              1[19]|
-              [69]9|
-              5[458]
-            )|
-            [57]0
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              0|
-              1[19]|
-              [69]9|
-              5(?:
-                44|
-                59|
-                8
-              )
-            )|
-            [57]0
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>
-            1(?:
-              [169][2-8]|
-              [78]|
-              5[1-4]
-            )|
-            [68]0|
-            [3-9][1-9][2-9]
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              [169][2-8]|
-              [78]|
-              5(?:
-                [1-3]|
-                4[56]
-              )
-            )|
-            [68]0|
-            [3-9][1-9][2-9]
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d)(\d{4})">
-          <leadingDigits>131</leadingDigits>
-          <leadingDigits>1312</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
-          <leadingDigits>131</leadingDigits>
-          <leadingDigits>131[13-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>13[2-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>30</leadingDigits>
-          <format>$1-$2-$3-$4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            2(?:
-              [26]|
-              3[0-467]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            2(?:
-              [26]|
-              3(?:
-                01|
-                1[45]|
-                2[17-9]|
-                39|
-                4|
-                6[67]|
-                7[078]
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            2(?:
-              3[0-35-9]|
-              [457-9]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            2(?:
-              3(?:
-                0[02-9]|
-                1[0-36-9]|
-                2[02-6]|
-                3[0-8]|
-                6[0-589]|
-                7[1-69]|
-                [589]
-              )|
-              [457-9]
-            )
-          </leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3,4})">
-          <leadingDigits>21[0-46-9]</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3,4})">
-          <leadingDigits>[3-9][1-9]1</leadingDigits>
-          <leadingDigits>
-            [3-9][1-9]1(?:
-              [0-46-9]
-            )
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <!-- Company numbers. -->
-        <numberFormat pattern="(\d{4})(\d{4})"
-          nationalPrefixFormattingRule="$FG">
-          <leadingDigits>
-            1(?:
-              5[46-9]|
-              6[04678]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            1(?:
-              5(?:
-                44|
-                66|
-                77|
-                88|
-                99
-              )|
-              6(?:
-                00|
-                44|
-                6[16]|
-                70|
-                88
-              )
-            )
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-79]\d{3,9}|
-          8\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2|
-            [34][1-3]|
-            5[1-5]|
-            6[1-4]
-          )(?:
-            1\d{2,3}|
-            [2-9]\d{6,7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1[0-25-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>1023456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <!-- The information below is provided by a Korean person. -->
-      <premiumRate>
-        <nationalNumberPattern>60[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>602345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>50\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5012345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </voip>
-      <uan>
-        <nationalNumberPattern>
-          1(?:
-            5(?:
-              44|
-              66|
-              77|
-              88|
-              99
-            )|
-            6(?:
-              00|
-              44|
-              6[16]|
-              70|
-              88
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>15441234</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Kuwait -->
-    <!-- http://www.itu.int/oth/T0202000073/en -->
-    <territory id="KW" countryCode="965" internationalPrefix="00"
-               nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Format is from ITU. -->
-        <numberFormat pattern="(\d{4})(\d{3,4})">
-          <leadingDigits>[1269]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(5[05]\d)(\d{5})">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[12569]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            18\d|
-            2(?:
-              [23]\d{2}|
-              4[1-35-9]\d|
-              5(?:
-                0[034]|
-                [2-46]\d|
-                5[1-3]|
-                7[1-7]
-              )
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>22345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5(?:
-              0[02]|
-              5\d
-            )|
-            6(?:
-              0[034679]|
-              5[015-9]|
-              6\d|
-              7[067]
-            )|
-            9(?:
-              0[09]|
-              4[049]|
-              [79]\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>50012345</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-      <shortCode>
-        <nationalNumberPattern>1\d{2}</nationalNumberPattern>
-        <possibleNumberPattern>\d{3}</possibleNumberPattern>
-        <exampleNumber>177</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Cayman Islands -->
-    <!-- http://www.itu.int/oth/T0202000027/en -->
-    <territory id="KY" countryCode="1" leadingDigits="345"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[389]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          345(?:
-            2(?:
-              22|
-              44
-            )|
-            444|
-            6(?:
-              23|
-              38|
-              40
-            )|
-            7(?:
-              6[6-9]|
-              77
-            )|
-            8(?:
-              00|
-              1[45]|
-              25|
-              4[89]|
-              88
-            )|
-            9(?:
-              14|
-              4[035-9]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>3452221234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          345(?:
-            32[3-79]|
-            5(?:
-              1[467]|
-              2[5-7]|
-              4[5-9]
-            )|
-            9(?:
-              1[679]|
-              2[4-9]|
-              3[89]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>3453231234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          900[2-9]\d{6}|
-          345976\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Kazakhstan -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Kazakhstan -->
-    <territory id="KZ" countryCode="7" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP$FG">
-       <!-- Formatting rules obtained from Russia. -->
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [67]\d{2}|
-            80[09]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- VSAT numbers are also included here. -->
-        <nationalNumberPattern>
-          7(?:
-            1(?:
-              0(?:
-                [23]\d|
-                4[023]|
-                59|
-                63
-              )|
-              1(?:
-                [23]\d|
-                4[0-79]|
-                59
-              )|
-              2(?:
-                [23]\d|
-                59
-              )|
-              3(?:
-                2\d|
-                3[1-7]|
-                4[1235-9]|
-                59
-              )|
-              4(?:
-                2\d|
-                3[013-79]|
-                4[0-58]|
-                5[1-79]
-              )|
-              5(?:
-                2\d|
-                3[1-8]|
-                4[1-7]|
-                59
-              )|
-              6(?:
-                22|
-                [34]\d|
-                5[19]
-              )|
-              72\d|
-              8(?:
-                [27]\d|
-                3[1-46-9]|
-                4[0-4]|
-              )
-            )|
-            2(?:
-              1(?:
-                [23]\d|
-                4[46-9]|
-                5[3469]
-              )|
-              2(?:
-                2\d|
-                3[0679]|
-                46|
-                5[12679]|
-              )|
-              3(?:
-                [234]\d|
-                5[139]|
-              )|
-              4(?:
-                22|
-                3[1235-8]
-              )|
-              5(?:
-                [23]\d|
-                4[0124-8]|
-                59
-              )|
-              6(?:
-                22|
-                3[1-9]|
-                4[0-4]|
-                59
-              )|
-              7(?:
-                [23]\d|
-                40|
-                5[279]|
-                7\d
-              )|
-              8(?:
-                [23]\d|
-                4[0-3]|
-                59
-              )|
-              9(?:
-                2\d|
-                3[12478]|
-                59
-              )
-            )|
-            3622
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>7123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Wikipedia says that 6xx is used for mobile phone numbers. Other metadata comes from ITU
-             document. -->
-        <nationalNumberPattern>
-          7(?:
-            0[01257]\d{2}|
-            1[2-578]9[01]|
-            2(?:
-              [13-6]9[01]|
-              7(?:
-                58|
-                9[01]
-              )
-            )|
-            6[02-4]\d{2}|
-            7[157]\d{2}
-          )\d{5}|
-          6\d{9}
-        </nationalNumberPattern>
-        <exampleNumber>7129012345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>809\d{7}</nationalNumberPattern>
-        <exampleNumber>8091234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Lao People's Dem. Rep. -->
-    <!-- http://www.itu.int/oth/T0202000075/en -->
-    <territory id="LA" countryCode="856" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(20)(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>20</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([2-57]\d)(\d{3})(\d{3})">
-          <leadingDigits>
-            21|
-            [3-57]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-57]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [2-57]1|
-            54
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>21212862</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          20(?:
-            2[23]|
-            5[4-6]|
-            77|
-            9[89]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2023123456</exampleNumber>
-      </mobile>
-      <!-- No information on other types of phone numbers for Lao P.D.R. has been found. -->
-    </territory>
-
-    <!-- Lebanon -->
-    <!-- http://www.itu.int/oth/T0202000077/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B961 -->
-    <territory id="LB" countryCode="961" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})">
-          <leadingDigits>
-            [13-6]|
-            7(?:
-              [2-57-9]|
-              62)|
-            [89][2-9]
-            </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([7-9]\d)(\d{3})(\d{3})">
-          <leadingDigits>
-            [89][01]|
-            7(?:
-              [01]|
-              66)
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13-9]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [14-6]\d{2}|
-            7(?:
-              [2-57-9]\d|
-              62)|
-            [89][2-9]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>1123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            3\d|
-            7(?:
-              [01]\d|
-              66
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>71123456</exampleNumber>
-      </mobile>
-      <premiumRate>
-        <nationalNumberPattern>8[01]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>9[01]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Saint Lucia -->
-    <!-- http://www.itu.int/oth/T02020000B1/en -->
-    <territory id="LC" countryCode="1" leadingDigits="758"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[789]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          758(?:
-            234|
-            4(?:
-              5[0-9]|
-              6[2-9]|
-              8[0-2]
-            )|
-            638|
-            758
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>7582345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 721 and 722 as these prefixes are found widely on the internet and SMS messages
-             have been successfully delivered to these numbers. -->
-        <nationalNumberPattern>
-          758(?:
-            28[4-7]|
-            384|
-            4(?:
-              6[01]|
-              8[4-9]
-            )|
-            5(?:
-              1[89]|
-              20|
-              84
-            )|
-            7(?:
-              1[2-9]|
-              2[0-4]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7582845678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Liechtenstein -->
-    <!-- http://www.llv.li/amtsstellen/llv-ak-nummerierung.htm -->
-    <!-- http://www.telecom.li has some different patterns for tollfree and shared cost numbers -
-         look at "Mehrwertnummer". -->
-    <territory id="LI" countryCode="423" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>
-            [23]|
-            7[4-9]|
-            87
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(6\d)(\d{3})(\d{3})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([7-9]0\d)(\d{2})(\d{2})">
-          <leadingDigits>[7-9]0</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 0800 and 0900 are valid prefixes, but Liechtenstein
-             doesn't have a general national prefix, so we include it manually here
-             when formatting. We can tell whether it needs one by number length. -->
-        <numberFormat pattern="([89]0\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[89]0</leadingDigits>
-          <format>0$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            66|
-            80|
-            90
-          )\d{7}|
-          [237-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Regular Cost services are included here as well. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              17|
-              3\d|
-              6[02-58]|
-              96
-            )|
-            3(?:
-              02|
-              7[01357]|
-              8[048]|
-              9[0269]
-            )|
-            870
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>2345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          66(?:
-            [0178][0-4]|
-            2[025-9]|
-            [36]\d|
-            4[129]|
-            5[45]|
-            9[019]
-          )\d{5}|
-          7(?:
-            4[2-59]|
-            56|
-            [6-9]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>661234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          80(?:
-            0(?:
-              07|
-              2[238]|
-              79|
-              \d{4}
-            )|
-            9\d{2}
-          )\d{2}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>8002222</exampleNumber>
-      </tollFree>
-      <sharedCost>
-        <nationalNumberPattern>
-          90(?:
-            0(?:
-              2[278]|
-              79|
-              \d{4}
-            )|
-            1(?:
-              23|
-              \d{4}
-            )|
-            6(?:
-              66|
-              \d{4}
-            )
-          )\d{2}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>9002222</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>701\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>7011234</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Sri Lanka -->
-    <!-- http://en.wikipedia.org/wiki/%2B94 -->
-    <!-- http://www.itu.int/oth/T02020000C3/en -->
-    <territory id="LK" countryCode="94" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{1})(\d{6})">
-          <leadingDigits>[1-689]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>7</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [189]1|
-            2[13-7]|
-            3[1-8]|
-            4[157]|
-            5[12457]|
-            6[35-7]
-          )[2-57]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>112345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[12578]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>712345678</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Liberia -->
-    <!-- http://www.itu.int/oth/T0202000079/en -->
-    <territory id="LR" countryCode="231" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formatting from Ministry of Agriculture,
-        http://www.moa.gov.lr/content.php?sub=Email&?related=Contacts -->
-        <numberFormat pattern="([279]\d)(\d{3})(\d{3})">
-          <leadingDigits>[279]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([4-6])(\d{3})(\d{3})">
-          <leadingDigits>[4-6]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [279]\d|
-            [4-6]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added 66, 67 and 68 as prefixes because of online numbers fitting this pattern. -->
-        <nationalNumberPattern>
-          (?:
-            4[67]|
-            5\d|
-            6[4-8]|
-            7\d{2}
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>4612345</exampleNumber>
-      </mobile>
-      <premiumRate>
-        <!-- Telemedia service is listed under premium rate. -->
-        <nationalNumberPattern>90\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Lesotho -->
-    <!-- http://www.itu.int/oth/T0202000078/en -->
-    <territory id="LS" countryCode="266" internationalPrefix="00">
-      <availableFormats>
-        <!-- Formatting following yellow pages: www.yellowpages.co.ls -->
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2568]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2\d{7}</nationalNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[56]\d{7}</nationalNumberPattern>
-        <exampleNumber>50123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800[256]\d{4}</nationalNumberPattern>
-        <exampleNumber>80021234</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Lithuania -->
-    <!-- http://www.itu.int/oth/T020200007C/en -->
-    <territory id="LT" countryCode="370" internationalPrefix="00"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP $FG">
-      <availableFormats>
-        <!-- Two-digit area codes -->
-        <numberFormat pattern="([34]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            37|
-            4(?:
-              1|
-              5[45]|
-              6[2-4]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <!-- Three-digit area codes -->
-        <numberFormat pattern="([3-689]\d{2})(\d{2})(\d{3})">
-          <leadingDigits>
-            3[148]|
-            4(?:
-              [24]|
-              6[09]
-            )|
-            5(?:
-              [0189]|
-              28
-            )|
-            [689]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(5)(2[0-79]\d)(\d{4})">
-          <leadingDigits>52[0-79]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3[1478]|
-            4[124-6]|
-            52
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>31234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6\d{7}</nationalNumberPattern>
-        <exampleNumber>61234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[0239]\d{5}</nationalNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Luxembourg -->
-    <!-- http://www.ilr.public.lu/communications_electroniques/numerotation/index.html
-         -->
-    <territory id="LU" countryCode="352" internationalPrefix="00"
-        nationalPrefixForParsing="(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\d)"
-        carrierCodeFormattingRule="$CC $FG">
-      <availableFormats>
-        <!-- Patterns overlap because of variable number length. -->
-        <numberFormat pattern="(\d{2})(\d{3})">
-          <leadingDigits>
-            [23-5]|
-            7[1-9]|
-            [89](?:
-              [1-9]|
-              0[2-9]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            [23-5]|
-            7[1-9]|
-            [89](?:
-              [1-9]|
-              0[2-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{3})">
-          <leadingDigits>20</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- The pattern for 7-digit numbers starting with 20 here will never be reached - but since
-             we want this pattern to apply for 8-digit numbers with a 20 prefix, we include 20 in
-             the leading digits. This is also done for 9-10 digit numbers starting with 20 below.
-             -->
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{1,2})">
-          <leadingDigits>
-            2(?:
-              [0367]|
-              4[3-8]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{3})">
-          <leadingDigits>20</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})(\d{1,2})">
-          <leadingDigits>
-            2(?:
-              [0367]|
-              4[3-8]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4 $5</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{1,4})">
-          <leadingDigits>
-            2(?:
-              [12589]|
-              4[12]
-            )|
-            [3-5]|
-            7[1-9]|
-            [89](?:
-              [1-9]|
-              0[2-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{3})">
-          <leadingDigits>
-            [89]0[01]|
-            70
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- The country-code is an impossible number prefix, so has been excluded here. This is
-             necessary since the numbers have a variable number length. -->
-        <nationalNumberPattern>
-          [24-9]\d{3,10}|
-          3(?:
-            [0-46-9]\d{2,9}|
-            5[013-9]\d{1,8}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Note that numbers starting with 2[367] can be a maximum of 10 digits - all others a
-             maximum of 11. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              2\d{1,2}|
-              3[2-9]|
-              [67]\d|
-              4[1-8]\d?|
-              5[1-5]\d?|
-              9[0-24-9]\d?
-            )|
-            3(?:
-              [059][05-9]|
-              [13]\d|
-              [26][015-9]|
-              4[0-26-9]|
-              7[0-389]|
-              8[08]
-            )\d?|
-            4\d{2,3}|
-            5(?:
-              [01458]\d|
-              [27][0-69]|
-              3[0-3]|
-              [69][0-7]
-            )\d?|
-            7(?:
-              1[019]|
-              2[05-9]|
-              3[05]|
-              [45][07-9]|
-              [679][089]|
-              8[06-9]
-            )\d?|
-            8(?:
-              0[2-9]|
-              1[0-36-9]|
-              3[3-9]|
-              [469]9|
-              [58][7-9]|
-              7[89]
-            )\d?|
-            9(?:
-              0[89]|
-              2[0-49]|
-              37|
-              49|
-              5[0-27-9]|
-              7[7-9]|
-              9[0-478]
-            )\d?
-          )\d{1,7}
-        </nationalNumberPattern>
-        <exampleNumber>27123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[269][18]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>628123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[01]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>801\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80112345</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>70\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>70123456</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>20\d{2,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-        <exampleNumber>2012345</exampleNumber>
-      </voip>
-      <shortCode>
-        <nationalNumberPattern>
-          1(?:
-            1[23]|
-            2\d{3}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,5}</possibleNumberPattern>
-        <exampleNumber>12123</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Latvia -->
-    <!-- http://www.itu.int/oth/T0202000076/en -->
-    <territory id="LV" countryCode="371" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([2689]\d)(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2689]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>6\d{7}</nationalNumberPattern>
-        <exampleNumber>61234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>2\d{7}</nationalNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{6}</nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{6}</nationalNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Libya (Soc. People’s Libyan Arab Jamahiriya) -->
-    <!-- Status as of 21 Jan 2011: a lot of outdated information on the web including on wikipedia
-         and itu.int. The new area codes are on the Arabic website of the main telecommunication
-         operator (Hatef Libya). A new mobile operator Aljeel Aljadeed for Technology will start
-         using 096 (they are allowing customers to register numbers currently), so their code has
-         also been added. -->
-    <!-- http://hlc.ly/price.php -->
-    <territory id="LY" countryCode="218" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([25679]\d)(\d{7})">
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[25679]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[1345]|
-            5[1347]|
-            6[123479]|
-            71
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[12356]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Morocco -->
-    <!-- http://www.itu.int/oth/T0202000090/en -->
-    <!-- http://en.wikipedia.org/wiki/+212 -->
-    <territory id="MA" countryCode="212" internationalPrefix="00"
-      nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([56]\d{2})(\d{6})">
-          <leadingDigits>
-            5(?:
-              2[015-7]|
-              3[0-4]
-            )|
-            6
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="([58]\d{3})(\d{5})">
-          <leadingDigits>
-            5(?:
-              2[2-489]|
-              3[5-9]
-            )|
-            892
-          </leadingDigits>
-          <leadingDigits>
-            5(?:
-              2(?:
-                [2-48]|
-                90
-              )|
-              3(?:
-                [5-79]|
-                80
-              )
-            )|
-            892
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(5\d{4})(\d{4})">
-          <leadingDigits>
-            5(?:
-              29|
-              38
-            )
-          </leadingDigits>
-          <leadingDigits>
-            5(?:
-              29|
-              38
-            )[89]
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(8[09])(\d{7})">
-          <leadingDigits>
-            8(?:
-              0|
-              9[013-9]
-            )
-          </leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[5689]\d{8}</nationalNumberPattern>
-        <!-- Closed numbering plan. -->
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          5(?:
-            2(?:
-              (?:
-                [015-7]\d|
-                2[2-9]|
-                3[2-57]|
-                4[2-8]|
-                8[235-9]|
-              )\d|
-              9(?:
-                0\d|
-                [89]0
-              )
-            )|
-            3(?:
-              (?:
-                [0-4]\d|
-                [57][2-9]|
-                6[235-8]|
-                9[3-9]
-              )\d|
-              8(?:
-                0\d|
-                [89]0
-              )
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>520123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          6(?:
-            0[06]|
-            [14-7]\d|
-            2[236]|
-            33|
-            99
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>650123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>89\d{7}</nationalNumberPattern>
-        <exampleNumber>891234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Monaco -->
-    <!-- http://www.itu.int/oth/T020200008D/en -->
-    <!-- We support Kosovo mobile numbers (044, 045) with a Monaco country-code here, as we do not
-         support Kosovo at the moment. Kosovo seems to use a variety of country codes currently. -->
-    <territory id="MC" countryCode="377" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Following formatting found online rather than in the ITU document example. -->
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>4</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(6)(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3 $4 $5</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[4689]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <noInternationalDialling>
-        <nationalNumberPattern>8\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </noInternationalDialling>
-      <fixedLine>
-        <!-- Restricted to this as no numbers with the prefix of 91, 95 or 96 have been found. -->
-        <nationalNumberPattern>9[2-47-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>99123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 4X mobile numbers are actually used by Kosovo. -->
-        <nationalNumberPattern>
-          6\d{8}|
-          4\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          (?:
-            8\d|
-            90
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Moldova, Rep. of -->
-    <!-- http://www.itu.int/oth/T020200008C/en -->
-    <territory id="MD" countryCode="373" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(22)(\d{3})(\d{3})">
-          <leadingDigits>22</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([25-7]\d{2})(\d{2})(\d{3})">
-          <leadingDigits>
-            2[13-79]|
-            [5-7]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([89]00)(\d{5})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[256-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              1[0569]|
-              2\d|
-              3[015-7]|
-              4[1-46-9]|
-              5[0-24689]|
-              6[2-589]|
-              7[1-37]|
-              9[1347-9]
-            )|
-            5(?:
-              33|
-              5[257]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-        <exampleNumber>22212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added 688 and 689 since SMS messages have been successfully sent to these numbers. -->
-        <nationalNumberPattern>
-          (?:
-            6(?:
-              50|
-              7[12]|
-              [89]\d
-            )|
-            7(?:
-              80|
-              9\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>65012345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{5}</nationalNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Montenegro -->
-    <territory id="ME" countryCode="382" internationalPrefix="99"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Madagascar -->
-    <!-- http://www.itu.int/oth/T020200007F/en -->
-    <territory id="MG" countryCode="261" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([23]\d)(\d{2})(\d{3})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[23]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Added the prefixes 20 44 and 20 47 as they seem popular on the internet - the plan says
-             20 4 is for the rest of the province of Antanarivo, but then fails to mention any area
-             codes beginning with 4. -->
-        <nationalNumberPattern>
-          2(?:
-            0(?:
-              (?:
-                2\d|
-                4[47]|
-                5[3467]|
-                6[279]|
-                8[268]|
-                9[245]
-              )\d|
-              7(?:
-                2[29]|
-                [35]\d
-              )
-            )|
-            210\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>202123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- The numbering plan suggests the third digit, Z, should be 24-9,
-             but this is not borne out by reality. -->
-        <nationalNumberPattern>3[02-4]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>301234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Saint-Martin, French Antilles -->
-    <!-- http://www.itu.int/oth/T0202000058/en -->
-    <territory id="MF" countryCode="590" internationalPrefix="00"
-      nationalPrefix="0">
-      <!-- Formatting rules borrowed from Guadeloupe. -->
-      <generalDesc>
-        <nationalNumberPattern>[56]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          590(?:
-            10|
-            2[79]|
-            5[128]|
-            [78]7
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>590271234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          690(?:
-            10|
-            2[27]|
-            66|
-            77|
-            8[78]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>690221234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Marshall Islands -->
-    <territory id="MH" countryCode="692" internationalPrefix="011"
-               nationalPrefix="1">
-    </territory>
-
-    <!-- Macedonia, Former Yugoslav Rep. of -->
-    <!-- http://en.wikipedia.org/wiki/%2B389
-         http://www.aek.mk/ go to Telecommunications, Numbering, then Numbering plan. -->
-    <territory id="MK" countryCode="389" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formats follow wikipedia. -->
-        <numberFormat pattern="(2)(\d{3})(\d{4})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([347]\d)(\d{3})(\d{3})">
-          <leadingDigits>[347]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([58]\d{2})(\d)(\d{2})(\d{2})">
-          <leadingDigits>[58]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-578]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [23]\d|
-              5[125]|
-              61
-            )|
-            3(?:
-              1[3-6]|
-              2[2-6]|
-              3[2-5]|
-              4[235]
-            )|
-            4(?:
-              [23][2-6]|
-              4[3-6]|
-              5[25]|
-              6[25-8]|
-              7[24-6]|
-              8[4-6]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>22212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[0-25-8]\d{6}</nationalNumberPattern>
-        <exampleNumber>72345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>5[02-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>50012345</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            0[1-9]|
-            [1-9]\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Mali -->
-    <!-- http://www.itu.int/oth/T0202000083/en -->
-    <!-- http://crt-mali.org/pdf/plan_num -->
-    <territory id="ML" countryCode="223" internationalPrefix="00"
-               nationalPrefix="0">
-      <availableFormats>
-        <numberFormat pattern="([246-8]\d)(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[246-8]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 20 70 seems a common pattern, in addition to 21 25. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              0(?:
-                2[0-589]|
-                7[027-9]
-              )|
-              1(?:
-                2[5-7]|
-                [3-689]\d
-              )
-            )|
-            442\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>20212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            6(?:
-              [569]\d
-            )|
-            7(?:
-              [08][1-9]|
-              [3579][0-4]|
-              4[014-7]|
-              6\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>65012345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Online examples have not been found, but this seems to follow the prescriptions in the
-             plan. -->
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Myanmar -->
-    <!-- http://www.itu.int/oth/T0202000092/en -->
-    <territory id="MM" countryCode="95" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(1)(\d{3})(\d{3})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- This overlaps the previous pattern. -->
-        <numberFormat pattern="(1)(3)(33\d)(\d{3})">
-          <leadingDigits>133</leadingDigits>
-          <leadingDigits>1333</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(2)(\d{2})(\d{3})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{3})">
-          <leadingDigits>[4-8]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Format is from http://www.aitaa.ait.ac.th/chapters/copy17_of_aitaa-national-chapters-1 -->
-        <numberFormat pattern="(9444)(\d{5})">
-          <leadingDigits>94</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(9)([25689]\d{2})(\d{4})">
-          <leadingDigits>9[25689]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [124-8]\d{5,7}|
-          9\d{7,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Fixed satellite network numbers (1 3 33X XXX) are also included here. -->
-        <nationalNumberPattern>
-          (?:
-            1\d|
-            2|
-            4[2-6]|
-            5[2-9]|
-            6\d|
-            7[0-5]|
-            8[1-6]
-          )\d{5}|
-          1333\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-        <exampleNumber>1234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          9(?:
-            [25689]\d|
-            444
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>92123456</exampleNumber>
-      </mobile>
-      <!-- No information on other types of phone numbers for Myanmar has been found. -->
-    </territory>
-
-    <!-- Mongolia -->
-    <!-- http://www.itu.int/oth/T020200008E/en -->
-    <territory id="MN" countryCode="976" internationalPrefix="001"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([12]\d)(\d{2})(\d{4})">
-          <leadingDigits>[12]1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([12]2\d)(\d{5,6})">
-          <leadingDigits>[12]2[1-3]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([12]\d{3})(\d{5})">
-          <leadingDigits>
-            [12](?:
-              27|
-              [3-5]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            [12](?:
-              27|
-              [3-5]\d
-            )2
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- It seems from online formatting that the national prefix is not written (or perhaps
-             needed?) for numbers in these ranges. -->
-        <numberFormat pattern="(\d{4})(\d{4})"
-          nationalPrefixFormattingRule="$FG">
-          <leadingDigits>[57-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([12]\d{4})(\d{4,5})">
-          <leadingDigits>
-            [12](?:
-              27|
-              [3-5]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            [12](?:
-              27|
-              [3-5]\d
-            )[4-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [12]\d{7,9}|
-          [57-9]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Note the leading digit is the access code: 1 is used by Mongolia Telecom subscribers
-             and 2 is used by Mongolian Railway subscribers. The area code then follows the access
-             code, and could be 1 to 4 digits long. We also cover wireless local loop numbers here
-             as well, even though we are not certain whether they are in fact fixed or mobile in
-             this country. 5-digit subscriber numbers for 4-digit area codes have been added due to
-             online numbers being found. -->
-        <nationalNumberPattern>
-          [12](?:
-            1\d|
-            2(?:
-              [1-3]\d?|
-              7\d
-            )|
-            3[2-8]\d{1,2}|
-            4[2-68]\d{1,2}|
-            5[1-4689]\d{1,2}
-          )\d{5}|
-          (?:
-            5[0568]|
-            70
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>70123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding prefix 98 from numbers found on the internet. -->
-        <nationalNumberPattern>
-          (?:
-            8[89]|
-            9[15689]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>88123456</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-      <voip>
-        <nationalNumberPattern>7[569]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>75123456</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Macao, China -->
-    <!-- http://www.itu.int/oth/T020200007E/en -->
-    <territory id="MO" countryCode="853" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([268]\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[268]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            28[2-57-9]|
-            8[2-57-9]\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>28212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- The 62 prefix is added as SMS messages have been successfully delivered to these
-             numbers, and they are also widely present on the Internet. -->
-        <nationalNumberPattern>6[26]\d{6}</nationalNumberPattern>
-        <exampleNumber>66123456</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!--  Northern Mariana Islands -->
-    <!-- http://www.itu.int/oth/T02020000EE/en -->
-    <!-- www.cnmiphonebook.com/ -->
-    <territory id="MP" countryCode="1" leadingDigits="670"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[689]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          670(?:
-            2(?:
-              3[3-5]|
-              88|
-              56
-            )|
-            32[23]|
-            4[38]3|
-            532|
-            6(?:
-              64|
-              70|
-              8\d
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6702345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          670(?:
-            2(?:
-              3[3-5]|
-              88|
-              56
-            )|
-            32[23]|
-            4[38]3|
-            532|
-            6(?:
-              64|
-              70|
-              8\d
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6702345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Martinique (French Dept. of) -->
-    <territory id="MQ" countryCode="596" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Mauritania -->
-    <!-- http://www.itu.int/oth/T0202000087/en -->
-    <!-- http://www.are.mr/com-1-4-1.html -->
-    <!-- New number plan to be in official use from January 1st 2011. During this change-over
-         period, both the new and the old number plans are supported. -->
-    <territory id="MR" countryCode="222" internationalPrefix="00" >
-      <availableFormats>
-        <numberFormat pattern="([2-48]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[2-48]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([2-7]\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[2-7]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-4]\d{6,7}|
-          [5-7]\d{6}|
-          8\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          5(?:
-            1[035]|
-            2[0-69]|
-            3[0348]|
-            4[468]|
-            5[02-467]|
-            6[39]|
-            7[4-69]
-          )\d{4}|
-          [2-4]5\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>35123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            [23][0-4]|
-            4[3-5]|
-            6\d|
-            7[0-7]
-          )\d{5}|
-          (?:
-            2[27]|
-            3[367]|
-            4[467]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Montserrat -->
-    <!-- http://www.itu.int/oth/T020200008F/en -->
-    <territory id="MS" countryCode="1" leadingDigits="664"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[689]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>664491\d{4}</nationalNumberPattern>
-        <exampleNumber>6644912345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>664492\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>6644923456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Malta -->
-    <!-- www.itu.int/oth/T0202000084/en -->
-    <!-- www.mca.org.mt (Numbering link in the LHS menu - has more up-to-date allocations) -->
-    <territory id="MT" countryCode="356" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2579]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            0(?:
-              1[0-6]|
-              [69]\d
-            )|
-            [1-357]\d{2}
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>21001234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            7(?:
-              210|
-              [79]\d{2}|
-            )|
-            9(?:
-              2[13]\d|
-              696|
-              8(?:
-                1[1-3]|
-                89|
-                97
-              )|
-              9\d{2}
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>96961234</exampleNumber>
-      </mobile>
-      <pager>
-        <nationalNumberPattern>7117\d{4}</nationalNumberPattern>
-        <exampleNumber>71171234</exampleNumber>
-      </pager>
-      <premiumRate>
-        <nationalNumberPattern>
-          50(?:
-            0(?:
-              3[1679]|
-              4\d
-            )|
-            [169]\d{2}|
-            7[06]\d
-          )\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>50031234</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Mauritius -->
-    <!-- http://www.itu.int/oth/T0202000088/en - covers mobile only -->
-    <!-- http://www.icta.mu/telecommunications/numbering.htm -->
-    <territory id="MU" countryCode="230" internationalPrefix="0(?:[2-7]0|33)"
-      preferredInternationalPrefix="020">
-      <!-- There is a proposal to change this to 8 digits - this is supposed to happen August 2010,
-           and 7 digit numbers will be phased out by 1 November 2010. Update Aug 9th: Changeover
-           postponed to indeterminate later date. -->
-      <availableFormats>
-        <numberFormat pattern="([2-9]\d{2})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Wireless local loop numbers are considered to be fixed, since there is almost no
-             roaming capability. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [034789]\d|
-              1[0-8]|
-              2[0-79]
-            )|
-            4(?:
-              [013-8]\d|
-              2[4-7]
-            )|
-            [56]\d{2}|
-            8(?:
-              14|
-              3[129]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!--Adding 92 as SMS messages have been successfully sent to this prefix. -->
-        <nationalNumberPattern>
-          (?:
-            25\d|
-            4(?:
-              2[12389]|
-              9\d
-            )|
-            7\d{2}|
-            87[15-7]|
-            9[1-8]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2512345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[012]\d{4}</nationalNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <!-- These may be either shared cost or premium rate - they don't differentiate between these
-           in the plan. This is expected to change with the introduction of the new numbering plan
-           in late 2010 - at that time, this will be updated appropriately. -->
-      <premiumRate>
-        <nationalNumberPattern>30\d{5}</nationalNumberPattern>
-        <exampleNumber>3012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Maldives -->
-    <!-- http://www.itu.int/oth/T0202000082/en -->
-    <!-- www.dhiraagu.com.mv -->
-    <territory id="MV" countryCode="960" internationalPrefix="0(?:0|19)"
-      preferredInternationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3679]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 300 and 330 have been added as prefixes from online searches, since the numbers seemed
-             to be diallable. -->
-        <nationalNumberPattern>
-          (?:
-            3(?:
-              00|
-              3[0-59]|
-            )|
-            6(?:
-              [567][02468]|
-              8[024689]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6701234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            7(?:
-              [679]\d|
-              8[02-9]
-            )|
-            9[6-9]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>7712345</exampleNumber>
-      </mobile>
-      <pager>
-        <nationalNumberPattern>781\d{4}</nationalNumberPattern>
-        <exampleNumber>7812345</exampleNumber>
-      </pager>
-      <shortCode>
-        <nationalNumberPattern>
-          1(?:
-            [19]0|
-            23
-          )
-          </nationalNumberPattern>
-        <possibleNumberPattern>\d{3}</possibleNumberPattern>
-        <exampleNumber>123</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Malawi -->
-    <!-- http://www.itu.int/oth/T0202000080/en -->
-    <!-- The plan doesn't state that a national prefix exists, but numbers found on the internet are
-         consistent in having one. -->
-    <territory id="MW" countryCode="265" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})">
-          <leadingDigits>[13-5]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(2\d{2})(\d{3})(\d{3})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})(\d{4})">
-          <leadingDigits>7</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3,4})(\d{3,4})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <!-- According to the plan, the switch from 7 to 9 digits for mobile numbers happened in July
-           2009. However, online numbers don't seem to reflect this - even on the telephone company
-           websites such as www.mw.zain.com. Allowing both for now. -->
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            [13-5]|
-            [27]\d{2}|
-            [89](?:
-              \d{2}
-            )?
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[2-9]|
-            21\d{2}
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>1234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            [3-5]|
-            77|
-            8(?:
-              8\d
-            )? |
-            9(?:
-              9\d
-            )?
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>991234567</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Mexico -->
-    <!-- http://www.itu.int/oth/T020200008A/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B52 -->
-    <!-- http://en.wikipedia.org/wiki/Premium-rate_telephone_number#Mexico -->
-    <!-- http://en.wikipedia.org/wiki/Toll-free_telephone_number -->
-    <territory id="MX" countryCode="52" internationalPrefix="0[09]"
-               nationalPrefix="01"
-               nationalPrefixForParsing="0[12]|04[45](\d{10})"
-               nationalPrefixTransformRule="1$1"
-               nationalPrefixFormattingRule="$NP $FG">
-      <!-- When a number starts with 01 or 02, we remove the prefixes; when a number starts with 045
-           or 046 followed by 10 digits, we replace the prefixes with 1. This way all the mobile
-           numbers, regardless of whether they are written in international format (leading 1) or
-           national format (leading 045/046), will be parsed into the same form. -->
-      <availableFormats>
-        <numberFormat pattern="([358]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            33|
-            55|
-            81
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="([358]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            33|
-            55|
-            81
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            [2467]|
-            3[12457-9]|
-            5[89]|
-            8[02-9]|
-            9[0-35-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            [2467]|
-            3[12457-9]|
-            5[89]|
-            8[02-9]|
-            9[0-35-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="1([358]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            1(?:
-              33|
-              55|
-              81
-            )
-          </leadingDigits>
-          <format>045 $1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(1)([358]\d)(\d{4})(\d{4})">
-          <leadingDigits>
-            1(?:
-              33|
-              55|
-              81
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="1(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            1(?:
-              [2467]|
-              3[12457-9]|
-              5[89]|
-              8[2-9]|
-              9[1-35-9]
-            )
-          </leadingDigits>
-          <format>045 $1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(1)(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            1(?:
-              [2467]|
-              3[12457-9]|
-              5[89]|
-              8[2-9]|
-              9[1-35-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- http://en.wikipedia.org/wiki/Area_codes_in_Mexico_by_code -->
-        <nationalNumberPattern>
-          (?:
-            33|
-            55|
-            81
-          )\d{8}|
-          (?:
-            2(?:
-              2[2-9]|
-              3[1-35-8]|
-              4[13-9]|
-              7[1-689]|
-              8[1-58]|
-              9[467]
-            )|
-            3(?:
-              1[1-79]|
-              [2458][1-9]|
-              7[1-8]|
-              9[1-5]
-            )|
-            4(?:
-              1[1-57-9]|
-              [24-6][1-9]|
-              [37][1-8]|
-              8[1-35-9]|
-              9[2-689]
-            )|
-            5(?:
-              88|
-              9[1-79]
-            )|
-            6(?:
-              1[2-68]|
-              [234][1-9]|
-              5[1-3689]|
-              6[12457-9]|
-              7[1-7]|
-              8[67]|
-              9[4-8]
-            )|
-            7(?:
-              [13467][1-9]|
-              2[1-8]|
-              5[13-9]|
-              8[1-69]|
-              9[17]
-            )|
-            8(?:
-              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]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>2221234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          1(?:
-            (?:
-              33|
-              55|
-              81
-            )\d{8}|
-            (?:
-              2(?:
-                2[2-9]|
-                3[1-35-8]|
-                4[13-9]|
-                7[1-689]|
-                8[1-58]|
-                9[467]
-              )|
-              3(?:
-                1[1-79]|
-                [2458][1-9]|
-                7[1-8]|
-                9[1-5]
-              )|
-              4(?:
-                1[1-57-9]|
-                [24-6][1-9]|
-                [37][1-8]|
-                8[1-35-9]|
-                9[2-689]
-              )|
-              5(?:
-                88|
-                9[1-79]
-              )|
-              6(?:
-                1[2-68]|
-                [2-4][1-9]|
-                5[1-3689]|
-                6[12457-9]|
-                7[1-7]|
-                8[67]|
-                9[4-8]
-              )|
-              7(?:
-                [13467][1-9]|
-                2[1-8]|
-                5[13-9]|
-                8[1-69]|
-                9[17]
-              )|
-              8(?:
-                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]
-              )
-            )\d{7}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>12221234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Malaysia -->
-    <!-- http://en.wikipedia.org/wiki/%2B60 -->
-    <!-- http://www.skmm.gov.my/what_we_do/numbering/index.asp -->
-    <territory id="MY" countryCode="60" internationalPrefix="00"
-               nationalPrefix="0">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([4-79])(\d{3})(\d{4})">
-          <leadingDigits>[4-79]</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(3)(\d{4})(\d{4})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="([18]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>
-            1[0-46-9][1-9]|
-            8
-          </leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(1)([36-8]00)(\d{2})(\d{4})">
-          <leadingDigits>1[36-8]0</leadingDigits>
-          <format>$1-$2-$3-$4</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(154)(\d{3})(\d{4})">
-          <leadingDigits>15</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13-9]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3\d{2}|
-            [4-79]\d|
-            8[2-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>312345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1[0-46-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>123456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1[38]00\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1300123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>1600\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1600123456</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>1700\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1700123456</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>154\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1541234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Mozambique -->
-    <!-- http://www.itu.int/oth/T0202000091/en -->
-    <territory id="MZ" countryCode="258" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([28]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>
-            2|
-            8[24]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(80\d)(\d{3})(\d{3})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[28]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            [1346]\d|
-            5[0-2]|
-            [78][12]|
-            93
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>21123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>8[24]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>821234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Unsure of the length requirement on toll-free numbers, so using 9
-        based on online examples. -->
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <!-- The plan suggests 801 and 802 numbers are shared-cost numbers, and numbers beginning with
-           a 9 are premium rate, but no online examples can be found of any of these so they are
-           omitted for the time-being. -->
-    </territory>
-
-    <!-- Namibia -->
-    <!-- http://www.itu.int/oth/T0202000093/en -->
-    <territory id="NA" countryCode="264" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(8\d)(\d{3})(\d{4})">
-          <leadingDigits>8[125]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(6\d)(\d{2,3})(\d{4})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(88)(\d{3})(\d{3})">
-          <leadingDigits>88</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(870)(\d{3})(\d{3})">
-          <leadingDigits>870</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[68]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes VSAT service. -->
-        <nationalNumberPattern>
-          6(?:
-            1(?:
-              17|
-              2(?:
-                [0189]\d|
-                [23-6]|
-                7\d?
-              )|
-              3(?:
-                2\d|
-                3[378]
-              )|
-              4[01]|
-              69|
-              7[014]
-            )|
-            2(?:
-              17|
-              25|
-              5(?:
-                [0-36-8]|
-                4\d?
-              )|
-              69|
-              70
-            )|
-            3(?:
-              17|
-              2(?:
-                [0237]\d?|
-                [14-689]
-              )|
-              34|
-              6[29]|
-              7[01]|
-              81
-            )|
-            4(?:
-              17|
-              2(?:
-                [012]|
-                7?
-              )|
-              4(?:
-                [06]|
-                1\d
-              )|
-              5(?:
-                [01357]|
-                [25]\d?
-              )|
-              69|
-              7[01]
-            )|
-            5(?:
-              17|
-              2(?:
-                [0459]|
-                [23678]\d?
-              )|
-              69|
-              7[01]
-            )|
-            6(?:
-              17|
-              2(?:
-                5|
-                6\d?
-              )|
-              38|
-              42|
-              69|
-              7[01]
-            )|
-            7(?:
-              17|
-              2(?:
-                [569]|
-                [234]\d?
-              )|
-              3(?:
-                0\d?|
-                [13]
-              )|
-              69|
-              7[01]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>612012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Includes the Switch CDMA Service. -->
-        <nationalNumberPattern>
-          (?:
-            60|
-            8[125]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>811234567</exampleNumber>
-      </mobile>
-      <premiumRate>
-        <nationalNumberPattern>8701\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>870123456</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>886\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>88612345</exampleNumber>
-      </voip>
-      <shortCode>
-        <nationalNumberPattern>
-          1(?:
-            0111|
-            \d{3}
-          )|
-          9(?:
-            3111|
-            \d{2}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,5}</possibleNumberPattern>
-        <exampleNumber>93111</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- New Caledonia (Territoire français d'outre-mer) -->
-    <territory id="NC" countryCode="687" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Niger -->
-    <!-- http://www.itu.int/oth/T020200009B/en -->
-    <territory id="NE" countryCode="227" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([029]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            [29]|
-            09
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(08)(\d{3})(\d{3})">
-          <leadingDigits>08</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[029]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Adding 20 61 from online numbers. -->
-        <nationalNumberPattern>
-          2(?:
-            0(?:
-              20|
-              3[1-7]|
-              4[134]|
-              5[14]|
-              6[14578]|
-              7[1-578]
-            )|
-            1(?:
-              4[145]|
-              5[14]|
-              6[14-68]|
-              7[169]|
-              88
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>20201234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added 90 and 97 from online data. Zain have confirmed that they use the 97 prefix. -->
-        <nationalNumberPattern>9[03467]\d{6}</nationalNumberPattern>
-        <exampleNumber>93123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>08\d{6}</nationalNumberPattern>
-        <exampleNumber>08123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>09\d{6}</nationalNumberPattern>
-        <exampleNumber>09123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Norfolk Island -->
-    <territory id="NF" countryCode="672" internationalPrefix="00">
-    </territory>
-
-    <!-- Nigeria -->
-    <!-- http://www.itu.int/oth/T020200009C/en -->
-    <territory id="NG" countryCode="234" internationalPrefix="009"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([129])(\d{3})(\d{3,4})">
-          <leadingDigits>[129]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([3-8]\d)(\d{3})(\d{2,3})">
-          <leadingDigits>
-            [3-6]|
-            7(?:
-              [1-79]|
-              0[1-9]
-            )|
-            8[2-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([78]\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            70|
-            8[01]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([78]00)(\d{4})(\d{4,5})">
-          <leadingDigits>[78]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([78]00)(\d{5})(\d{5,6})">
-          <leadingDigits>[78]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(78)(\d{2})(\d{3})">
-          <leadingDigits>78</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-69]\d{5,8}|
-          [78]\d{5,13}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,14}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          [12]\d{6,7}|
-          9\d{7}|
-          (?:
-            4[023568]|
-            5[02368]|
-            6[02-469]|
-            7[569]|
-            8[2-9]
-          )\d{6}|
-          (?:
-            4[47]|
-            5[14579]|
-            6[1578]|
-            7[0-357]
-          )\d{5,6}|
-          (?:
-            78|
-            41
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- More 81X prefixes have been added based on online numbers. -->
-        <nationalNumberPattern>
-          (?:
-            70(?:
-              [3-9]\d|
-              2[1-9]
-            )|
-            8(?:
-              0[2-9]|
-              1[23689]
-            )\d
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8021234567</exampleNumber>
-      </mobile>
-      <!-- Info on these numbers from http://www.alphatechnologieslimited.com. -->
-      <tollFree>
-        <nationalNumberPattern>800\d{7,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,14}</possibleNumberPattern>
-        <exampleNumber>80017591759</exampleNumber>
-      </tollFree>
-      <personalNumber>
-        <nationalNumberPattern>700\d{7,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,14}</possibleNumberPattern>
-        <exampleNumber>7001234567</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Nicaragua -->
-    <territory id="NI" countryCode="505" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Netherlands -->
-    <!-- http://en.wikipedia.org/wiki/%2B31 -->
-    <!-- http://www2.opta.nl/asp/en/numbers/ -->
-    <territory id="NL" countryCode="31" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([1-578]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            1[035]|
-            2[0346]|
-            3[03568]|
-            4[0356]|
-            5[0358]|
-            7|
-            8[458]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([1-5]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            1[16-8]|
-            2[259]|
-            3[124]|
-            4[17-9]|
-            5[124679]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(6)(\d{8})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([89]0\d)(\d{4,7})">
-          <leadingDigits>
-            80|
-            9
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[0135-8]|
-            2[02-69]|
-            3[0-68]|
-            4[0135-9]|
-            [57]\d|
-            8[478]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>101234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[1-58]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[069]\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>9001234</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>85\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </voip>
-    </territory>
-
-    <!-- Norway -->
-    <!--
-    http://www.npt.no/portal/page/portal/PG_NPT_NO_EN/PAG_NPT_EN_HOME/PAG_RESOURCE_TEXT -->
-    <territory id="NO" countryCode="47" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([489]\d{2})(\d{2})(\d{3})">
-          <leadingDigits>[489]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([235-7]\d)(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[235-7]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          0\d{4}|
-          [2-9]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5}(?:\d{3})?</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes some 810 local-rate numbers, and long-distance rate numbers, as well as the
-             5-digit country-wide numbers used by businesses that begin with 0. -->
-        <nationalNumberPattern>
-          0\d{4}|
-          (?:
-            2[1-4]|
-            3[1-3578]|
-            5[1-35-7]|
-            6[1-4679]|
-            7\d
-          )\d{6}|
-          81(?:
-            0(?:
-              0[7-9]|
-              1\d
-            )|
-            5\d{2}
-          )\d{3}
-        </nationalNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            4[015-8]|
-            9\d
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>41234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[01]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>82[09]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>82012345</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          810(?:
-            0[0-6]|
-            [2-8]\d
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>81021234</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>880\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>88012345</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Nepal -->
-    <!-- http://www.itu.int/oth/T0202000095/en -->
-    <!-- http://www.ntc.net.np/mobile/mob_postpaid_number_scheme.php -->
-    <territory id="NP" countryCode="977" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(1)([4-6]\d{3})(\d{3})">
-          <leadingDigits>1[4-6]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            1[01]|
-            [2-8]|
-            9[1-79]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Format is from http://www.fco.gov.uk/en/travel-and-living-abroad/travel-advice-by-country/country-profile/asia-oceania/nepal/ -->
-        <numberFormat pattern="(98[45])(\d{3})(\d{4})">
-          <leadingDigits>98</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-8]\d{5,7}|
-          98[45]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[014-6]|
-            2[13-79]|
-            3[135-8]|
-            4[146-9]|
-            5[135-7]|
-            6[13-9]|
-            7[15-9]|
-            8[1-4679]|
-            9[1-79]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>14567890</exampleNumber>
-      </fixedLine>
-      <!-- There is no definitive source of information for mobile numbers in Nepal. The infomation
-           here is collected by searching the Internet. -->
-      <mobile>
-        <nationalNumberPattern>98[45]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9841234567</exampleNumber>
-      </mobile>
-      <!-- No information on other types of phone numbers for Nepal has been found. -->
-    </territory>
-
-    <!-- Nauru -->
-    <territory id="NR" countryCode="674" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Niue -->
-    <!-- http://www.itu.int/oth/T02020000EC/en -->
-    <territory id="NU" countryCode="683" internationalPrefix="00">
-      <!-- Numbers are always formatted as a block. -->
-      <generalDesc>
-        <nationalNumberPattern>[1-5]\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Putting FWT (fixed-wireless-terminals) numbers here too. -->
-        <nationalNumberPattern>[34]\d{3}</nationalNumberPattern>
-        <exampleNumber>4002</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[125]\d{3}</nationalNumberPattern>
-        <exampleNumber>1234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- New Zealand -->
-    <!-- http://www.itu.int/oth/T0202000099/en -->
-    <!-- Includes Ross Dependency, Antarctica -->
-    <!-- Does not currently support 083 "Enhanced voice services", New Zealand direct service
-         numbers and 050 "Nation-Wide Service". -->
-    <territory id="NZ" countryCode="64" internationalPrefix="0(?:0|161)"
-               preferredInternationalPrefix="00" nationalPrefix="0"
-               nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([34679])(\d{3})(\d{4})">
-          <leadingDigits>
-            [3467]|
-            9[1-9]
-          </leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <!-- Mobile numbers do not have exclusive leading digits - formatting depends on number
-             length. -->
-        <!-- Vodafone numbers are formatted with 021 separated. -->
-        <numberFormat pattern="(21)(\d{4})(\d{3,4})">
-          <leadingDigits>21</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Adding in the toll free numbers here as well since they follow the same format. -->
-        <numberFormat pattern="([2589]\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            2[0247-9]|
-            5|
-            [89]00
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Vodafone and Orcon numbers can also be 8 digits (without leading 0), and these are
-             formatted differently. -->
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>2[0169]|86</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Antarctica -->
-        <numberFormat pattern="(24099)(\d{3})">
-          <leadingDigits>240</leadingDigits>
-          <leadingDigits>2409</leadingDigits>
-          <leadingDigits>24099</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          6[235-9]\d{6}|
-          [2-57-9]\d{7,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3[2-79]|
-            [49][2-689]|
-            6[235-9]|
-            7[2-589]
-          )\d{6}|
-          24099\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>32345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Includes mobile radio service numbers. -->
-        <nationalNumberPattern>
-          2(?:
-            [079]\d{7}|
-            1(?:
-              0\d{5,7}|
-              [12]\d{5,6}|
-              [3-9]\d{5}
-            )|
-            [28]\d{7,8}|
-            4[1-9]\d{6}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-        <exampleNumber>211234567</exampleNumber>
-      </mobile>
-      <pager>
-          <nationalNumberPattern>[28]6\d{6,7}</nationalNumberPattern>
-          <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-          <exampleNumber>26123456</exampleNumber>
-      </pager>
-      <!-- These are the toll free patterns used, by Telecom and Telstra/Clear, but they are
-           referred to as 'Value-added service' in the phone plan for some reason. 85 numbers are
-           not covered, as telecom companies don't seem to support them yet. -->
-      <tollFree>
-        <nationalNumberPattern>
-          508\d{6,7}|
-          80\d{6,8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,11}</possibleNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Oman -->
-    <!-- http://www.itu.int/oth/T020200009F/en -->
-    <territory id="OM" countryCode="968" internationalPrefix="00" >
-      <availableFormats>
-        <numberFormat pattern="(2\d)(\d{6})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(9\d{3})(\d{4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([58]00)(\d{4,6})">
-          <leadingDigits>[58]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          (?:
-            2[3-6]|
-            5|
-            9[2-9]
-          )\d{6}|
-          800\d{5,6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2[3-6]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>23123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>92123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- Link to document about toll-free numbers on www.tra.gov.om, which suggests they should
-             be 8007 followed by 4 digits. However, the only examples I can find, including the
-             customer help line for the main telephony company there (omantel), is 8007 followed by
-             5 digits, so am allowing both for now to be on the safe side. 500 numbers seem to offer
-             international toll-free dialing numbers - +968 500 1300 for international help desk for
-             omantel, for example. -->
-        <nationalNumberPattern>
-          8007\d{4,5}|
-          500\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>80071234</exampleNumber>
-      </tollFree>
-      <!-- No premiumRate information can be found. -->
-    </territory>
-
-    <!-- Panama -->
-    <territory id="PA" countryCode="507" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Peru -->
-    <!-- http://www.itu.int/oth/T02020000A6/en -->
-    <!-- http://en.wikipedia.org/wiki/+51 -->
-    <territory id="PE" countryCode="51" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($FG)"
-               preferredExtnPrefix=" Anexo ">
-      <availableFormats>
-        <numberFormat pattern="(1)(\d{7})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([4-8]\d)(\d{6})">
-          <leadingDigits>[4-8]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- Formatting from common usage found on the internet, supported by ITU doc. -->
-        <numberFormat pattern="(9\d{2})(\d{3})(\d{3})"
-                      nationalPrefixFormattingRule="$FG">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[14-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1\d|
-            4[1-4]|
-            5[1-46]|
-            6[1-7]|
-            7[2-46]|
-            8[2-4]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>11234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- French Polynesia (Tahiti) (Territoire français d'outre-mer) -->
-    <territory id="PF" countryCode="689" internationalPrefix="00">
-    </territory>
-
-    <!-- Papua New Guinea -->
-    <!-- http://www.itu.int/oth/T02020000A4/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B675 -->
-    <territory id="PG" countryCode="675" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>[1-689]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(7[1-36]\d)(\d{2})(\d{3})">
-          <leadingDigits>7[1-36]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Fixed line patterns are from the numbering plan, with additions for 4XX since many
-             numbers in the yellow pages seem to be outside the 47X range prescribed by the plan.
-             The same applies to extra 64X numbers. -->
-        <nationalNumberPattern>
-          (?:
-            3\d{2}|
-            4[257]\d|
-            5[34]\d|
-            6(?:
-              29|
-              4[1-9]
-            )|
-            85[02-46-9]|
-            9[78]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>3123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Mobile number patterns from the numbering plan are included here,
-        as well as 68x from wikipedia. -->
-        <nationalNumberPattern>
-          (?:
-            68|
-            7(?:
-              [126]\d|
-              3[1-9]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>6812345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>180\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>1801234</exampleNumber>
-      </tollFree>
-      <voip>
-        <!-- VSAT prefixes are here. -->
-        <nationalNumberPattern>275\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>2751234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Philippines -->
-    <!-- http://en.wikipedia.org/wiki/%2B63 -->
-    <territory id="PH" countryCode="63" internationalPrefix="00"
-               nationalPrefix="0">
-      <availableFormats>
-        <!--Area code separated from number. Area codes found here:
-        http://en.wikipedia.org/wiki/Telecommunications_in_the_Philippines#Area_Codes -->
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(2)(\d{3})(\d{4})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d{4})(\d{5})">
-          <leadingDigits>
-            3(?:
-              23|
-              39|
-              46
-            )|
-            4(?:
-              2[3-6]|
-              [35]9|
-              4[26]|
-              76
-            )|
-            5(?:
-              22|
-              44
-            )|
-            642|
-            8(?:
-              62|
-              8[245]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            3(?:
-              230|
-              397|
-              461
-            )|
-            4(?:
-              2(?:
-                35|
-                [46]4|
-                51
-              )|
-              396|
-              4(?:
-                22|
-                63
-              )|
-              59[347]|
-              76[15]
-            )|
-            5(?:
-              221|
-              446
-            )|
-            642[23]|
-            8(?:
-              622|
-              8(?:
-                [24]2|
-                5[13]
-              )
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d{5})(\d{4})">
-          <leadingDigits>
-            346|
-            4(?:
-              27|
-              9[35]
-            )|
-            883
-          </leadingDigits>
-          <leadingDigits>
-            3469|
-            4(?:
-              279|
-              9(?:
-                30|
-                56
-              )
-            )|
-            8834
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- This rule is a fallback for the more specific area codes. -->
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="([3-8]\d)(\d{3})(\d{4})">
-          <leadingDigits>[3-8]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG"
-          pattern="(9\d{2})(\d{3})(\d{4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Formatting from http://www.uniontelecard.com/calling-guides/philippines/guide1.aspx -->
-        <numberFormat pattern="(1800)(\d{3})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(1800)(\d{1,2})(\d{3})(\d{4})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-9]\d{7,9}|
-          1800\d{7,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,13}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2|
-            3[2-68]|
-            4[2-9]|
-            5[2-6]|
-            6[2-58]|
-            7[24578]|
-            8[2-8]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          9(?:
-            0[5-9]|
-            1[025-9]|
-            2[0-36-9]|
-            3[0235-9]|
-            7[349]|
-            [89]9
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9051234567</exampleNumber>
-      </mobile>
-      <!-- Information on toll-free numbers collected from searching the internet -->
-      <tollFree>
-        <nationalNumberPattern>1800\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11,13}</possibleNumberPattern>
-        <exampleNumber>180012345678</exampleNumber>
-      </tollFree>
-      <!-- No information can be found about other types of numbers (such as premium rate) in the
-           Philippines. -->
-    </territory>
-
-    <!-- Pakistan -->
-    <!-- http://www.itu.int/oth/T02020000A1/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B92 -->
-    <territory id="PK" countryCode="92" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <!-- Universal Access Numbers (UAN) number format patterns first, so that these numbers are
-             formatted nicely by the AYTF. -->
-        <numberFormat pattern="(\d{2})(111)(\d{3})(\d{3})">
-          <leadingDigits>
-            (?:
-              2[125]|
-              4[0-246-9]|
-              5[1-35-7]|
-              6[1-8]|
-              7[14]|
-              8[16]|
-              91
-            )1
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[125]|
-              4[0-246-9]|
-              5[1-35-7]|
-              6[1-8]|
-              7[14]|
-              8[16]|
-              91
-            )11
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[125]|
-              4[0-246-9]|
-              5[1-35-7]|
-              6[1-8]|
-              7[14]|
-              8[16]|
-              91
-            )111
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(111)(\d{3})(\d{3})">
-          <leadingDigits>
-            2[349]|
-            45|
-            54|
-            60|
-            72|
-            8[2-5]|
-            9[2-9]
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[349]|
-              45|
-              54|
-              60|
-              72|
-              8[2-5]|
-              9[2-9]
-            )\d1
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[349]|
-              45|
-              54|
-              60|
-              72|
-              8[2-5]|
-              9[2-9]
-            )\d11
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[349]|
-              45|
-              54|
-              60|
-              72|
-              8[2-5]|
-              9[2-9]
-            )\d111
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{7,8})">
-          <leadingDigits>
-            (?:
-              2[125]|
-              4[0-246-9]|
-              5[1-35-7]|
-              6[1-8]|
-              7[14]|
-              8[16]|
-              91
-            )[2-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{6,7})">
-          <leadingDigits>
-            2[349]|
-            45|
-            54|
-            60|
-            72|
-            8[2-5]|
-            9[2-9]
-          </leadingDigits>
-          <leadingDigits>
-            (?:
-              2[349]|
-              45|
-              54|
-              60|
-              72|
-              8[2-5]|
-              9[2-9]
-            )\d[2-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(3\d{2})(\d{7})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([15]\d{3})(\d{5,6})">
-          <leadingDigits>
-            58[12]|
-            1
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- This is from online examples. -->
-        <numberFormat pattern="(586\d{2})(\d{5})">
-          <leadingDigits>586</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([89]00)(\d{3})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
-          <leadingDigits>[89]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- This is horribly complex because the country code is 92, and several area codes start
-             with 92, and the number length is widely variable. -->
-        <nationalNumberPattern>
-          1\d{8}|
-          [2-8]\d{5,11}|
-          9(?:
-            [013-9]\d{4,9}|
-            2\d(?:
-              111\d{6}|
-              \d{3,7}
-            )
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The subscriber number length is not well defined for some area codes. From online
-             examples, we have come up with a heuristic that for 3-digit area codes, the subscriber
-             number will be 6 or 7 digits - for 2-digit area codes it will be 7, with the exceptions
-             of Karachi and Lahore (both 8). -->
-        <nationalNumberPattern>
-          (?:
-            21|
-            42
-          )[2-9]\d{7}|
-          (?:
-            2[25]|
-            4[0146-9]|
-            5[1-35-7]|
-            6[1-8]|
-            7[14]|
-            8[16]|
-            91
-          )[2-9]\d{6}|
-          (?:
-            2(?:
-              3[2358]|
-              4[2-4]|
-              9[2-8]
-            )|
-            45[3479]|
-            54[2-467]|
-            60[468]|
-            72[236]|
-            8(?:
-              2[2-689]|
-              3[23578]|
-              4[3478]|
-              5[2356]
-            )|
-            9(?:
-              1|
-              2[2-8]|
-              3[27-9]|
-              4[2-6]|
-              6[3569]|
-              9[25-8]
-            )
-          )[2-9]\d{5,6}|
-          58[126]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-        <exampleNumber>2123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          3(?:
-            0\d|
-            1[2-5]|
-            2[1-3]|
-            3[1-6]|
-            4[2-6]|
-            64
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>3012345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-      <!-- These are referred to as UPT numbers in the plan. -->
-      <personalNumber>
-        <nationalNumberPattern>122\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <!-- The example number here is the test number from the plan. -->
-        <exampleNumber>122044444</exampleNumber>
-      </personalNumber>
-      <uan>
-        <!-- Data on what a UAN is is hard to come by. http://www.ptcl.com.pk has information under
-             http://www.ptcl.com.pk/contentb.php?NID=143#uan - which defines their format - but not
-             what type of number they are.  We exclude Azad Jammu, Kashmir and Northern Areas here
-             since no online example UANs can be found, and they have an "access code" at the start,
-             making it difficult to guess what a UAN in these areas would look like. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [125]|
-              3[2358]|
-              4[2-4]|
-              9[2-8]
-            )|
-            4(?:
-              [0-246-9]|
-              5[3479]
-            )|
-            5(?:
-              [1-35-7]|
-              4[2-467]
-            )|
-            6(?:
-              [1-8]|
-              0[468]
-            )|
-            7(?:
-              [14]|
-              2[236]
-            )|
-            8(?:
-              [16]|
-              2[2-689]|
-              3[23578]|
-              4[3478]|
-              5[2356]
-            )|
-            9(?:
-              1|
-              22|
-              3[27-9]|
-              4[2-6]|
-              6[3569]|
-              9[2-7]
-            )
-          )111\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{11,12}</possibleNumberPattern>
-        <exampleNumber>21111825888</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Poland -->
-    <!-- http://en.wikipedia.org/wiki/%2B48 -->
-    <!--
-    http://www.uke.gov.pl/uke/index.jsp?place=Lead24&news_cat_id=277&news_id=3791&layout=9&page=text
-    (in Polish) -->
-    <territory id="PL" countryCode="48" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>
-            [124]|
-            3[2-4]|
-            5[24-689]|
-            6[1-3578]|
-            7[14-7]|
-            8[1-79]|
-            9[145]
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <!-- We are formatting 70 numbers as per mobile numbers, based on information from some
-             Poles that this is more usual. -->
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>
-            39|
-            5[013]|
-            6[069]|
-            7[0289]|
-            8[08]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[2-8]|
-            2[2-59]|
-            3[2-4]|
-            4[1-468]|
-            5[24-689]|
-            6[1-3578]|
-            7[14-7]|
-            8[1-79]|
-            9[145]
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5[013]|
-            6[069]|
-            7[289]|
-            88
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>512345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>70\d{7}</nationalNumberPattern>
-        <exampleNumber>701234567</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>801\d{6}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>39\d{7}</nationalNumberPattern>
-        <exampleNumber>391234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Saint Pierre and Miquelon (Collectivité territoriale de la République française) -->
-    <territory id="PM" countryCode="508" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Puerto Rico -->
-    <!-- http://www.itu.int/oth/T02020000AA/en -->
-    <territory id="PR" countryCode="1" leadingDigits="787|939"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[789]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            787|
-            939
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>7872345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            787|
-            939
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>7872345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Palestinian Authority -->
-    <!-- http://en.wikipedia.org/wiki/%2B970 -->
-    <!-- http://www.wtng.info/wtng-970-ps.html -->
-    <!-- http://www.paltel.ps -->
-    <!-- Palestinian phone numbers can be reached through the Israeli country code (972) in addition
-         to the Palestinian country code (970) and so Palestinian landlines and mobile lines are a
-         subset of the Israeli formats. -->
-    <territory id="PS" countryCode="970" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([2489])(2\d{2})(\d{4})">
-          <leadingDigits>[2489]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(5[69]\d)(\d{3})(\d{3})">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(1[78]00)(\d{3})(\d{3})">
-          <leadingDigits>1[78]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- 4 and 5 digit premium numbers will be formatted as one block by default. -->
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [24589]\d{7,8}|
-          1(?:
-            [78]\d{8}|
-            [49]\d{2,3}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            22[234789]|
-            42[45]|
-            82[01458]|
-            92[369]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>22234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>5[69]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>599123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- According to Paltel, premium numbers are 14xx and 19xxx -->
-        <nationalNumberPattern>
-          1(?:
-            4|
-            9\d
-           )\d{2}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{4,5}</possibleNumberPattern>
-        <exampleNumber>19123</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>1700\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1700123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Portugal -->
-    <!-- http://www.anacom.pt/render.jsp?categoryId=279098 -->
-    <territory id="PT" countryCode="351" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([2-46-9]\d{2})(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-46-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          2(?:
-            [12]\d|
-            [35][1-689]|
-            4[1-59]|
-            6[1-35689]|
-            7[1-9]|
-            8[1-69]|
-            9[1256]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          9(?:
-            [136]\d{2}|
-            2[124-79]\d|
-            4(?:
-              80|
-              9\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          4\d{8}|
-          80[02]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>71\d{7}</nationalNumberPattern>
-        <exampleNumber>712345678</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>808\d{6}</nationalNumberPattern>
-        <exampleNumber>808123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>30\d{7}</nationalNumberPattern>
-        <exampleNumber>301234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Palau -->
-    <territory id="PW" countryCode="680" internationalPrefix="011">
-    </territory>
-
-    <!-- Paraguay -->
-    <territory id="PY" countryCode="595" internationalPrefix="002"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Qatar -->
-    <!-- http://www.itu.int/oth/T02020000AB/en -->
-    <!-- http://wtng.info/wtng-qq.html -->
-    <territory id="QA" countryCode="974" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(8\d{2})(\d{4})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([3-7]\d{3})(\d{4})">
-          <leadingDigits>[3-7]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3-8]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>44\d{6}</nationalNumberPattern>
-        <exampleNumber>44123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            33|
-            55|
-            66|
-            77
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>33123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{4}</nationalNumberPattern>
-        <exampleNumber>8001234</exampleNumber>
-      </tollFree>
-      <!-- No premiumRate information can be found. -->
-    </territory>
-
-    <!-- Réunion (French Departments and Territories in the Indian Ocean) -->
-    <!-- Note this shares the same country code as La Mayotte and French Southern Territories, and
-         the formatting patterns here are used by all of them. -->
-    <!-- http://www.itu.int/oth/T020200004B/en -->
-    <territory id="RE" countryCode="262" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
-               leadingDigits="262|6[49]|8" mainCountryForCode="true" >
-      <availableFormats>
-        <numberFormat pattern="([268]\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 0876 numbers are mentioned in the plan, but none in use can be found. -->
-        <nationalNumberPattern>262\d{6}</nationalNumberPattern>
-        <exampleNumber>262161234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          6(?:
-            9[23]|
-            47
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>692123456</exampleNumber>
-      </mobile>
-      <!-- 08* Numbers in Réunion are the same as those valid in France. -->
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>89[1-37-9]\d{6}</nationalNumberPattern>
-        <exampleNumber>891123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            1[019]|
-            2[0156]|
-            84|
-            90
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>810123456</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Romania -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000AC0001MSWE.doc -->
-    <!-- http://en.wikipedia.org/wiki/Romania_telephone_area_codes -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania -->
-    <!-- Extension prefix found online, confirmed by a Romanian. -->
-    <territory id="RO" countryCode="40" internationalPrefix="00"
-      nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
-      preferredExtnPrefix=" int ">
-      <availableFormats>
-        <numberFormat pattern="([237]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            [23]1|
-            7
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>
-            [23][02-9]|
-            [89]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[237-9]\d{8}</nationalNumberPattern>
-        <!-- Although the ITU plan says the number plan is open, this was changed in 2008 according
-             to wikipedia and people must dial the full number. For this reason the possible number
-             pattern is restricted to 9 digits. -->
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[23][13-6]\d{7}</nationalNumberPattern>
-        <exampleNumber>211234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[1-8]\d{7}</nationalNumberPattern>
-        <exampleNumber>712345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[036]\d{6}</nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>801\d{6}</nationalNumberPattern>
-        <exampleNumber>801123456</exampleNumber>
-      </sharedCost>
-      <personalNumber>
-        <nationalNumberPattern>802\d{6}</nationalNumberPattern>
-        <exampleNumber>802123456</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Serbia -->
-    <!-- http://www.itu.int/oth/T02020000B9/en -->
-    <territory id="RS" countryCode="381" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([23]\d{2})(\d{4,7})">
-          <leadingDigits>
-            (?:
-              2[389]|
-              39
-            )0
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([1-4]\d)(\d{4,8})">
-          <leadingDigits>
-            1|
-            2(?:
-              [0-24-7]|
-              [389][1-9]
-            )|
-            3(?:
-              [0-8]|
-              9[1-9]
-            )|
-            42
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(6[0-689])(\d{3,10})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([89]\d{2})(\d{3,6})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-46-9]\d{4,11}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,12}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[1-3]\d{6,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-        <exampleNumber>1012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[0-689]\d{3,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,12}</possibleNumberPattern>
-        <exampleNumber>6012345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{3,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>80012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            9[0-2]|
-            42
-          )\d{4,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>90012345</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Russian Federation -->
-    <!-- http://www.itu.int/oth/T02020000AD/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B7 -->
-    <territory id="RU" countryCode="7" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP ($FG)"
-               mainCountryForCode="true" >
-      <availableFormats>
-        <!-- Formatting from wikipedia, confirmed on Goverment websites such as
-             http://www.minjust.ru/ru/structure/contact/. Contains formatting instructions for
-             Kazakhstan as well. -->
-        <numberFormat pattern="([3489]\d{2})(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>[34689]</leadingDigits>
-          <format>$1 $2-$3-$4</format>
-        </numberFormat>
-        <numberFormat pattern="([67]\d{2})(\d{3})(\d{4})">
-          <leadingDigits>[67]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3489]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- The Ivanovo area code 493 was omitted on the official document, but this is still used
-             in the yellow pages, and on their own website and is listed on wikipedia. This applies
-             also to 395 (Irkutsk). Also including the 840 prefix for Abkhazia. -->
-        <nationalNumberPattern>
-          (?:
-            3(?:
-              0[12]|
-              4[1-35-79]|
-              5[1-3]|
-              8[1-58]|
-              9[0145]
-            )|
-            4(?:
-              01|
-              1[1356]|
-              2[13467]|
-              7[1-5]|
-              8[1-7]|
-              9[1-689]
-            )|
-            8(?:
-              1[1-8]|
-              2[01]|
-              3[13-6]|
-              4[0-8]|
-              5[15]|
-              6[1-35-7]|
-              7[1-37-9]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>3011234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9\d{9}</nationalNumberPattern>
-        <exampleNumber>9123456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- The metadata states that 804 numbers are UAN numbers, but
-             teleum.ru/numbers/toll_free_804 states that they are now being offered as toll-free
-             numbers. -->
-        <nationalNumberPattern>80[04]\d{7}</nationalNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- Covers tele-voting numbers as well. -->
-        <nationalNumberPattern>80[39]\d{7}</nationalNumberPattern>
-        <exampleNumber>8091234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Rwanda -->
-    <!-- http://www.rura.gov.rw/docs/RWANDA_NATIONAL_NUMBERING_PLAN.pdf -->
-    <territory id="RW" countryCode="250" internationalPrefix="000"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(25\d)(\d{3})(\d{3})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([7-9]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>[7-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[27-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>25\d{7}</nationalNumberPattern>
-        <exampleNumber>250123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[258]\d{7}</nationalNumberPattern>
-        <exampleNumber>720123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{6}</nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Saudi Arabia -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Saudi_Arabia -->
-    <!-- http://www.itu.int/oth/T02020000B7/en -->
-    <territory id="SA" countryCode="966" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([1-467])(\d{3})(\d{4})">
-          <leadingDigits>[1-467]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9200)(\d{3})(\d{4})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(5\d)(\d{3})(\d{4})">
-          <leadingDigits>5</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{3})(\d{4})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(8111)(\d{3})(\d{3})">
-          <leadingDigits>81</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{7,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[24-7]|
-            2[24-8]|
-            3[35-8]|
-            4[34-68]|
-            6[2-5]|
-            7[235-7]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Including "Nomadic" numbers from the Telecom Company "Go" -->
-        <nationalNumberPattern>
-          (?:
-            5[013-69]\d|
-            8111
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>512345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>9200\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>92001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Solomon Islands -->
-    <territory id="SB" countryCode="677" internationalPrefix="00">
-    </territory>
-
-    <!-- Seychelles -->
-    <!-- http://www.itu.int/oth/T02020000BA/en -->
-    <!-- No evidence can be found that they still use their national prefix, so this is not
-         currently supported. -->
-    <territory id="SC" countryCode="248" internationalPrefix="0[0-2]"
-      preferredInternationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})">
-          <leadingDigits>
-            [23578]|
-            [46][0-35-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})">
-          <leadingDigits>[46]4</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-8]\d{5,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes Fixed Cellular. We are putting Fixed Services numbers here for now, as we
-             cannot find any evidence that they are more expensive to call than other Fixed Line
-             services. ISDN and DID services are here too, since they seem to be also fixed-line
-             phone numbers. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              1[78]|
-              2[14-69]|
-              3[2-4]|
-              4[1-36-8]|
-              6[167]|
-              [89]\d
-            )|
-            3(?:
-              2[1-6]|
-              4[4-6]|
-              55|
-              6[016]|
-              7\d|
-              8[0-589]|
-              9[0-5]
-            )|
-            5(?:
-              5\d|
-              6[0-2]
-            )|
-            6(?:
-              0[0-27-9]|
-              1[0-478]|
-              2[145]|
-              3[02-4]|
-              4[124]|
-              6[015]|
-              7\d|
-              8[1-3]
-            )|
-            78[0138]
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>217123</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            5(?:
-              [1247-9]\d|
-              6[3-9]
-            )|
-            7(?:
-              [14679]\d|
-              2[1-9]|
-              8[24-79]
-            )
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>510123</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>8000\d{2}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>800000</exampleNumber>
-      </tollFree>
-      <voip>
-        <nationalNumberPattern>
-          (?:
-            44[1-3]|
-            647
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <exampleNumber>4410123</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Sudan -->
-    <!-- http://www.itu.int/oth/T02020000C4/en -->
-    <territory id="SD" countryCode="249" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[19]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Retaining previous prefix as 18 since it seems still to be used. -->
-        <nationalNumberPattern>
-          1(?:
-            [25]\d|
-            8[3567]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>121231234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[1259]\d{7}</nationalNumberPattern>
-        <exampleNumber>911231234</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Sweden -->
-    <!-- http://www.pts.se/upload/Ovrigt/Tele/Nummerfragor/Sv_nrplan_telefoni_enl_TU-T_rek_E.164.pdf -->
-    <!-- Formatting patterns are from that document and from the Swedish yellow pages
-         http://gulasidorna.eniro.se -->
-    <territory id="SE" countryCode="46" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(8)(\d{2,3})(\d{2,3})(\d{2})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1-$2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(8)(\d{2,3})(\d{2,3})(\d{2})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <numberFormat pattern="([1-69]\d)(\d{2,3})(\d{2})(\d{2})">
-          <leadingDigits>
-            1[013689]|
-            2[0136]|
-            3[1356]|
-            4[0246]|
-            54|
-            6[03]|
-            90
-          </leadingDigits>
-          <format>$1-$2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="([1-69]\d)(\d{2,3})(\d{2})(\d{2})">
-          <leadingDigits>
-            1[013689]|
-            2[0136]|
-            3[1356]|
-            4[0246]|
-            54|
-            6[03]|
-            90
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <numberFormat pattern="([1-69]\d)(\d{3})(\d{2})">
-          <leadingDigits>
-            1[13689]|
-            2[136]|
-            3[1356]|
-            4[0246]|
-            54|
-            6[03]|
-            90
-          </leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="([1-69]\d)(\d{3})(\d{2})">
-          <leadingDigits>
-            1[13689]|
-            2[136]|
-            3[1356]|
-            4[0246]|
-            54|
-            6[03]|
-            90
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            1[2457]|
-            2[2457-9]|
-            3[0247-9]|
-            4[1357-9]|
-            5[0-35-9]|
-            6[124-9]|
-            9(?:
-              [125-8]|
-              3[0-5]|
-              4[0-3]
-            )
-          </leadingDigits>
-          <format>$1-$2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>
-            1[2457]|
-            2[2457-9]|
-            3[0247-9]|
-            4[1357-9]|
-            5[0-35-9]|
-            6[124-9]|
-            9(?:
-              [125-8]|
-              3[0-5]|
-              4[0-3]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(\d{3})(\d{2,3})(\d{2})">
-          <leadingDigits>
-            1[2457]|
-            2[2457-9]|
-            3[0247-9]|
-            4[1357-9]|
-            5[0-35-9]|
-            6[124-9]|
-            9(?:
-              [125-8]|
-              3[0-5]|
-              4[0-3]
-            )
-          </leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{2,3})(\d{2})">
-          <leadingDigits>
-            1[2457]|
-            2[2457-9]|
-            3[0247-9]|
-            4[1357-9]|
-            5[0-35-9]|
-            6[124-9]|
-            9(?:
-              [125-8]|
-              3[0-5]|
-              4[0-3]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(7[02-467])(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>7[02-467]</leadingDigits>
-          <format>$1-$2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(7[02-467])(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>7[02-467]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(20)(\d{2,3})(\d{2})">
-          <leadingDigits>20</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(20)(\d{2,3})(\d{2})">
-          <leadingDigits>20</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <numberFormat pattern="(9[034]\d)(\d{2})(\d{2})(\d{3})">
-          <leadingDigits>9[034]</leadingDigits>
-          <format>$1-$2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(9[034]\d)(\d{2})(\d{2})(\d{3})">
-          <leadingDigits>9[034]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{7,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          1(?:
-            0[1-8]\d{6}|
-            [136]\d{5,7}|
-            (?:
-              2[0-35]|
-              4[0-4]|
-              5[0-25-9]|
-              7[13-6]|
-              [89]\d
-            )\d{5,6}
-          )|
-          2(?:
-            [136]\d{5,7}|
-            (?:
-              2[0-7]|
-              4[0136-8]|
-              5[0-38]|
-              7[018]|
-              8[01]|
-              9[0-57]
-            )\d{5,6}
-          )|
-          3(?:
-            [356]\d{5,7}|
-            (?:
-              0[0-4]|
-              1\d|
-              2[0-25]|
-              4[056]|
-              7[0-2]|
-              8[0-3]|
-              9[023]
-            )\d{5,6}
-          )|
-          4(?:
-            [0246]\d{5,7}|
-            (?:
-              1[01-8]|
-              3[0135]|
-              5[14-79]|
-              7[0-246-9]|
-              8[0156]|
-              9[0-689]
-            )\d{5,6}
-          )|
-          5(?:
-            0[0-6]|
-            1[1-5]|
-            2[0-68]|
-            3[0-4]|
-            4\d|
-            5[0-5]|
-            6[03-5]|
-            7[013]|
-            8[0-79]|
-            9[01]
-          )\d{5,6}|
-          6(?:
-            [03]\d{5,7}|
-            (?:
-              1[1-3]|
-              2[0-4]|
-              4[02-57]|
-              5[0-37]|
-              6[0-3]|
-              7[0-2]|
-              8[0247]|
-              9[0-356]
-            )\d{5,6}
-          )|
-          8\d{6,8}|
-          9(?:
-            0\d{5,7}|
-            (?:
-              1[0-68]|
-              2\d|
-              3[02-59]|
-              4[0-4]|
-              5[0-4]|
-              6[01]|
-              7[0135-8]|
-              8[01]
-            )\d{5,6}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-        <exampleNumber>8123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[02-46]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>701234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>20\d{4,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-        <exampleNumber>201234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          9(?:
-            00|
-            39|
-            44
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>77\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>771234567</exampleNumber>
-      </sharedCost>
-    </territory>
-
-    <!-- Singapore -->
-    <!-- http://www.ida.gov.sg/policies%20and%20regulation/20060508120124.aspx -->
-    <territory id="SG" countryCode="65" internationalPrefix="0[0-3][0-9]">
-      <availableFormats>
-        <numberFormat pattern="([3689]\d{3})(\d{4})">
-          <leadingDigits>
-            [369]|
-            8[1-9]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(1[89]00)(\d{3})(\d{4})">
-          <leadingDigits>1[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(7000)(\d{4})(\d{3})">
-          <leadingDigits>70</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{3})(\d{4})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- We have a stricter national number pattern for numbers beginning with 6 to enable us to
-             easily strip off leading "65" country codes. -->
-        <nationalNumberPattern>
-          [36]\d{7}|
-          [17-9]\d{7,10}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>6[1-8]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>61234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            8[1-5]|
-            9[0-8]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>81234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1?800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-        <exampleNumber>18001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>1900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>19001234567</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>3[0-2]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>31234567</exampleNumber>
-      </voip>
-      <uan>
-        <!-- Although not detailed in the plan beyond mentioning their existence, it seems 7000
-             numbers are used for companies. Most of the online examples are in fact alpha-numbers.
-             -->
-        <nationalNumberPattern>7000\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-        <exampleNumber>70001234567</exampleNumber>
-      </uan>
-      <shortCode>
-        <nationalNumberPattern>
-          1(?:
-            [0136]\d{2}|
-            41\d|
-            [89](?:
-              [1-9]\d|
-              0[1-9]
-            )|
-            [57]\d{2,3})|
-          99\d
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,5}</possibleNumberPattern>
-        <exampleNumber>1312</exampleNumber>
-      </shortCode>
-    </territory>
-
-    <!-- Saint Helena and Tristan da Cunha -->
-    <!-- http://www.itu.int/oth/T02020000AF/en -->
-    <territory id="SH" countryCode="290" internationalPrefix="00">
-      <!-- Numbers are formatted as a block. -->
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [2-468]\d|
-            7[01]
-          )\d{2}
-        </nationalNumberPattern>
-        <!-- Using St Helena Tourism as the example number. -->
-        <exampleNumber>2158</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>NA</nationalNumberPattern>
-        <possibleNumberPattern>NA</possibleNumberPattern>
-      </mobile>
-      <premiumRate>
-        <nationalNumberPattern>
-          (?:
-            [59]\d|
-            7[2-9]
-          )\d{2}
-        </nationalNumberPattern>
-        <exampleNumber>5012</exampleNumber>
-      </premiumRate>
-      <shortCode>
-        <nationalNumberPattern>1\d{2,3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{3,4}</possibleNumberPattern>
-      </shortCode>
-    </territory>
-
-    <!-- Slovenia -->
-    <!-- http://www.itu.int/oth/T02020000BE/en -->
-    <territory id="SI" countryCode="386" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d)(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>
-            [12]|
-            3[4-8]|
-            4[24-8]|
-            5[3-8]|
-            7[3-8]
-          </leadingDigits>
-          <format>$1 $2 $3 $4</format>
-          </numberFormat>
-        <numberFormat pattern="([3-7]\d)(\d{3})(\d{3})">
-          <leadingDigits>
-            [37][01]|
-            4[019]|
-            51|
-            64
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-          </numberFormat>
-        <numberFormat pattern="([89][09])(\d{3,6})">
-          <leadingDigits>[89][09]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([58]\d{2})(\d{5})">
-          <leadingDigits>
-            59|
-            8[1-3]
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [1-7]\d{6,7}|
-          [89]\d{4,7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1\d|
-            2[2-8]|
-            3[4-8]|
-            4[24-8]|
-            [57][3-8]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-        <exampleNumber>11234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- We include 049 here - it is VoIP in the plan, but SMS messages have been successfully
-             delivered - and it is run by Mobitel. There are also mobile numbers found on the
-             internet with this prefix - it is apparently used in Kosovo. -->
-        <nationalNumberPattern>
-          (?:
-            [37][01]|
-            4[019]|
-            51|
-            64
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>31234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{4,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <!-- Includes televoting, mass calling -->
-        <nationalNumberPattern>
-          90\d{4,6}|
-          89[1-3]\d{2,5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,8}</possibleNumberPattern>
-        <exampleNumber>90123456</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>
-          (?:
-            59|
-            8[1-3]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>59012345</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Slovakia -->
-    <!-- http://www.itu.int/oth/T02020000BD/en -->
-    <territory id="SK" countryCode="421" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(2)(\d{3})(\d{3})(\d{2})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1/$2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([3-5]\d)(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>[3-5]</leadingDigits>
-          <format>$1/$2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="([689]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>[689]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-689]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2-5]\d{8}</nationalNumberPattern>
-        <exampleNumber>212345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 948 isn't in the number pattern, but many examples using this have been found, so
-             deeming it valid for now. -->
-        <nationalNumberPattern>
-          9(?:
-            0[1-8]|
-            1[0-24-9]|
-            4[0489]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>912123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>
-          9(?:
-            [78]\d{7}|
-            00\d{6}
-          )
-        </nationalNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>8[5-9]\d{7}</nationalNumberPattern>
-        <exampleNumber>850123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>
-          6(?:
-            5[0-4]|
-            9[0-6]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>690123456</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Sierra Leone -->
-    <!-- http://www.itu.int/oth/T02020000BB/en -->
-    <territory id="SL" countryCode="232" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <!-- Following formatting of online yellow pages www.leonedirect.com -->
-             <numberFormat pattern="(\d{2})(\d{6})">
-               <format>$1 $2</format>
-             </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-578]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[235]2[2-4][2-9]\d{4}</nationalNumberPattern>
-        <exampleNumber>22221234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding prefix 50 because it was found in online numbers and this is supported by
-             http://www.wtng.info/wtng-232-sl.html - although the data may be outdated, since no
-             further information about Datatel can be found. -->
-        <nationalNumberPattern>
-          (?:
-            25|
-            3[03]|
-            44|
-            5[056]|
-            7[6-8]|
-            88
-          )[1-9]\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>25123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- San Marino -->
-    <!-- http://www.itu.int/oth/T02020000B5/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B39 (Information about Italy) -->
-    <!-- http://en.wikipedia.org/wiki/%2B378-->
-    <!-- San Marino fixed-line numbers have an area code of "0549". However, this seems to be
-         optional when dialling from outside the country; the phone number can be reached both with
-         and without this area code. The nationalPrefixForParsing and nationalPrefixTransformRule
-         are used to ensure that if the 0549 is not present, it will be added. -->
-    <territory id="SM" countryCode="378" internationalPrefix="00"
-      nationalPrefixForParsing="(?:0549)?([89]\d{5})" nationalPrefixTransformRule="0549$1">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[5-7]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <leadingDigits>[5-7]</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <!-- We follow the guidelines of the yellow-pages when formatting in national format. -->
-        <numberFormat pattern="(0549)(\d{6})">
-          <leadingDigits>0</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- We follow the guidelines of the Telecommunications Document published on ITU when
-             formatting in international format. -->
-        <intlNumberFormat pattern="(0549)(\d{6})">
-          <leadingDigits>0</leadingDigits>
-          <format>($1) $2</format>
-        </intlNumberFormat>
-        <!-- A rule in case the number has been stored without the leading 0549 necessary for
-             fixed-lines. -->
-        <numberFormat pattern="(\d{6})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>0549 $1</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{6})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>(0549) $1</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[05-7]\d{7,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <!-- Example numbers provided by the Telecommunications Services. -->
-      <fixedLine>
-        <nationalNumberPattern>
-          0549(?:
-            8[0157-9]|
-            9\d
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>0549886377</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6[16]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>66661212</exampleNumber>
-      </mobile>
-      <premiumRate>
-        <!-- Includes Video Call numbers. -->
-        <nationalNumberPattern>7[178]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>71123456</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>5[158]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>58001110</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Senegal -->
-    <!-- http://www.itu.int/oth/T02020000B8/en -->
-    <territory id="SN" countryCode="221" internationalPrefix="00">
-      <availableFormats>
-        <!-- Using yellow pages and online telecom company formatting, rather than that implied in
-             the national numbering plan. -->
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[37]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          3(?:
-            010|
-            3(?:
-              8[1-9]|
-              9[2-9]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>301012345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 77 7[45]X and 77 9[0-6]X from online searches and from numbers successfully
-             delivered by the wireless team. -->
-        <nationalNumberPattern>
-          7(?:
-            0[1256]0|
-            6(?:
-              1[23]|
-              2[89]|
-              3[3489]|
-              4[6-9]|
-              5[1-389]|
-              6[6-9]|
-              7[45]|
-              8[3-8]
-            )|
-            7(?:
-              1[014-8]|
-              2[0-7]|
-              3[0-35-8]|
-              4[0-6]|
-              [56]\d|
-              7[0-589]|
-              8[01]|
-              9[0-6]
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>701012345</exampleNumber>
-      </mobile>
-      <voip>
-        <nationalNumberPattern>33301\d{4}</nationalNumberPattern>
-        <exampleNumber>333011234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Somalia -->
-    <!-- http://www.itu.int/oth/T02020000C0/en -->
-    <!-- This document seems to cover only a small set of prefixes in Somalia.
-    Somalia has limited information available, and the numerous telecom carriers
-    were previously working under an unregulated environment. The extra prefixes
-    were added from the contact phone numbers of the countries main telecom
-    operators. See regression tests for more details. -->
-    <territory id="SO" countryCode="252" internationalPrefix="00">
-      <availableFormats>
-        <!-- These follow formats online, such as www.hortel.net/contact_us.html -->
-        <numberFormat pattern="([13-5])(\d{6})">
-          <leadingDigits>[13-5]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- Unfortunately numbers beginning with 1 are hard to format based on prefixes, since it
-             depends on number length. -->
-        <numberFormat pattern="([19]\d)(\d{6})">
-          <leadingDigits>15|9</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13-59]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            5[57-9]|
-            [134]\d
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-        <!-- Example numbers are test numbers from the document. -->
-        <exampleNumber>5522010</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            9[01]|
-            15
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>90792024</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Suriname -->
-    <territory id="SR" countryCode="597" internationalPrefix="00">
-    </territory>
-
-    <!-- Sao Tome and Principe -->
-    <!-- http://www.itu.int/oth/T02020000B6/en -->
-    <territory id="ST" countryCode="239" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[29]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>22\d{5}</nationalNumberPattern>
-        <exampleNumber>2221234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9[89]\d{5}</nationalNumberPattern>
-        <exampleNumber>9812345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- El Salvador -->
-    <territory id="SV" countryCode="503" internationalPrefix="00">
-    </territory>
-
-    <!-- Syrian Arab Republic -->
-    <!-- http://www.itu.int/oth/T02020000C9/en -->
-    <territory id="SY" countryCode="963" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{3,4})">
-          <leadingDigits>[1-5]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9[3-689])(\d{4})(\d{3})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-59]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              1\d?|
-              4\d|
-              [2356]
-            )|
-            2[1-35]|
-            3(?:
-              1\d|
-              [34]
-            )|
-            4[13]|
-            5[1-3]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>112345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 945, 967 and 991 numbers are added as SMS messages have been successfully delivered to
-             these numbers, and they are also widely present on the Internet. -->
-        <nationalNumberPattern>
-          9(?:
-            3[23]|
-            4[457]|
-            55|
-            6[67]|
-            88|
-            9[19]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>944567890</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Swaziland -->
-    <!-- http://www.itu.int/oth/T02020000C6/en -->
-    <!-- Note this plan is scheduled to change in February 2011 so should be updated at that time.
-         -->
-    <territory id="SZ" countryCode="268" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <leadingDigits>[2-6]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>[027]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[02-7]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </generalDesc>
-      <noInternationalDialling>
-        <nationalNumberPattern>0800\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>08001234</exampleNumber>
-      </noInternationalDialling>
-      <fixedLine>
-        <!-- The leading optional 2 is because future changes to the fixed-line plan will be made by
-             prepending a two to fixed-line numbers. -->
-        <nationalNumberPattern>
-          2?(?:
-            2(?:
-              0[07]|
-              [13]7|
-              2[57]
-            )|
-            3(?:
-              0[34]|
-              [1278]3|
-              3[23]|
-              [46][34]
-            )|
-            (?:
-              40[4-69]|
-              16|
-              2[12]|
-              3[57]|
-              [4578]2|
-              67
-            )|
-            5(?:
-              0[5-7]|
-              1[6-9]|
-              [23][78]|
-              48|
-              5[01]
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>2171234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            6|
-            7[6-8]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>76123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>0800\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>08001234</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Turks and Caicos Islands -->
-    <!-- http://www.itu.int/oth/T02020000D8/en -->
-    <territory id="TC" countryCode="1" leadingDigits="649"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[689]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          649(?:
-            712|
-            9(?:
-              4\d|
-              50
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>6497121234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          649(?:
-            2(?:
-              3[12]|
-              4[1-5]
-            )|
-            3(?:
-              3[1-39]|
-              4[1-57]
-            )|
-            4[34][12]
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>6492311234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>64971[01]\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>6497101234</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Chad -->
-    <!-- http://www.itu.int/oth/T0202000029/en -->
-    <!-- The international prefix includes 16 as the international manual exchange. -->
-    <territory id="TD" countryCode="235" preferredInternationalPrefix="00"
-         internationalPrefix="00|16">
-      <availableFormats>
-        <numberFormat
-          pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2679]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          22(?:
-            [3789]0|
-            5[0-5]|
-            6[89]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>22501234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Sotel Tchad "SALAM" (77 XX XX XX) is classified as a fixed operator in the plan, but it
-             also says numbers starting with 7 are mobile numbers. Putting under mobile for now.
-             Also adding 63[5-7] from evidence of successful SMS delivery. -->
-        <nationalNumberPattern>
-          (?:
-            6(?:
-              3[0-7]|
-              6\d
-            )|
-            77\d|
-            9(?:
-              5[0-4]|
-              9\d
-            )
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>63012345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- French Southern Territories -->
-    <territory id="TF" countryCode="262" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Togo -->
-    <!-- http://www.itu.int/oth/T02020000D1/en -->
-    <territory id="TG" countryCode="228" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{2})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[02-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[2-7]|
-            3[23]|
-            44|
-            55|
-            66|
-            77
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>2212345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Added prefix 09 because many mobile numbers were found with this. -->
-        <nationalNumberPattern>
-          (?:
-            0[1-9]|
-            7[56]|
-            8[1-7]|
-            9\d
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>0112345</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Thailand -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000CD0001MSWE.doc -->
-    <territory id="TH" countryCode="66" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- Formatting patterns from wikipedia and the document itself -
-        http://en.wikipedia.org/wiki/%2B66 -->
-        <numberFormat pattern="(2)(\d{3})(\d{4})">
-          <leadingDigits>2</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([3-7]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>[3-7]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(8)(\d{4})(\d{4})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(1[89]00)(\d{3})(\d{3})">
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-8]\d{7,8}|
-          1\d{9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[1-9]|
-            3[24-9]|
-            4[2-5]|
-            5[3-6]|
-            7[3-7]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- 8[02] numbers are added as SMS messages have been successfully delivered to these
-             numbers, and they are also widely present on the Internet. -->
-        <nationalNumberPattern>8\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>812345678</exampleNumber>
-      </mobile>
-      <!-- http://en.wikipedia.org/wiki/Toll-free_telephone_number -->
-      <tollFree>
-        <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>1900\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>1900123456</exampleNumber>
-      </premiumRate>
-      <voip>
-        <nationalNumberPattern>60\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>601234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Tajikistan -->
-    <!-- http://www.itu.int/oth/T02020000CA/en -->
-    <territory id="TJ" countryCode="992" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([349]\d{2})(\d{2})(\d{4})">
-          <leadingDigits>
-            [34]7|
-            91[78]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([49]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            4[48]|
-            9(?:
-              19|
-              [0235-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(331700)(\d)(\d{2})">
-          <leadingDigits>331</leadingDigits>
-          <leadingDigits>3317</leadingDigits>
-          <leadingDigits>33170</leadingDigits>
-          <leadingDigits>331700</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d)(\d{4})">
-          <leadingDigits>3[1-5]</leadingDigits>
-          <leadingDigits>
-            3(?:
-              [1245]|
-              3(?:
-                [02-9]|
-                1[0-589]
-              )
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[349]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{3,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3(?:
-              1[3-5]|
-              2[245]|
-              31|
-              4[24-7]|
-              5[25]|
-              72
-            )|
-            4(?:
-              46|
-              74|
-              87
-            )
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>372123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 90 prefix as SMS messages could be successfully delivered to these mobile
-             numbers. -->
-        <nationalNumberPattern>9[0-35-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>917123456</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Tokelau -->
-    <territory id="TK" countryCode="690" internationalPrefix="00">
-    </territory>
-
-    <!-- Timor-Leste (East Timor) -->
-    <!-- http://www.itu.int/oth/T02020000D0/en -->
-    <territory id="TL" countryCode="670" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-47-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2[1-5]|
-            3[1-9]|
-            4[1-4]
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>2112345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[2-4]\d{5}</nationalNumberPattern>
-        <exampleNumber>7212345</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{5}</nationalNumberPattern>
-        <exampleNumber>8012345</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{5}</nationalNumberPattern>
-        <exampleNumber>9012345</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>70\d{5}</nationalNumberPattern>
-        <exampleNumber>7012345</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Turkmenistan -->
-    <!-- http://www.itu.int/oth/T02020000D7/en -->
-    <territory id="TM" countryCode="993" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP $FG">
-      <availableFormats>
-        <!-- There doesn't seem to be a standardized format. The format below is based on the
-             Turkmenistan embassy at
-             http://www.turkmenistanembassy.org/turkmen/info/contact.html -->
-          <numberFormat pattern="([1-6]\d)(\d{2})(\d{2})(\d{2})">
-            <format>$1 $2 $3 $4</format>
-          </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-6]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            12\d|
-            243|
-            [3-5]22
-          )\d{5}
-        </nationalNumberPattern>
-        <exampleNumber>12345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 68 as SMS messages have been successfully sent to numbers with this prefix. -->
-        <nationalNumberPattern>6[6-8]\d{6}</nationalNumberPattern>
-        <exampleNumber>66123456</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Tunisia -->
-    <!-- http://www.itu.int/oth/T02020000D5/en -->
-    <territory id="TN" countryCode="216" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="([247-9]\d)(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[247-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>7\d{7}</nationalNumberPattern>
-        <exampleNumber>71234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            2[0-7]|
-            40|
-            9\d
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>20123456</exampleNumber>
-      </mobile>
-      <!-- These are listed as 'value added services' - pending further information, we add them
-           here for now. -->
-      <premiumRate>
-        <nationalNumberPattern>8[028]\d{6}</nationalNumberPattern>
-        <exampleNumber>80123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Tonga -->
-    <territory id="TO" countryCode="676" internationalPrefix="00">
-    </territory>
-
-    <!-- Turkey -->
-    <!-- http://en.wikipedia.org/wiki/%2B90 -->
-    <!-- http://www.itu.int/oth/T02020000D6/en -->
-    <territory id="TR" countryCode="90" internationalPrefix="00" nationalPrefix="0">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="($NP$FG)" pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>
-            [23]|
-            4(?:
-              [0-35-9]|
-              4[0-35-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$NP$FG" pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[589]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(444)(\d{1})(\d{3})">
-          <leadingDigits>444</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [2-589]\d{9}|
-          444\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Includes numbers starting with 392 for Northern Cyprus. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [13][26]|
-              [28][2468]|
-              [45][268]|
-              [67][246]
-            )|
-            3(?:
-              [13][28]|
-              [24-6][2468]|
-              [78][02468]|
-              92
-            )|
-            4(?:
-              [16][246]|
-              [23578][2468]|
-              4[26]
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2123456789</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          5(?:
-            0[1-35-7]|
-            22|
-            3\d|
-            4[1-79]|
-            5[1-5]|
-            9[246]
-          )\d{7}
-          </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5012345678</exampleNumber>
-      </mobile>
-      <paging>
-        <nationalNumberPattern>512\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5123456789</exampleNumber>
-      </paging>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-      <uan>
-        <!-- http://www.turktelekom.com.tr/tt/portal/News/Archive/7-digit-special-service-number-starting-with-444 -->
-        <nationalNumberPattern>
-          444\d{4}|
-          850\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>4441444</exampleNumber>
-      </uan>
-    </territory>
-
-    <!-- Trinidad and Tobago -->
-    <!-- http://www.itu.int/oth/T02020000D4/en -->
-    <territory id="TT" countryCode="1" leadingDigits="868"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>[89]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          868(?:
-            2(?:
-              01|
-              2[1-4]
-            )|
-            6(?:
-              1[4-6]|
-              2[1-9]|
-              [3-6]\d|
-              7[0-79]|
-              9[0-8]
-            )|
-            82[12]
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>8682211234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          868(?:
-            29\d|
-            3(?:
-              0[1-9]|
-              1[02-9]|
-              [2-9]\d
-            )|
-            4(?:
-              [679]\d|
-              8[0-4]
-            )|
-            6(?:
-              20|
-              78|
-              8\d
-            )|
-            7(?:
-              1[02-9]|
-              [2-9]\d
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8682911234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Tuvalu -->
-    <territory id="TV" countryCode="688" internationalPrefix="00">
-    </territory>
-
-    <!-- Taiwan, China -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000EB0003MSWE.doc -->
-    <!-- Extension symbols found on the internet so far have been #, X and Ext -
-         so # has been chosen as the preferred extension prefix. -->
-    <territory id="TW" countryCode="886" internationalPrefix="0(?:0[25679]|19)"
-               nationalPrefix="0" preferredExtnPrefix="#" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([2-8])(\d{3,4})(\d{4})">
-          <leadingDigits>
-            [2-7]|
-            8[1-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([89]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            80|
-            9
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2-8]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>21234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Tanzania -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000CB0001MSWE.doc -->
-    <territory id="TZ" countryCode="255" internationalPrefix="00[056]"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([24]\d)(\d{3})(\d{4})">
-          <leadingDigits>[24]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([67]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>[67]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Formatting for special numbers from www.tcra.go.tz -->
-        <numberFormat pattern="([89]\d{2})(\d{2})(\d{4})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2[2-8]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-        <exampleNumber>222345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            6[158]|
-            7[1-9]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80[08]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>
-          8(?:
-            40|
-            6[01]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>840123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>41\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>412345678</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Ukraine -->
-    <!-- http://www.itu.int/oth/T02020000DB/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B380 -->
-    <territory id="UA" countryCode="380" internationalPrefix="0~0"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- City codes separated out. No definitive list has been found of what constitutes the
-             area code - http://www.ua.all-biz.info/guide/phonecodes is useful but not error-free.
-             Have used local yellow pages guidelines, Google searches and regression tests to
-             reverse-engineer these rules as well as bugs. -->
-        <numberFormat pattern="([3-69]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            39|
-            4(?:
-              [45][0-5]|
-              87
-            )|
-            5(?:
-              0|
-              6[37]|
-              7[37]
-            )|
-            6[36-8]|
-            9[1-9]
-          </leadingDigits>
-          <leadingDigits>
-            39|
-            4(?:
-              [45][0-5]|
-              87
-            )|
-            5(?:
-              0|
-              6(?:
-                3[14-7]|
-                7
-              )|
-              7[37]
-            )|
-            6[36-8]|
-            9[1-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([3-689]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            3[1-8]2|
-            4[1378]2|
-            5(?:
-              [12457]2|
-              6[24]
-            )|
-            6(?:
-              [49]2|
-              [12][29]|
-              5[24]
-            )|
-            8|
-            90
-          </leadingDigits>
-          <leadingDigits>
-            3(?:
-              [1-46-8]2[013-9]|
-              52
-            )|
-            4[1378]2|
-            5(?:
-              [12457]2|
-              6[24]
-            )|
-            6(?:
-              [49]2|
-              [12][29]|
-              5[24]
-            )|
-            8|
-            90
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([3-6]\d{3})(\d{5})">
-          <leadingDigits>
-            3(?:
-              5[013-9]|
-              [1-46-8]
-            )|
-            4(?:
-              [137][013-9]|
-              6|
-              [45][6-9]|
-              8[4-6]
-            )|
-            5(?:
-              [1245][013-9]|
-              6[0135-9]|
-              3|
-              7[4-6]
-            )|
-            6(?:
-              [49][013-9]|
-              5[0135-9]|
-              [12][13-8]
-            )
-          </leadingDigits>
-          <leadingDigits>
-            3(?:
-              5[013-9]|
-              [1-46-8](?:
-                22|
-                [013-9]
-              )
-            )|
-            4(?:
-              [137][013-9]|
-              6|
-              [45][6-9]|
-              8[4-6]
-            )|
-            5(?:
-              [1245][013-9]|
-              6(?:
-                3[02389]|
-                [015689]
-              )|
-              3|
-              7[4-6]
-            )|
-            6(?:
-              [49][013-9]|
-              5[0135-9]|
-              [12][13-8]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[3-689]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            3[1-8]|
-            4[13-8]|
-            5[1-7]|
-            6[12459]
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>311234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            39|
-            50|
-            6[36-8]|
-            9[1-9]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>391234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Uganda -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000F10001MSWE.doc -->
-    <!-- http://www.ucc.co.ug/licensing/ugandaNumberingPlan.pdf -->
-    <territory id="UG" countryCode="256" internationalPrefix="00[057]"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([247-9]\d{2})(\d{6})">
-          <leadingDigits>
-            [7-9]|
-            200|
-            4(?:
-              6[45]|
-              [7-9]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([34]\d)(\d{7})">
-          <leadingDigits>
-            3|
-            4(?:
-              [1-5]|
-              6[0-36-9]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(2024)(\d{5})">
-          <leadingDigits>202</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          3\d{8}|
-          4(?:
-            [1-6]\d|
-            7[136]|
-            8[1356]|
-            96
-          )\d{6}|
-          20(?:
-            0\d|
-            24
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,9}</possibleNumberPattern>
-        <exampleNumber>312345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          7(?:
-            [1578]\d|
-            0[0-4]
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>712345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800[123]\d{5}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>90[123]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>901123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- United States -->
-    <!-- http://www.nanpa.com/reports/reports_npa.html -->
-    <!-- http://en.wikipedia.org/wiki/North_American_Numbering_Plan -->
-    <!-- Note the national prefix of US is the same as its country code, and when formatting phone
-         numbers in the national format, it is not included. Therefore, we omit it here to make
-         formatting consistent with the rest of the world. The same applies to all the
-         countries/regions under NANPA -->
-    <!-- The national prefix of "1" here is the same as the country code. It is not used by default
-         when formatting, but is set here so that users who are calling formatByPattern can specify
-         NationalPrefixFormattingRule if they want to. -->
-    <territory id="US" countryCode="1" internationalPrefix="011"
-      mainCountryForCode="true" nationalPrefix="1">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <format>($1) $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1-$2</format>
-        </numberFormat>
-        <!-- A different pattern is used when formatting internationally, as the area code is no
-             longer optional and should not be in brackets. -->
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <format>$1-$2-$3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-9]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              0[1-35-9]|
-              1[02-9]|
-              2[4589]|
-              3[149]|
-              4[08]|
-              5[1-46]|
-              6[0279]|
-              7[06]|
-              8[13]
-            )|
-            3(?:
-              0[1-57-9]|
-              1[02-9]|
-              2[0135]|
-              3[014679]|
-              47|
-              5[12]|
-              6[01]|
-              8[056]
-            )|
-            4(?:
-              0[124-9]|
-              1[02-579]|
-              2[3-5]|
-              3[0245]|
-              4[0235]|
-              58|
-              69|
-              7[0589]|
-              8[04]
-            )|
-            5(?:
-              0[1-57-9]|
-              1[0235-8]|
-              20|
-              3[04]|
-              4[01]|
-              5[19]|
-              6[1-37]|
-              7[013-5]|
-              8[056]
-            )|
-            6(?:
-              0[1-35-9]|
-              1[024-9]|
-              2[036]|
-              3[016]|
-              4[16]|
-              5[017]|
-              6[0-29]|
-              78|
-              8[12]
-            )|
-            7(?:
-              0[1-46-8]|
-              1[2-9]|
-              2[047]|
-              3[124]|
-              4[07]|
-              5[47]|
-              6[02359]|
-              7[02-59]|
-              8[156]
-            )|
-            8(?:
-              0[1-68]|
-              1[02-8]|
-              28|
-              3[0-25]|
-              4[3578]|
-              5[06-9]|
-              6[02-5]|
-              7[028]
-            )|
-            9(?:
-              0[1346-9]|
-              1[02-9]|
-              2[058]|
-              3[1678]|
-              4[0179]|
-              5[1246]|
-              7[0-3589]|
-              8[059]
-            )
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>2012345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              0[1-35-9]|
-              1[02-9]|
-              2[4589]|
-              3[149]|
-              4[08]|
-              5[1-46]|
-              6[0279]|
-              7[06]|
-              8[13]
-            )|
-            3(?:
-              0[1-57-9]|
-              1[02-9]|
-              2[0135]|
-              3[014679]|
-              47|
-              5[12]|
-              6[01]|
-              8[056]
-            )|
-            4(?:
-              0[124-9]|
-              1[02-579]|
-              2[3-5]|
-              3[0245]|
-              4[0235]|
-              58|
-              69|
-              7[0589]|
-              8[04]
-            )|
-            5(?:
-              0[1-57-9]|
-              1[0235-8]|
-              20|
-              3[04]|
-              4[01]|
-              5[19]|
-              6[1-37]|
-              7[013-5]|
-              8[056]
-            )|
-            6(?:
-              0[1-35-9]|
-              1[024-9]|
-              2[036]|
-              3[016]|
-              4[16]|
-              5[017]|
-              6[0-29]|
-              78|
-              8[12]
-            )|
-            7(?:
-              0[1-46-8]|
-              1[2-9]|
-              2[047]|
-              3[124]|
-              4[07]|
-              5[47]|
-              6[02359]|
-              7[02-59]|
-              8[156]
-            )|
-            8(?:
-              0[1-68]|
-              1[02-8]|
-              28|
-              3[0-25]|
-              4[3578]|
-              5[06-9]|
-              6[02-5]|
-              7[028]
-            )|
-            9(?:
-              0[1346-9]|
-              1[02-9]|
-              2[058]|
-              3[1678]|
-              4[0179]|
-              5[1246]|
-              7[0-3589]|
-              8[059]
-            )
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>2012345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Uruguay -->
-    <territory id="UY" countryCode="598" internationalPrefix="00"
-               nationalPrefix="0">
-    </territory>
-
-    <!-- Uzbekistan -->
-    <!-- http://www.itu.int/oth/T02020000E1/en -->
-    <territory id="UZ" countryCode="998" internationalPrefix="8~10"
-               nationalPrefix="8" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([679]\d)(\d{3})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[679]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Adding 70 prefix as suggested by http://www.ttts.uz/eng/telephone_codes/codes_uzb_eng
-             -->
-        <nationalNumberPattern>
-          (?:
-            6[125679]|
-            7[0-69]
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding 9[45] as suggested by http://www.ucell.uz/en/for_subscribers/how_to_call.html
-             -->
-        <nationalNumberPattern>9[0-57-9]\d{7}</nationalNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Vatican City -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Vatican_City -->
-    <!-- Note that numbers here are also accessible via Italy (+39 and prefix of 06 698) but can
-         also be dialled with the Vatican City country code. -->
-    <territory id="VA" countryCode="379" internationalPrefix="00" >
-      <availableFormats>
-        <numberFormat pattern="(06)(\d{4})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>06\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>06698\d{5}</nationalNumberPattern>
-        <exampleNumber>0669812345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- We have no information on mobile numbers from the Vatican. It is probable that they use
-             Italian mobile contracts. -->
-        <nationalNumberPattern>N/A</nationalNumberPattern>
-        <possibleNumberPattern>N/A</possibleNumberPattern>
-      </mobile>
-      <!-- No information exists about other types of numbers. -->
-    </territory>
-
-    <!-- Saint Vincent and the Grenadines -->
-    <!-- http://www.itu.int/oth/T02020000B3/en -->
-    <territory id="VC" countryCode="1" leadingDigits="784"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>
-          (?:
-            784|
-            8(?:
-              00|
-              66|
-              77|
-              88
-            )|
-            900
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          784(?:
-            266|
-            3(?:
-              6[6-9]|
-              7\d|
-              8[0-24-6]
-            )|
-            4(?:
-              38|
-              5[0-36-8]|
-              8\d|
-              9[01]
-            )|
-            555|
-            638|
-            784
-          )\d{4}
-        </nationalNumberPattern>
-        <exampleNumber>7842661234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          784(?:
-            4(?:
-              3[0-24]|
-              5[45]|
-              9[2-5]
-            )|
-            5(?:
-              2[6-9]|
-              3[0-3]|
-              93
-            )
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7844301234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Venezuela -->
-    <!-- http://www.itu.int/oth/T02020000E3/en -->
-    <!-- http://en.wikipedia.org/wiki/+58 -->
-    <!-- 1XX specifies a particular carrier to route a call to. -->
-    <territory id="VE" countryCode="58" internationalPrefix="00"
-      nationalPrefix="0" nationalPrefixForParsing="(1\d{2})|0"
-      nationalPrefixFormattingRule="$NP$FG"
-      carrierCodeFormattingRule="$CC $FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{7})">
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[24589]\d{9}</nationalNumberPattern>
-        <!-- Open numbering plan. -->
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Including region-free 500 calls here, since these are treated as local calls. Wikipedia
-             mentions these as 5XX, but online examples that can be found are seemingly restricted
-             to 50[01]. -->
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              12|
-              3[457-9]|
-              [58][1-9]|
-              [467]\d|
-              9[1-6]
-            )|
-            50[01]
-          )\d{7}
-        </nationalNumberPattern>
-        <exampleNumber>2121234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          4(?:
-            1[24-8]|
-            2[46]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>4121234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8001234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9001234567</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Virgin Islands, British -->
-    <!-- http://www.itu.int/oth/T020200001E/en -->
-    <territory id="VG" countryCode="1" leadingDigits="284"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>
-          (?:
-            284|
-            8(?:
-              00|
-              66|
-              77|
-              88
-            )|
-            900
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          284(?:
-            (?:
-              229|
-              4(?:
-                46|
-                9[45]
-              )|
-              8(?:
-                52|
-                6[459]
-              )
-            )\d{4}|
-            496[0-5]\d{3}
-          )
-        </nationalNumberPattern>
-        <exampleNumber>2842291234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          284(?:
-            (?:
-              30[0-3]|
-              4(?:
-                4[0-5]|
-                68|
-                99
-              )|
-              54[0-4]
-            )\d{4}|
-            496[6-9]\d{3}
-          )
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>2843001234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Virgin Islands, United States -->
-    <!-- http://www.itu.int/oth/T02020000DF/en -->
-    <territory id="VI" countryCode="1" leadingDigits="340"
-      nationalPrefix="1" internationalPrefix="011">
-      <generalDesc>
-        <!-- NANPA country - uses US formatting rules -->
-        <nationalNumberPattern>
-          340(?:
-            6[49]2|
-            7[17]\d
-          )\d{4}|
-          (?:
-            8(?:
-              00|
-              66|
-              77|
-              88
-            )|
-            900
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <exampleNumber>3406421234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <exampleNumber>3406421234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>
-          8(?:
-            00|
-            55|
-            66|
-            77|
-            88
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8002345678</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>9002345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <!-- http://www.nanpa.com/pdf/PL_416.pdf -->
-        <nationalNumberPattern>
-          5(?:
-            00|
-            33|
-            44
-          )[2-9]\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5002345678</exampleNumber>
-      </personalNumber>
-    </territory>
-
-    <!-- Viet Nam (Vietnam) -->
-    <!-- http://www.itu.int/oth/T02020000E4/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B84 -->
-    <territory id="VN" countryCode="84" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([48])(\d{4})(\d{4})">
-          <leadingDigits>[48]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([235-7]\d)(\d{4})(\d{3})">
-          <leadingDigits>
-            2[025-79]|
-            3[0136-9]|
-            5[2-9]|
-            6[0-46-9]|
-            7[02-79]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(80)(\d{5})">
-          <leadingDigits>80</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(69\d)(\d{4,5})">
-          <leadingDigits>69</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([235-7]\d{2})(\d{4})(\d{3})">
-          <leadingDigits>
-            2[1348]|
-            3[25]|
-            5[01]|
-            65|
-            7[18]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(9\d)(\d{3})(\d{2})(\d{2})">
-          <leadingDigits>9</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(1[2689]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            1(?:
-              [26]|
-              88|
-              99
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(1[89]00)(\d{4,6})">
-          <leadingDigits>1[89]0</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          8\d{5,8}|
-          [1-79]\d{7,9}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            2(?:
-              [025-79]|
-              1[0189]|
-              [348][01]
-            )|
-            3(?:
-              [0136-9]|
-              [25][01]
-            )|
-            [48]\d|
-            5(?:
-              [01][01]|
-              [2-9]
-            )|
-            6(?:
-              [0-46-8]|
-              5[01]
-            )|
-            7(?:
-              [02-79]|
-              [18][01]
-            )
-          )\d{7}|
-          69\d{5,6}|
-          80\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>2101234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            9\d|
-            1(?:
-              2\d|
-              6[3-9]|
-              88|
-              99
-            )
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>912345678</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{4,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-        <exampleNumber>1800123456</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>1900\d{4,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-        <exampleNumber>1900123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Vanuatu -->
-    <territory id="VU" countryCode="678" internationalPrefix="00">
-    </territory>
-
-    <!--  Wallis and Futuna (Territoire français d'outre-mer) -->
-    <territory id="WF" countryCode="681" internationalPrefix="19">
-    </territory>
-
-    <!-- Samoa -->
-    <!-- http://www.itu.int/oth/T02020000B4/en -->
-    <territory id="WS" countryCode="685" internationalPrefix="0"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-      <!-- Should be formatted in one block, apart from the specific series below. For this reason
-           the leadingDigits is more detailed than would appear necessary. -->
-      <numberFormat pattern="(8[04]0)(\d{3,4})">
-        <leadingDigits>8[04]0</leadingDigits>
-        <format>$1 $2</format>
-      </numberFormat>
-      <numberFormat pattern="(7[25-7])(\d{5})">
-        <leadingDigits>7[25-7]</leadingDigits>
-        <format>$1 $2</format>
-      </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[2-8]\d{4,6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,7}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            [2-5]\d|
-            6[1-9]|
-            840\d
-          )\d{3}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,7}</possibleNumberPattern>
-        <exampleNumber>22123</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            60|
-            7[25-7]\d
-          )\d{4}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,7}</possibleNumberPattern>
-        <exampleNumber>601234</exampleNumber>
-      </mobile>
-      <tollFree>
-        <!-- The 800 number series is new, and is used by companies such as the ANZ bank in Samoa to
-             provide 24 hour eMerchant support. It is marked as "Customized Services" in the plan
-             for now, so may be also used for other purposes than toll free, but until we have
-             further evidence of these we will keep it as toll free. -->
-        <nationalNumberPattern>800\d{3}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6}</possibleNumberPattern>
-        <exampleNumber>800123</exampleNumber>
-      </tollFree>
-      <!-- Current research suggests other types of numbers are not used in Samoa. -->
-    </territory>
-
-    <!-- Yemen -->
-    <!-- http://www.itu.int/oth/T02020000E7/en -->
-    <territory id="YE" countryCode="967" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([1-7])(\d{3})(\d{3,4})">
-          <leadingDigits>
-            [1-6]|
-            7[24-68]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(7[137]\d)(\d{3})(\d{3})">
-          <leadingDigits>7[137]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-7]\d{6,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1(?:
-              7\d|
-              [2-68]
-            )|
-            2[2-68]|
-            3[2358]|
-            4[2-58]|
-            5[2-6]|
-            6[3-58]|
-            7[24-68]
-          )\d{5}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
-        <exampleNumber>1234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[137]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>712345678</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-    </territory>
-
-    <!-- Mayotte -->
-    <!-- Some information at http://en.wikipedia.org/wiki/Telephone_numbers_in_France - most from
-         collection of internet data.  http://www.comores-online.com/mwezinet/internet/262.htm
-         verifies the fixed-line prefixes, but the mobile prefixes listed here seem out of date.
-         -->
-    <territory id="YT" countryCode="262" internationalPrefix="00"
-      nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
-      leadingDigits="269|63">
-      <!-- Formatting as per La Réunion. -->
-      <generalDesc>
-        <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2696[0-4]\d{4}</nationalNumberPattern>
-        <exampleNumber>269601234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>639\d{6}</nationalNumberPattern>
-        <exampleNumber>639123456</exampleNumber>
-      </mobile>
-      <!-- Same as in France. -->
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- South Africa -->
-    <!-- http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000C10001PDFE.pdf -->
-    <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_South_Africa -->
-    <territory id="ZA" countryCode="27" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(860)(\d{3})(\d{3})">
-          <leadingDigits>860</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="([1-578]\d)(\d{3})(\d{4})">
-          <leadingDigits>
-            [1-57]|
-            8(?:
-              [0-57-9]|
-              6[1-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>
-          (?:
-            1[0-8]|
-            2[1-478]|
-            3[1-69]|
-            4\d|
-            5[1346-8]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
-        <exampleNumber>101234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>
-          (?:
-            7[1-4689]|
-            8[1-5789]
-          )\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>711234567</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>86[1-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>861234567</exampleNumber>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>860\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>860123456</exampleNumber>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>87\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>871234567</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Zambia -->
-    <!-- http://www.itu.int/oth/T02020000E8/en -->
-    <territory id="ZM" countryCode="260" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([29]\d)(\d{7})">
-          <leadingDigits>[29]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(800)(\d{3})(\d{3})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[289]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>21[1-8]\d{6}</nationalNumberPattern>
-        <exampleNumber>211234567</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Adding extra prefixes 6[457-9] and 7[4-6] since SMS messages have been successfully
-             delivered to these numbers, and numbers like this can be found on the Internet. -->
-        <nationalNumberPattern>
-          9(?:
-            55|
-            6[4-9]|
-            7[4-9]
-          )\d{6}
-        </nationalNumberPattern>
-        <exampleNumber>955123456</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-        <exampleNumber>800123456</exampleNumber>
-      </tollFree>
-    </territory>
-
-    <!-- Zimbabwe -->
-    <!-- http://www.itu.int/oth/T02020000E9/en -->
-    <territory id="ZW" countryCode="263" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <!-- One-digit area codes -->
-        <numberFormat pattern="([49])(\d{3})(\d{2,5})">
-          <leadingDigits>
-            4|
-            9[2-9]
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Mobile numbers -->
-        <numberFormat pattern="([179]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>
-            [19]1|
-            7
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Two-digit area codes -->
-        <numberFormat pattern="([1-356]\d)(\d{3,5})">
-          <leadingDigits>
-            1[3-9]|
-            2(?:
-              [1-469]|
-              0[0-35-9]|
-              [45][0-79]
-            )|
-            3(?:
-              0[0-79]|
-              1[0-689]|
-              [24-69]|
-              3[0-69]
-            )|
-            5(?:
-              [02-46-9]|
-              [15][0-69]
-            )|
-            6(?:
-              [0145]|
-              [29][0-79]|
-              3[0-689]|
-              [68][0-69]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([1-356]\d)(\d{3})(\d{3})">
-          <leadingDigits>
-            1[3-9]|
-            2(?:
-              [1-469]|
-              0[0-35-9]|
-              [45][0-79]
-            )|
-            3(?:
-              0[0-79]|
-              1[0-689]|
-              [24-69]|
-              3[0-69]
-            )|
-            5(?:
-              [02-46-9]|
-              [15][0-69]
-            )|
-            6(?:
-              [0145]|
-              [29][0-79]|
-              3[0-689]|
-              [68][0-69]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Three-digit area codes -->
-        <numberFormat pattern="([2356]\d{2})(\d{3,5})">
-          <leadingDigits>
-            2(?:
-              [278]|
-              0[45]|
-              48
-            )|
-            3(?:
-              08|
-              17|
-              3[78]|
-              [78]
-            )|
-            5[15][78]|
-            6(?:
-              [29]8|
-              37|
-              [68][78]
-            )
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([2356]\d{2})(\d{3})(\d{3})">
-          <leadingDigits>
-            2(?:
-              [278]|
-              0[45]|
-              48
-            )|
-            3(?:
-              08|
-              17|
-              3[78]|
-              [78]
-            )|
-            5[15][78]|
-            6(?:
-              [29]8|
-              37|
-              [68][78]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- Four-digit area codes -->
-        <numberFormat pattern="([25]\d{3})(\d{3,5})">
-          <leadingDigits>
-            (?:
-              25|
-              54
-            )8
-          </leadingDigits>
-          <leadingDigits>
-            258[23]|
-            5483
-          </leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([25]\d{3})(\d{3})(\d{3})">
-          <leadingDigits>
-            (?:
-              25|
-              54
-            )8
-          </leadingDigits>
-          <leadingDigits>
-            258[23]|
-            5483
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <!-- VOIP numbers -->
-        <numberFormat pattern="(8\d{3})(\d{6})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <!-- A complicated nationalNumberPattern is necessary here, since the numbers are extremely
-             variable in length and the possible prefixes clash with the country code. -->
-        <nationalNumberPattern>
-          2(?:
-            [012457-9]\d{3,8}|
-            6\d{3,6}
-          )|
-          [13-79]\d{4,8}|
-          86\d{8}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{3,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- Numbering is grouped by subscriber-number length. -->
-        <nationalNumberPattern>
-          (?:
-            1[3-9]|
-            2(?:
-              0[45]|
-              [16]|
-              2[28]|
-              [49]8?|
-              58[23]|
-              7[246]|
-              8[1346-9]
-            )|
-            3(?:
-              08?|
-              17?|
-              3[78]|
-              [2456]|
-              7[1569]|
-              8[379]
-            )|
-            5(?:
-              [07-9]|
-              1[78]|
-              483|
-              5(?:
-                7?|
-                8
-              )
-            )|
-            6(?:
-              0|
-              28|
-              37?|
-              [45][68][78]|
-              98?
-            )|
-            848
-          )\d{3,6}|
-          (?:
-            2(?:
-              27|
-              5|
-              7[135789]|
-              8[25]
-            )|
-            3[39]|
-            5[1-46]|
-            6[126-8]
-          )\d{4,6}|
-          2(?:
-            0|
-            70
-          )\d{5,6}|
-          (?:
-            4\d|
-            9[2-8]
-          )\d{4,7}
-        </nationalNumberPattern>
-        <exampleNumber>1312345</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[137]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>711234567</exampleNumber>
-      </mobile>
-      <!-- No tollFree or premiumRate information can be found. -->
-      <voip>
-        <nationalNumberPattern>
-          86(?:
-            1[12]|
-            22|
-            30|
-            44|
-            8[367]|
-            99
-          )\d{6}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>8686123456</exampleNumber>
-      </voip>
-    </territory>
-  </territories>
-</phoneNumberMetadata>
diff --git a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml b/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml
deleted file mode 100644
index c01acf7..0000000
--- a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml
+++ /dev/null
@@ -1,754 +0,0 @@
-<!-- Copyright (C) 2009 Google Inc.
-
-     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
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
-
-     @author: Shaopeng Jia
-
-     MetaData on Phone Number Plan and formatting rules. This file is used
-     solely for the purpose of unittesting, so data in this file is not
-     necessarily consistent with that of
-     ../src/PhoneNumberMetaData.xml
--->
-
-<phoneNumberMetadata>
-  <territories>
-    <!-- Andorra -->
-    <territory id="AD" countryCode="376" internationalPrefix="00">
-    </territory>
-
-    <!-- Angola -->
-    <!-- This country has been coopted to test the case of a national prefix
-    with a non-numeric symbol in it. -->
-    <territory id="AO" countryCode="244" internationalPrefix="00" nationalPrefix="0~0">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[29]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2\d(?:[26-9]\d|\d[26-9])\d{5}</nationalNumberPattern>
-        <exampleNumber>222123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <!-- Expanded the 92 prefix possibilities to matchnumbers found online. -->
-        <nationalNumberPattern>9[1-3]\d{7}</nationalNumberPattern>
-        <exampleNumber>923123456</exampleNumber>
-      </mobile>
-    </territory>
-
-    <!-- Argentina -->
-    <territory id="AR" countryCode="54" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
-               nationalPrefixForParsing="0(?:(11|343|3715)15)?"
-               nationalPrefixTransformRule="9$1">
-      <!-- Note in nationalPrefixForParsing, the areacode (such as 11, 343, etc.), when present in
-           front of carrier selection code 15, is captured to replace $1 in
-           nationalPrefixTransformRule -->
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>11</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>1[02-9]|[23]</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="9(11)(\d{4})(\d{4})">
-          <leadingDigits>911</leadingDigits>
-          <format>$1 15 $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="9(\d{4})(\d{2})(\d{4})"
-          carrierCodeFormattingRule="$NP$FG $CC">
-          <leadingDigits>9(?:1[02-9]|[23])</leadingDigits>
-          <format>$1 $2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[68]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>11</leadingDigits>
-          <format>$1 $2-$3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>1[02-9]|[23]</leadingDigits>
-          <format>$1 $2-$3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(9)(11)(\d{4})(\d{4})">
-          <leadingDigits>911</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(9)(\d{4})(\d{2})(\d{4})">
-          <leadingDigits>9(?:1[02-9]|[23])</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[68]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-3689]\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-         <nationalNumberPattern>[1-3]\d{9}</nationalNumberPattern>
-         <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>9\d{10}|[1-3]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>6(0\d|10)\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Australia -->
-    <territory id="AU" countryCode="61" internationalPrefix="001[12]"
-               nationalPrefix="0" preferredInternationalPrefix="0011"
-               nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat nationalPrefixFormattingRule="$FG"
-          pattern="(\d{4})(\d{3})(\d{3})" >
-          <leadingDigits>1</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{1})(\d{4})(\d{4})">
-          <leadingDigits>[2-478]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc >
-        <nationalNumberPattern>[1-578]\d{4,14}</nationalNumberPattern>
-        <possibleNumberPattern>\d{5,15}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2378]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>4\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>190[0126]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Bahamas -->
-    <territory id="BS" countryCode="1" internationalPrefix="011"
-               nationalPrefix="1">
-      <generalDesc>
-        <nationalNumberPattern>(242|8(00|66|77|88)|900)\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\d{4}</nationalNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>242(357|359|457|557)\d{4}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>8(00|66|77|88)\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Germany -->
-    <territory id="DE" countryCode="49" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3,8})">
-          <leadingDigits>2|3[3-9]|906|[4-9][1-9]1</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{4,9})">
-          <leadingDigits>[34]0|[68]9</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <!-- Extra fictional pattern for shorter numbers with the same prefixes as the following
-             pattern, to illustrate the problem the AYTF has with real patterns that share this
-             property. -->
-        <numberFormat pattern="([4-9]\d)(\d{2})">
-          <leadingDigits>[4-9]</leadingDigits>
-          <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="([4-9]\d{3})(\d{2,7})">
-          <leadingDigits>[4-9]</leadingDigits>
-          <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{1})(\d{6})">
-          <leadingDigits>800</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,4})(\d{4})">
-          <leadingDigits>900</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{4,14}</nationalNumberPattern>
-        <possibleNumberPattern>\d{2,14}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>(?:[24-6]\d{2}|3[03-9]\d|[789](?:[1-9]\d|0[2-9]))\d{3,8}</nationalNumberPattern>
-        <exampleNumber>30123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1(5\d{9}|7\d{8}|6[02]\d{8}|63\d{7})</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900([135]\d{6}|9\d{7})</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- United Kingdom -->
-    <territory id="GB" countryCode="44" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>[1-59]|[78]0</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})(\d{3})(\d{3})">
-          <leadingDigits>6</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{3})(\d{3})">
-          <leadingDigits>7[1-57-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>8[47]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>\d{10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[1-6]\d{9}</nationalNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>7[1-57-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>9[018]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-      <sharedCost>
-        <nationalNumberPattern>8(?:4[3-5]|7[0-2])\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </sharedCost>
-      <voip>
-        <nationalNumberPattern>56\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </voip>
-      <personalNumber>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </personalNumber>
-    </territory>
-
-    <!-- Italy -->
-    <!-- http://en.wikipedia.org/wiki/%2B39 -->
-    <territory id="IT" countryCode="39" internationalPrefix="00">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>0[26]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{4})(\d{3,4})">
-          <leadingDigits>0[13-57-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
-          <leadingDigits>3</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3,6})">
-          <leadingDigits>8</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[0389]\d{5,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>0\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>3\d{8,9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80(?:0\d{6}|3\d{3})</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>89(?:2\d{3}|9\d{6})</nationalNumberPattern>
-        <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Japan -->
-    <!-- The metadata here is added to unit test AsYouTypeFormatter for JP, which requires switching
-         patterns as digits beyond the third one are entered. As a result, only a few fake
-         formatting rules are added. -->
-    <territory id="JP" countryCode="81" internationalPrefix="010"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>[57-9]0</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>222|333</leadingDigits>
-          <leadingDigits>(?:222|333)1</leadingDigits>
-          <leadingDigits>(?:222|333)11</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d)(\d{4})">
-          <leadingDigits>222|333</leadingDigits>
-          <leadingDigits>2221|3332</leadingDigits>
-          <leadingDigits>22212|3332</leadingDigits>
-          <leadingDigits>222120|3332</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
-          <leadingDigits>[23]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-    </territory>
-
-    <!-- Korea (Rep. of) -->
-    <!-- http://www.itu.int/oth/T0202000072/en -->
-    <!-- http://en.wikipedia.org/wiki/%2B82 -->
-    <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2349 -->
-    <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2240 -->
-    <!-- http://www.telecentro.co.kr/sub/index.php?job=detail&ebcf_id=faq&page=1&mid=0503&eb_seq=36 -->
-    <!-- Exceptions :
-        internationalPrefix
-            0031, 0033, 0071, 0073 - Special services of KT and DACOM, ignorable
-        nationalPrefix
-            1[4-6]XX-YYYY - Country-wide common number services, display as it is without hyphens -->
-    <territory id="KR" countryCode="82" internationalPrefix="00(?:[124-68]|[37]\d{2})"
-               nationalPrefix="0" nationalPrefixForParsing="0(8[1-46-8]|85\d{2})?"
-               nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>1(?:0|1[19]|[69]9|5[458])|[57]0</leadingDigits>
-          <leadingDigits>1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-9][1-9][2-9]</leadingDigits>
-          <leadingDigits>1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-9][1-9][2-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d)(\d{4})">
-          <leadingDigits>131</leadingDigits>
-          <leadingDigits>1312</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
-          <leadingDigits>131</leadingDigits>
-          <leadingDigits>131[13-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>13[2-9]</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
-          <leadingDigits>30</leadingDigits>
-          <format>$1-$2-$3-$4</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})(\d{4})">
-          <leadingDigits>2(?:[26]|3[0-467])</leadingDigits>
-          <leadingDigits>2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>2(?:3[0-35-9]|[457-9])</leadingDigits>
-          <leadingDigits>2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])</leadingDigits>
-          <format>$1-$2-$3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})">
-          <leadingDigits>21[0-46-9]</leadingDigits>
-          <leadingDigits>21(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{4})">
-          <leadingDigits>21[36]</leadingDigits>
-          <leadingDigits>21(?:3[035-9]|6[03-578])</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{3})">
-          <leadingDigits>[3-9][1-9]1</leadingDigits>
-          <leadingDigits>[3-9][1-9]1(?:[0-46-9])</leadingDigits>
-          <leadingDigits>[3-9][1-9]1(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{4})">
-          <leadingDigits>[3-9][1-9]1</leadingDigits>
-          <leadingDigits>[3-9][1-9]1[36]</leadingDigits>
-          <leadingDigits>[3-9][1-9]1(?:3[035-9]|6[03-578])</leadingDigits>
-          <format>$1-$2</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-79]\d{3,9}|8\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\d{2,3}|[2-9]\d{6,7})</nationalNumberPattern>
-        <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1[0-25-9]\d{7,8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>1023456789</exampleNumber>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>60[2-9]\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>602345678</exampleNumber>
-      </premiumRate>
-      <personalNumber>
-        <nationalNumberPattern>50\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>5012345678</exampleNumber>
-      </personalNumber>
-      <voip>
-        <nationalNumberPattern>70\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-        <exampleNumber>7012345678</exampleNumber>
-      </voip>
-    </territory>
-
-    <!-- Mexico -->
-    <territory id="MX" countryCode="52" internationalPrefix="00"
-               nationalPrefix="01" nationalPrefixForParsing="01|04[45](\d{10})"
-               nationalPrefixTransformRule="1$1">
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[89]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>33|55|81</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="1(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>1(?:33|55|81)</leadingDigits>
-          <format>045 $1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="1(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])</leadingDigits>
-          <format>045 $1 $2 $3</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[89]00</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>33|55|81</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(1)(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>1(?:33|55|81)</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-        <intlNumberFormat pattern="(1)(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])</leadingDigits>
-          <format>$1 $2 $3 $4</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[2-9]\d{9}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>1\d{10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- New Zealand -->
-    <territory id="NZ" countryCode="64" internationalPrefix="00"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d)(\d{3})(\d{4})">
-          <leadingDigits>24|[34679]</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d)(\d{3})(\d{3,5})">
-          <leadingDigits>2[179]</leadingDigits>
-          <format>$1-$2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
-          <leadingDigits>[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>
-          [289]\d{7,9}|
-          [3-7]\d{7}
-        </nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>24099\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>2(?:[027]\d{7}|9\d{6,7}|1(?:0\d{5,7}|[12]\d{5,6}|[3-9]\d{5})|4[1-9]\d{6}|8\d{7,8})</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Poland -->
-    <!-- http://en.wikipedia.org/wiki/%2B48 -->
-    <territory id="PL" countryCode="48" internationalPrefix="0~0"
-               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <mobile>
-        <nationalNumberPattern>(?:5[01]|6[069]|7[289]|88)\d{7}</nationalNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>800\d{6}</nationalNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>70\d{7}</nationalNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Réunion (French Departments and Territories in the Indian Ocean) -->
-    <!-- Note this shares the same country code as La Mayotte and French
-    Southern Territories, and the formatting patterns here are used by all of
-    them. This is present to test leadingDigits. -->
-    <territory id="RE" countryCode="262" leadingDigits="262|6(?:9[23]|47)|8"
-               internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <availableFormats>
-        <numberFormat pattern="([268]\d{2})(\d{2})(\d{2})(\d{2})">
-          <format>$1 $2 $3 $4</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <!-- 0876 numbers are mentioned in the plan, but none in use can be
-        found. -->
-        <nationalNumberPattern>262\d{6}</nationalNumberPattern>
-        <exampleNumber>262161234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>6(?:9[23]|47)\d{6}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-        <exampleNumber>692123456</exampleNumber>
-      </mobile>
-      <!-- 08* Numbers in Réunion are the same as those valid in France. -->
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>8(?:1[01]|2[0156]|84|9[0-37-9])\d{6}</nationalNumberPattern>
-        <exampleNumber>810123456</exampleNumber>
-      </premiumRate>
-    </territory>
-
-    <!-- Singapore -->
-    <!-- http://www.ida.gov.sg/policies%20and%20regulation/20060508120124.aspx -->
-    <territory id="SG" countryCode="65" internationalPrefix="0[0-3][0-9]">
-      <availableFormats>
-        <numberFormat pattern="(\d{4})(\d{4})">
-          <leadingDigits>[369]|8[1-9]</leadingDigits>
-          <format>$1 $2</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{4})(\d{3})(\d{4})">
-          <leadingDigits>1[89]</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <leadingDigits>800</leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13689]\d{7,10}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8,11}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>[36]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>[89]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
-      </mobile>
-      <tollFree>
-        <nationalNumberPattern>1?800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>1900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{11}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- United States -->
-    <!-- http://www.nanpa.com/reports/reports_npa.html -->
-    <!-- For testing purposes, numbers starting with 24 are not considered US
-    numbers.-->
-    <territory id="US" countryCode="1" internationalPrefix="011"
-               preferredExtnPrefix=" extn. " nationalPrefix="1"
-               mainCountryForCode="true" >
-      <availableFormats>
-        <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <format>$1 $2 $3</format>
-        </numberFormat>
-        <numberFormat pattern="(\d{3})(\d{4})">
-          <format>$1 $2</format>
-        </numberFormat>
-        <intlNumberFormat pattern="(\d{3})(\d{3})(\d{4})">
-          <format>$1 $2 $3</format>
-        </intlNumberFormat>
-      </availableFormats>
-      <generalDesc>
-        <nationalNumberPattern>[13-9]\d{9}|2[0-35-9]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
-        <exampleNumber>1234567890</exampleNumber>
-      </generalDesc>
-      <noInternationalDialling>
-        <!-- This range is added for testing purposes only. -->
-        <nationalNumberPattern>800\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </noInternationalDialling>
-      <tollFree>
-        <nationalNumberPattern>8(?:00|66|77|88)\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </tollFree>
-      <premiumRate>
-        <nationalNumberPattern>900\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{10}</possibleNumberPattern>
-      </premiumRate>
-    </territory>
-
-    <!-- Mayotte -->
-    <territory id="YT" countryCode="262" leadingDigits="269|639"
-               internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
-      <!-- Formatting as per La Réunion. -->
-      <generalDesc>
-        <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
-        <possibleNumberPattern>\d{9}</possibleNumberPattern>
-      </generalDesc>
-      <fixedLine>
-        <nationalNumberPattern>2696[0-4]\d{4}</nationalNumberPattern>
-        <exampleNumber>269601234</exampleNumber>
-      </fixedLine>
-      <mobile>
-        <nationalNumberPattern>639\d{6}</nationalNumberPattern>
-        <exampleNumber>639123456</exampleNumber>
-      </mobile>
-      <!-- Same as in France. -->
-      <tollFree>
-        <nationalNumberPattern>80\d{7}</nationalNumberPattern>
-        <exampleNumber>801234567</exampleNumber>
-      </tollFree>
-    </territory>
-  </territories>
-</phoneNumberMetadata>
diff --git a/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java b/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java
index 11b8ba0..806ecc9 100644
--- a/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java
+++ b/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java
@@ -28,28 +28,31 @@
 /**
  * A formatter which formats phone numbers as they are entered.
  *
- * An AsYouTypeFormatter could be created by invoking the getAsYouTypeFormatter method of the
- * PhoneNumberUtil. After that digits could be added by invoking the inputDigit method on the
- * formatter instance, and the partially formatted phone number will be returned each time a digit
- * is added. The clear method could be invoked before a new number needs to be formatted.
+ * <p>An AsYouTypeFormatter can be created by invoking
+ * {@link PhoneNumberUtil#getAsYouTypeFormatter}. After that, digits can be added by invoking
+ * {@link #inputDigit} on the formatter instance, and the partially formatted phone number will be
+ * returned each time a digit is added. {@link #clear} can be invoked before formatting a new
+ * number.
  *
- * See testAsYouTypeFormatterUS(), testAsYouTestFormatterGB() and testAsYouTypeFormatterDE() in
- * PhoneNumberUtilTest.java for more details on how the formatter is to be used.
+ * <p>See the unittests for more details on how the formatter is to be used.
  *
  * @author Shaopeng Jia
  */
 public class AsYouTypeFormatter {
   private String currentOutput = "";
-  private StringBuffer formattingTemplate = new StringBuffer();
+  private StringBuilder formattingTemplate = new StringBuilder();
   // The pattern from numberFormat that is currently used to create formattingTemplate.
   private String currentFormattingPattern = "";
-  private StringBuffer accruedInput = new StringBuffer();
-  private StringBuffer accruedInputWithoutFormatting = new StringBuffer();
+  private StringBuilder accruedInput = new StringBuilder();
+  private StringBuilder accruedInputWithoutFormatting = new StringBuilder();
   private boolean ableToFormat = true;
   private boolean isInternationalFormatting = false;
-  private boolean isExpectingCountryCode = false;
+  private boolean isExpectingCountryCallingCode = false;
   private final PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
   private String defaultCountry;
+
+  private static final PhoneMetadata EMPTY_METADATA =
+      new PhoneMetadata().setInternationalPrefix("NA");
   private PhoneMetadata defaultMetaData;
   private PhoneMetadata currentMetaData;
 
@@ -63,6 +66,15 @@
   // the phone number can be as long as 15 digits.
   private static final Pattern STANDALONE_DIGIT_PATTERN = Pattern.compile("\\d(?=[^,}][^,}])");
 
+  // A pattern that is used to determine if a numberFormat under availableFormats is eligible to be
+  // used by the AYTF. It is eligible when the format element under numberFormat contains groups of
+  // the dollar sign followed by a single digit, separated by valid phone number punctuation. This
+  // prevents invalid punctuation (such as the star sign in Israeli star numbers) getting into the
+  // output of the AYTF.
+  private static final Pattern ELIGIBLE_FORMAT_PATTERN =
+      Pattern.compile("[" + PhoneNumberUtil.VALID_PUNCTUATION + "]*" +
+          "(\\$\\d" + "[" + PhoneNumberUtil.VALID_PUNCTUATION + "]*)+");
+
   // This is the minimum length of national number accrued that is required to trigger the
   // formatter. The first element of the leadingDigitsPattern of each numberFormat contains a
   // regular expression that matches up to this number of digits.
@@ -79,10 +91,8 @@
   // The position of a digit upon which inputDigitAndRememberPosition is most recently invoked, as
   // found in accruedInputWithoutFormatting.
   private int positionToRemember = 0;
-  private Pattern nationalPrefixForParsing;
-  private Pattern internationalPrefix;
-  private StringBuffer prefixBeforeNationalNumber = new StringBuffer();
-  private StringBuffer nationalNumber = new StringBuffer();
+  private StringBuilder prefixBeforeNationalNumber = new StringBuilder();
+  private StringBuilder nationalNumber = new StringBuilder();
   private List<NumberFormat> possibleFormats = new ArrayList<NumberFormat>();
 
     // A cache for frequently used country-specific regular expressions.
@@ -96,21 +106,18 @@
    */
   AsYouTypeFormatter(String regionCode) {
     defaultCountry = regionCode;
-    initializeCountrySpecificInfo(defaultCountry);
+    currentMetaData = getMetadataForRegion(defaultCountry);
     defaultMetaData = currentMetaData;
   }
 
-  private void initializeCountrySpecificInfo(String regionCode) {
-    currentMetaData = phoneUtil.getMetadataForRegion(regionCode);
-    if (currentMetaData == null) {
-      // Set to a default instance of the metadata. This allows us to function with an incorrect
-      // region code, even if formatting only works for numbers specified with "+".
-      currentMetaData = new PhoneMetadata().setInternationalPrefix("NA");
+  private PhoneMetadata getMetadataForRegion(String regionCode) {
+    PhoneMetadata metadata = phoneUtil.getMetadataForRegion(regionCode);
+    if (metadata != null) {
+      return metadata;
     }
-    nationalPrefixForParsing =
-        regexCache.getPatternForRegex(currentMetaData.getNationalPrefixForParsing());
-    internationalPrefix =
-        regexCache.getPatternForRegex("\\+|" + currentMetaData.getInternationalPrefix());
+    // Set to a default instance of the metadata. This allows us to function with an incorrect
+    // region code, even if formatting only works for numbers specified with "+".
+    return EMPTY_METADATA;
   }
 
   // Returns true if a new template is created as opposed to reusing the existing template.
@@ -133,20 +140,27 @@
 
   private void getAvailableFormats(String leadingThreeDigits) {
     List<NumberFormat> formatList =
-        (isInternationalFormatting && currentMetaData.getIntlNumberFormatCount() > 0)
-        ? currentMetaData.getIntlNumberFormatList()
-        : currentMetaData.getNumberFormatList();
-    possibleFormats.addAll(formatList);
+        (isInternationalFormatting && currentMetaData.intlNumberFormatSize() > 0)
+        ? currentMetaData.intlNumberFormats()
+        : currentMetaData.numberFormats();
+    for (NumberFormat format : formatList) {
+      if (isFormatEligible(format.getFormat())) {
+        possibleFormats.add(format);
+      }
+    }
     narrowDownPossibleFormats(leadingThreeDigits);
   }
 
+  private boolean isFormatEligible(String format) {
+    return ELIGIBLE_FORMAT_PATTERN.matcher(format).matches();
+  }
+
   private void narrowDownPossibleFormats(String leadingDigits) {
-    int lengthOfLeadingDigits = leadingDigits.length();
-    int indexOfLeadingDigitsPattern = lengthOfLeadingDigits - MIN_LEADING_DIGITS_LENGTH;
+    int indexOfLeadingDigitsPattern = leadingDigits.length() - MIN_LEADING_DIGITS_LENGTH;
     Iterator<NumberFormat> it = possibleFormats.iterator();
     while (it.hasNext()) {
       NumberFormat format = it.next();
-      if (format.getLeadingDigitsPatternCount() > indexOfLeadingDigitsPattern) {
+      if (format.leadingDigitsPatternSize() > indexOfLeadingDigitsPattern) {
         Pattern leadingDigitsPattern =
             regexCache.getPatternForRegex(
                 format.getLeadingDigitsPattern(indexOfLeadingDigitsPattern));
@@ -160,7 +174,6 @@
   }
 
   private boolean createFormattingTemplate(NumberFormat format) {
-    String numberFormat = format.getFormat();
     String numberPattern = format.getPattern();
 
     // The formatter doesn't format numbers when numberPattern contains "|", e.g.
@@ -175,7 +188,7 @@
     // Replace any standalone digit (not the one in d{}) with \d
     numberPattern = STANDALONE_DIGIT_PATTERN.matcher(numberPattern).replaceAll("\\\\d");
     formattingTemplate.setLength(0);
-    String tempTemplate = getFormattingTemplate(numberPattern, numberFormat);
+    String tempTemplate = getFormattingTemplate(numberPattern, format.getFormat());
     if (tempTemplate.length() > nationalNumber.length()) {
       formattingTemplate.append(tempTemplate);
       return true;
@@ -183,7 +196,7 @@
     return false;
   }
 
-  // Gets a formatting template which could be used to efficiently format a partial number where
+  // Gets a formatting template which can be used to efficiently format a partial number where
   // digits are added one by one.
   private String getFormattingTemplate(String numberPattern, String numberFormat) {
     // Creates a phone number consisting only of the digit 9 that matches the
@@ -200,7 +213,7 @@
   }
 
   /**
-   * Clears the internal state of the formatter, so it could be reused.
+   * Clears the internal state of the formatter, so it can be reused.
    */
   public void clear() {
     currentOutput = "";
@@ -215,10 +228,10 @@
     positionToRemember = 0;
     originalPosition = 0;
     isInternationalFormatting = false;
-    isExpectingCountryCode = false;
+    isExpectingCountryCallingCode = false;
     possibleFormats.clear();
     if (!currentMetaData.equals(defaultMetaData)) {
-      initializeCountrySpecificInfo(defaultCountry);
+      currentMetaData = getMetadataForRegion(defaultCountry);
     }
   }
 
@@ -226,8 +239,9 @@
    * Formats a phone number on-the-fly as each digit is entered.
    *
    * @param nextChar  the most recently entered digit of a phone number. Formatting characters are
-   *     allowed, but they are removed from the result. Full width digits and Arabic-indic digits
-   *     are allowed, and will be shown as they are.
+   *     allowed, but as soon as they are encountered this method formats the number as entered and
+   *     not "as you type" anymore. Full width digits and Arabic-indic digits are allowed, and will
+   *     be shown as they are.
    * @return  the partially formatted phone number.
    */
   public String inputDigit(char nextChar) {
@@ -236,9 +250,10 @@
   }
 
   /**
-   * Same as inputDigit, but remembers the position where nextChar is inserted, so that it could be
-   * retrieved later by using getRememberedPosition(). The remembered position will be automatically
-   * adjusted if additional formatting characters are later inserted/removed in front of nextChar.
+   * Same as {@link #inputDigit}, but remembers the position where {@code nextChar} is inserted, so
+   * that it can be retrieved later by using {@link #getRememberedPosition}. The remembered
+   * position will be automatically adjusted if additional formatting characters are later
+   * inserted/removed in front of {@code nextChar}.
    */
   public String inputDigitAndRememberPosition(char nextChar) {
     currentOutput = inputDigitWithOptionToRememberPosition(nextChar, true);
@@ -265,29 +280,29 @@
     // We start to attempt to format only when at least MIN_LEADING_DIGITS_LENGTH digits (the plus
     // sign is counted as a digit as well for this purpose) have been entered.
     switch (accruedInputWithoutFormatting.length()) {
-      case 0: // this is the case where the first few inputs are neither digits nor the plus sign.
+      case 0:
       case 1:
       case 2:
         return accruedInput.toString();
       case 3:
         if (attemptToExtractIdd()) {
-          isExpectingCountryCode = true;
+          isExpectingCountryCallingCode = true;
         } else {  // No IDD or plus sign is found, must be entering in national format.
           removeNationalPrefixFromNationalNumber();
           return attemptToChooseFormattingPattern();
         }
       case 4:
       case 5:
-        if (isExpectingCountryCode) {
-          if (attemptToExtractCountryCode()) {
-            isExpectingCountryCode = false;
+        if (isExpectingCountryCallingCode) {
+          if (attemptToExtractCountryCallingCode()) {
+            isExpectingCountryCallingCode = false;
           }
           return prefixBeforeNationalNumber + nationalNumber.toString();
         }
-      // We make a last attempt to extract a country code at the 6th digit because the maximum
-      // length of IDD and country code are both 3.
+      // We make a last attempt to extract a country calling code at the 6th digit because the
+      // maximum length of IDD and country calling code are both 3.
       case 6:
-        if (isExpectingCountryCode && !attemptToExtractCountryCode()) {
+        if (isExpectingCountryCallingCode && !attemptToExtractCountryCallingCode()) {
           ableToFormat = false;
           return accruedInput.toString();
         }
@@ -326,22 +341,19 @@
 
   /**
    * Returns the current position in the partially formatted phone number of the character which was
-   * previously passed in as the parameter of inputDigitAndRememberPosition().
+   * previously passed in as the parameter of {@link #inputDigitAndRememberPosition}.
    */
   public int getRememberedPosition() {
     if (!ableToFormat) {
       return originalPosition;
     }
     int accruedInputIndex = 0, currentOutputIndex = 0;
-    int currentOutputLength = currentOutput.length();
-    while (accruedInputIndex < positionToRemember && currentOutputIndex < currentOutputLength) {
+    while (accruedInputIndex < positionToRemember && currentOutputIndex < currentOutput.length()) {
       if (accruedInputWithoutFormatting.charAt(accruedInputIndex) ==
           currentOutput.charAt(currentOutputIndex)) {
         accruedInputIndex++;
-        currentOutputIndex++;
-      } else {
-        currentOutputIndex++;
       }
+      currentOutputIndex++;
     }
     return currentOutputIndex;
   }
@@ -384,6 +396,8 @@
       prefixBeforeNationalNumber.append("1 ");
       isInternationalFormatting = true;
     } else if (currentMetaData.hasNationalPrefix()) {
+      Pattern nationalPrefixForParsing =
+        regexCache.getPatternForRegex(currentMetaData.getNationalPrefixForParsing());
       Matcher m = nationalPrefixForParsing.matcher(nationalNumber);
       if (m.lookingAt()) {
         // When the national prefix is detected, we use international formatting rules instead of
@@ -405,14 +419,17 @@
    *     defaultCountry.
    */
   private boolean attemptToExtractIdd() {
+    Pattern internationalPrefix =
+        regexCache.getPatternForRegex("\\" + PhoneNumberUtil.PLUS_SIGN + "|" +
+            currentMetaData.getInternationalPrefix());
     Matcher iddMatcher = internationalPrefix.matcher(accruedInputWithoutFormatting);
     if (iddMatcher.lookingAt()) {
       isInternationalFormatting = true;
-      int startOfCountryCode = iddMatcher.end();
+      int startOfCountryCallingCode = iddMatcher.end();
       nationalNumber.setLength(0);
-      nationalNumber.append(accruedInputWithoutFormatting.substring(startOfCountryCode));
+      nationalNumber.append(accruedInputWithoutFormatting.substring(startOfCountryCallingCode));
       prefixBeforeNationalNumber.append(
-          accruedInputWithoutFormatting.substring(0, startOfCountryCode));
+          accruedInputWithoutFormatting.substring(0, startOfCountryCallingCode));
       if (accruedInputWithoutFormatting.charAt(0) != PhoneNumberUtil.PLUS_SIGN) {
         prefixBeforeNationalNumber.append(" ");
       }
@@ -422,41 +439,41 @@
   }
 
   /**
-   * Extracts country code from the beginning of nationalNumber to prefixBeforeNationalNumber when
-   * they are available, and places the remaining input into nationalNumber.
+   * Extracts the country calling code from the beginning of nationalNumber to
+   * prefixBeforeNationalNumber when they are available, and places the remaining input into
+   * nationalNumber.
    *
-   * @return  true when a valid country code can be found.
+   * @return  true when a valid country calling code can be found.
    */
-  private boolean attemptToExtractCountryCode() {
+  private boolean attemptToExtractCountryCallingCode() {
     if (nationalNumber.length() == 0) {
       return false;
     }
-    StringBuffer numberWithoutCountryCode = new StringBuffer();
-    int countryCode = phoneUtil.extractCountryCode(nationalNumber, numberWithoutCountryCode);
+    StringBuilder numberWithoutCountryCallingCode = new StringBuilder();
+    int countryCode = phoneUtil.extractCountryCode(nationalNumber, numberWithoutCountryCallingCode);
     if (countryCode == 0) {
       return false;
-    } else {
-      nationalNumber.setLength(0);
-      nationalNumber.append(numberWithoutCountryCode);
-      String newRegionCode = phoneUtil.getRegionCodeForCountryCode(countryCode);
-      if (!newRegionCode.equals(defaultCountry)) {
-        initializeCountrySpecificInfo(newRegionCode);
-      }
-      String countryCodeString = Integer.toString(countryCode);
-      prefixBeforeNationalNumber.append(countryCodeString).append(" ");
     }
+    nationalNumber.setLength(0);
+    nationalNumber.append(numberWithoutCountryCallingCode);
+    String newRegionCode = phoneUtil.getRegionCodeForCountryCode(countryCode);
+    if (newRegionCode != defaultCountry) {
+      currentMetaData = getMetadataForRegion(newRegionCode);
+    }
+    String countryCodeString = Integer.toString(countryCode);
+    prefixBeforeNationalNumber.append(countryCodeString).append(" ");
     return true;
   }
 
   // Accrues digits and the plus sign to accruedInputWithoutFormatting for later use. If nextChar
   // contains a digit in non-ASCII format (e.g. the full-width version of digits), it is first
   // normalized to the ASCII version. The return value is nextChar itself, or its normalized
-  // version, if nextChar is a digit in non-ASCII format.
+  // version, if nextChar is a digit in non-ASCII format. This method assumes its input is either a
+  // digit or the plus sign.
   private char normalizeAndAccrueDigitsAndPlusSign(char nextChar, boolean rememberPosition) {
     if (nextChar == PhoneNumberUtil.PLUS_SIGN) {
       accruedInputWithoutFormatting.append(nextChar);
-    }
-    if (PhoneNumberUtil.DIGIT_MAPPINGS.containsKey(nextChar)) {
+    } else {
       nextChar = PhoneNumberUtil.DIGIT_MAPPINGS.get(nextChar);
       accruedInputWithoutFormatting.append(nextChar);
       nationalNumber.append(nextChar);
diff --git a/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java b/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
index 8d4b1f9..e67217c 100644
--- a/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
+++ b/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
@@ -132,8 +132,9 @@
     listWithRegionCode.add("SE");
     countryCodeToRegionCodeMap.put(46, listWithRegionCode);
 
-    listWithRegionCode = new ArrayList<String>(1);
+    listWithRegionCode = new ArrayList<String>(2);
     listWithRegionCode.add("NO");
+    listWithRegionCode.add("SJ");
     countryCodeToRegionCodeMap.put(47, listWithRegionCode);
 
     listWithRegionCode = new ArrayList<String>(1);
@@ -180,8 +181,10 @@
     listWithRegionCode.add("MY");
     countryCodeToRegionCodeMap.put(60, listWithRegionCode);
 
-    listWithRegionCode = new ArrayList<String>(1);
+    listWithRegionCode = new ArrayList<String>(3);
     listWithRegionCode.add("AU");
+    listWithRegionCode.add("CC");
+    listWithRegionCode.add("CX");
     countryCodeToRegionCodeMap.put(61, listWithRegionCode);
 
     listWithRegionCode = new ArrayList<String>(1);
@@ -514,8 +517,9 @@
     listWithRegionCode.add("CY");
     countryCodeToRegionCodeMap.put(357, listWithRegionCode);
 
-    listWithRegionCode = new ArrayList<String>(1);
+    listWithRegionCode = new ArrayList<String>(2);
     listWithRegionCode.add("FI");
+    listWithRegionCode.add("AX");
     countryCodeToRegionCodeMap.put(358, listWithRegionCode);
 
     listWithRegionCode = new ArrayList<String>(1);
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java
index 1905b5e..68ad3ad 100644
--- a/java/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java
@@ -54,12 +54,6 @@
    */
   private static final Pattern PATTERN;
   /**
-   * A phone number pattern that does not allow whitespace as punctuation. This pattern is only used
-   * in a second attempt to find a phone number occurring in the context of other numbers, such as
-   * when the preceding or following token is a zip code.
-   */
-  private static final Pattern INNER;
-  /**
    * Matches strings that look like publication pages. Example:
    * <pre>Computing Complete Answers to Queries in the Presence of Limited Access Patterns.
    * Chen Li. VLDB J. 12(3): 211-227 (2003).</pre>
@@ -68,9 +62,46 @@
    */
   private static final Pattern PUB_PAGES = Pattern.compile("\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}");
 
+  /**
+   * Matches strings that look like dates using "/" as a separator. Examples: 3/10/2011, 31/10/96 or
+   * 08/31/95.
+   */
+  private static final Pattern SLASH_SEPARATED_DATES =
+      Pattern.compile("(?:(?:[0-3]?\\d/[01]?\\d)|(?:[01]?\\d/[0-3]?\\d))/(?:[12]\\d)?\\d{2}");
+
+  /**
+   * Pattern to check that brackets match. Opening brackets should be closed within a phone number.
+   * This also checks that there is something inside the brackets. Having no brackets at all is also
+   * fine.
+   */
+  private static final Pattern MATCHING_BRACKETS;
+
+  /**
+   * Matches white-space, which may indicate the end of a phone number and the start of something
+   * else (such as a neighbouring zip-code).
+   */
+  private static final Pattern GROUP_SEPARATOR = Pattern.compile("\\p{Z}+");
+
   static {
-    /* Builds the PATTERN and INNER regular expression patterns. The building blocks below
-     * exist to make the patterns more easily understood. */
+    /* Builds the MATCHING_BRACKETS and PATTERN regular expressions. The building blocks below exist
+     * to make the pattern more easily understood. */
+
+    String openingParens = "(\\[\uFF08\uFF3B";
+    String closingParens = ")\\]\uFF09\uFF3D";
+    String nonParens = "[^" + openingParens + closingParens + "]";
+
+    /* Limit on the number of pairs of brackets in a phone number. */
+    String bracketPairLimit = limit(0, 3);
+    /*
+     * An opening bracket at the beginning may not be closed, but subsequent ones should be.  It's
+     * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a
+     * closing bracket first. We limit the sets of brackets in a phone number to four.
+     */
+    MATCHING_BRACKETS = Pattern.compile(
+        "(?:[" + openingParens + "])?" + "(?:" + nonParens + "+" + "[" + closingParens + "])?" +
+        nonParens + "+" +
+        "(?:[" + openingParens + "]" + nonParens + "+[" + closingParens + "])" + bracketPairLimit +
+        nonParens + "*");
 
     /* Limit on the number of leading (plus) characters. */
     String leadLimit = limit(0, 2);
@@ -85,16 +116,12 @@
      * formats use spaces to separate each digit. */
     String blockLimit = limit(0, digitBlockLimit);
 
-    /* Same as {@link PhoneNumberUtil#VALID_PUNCTUATION} but without space characters. */
-    String nonSpacePunctuationChars = removeSpace(PhoneNumberUtil.VALID_PUNCTUATION);
-    /* A punctuation sequence without white space. */
-    String nonSpacePunctuation = "[" + nonSpacePunctuationChars + "]" + punctuationLimit;
     /* A punctuation sequence allowing white space. */
     String punctuation = "[" + PhoneNumberUtil.VALID_PUNCTUATION + "]" + punctuationLimit;
     /* A digits block without punctuation. */
     String digitSequence = "\\p{Nd}" + limit(1, digitBlockLimit);
     /* Punctuation that may be at the start of a phone number - brackets and plus signs. */
-    String leadClass = "[(\\[" + PhoneNumberUtil.PLUS_CHARS + "]";
+    String leadClass = "[" + openingParens + PhoneNumberUtil.PLUS_CHARS + "]";
 
     /* Phone number pattern allowing optional punctuation. */
     PATTERN = Pattern.compile(
@@ -102,12 +129,6 @@
         digitSequence + "(?:" + punctuation + digitSequence + ")" + blockLimit +
         "(?:" + PhoneNumberUtil.KNOWN_EXTN_PATTERNS + ")?",
         PhoneNumberUtil.REGEX_FLAGS);
-
-    /* Phone number pattern with no whitespace allowed. */
-    INNER = Pattern.compile(
-        leadClass + leadLimit +
-        digitSequence + "(?:" + nonSpacePunctuation + digitSequence + ")" + blockLimit,
-        PhoneNumberUtil.REGEX_FLAGS);
   }
 
   /** Returns a regular expression quantifier with an upper and lower limit. */
@@ -118,23 +139,6 @@
     return "{" + lower + "," + upper + "}";
   }
 
-  /**
-   * Returns a copy of {@code characters} with any {@linkplain Character#isSpaceChar space}
-   * characters removed.
-   */
-  private static String removeSpace(String characters) {
-    StringBuilder builder = new StringBuilder(characters.length());
-    int i = 0;
-    while (i < characters.length()) {
-      int codePoint = characters.codePointAt(i);
-      if (!Character.isSpaceChar(codePoint)) {
-        builder.appendCodePoint(codePoint);
-      }
-      i += Character.charCount(codePoint);
-    }
-    return builder.toString();
-  }
-
   /** The potential states of a PhoneNumberMatcher. */
   private enum State {
     NOT_READY, READY, DONE
@@ -268,8 +272,8 @@
    * @return  the match found, null if none can be found
    */
   private PhoneNumberMatch extractMatch(CharSequence candidate, int offset) {
-    // Skip a match that is more likely a publication page reference.
-    if (PUB_PAGES.matcher(candidate).find()) {
+    // Skip a match that is more likely a publication page reference or a date.
+    if (PUB_PAGES.matcher(candidate).find() || SLASH_SEPARATED_DATES.matcher(candidate).find()) {
       return null;
     }
 
@@ -280,28 +284,52 @@
       return match;
     }
 
-    // If that failed, try to find an inner match without white space.
+    // If that failed, try to find an "inner match" - there might be a phone number within this
+    // candidate.
     return extractInnerMatch(rawString, offset);
   }
 
   /**
-   * Attempts to extract a match from {@code candidate} using the {@link #INNER} pattern.
+   * Attempts to extract a match from {@code candidate} if the whole candidate does not qualify as a
+   * match.
    *
    * @param candidate  the candidate text that might contain a phone number
-   * @param offset  the offset of {@code candidate} within {@link #text}
+   * @param offset  the current offset of {@code candidate} within {@link #text}
    * @return  the match found, null if none can be found
    */
   private PhoneNumberMatch extractInnerMatch(String candidate, int offset) {
-    int index = 0;
-    Matcher matcher = INNER.matcher(candidate);
-    while ((maxTries > 0) && matcher.find(index)) {
-      String innerCandidate = candidate.substring(matcher.start(), matcher.end());
-      PhoneNumberMatch match = parseAndVerify(innerCandidate, offset + matcher.start());
+    // Try removing either the first or last "group" in the number and see if this gives a result.
+    // We consider white space to be a possible indications of the start or end of the phone number.
+    Matcher groupMatcher = GROUP_SEPARATOR.matcher(candidate);
+
+    if (groupMatcher.find()) {
+      int groupStartIndex = groupMatcher.end();
+      // Remove the first group.
+      CharSequence withoutFirstGroup = candidate.substring(groupStartIndex);
+      withoutFirstGroup = trimAfterFirstMatch(PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN,
+                                              withoutFirstGroup);
+      PhoneNumberMatch match = parseAndVerify(withoutFirstGroup.toString(),
+                                              offset + groupStartIndex);
       if (match != null) {
         return match;
       }
       maxTries--;
-      index = matcher.end();
+
+      if (maxTries > 0) {
+        int lastGroupStart = groupStartIndex;
+        while (groupMatcher.find()) {
+          // Find the last group.
+          lastGroupStart = groupMatcher.start();
+        }
+        CharSequence withoutLastGroup = candidate.substring(0, lastGroupStart);
+        withoutLastGroup = trimAfterFirstMatch(PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN,
+                                               withoutLastGroup);
+        match = parseAndVerify(withoutLastGroup.toString(), offset);
+        if (match != null) {
+          return match;
+        }
+        maxTries--;
+      }
     }
     return null;
   }
@@ -317,6 +345,11 @@
    */
   private PhoneNumberMatch parseAndVerify(String candidate, int offset) {
     try {
+      // Check the candidate doesn't contain any formatting which would indicate that it really
+      // isn't a phone number.
+      if (!MATCHING_BRACKETS.matcher(candidate).matches()) {
+        return null;
+      }
       PhoneNumber number = util.parse(candidate, preferredRegion);
       if (leniency.verify(number, util)) {
         return new PhoneNumberMatch(offset, candidate, number);
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoder.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoder.java
new file mode 100644
index 0000000..c47afe7
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoder.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2011 Google Inc.
+ *
+ * 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
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.i18n.phonenumbers;
+
+import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
+
+import java.util.Locale;
+
+/**
+ * An offline geocoder which provides geographical information related to a phone number.
+ *
+ * @author Shaopeng Jia
+ */
+public class PhoneNumberOfflineGeocoder {
+  private static PhoneNumberOfflineGeocoder instance = null;
+  private PhoneNumberUtil phoneUtil;
+
+  /**
+   * For testing purposes, we allow the phone number util variable to be injected.
+   */
+  PhoneNumberOfflineGeocoder(PhoneNumberUtil phoneUtil) {
+    this.phoneUtil = phoneUtil;
+  }
+
+  /**
+   * Gets a {@link PhoneNumberOfflineGeocoder} instance to carry out international phone number
+   * geocoding.
+   *
+   * <p> The {@link PhoneNumberOfflineGeocoder} is implemented as a singleton. Therefore, calling
+   * this method multiple times will only result in one instance being created.
+   *
+   * @return  a {@link PhoneNumberOfflineGeocoder} instance
+   */
+  public static synchronized PhoneNumberOfflineGeocoder getInstance() {
+    if (instance == null) {
+      instance = new PhoneNumberOfflineGeocoder(PhoneNumberUtil.getInstance());
+    }
+    return instance;
+  }
+
+  /**
+   * Returns the customary display name in the given language for the given territory the phone
+   * number is from.
+   */
+  private String getCountryNameForNumber(PhoneNumber number, Locale language) {
+    String regionCode = phoneUtil.getRegionCodeForNumber(number);
+    return (regionCode == null || regionCode.equals("ZZ"))
+        ? "" : new Locale("", regionCode).getDisplayCountry(language);
+  }
+
+  /**
+   * Returns a text description in the given language for the given phone number. The
+   * description might consist of the name of the country where the phone number is from and/or the
+   * name of the geographical area the phone number is from.
+   *
+   * @param number  the phone number for which we want to get a text description
+   * @param language  the language in which the description should be written
+   * @return  a text description in the given language for the given phone number
+   */
+  public String getDescriptionForNumber(PhoneNumber number, Locale language) {
+    // TODO: Implement logic to figure out fine-grained geographical information based
+    // on area code here.
+    return getCountryNameForNumber(number, language);
+  }
+}
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
index a0f1857..b6fd79e 100644
--- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
@@ -44,6 +44,9 @@
  * Utility for international phone numbers. Functionality includes formatting, parsing and
  * validation.
  *
+ * <p>If you use this library, and want to be notified about important changes, please sign up to
+ * our <a href="http://groups.google.com/group/libphonenumber-discuss/about">mailing list</a>.
+ *
  * @author Shaopeng Jia
  * @author Lara Rennie
  */
@@ -53,36 +56,38 @@
   // The minimum and maximum length of the national significant number.
   private static final int MIN_LENGTH_FOR_NSN = 3;
   static final int MAX_LENGTH_FOR_NSN = 15;
-  // The maximum length of the country code.
+  // The maximum length of the country calling code.
   static final int MAX_LENGTH_COUNTRY_CODE = 3;
   static final String META_DATA_FILE_PREFIX =
       "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto";
   private String currentFilePrefix = META_DATA_FILE_PREFIX;
   private static final Logger LOGGER = Logger.getLogger(PhoneNumberUtil.class.getName());
 
-  // A mapping from a country code to the region codes which denote the country/region
-  // represented by that country code. In the case of multiple countries sharing a calling code,
-  // such as the NANPA countries, the one indicated with "isMainCountryForCode" in the metadata
-  // should be first.
-  private Map<Integer, List<String>> countryCodeToRegionCodeMap = null;
+  // A mapping from a country calling code to the region codes which denote the region represented
+  // by that country calling code. In the case of multiple regions sharing a calling code, such as
+  // the NANPA regions, the one indicated with "isMainCountryForCode" in the metadata should be
+  // first.
+  private Map<Integer, List<String>> countryCallingCodeToRegionCodeMap = null;
 
-  // The set of countries the library supports.
+  // The set of regions the library supports.
   // There are roughly 220 of them and we set the initial capacity of the HashSet to 300 to offer a
   // load factor of roughly 0.75.
-  private final Set<String> supportedCountries = new HashSet<String>(300);
+  private final Set<String> supportedRegions = new HashSet<String>(300);
 
   // Region-code for the unknown region.
   private static final String UNKNOWN_REGION = "ZZ";
 
-  // The set of countries that share country code 1.
-  // There are roughly 26 countries of them and we set the initial capacity of the HashSet to 35
-  // to offer a load factor of roughly 0.75.
-  private final Set<String> nanpaCountries = new HashSet<String>(35);
+  // The set of regions that share country code 1.
+  // There are roughly 26 regions and we set the initial capacity of the HashSet to 35 to offer a
+  // load factor of roughly 0.75.
+  private final Set<String> nanpaRegions = new HashSet<String>(35);
   private static final int NANPA_COUNTRY_CODE = 1;
 
   // The PLUS_SIGN signifies the international prefix.
   static final char PLUS_SIGN = '+';
 
+  private static final String RFC3966_EXTN_PREFIX = ";ext=";
+
   // These mappings map a character (key) to a specific digit that should replace it for
   // normalization purposes. Non-European digits that may be used in phone numbers are mapped to a
   // European equivalent.
@@ -94,45 +99,54 @@
   // For performance reasons, amalgamate both into one map.
   private static final Map<Character, Character> ALL_NORMALIZATION_MAPPINGS;
 
+  // Separate map of all symbols that we wish to retain when formatting alpha numbers. This
+  // includes digits, ASCII letters and number grouping symbols such as "-" and " ".
+  private static final Map<Character, Character> ALL_PLUS_NUMBER_GROUPING_SYMBOLS;
+
   static {
+    // Simple ASCII digits map used to populate DIGIT_MAPPINGS and
+    // ALL_PLUS_NUMBER_GROUPING_SYMBOLS.
+    HashMap<Character, Character> asciiDigitMappings = new HashMap<Character, Character>();
+    asciiDigitMappings.put('0', '0');
+    asciiDigitMappings.put('1', '1');
+    asciiDigitMappings.put('2', '2');
+    asciiDigitMappings.put('3', '3');
+    asciiDigitMappings.put('4', '4');
+    asciiDigitMappings.put('5', '5');
+    asciiDigitMappings.put('6', '6');
+    asciiDigitMappings.put('7', '7');
+    asciiDigitMappings.put('8', '8');
+    asciiDigitMappings.put('9', '9');
+
     HashMap<Character, Character> digitMap = new HashMap<Character, Character>(50);
-    digitMap.put('0', '0');
+    digitMap.putAll(asciiDigitMappings);
     digitMap.put('\uFF10', '0');  // Fullwidth digit 0
     digitMap.put('\u0660', '0');  // Arabic-indic digit 0
     digitMap.put('\u06F0', '0');  // Eastern-Arabic digit 0
-    digitMap.put('1', '1');
     digitMap.put('\uFF11', '1');  // Fullwidth digit 1
     digitMap.put('\u0661', '1');  // Arabic-indic digit 1
     digitMap.put('\u06F1', '1');  // Eastern-Arabic digit 1
-    digitMap.put('2', '2');
     digitMap.put('\uFF12', '2');  // Fullwidth digit 2
     digitMap.put('\u0662', '2');  // Arabic-indic digit 2
     digitMap.put('\u06F2', '2');  // Eastern-Arabic digit 2
-    digitMap.put('3', '3');
     digitMap.put('\uFF13', '3');  // Fullwidth digit 3
     digitMap.put('\u0663', '3');  // Arabic-indic digit 3
     digitMap.put('\u06F3', '3');  // Eastern-Arabic digit 3
-    digitMap.put('4', '4');
     digitMap.put('\uFF14', '4');  // Fullwidth digit 4
     digitMap.put('\u0664', '4');  // Arabic-indic digit 4
     digitMap.put('\u06F4', '4');  // Eastern-Arabic digit 4
-    digitMap.put('5', '5');
     digitMap.put('\uFF15', '5');  // Fullwidth digit 5
     digitMap.put('\u0665', '5');  // Arabic-indic digit 5
     digitMap.put('\u06F5', '5');  // Eastern-Arabic digit 5
-    digitMap.put('6', '6');
     digitMap.put('\uFF16', '6');  // Fullwidth digit 6
     digitMap.put('\u0666', '6');  // Arabic-indic digit 6
     digitMap.put('\u06F6', '6');  // Eastern-Arabic digit 6
-    digitMap.put('7', '7');
     digitMap.put('\uFF17', '7');  // Fullwidth digit 7
     digitMap.put('\u0667', '7');  // Arabic-indic digit 7
     digitMap.put('\u06F7', '7');  // Eastern-Arabic digit 7
-    digitMap.put('8', '8');
     digitMap.put('\uFF18', '8');  // Fullwidth digit 8
     digitMap.put('\u0668', '8');  // Arabic-indic digit 8
     digitMap.put('\u06F8', '8');  // Eastern-Arabic digit 8
-    digitMap.put('9', '9');
     digitMap.put('\uFF19', '9');  // Fullwidth digit 9
     digitMap.put('\u0669', '9');  // Arabic-indic digit 9
     digitMap.put('\u06F9', '9');  // Eastern-Arabic digit 9
@@ -171,31 +185,38 @@
     combinedMap.putAll(alphaMap);
     combinedMap.putAll(digitMap);
     ALL_NORMALIZATION_MAPPINGS = Collections.unmodifiableMap(combinedMap);
+
+    HashMap<Character, Character> allPlusNumberGroupings = new HashMap<Character, Character>();
+    // Put (lower letter -> upper letter) and (upper letter -> upper letter) mappings.
+    for (char c : ALPHA_MAPPINGS.keySet()) {
+      allPlusNumberGroupings.put(Character.toLowerCase(c), c);
+      allPlusNumberGroupings.put(c, c);
+    }
+    allPlusNumberGroupings.putAll(asciiDigitMappings);
+    // Put grouping symbols.
+    allPlusNumberGroupings.put('-', '-');
+    allPlusNumberGroupings.put('\uFF0D', '-');
+    allPlusNumberGroupings.put('\u2010', '-');
+    allPlusNumberGroupings.put('\u2011', '-');
+    allPlusNumberGroupings.put('\u2012', '-');
+    allPlusNumberGroupings.put('\u2013', '-');
+    allPlusNumberGroupings.put('\u2014', '-');
+    allPlusNumberGroupings.put('\u2015', '-');
+    allPlusNumberGroupings.put('\u2212', '-');
+    allPlusNumberGroupings.put('/', '/');
+    allPlusNumberGroupings.put('\uFF0F', '/');
+    allPlusNumberGroupings.put(' ', ' ');
+    allPlusNumberGroupings.put('\u3000', ' ');
+    allPlusNumberGroupings.put('\u2060', ' ');
+    allPlusNumberGroupings.put('.', '.');
+    allPlusNumberGroupings.put('\uFF0E', '.');
+    ALL_PLUS_NUMBER_GROUPING_SYMBOLS = Collections.unmodifiableMap(allPlusNumberGroupings);
   }
 
-  // A list of all country codes where national significant numbers (excluding any national prefix)
-  // exist that start with a leading zero.
-  private static final Set<Integer> LEADING_ZERO_COUNTRIES;
-  static {
-    HashSet<Integer> aSet = new HashSet<Integer>(10);
-    aSet.add(39);  // Italy
-    aSet.add(47);  // Norway
-    aSet.add(225);  // Cote d'Ivoire
-    aSet.add(227);  // Niger
-    aSet.add(228);  // Togo
-    aSet.add(241);  // Gabon
-    aSet.add(242);  // Congo (Rep. of the)
-    aSet.add(268);  // Swaziland
-    aSet.add(378);  // San Marino
-    aSet.add(379);  // Vatican City
-    aSet.add(501);  // Belize
-    LEADING_ZERO_COUNTRIES = Collections.unmodifiableSet(aSet);
-  }
-
-  // Pattern that makes it easy to distinguish whether a country has a unique international dialing
-  // prefix or not. If a country has a unique international prefix (e.g. 011 in USA), it will be
+  // Pattern that makes it easy to distinguish whether a region has a unique international dialing
+  // prefix or not. If a region has a unique international prefix (e.g. 011 in USA), it will be
   // represented as a string that contains a sequence of ASCII digits. If there are multiple
-  // available international prefixes in a country, they will be represented as a regex string that
+  // available international prefixes in a region, they will be represented as a regex string that
   // always contains character(s) other than ASCII digits.
   // Note this regex also includes tilde, which signals waiting for the tone.
   private static final Pattern UNIQUE_INTERNATIONAL_PREFIX =
@@ -218,6 +239,7 @@
       Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).toLowerCase().replaceAll("[, \\[\\]]", "");
   static final String PLUS_CHARS = "+\uFF0B";
   private static final Pattern PLUS_CHARS_PATTERN = Pattern.compile("[" + PLUS_CHARS + "]+");
+  private static final Pattern SEPARATOR_PATTERN = Pattern.compile("[" + VALID_PUNCTUATION + "]+");
   private static final Pattern CAPTURING_DIGIT_PATTERN =
       Pattern.compile("([" + VALID_DIGITS + "])");
 
@@ -242,7 +264,7 @@
   // are not alpha or numerical characters. The hash character is retained here, as it may signify
   // the previous block was an extension.
   private static final String UNWANTED_END_CHARS = "[[\\P{N}&&\\P{L}]&&[^#]]+$";
-  private static final Pattern UNWANTED_END_CHAR_PATTERN = Pattern.compile(UNWANTED_END_CHARS);
+  static final Pattern UNWANTED_END_CHAR_PATTERN = Pattern.compile(UNWANTED_END_CHARS);
 
   // We use this pattern to check if the phone number has at least three letters in it - if so, then
   // we treat it as a number where some phone-number digits are represented by letters.
@@ -264,27 +286,30 @@
   // Default extension prefix to use when formatting. This will be put in front of any extension
   // component of the number, after the main national number is formatted. For example, if you wish
   // the default extension formatting to be " extn: 3456", then you should specify " extn: " here
-  // as the default extension prefix. This can be overridden by country-specific preferences.
+  // as the default extension prefix. This can be overridden by region-specific preferences.
   private static final String DEFAULT_EXTN_PREFIX = " ext. ";
 
   // Regexp of all possible ways to write extensions, for use when parsing. This will be run as a
-  // case-insensitive regexp match. Wide character versions are also provided after each ascii
-  // version. There are two regular expressions here: the more generic one starts with optional
-  // white space and ends with an optional full stop (.), followed by zero or more spaces/tabs and
-  // then the numbers themselves. The other one covers the special case of American numbers where
-  // the extension is written with a hash at the end, such as "- 503#".
+  // case-insensitive regexp match. Wide character versions are also provided after each ASCII
+  // version. There are three regular expressions here. The first covers RFC 3966 format, where the
+  // extension is added using ";ext=". The second more generic one starts with optional white space
+  // and ends with an optional full stop (.), followed by zero or more spaces/tabs and then the
+  // numbers themselves. The other one covers the special case of American numbers where the
+  // extension is written with a hash at the end, such as "- 503#".
   // Note that the only capturing groups should be around the digits that you want to capture as
   // part of the extension, or else parsing will fail!
   // Canonical-equivalence doesn't seem to be an option with Android java, so we allow two options
   // for representing the accented o - the character itself, and one in the unicode decomposed form
   // with the combining acute accent.
-  static final String KNOWN_EXTN_PATTERNS = "[ \u00A0\\t,]*" +
-      "(?:ext(?:ensi(?:o\u0301?|\u00F3))?n?|" +
+  private static final String CAPTURING_EXTN_DIGITS = "([" + VALID_DIGITS + "]{1,7})";
+  static final String KNOWN_EXTN_PATTERNS =
+      RFC3966_EXTN_PREFIX + CAPTURING_EXTN_DIGITS + "|" +
+      "[ \u00A0\\t,]*(?:ext(?:ensi(?:o\u0301?|\u00F3))?n?|" +
       "\uFF45\uFF58\uFF54\uFF4E?|[,x\uFF58#\uFF03~\uFF5E]|int|anexo|\uFF49\uFF4E\uFF54)" +
-      "[:\\.\uFF0E]?[ \u00A0\\t,-]*([" + VALID_DIGITS + "]{1,7})#?|[- ]+([" + VALID_DIGITS +
-      "]{1,5})#";
+      "[:\\.\uFF0E]?[ \u00A0\\t,-]*" + CAPTURING_EXTN_DIGITS + "#?|" +
+      "[- ]+([" + VALID_DIGITS + "]{1,5})#";
 
-  // Regexp of all known extension prefixes used by different countries followed by 1 or more valid
+  // Regexp of all known extension prefixes used by different regions followed by 1 or more valid
   // digits, for use when parsing.
   private static final Pattern EXTN_PATTERN =
       Pattern.compile("(?:" + KNOWN_EXTN_PATTERNS + ")$", REGEX_FLAGS);
@@ -295,7 +320,12 @@
       Pattern.compile(VALID_PHONE_NUMBER + "(?:" + KNOWN_EXTN_PATTERNS + ")?", REGEX_FLAGS);
 
   private static final Pattern NON_DIGITS_PATTERN = Pattern.compile("(\\D+)");
-  private static final Pattern FIRST_GROUP_PATTERN = Pattern.compile("(\\$1)");
+
+  // The FIRST_GROUP_PATTERN was originally set to $1 but there are some countries for which the
+  // first group is not used in the national pattern (e.g. Argentina) so the $1 group does not match
+  // correctly.  Therefore, we use \d, so that the first group actually used in the pattern will be
+  // matched.
+  private static final Pattern FIRST_GROUP_PATTERN = Pattern.compile("(\\$\\d)");
   private static final Pattern NP_PATTERN = Pattern.compile("\\$NP");
   private static final Pattern FG_PATTERN = Pattern.compile("\\$FG");
   private static final Pattern CC_PATTERN = Pattern.compile("\\$CC");
@@ -303,10 +333,9 @@
   private static PhoneNumberUtil instance = null;
 
   // A mapping from a region code to the PhoneMetadata for that region.
-  private Map<String, PhoneMetadata> countryToMetadataMap =
-      new HashMap<String, PhoneMetadata>();
+  private Map<String, PhoneMetadata> regionToMetadataMap = new HashMap<String, PhoneMetadata>();
 
-  // A cache for frequently used country-specific regular expressions.
+  // A cache for frequently used region-specific regular expressions.
   // As most people use phone numbers primarily from one to two countries, and there are roughly 60
   // regular expressions needed, the initial capacity of 100 offers a rough load factor of 0.75.
   private RegexCache regexCache = new RegexCache(100);
@@ -316,14 +345,17 @@
    * E. 123. For example, the number of the Google Zurich office will be written as
    * "+41 44 668 1800" in INTERNATIONAL format, and as "044 668 1800" in NATIONAL format.
    * E164 format is as per INTERNATIONAL format but with no formatting applied, e.g. +41446681800.
+   * RFC3966 is as per INTERNATIONAL format, but with all spaces and other separating symbols
+   * replaced with a hyphen, and with any phone number extension appended with ";ext=".
    *
    * Note: If you are considering storing the number in a neutral format, you are highly advised to
-   * use the phonenumber.proto.
+   * use the PhoneNumber class.
    */
   public enum PhoneNumberFormat {
     E164,
     INTERNATIONAL,
-    NATIONAL
+    NATIONAL,
+    RFC3966
   }
 
   /**
@@ -332,7 +364,7 @@
   public enum PhoneNumberType {
     FIXED_LINE,
     MOBILE,
-    // In some countries (e.g. the USA), it is impossible to distinguish between fixed-line and
+    // In some regions (e.g. the USA), it is impossible to distinguish between fixed-line and
     // mobile numbers by looking at the phone number itself.
     FIXED_LINE_OR_MOBILE,
     // Freephone lines
@@ -353,7 +385,7 @@
     // specific offices, but allow one number to be used for a company.
     UAN,
     // A phone number is of type UNKNOWN when it does not fit any of the known patterns for a
-    // specific country.
+    // specific region.
     UNKNOWN
   }
 
@@ -416,10 +448,10 @@
 
   private void init(String filePrefix) {
     currentFilePrefix = filePrefix;
-    for (List<String> regionCodes : countryCodeToRegionCodeMap.values()) {
-      supportedCountries.addAll(regionCodes);
+    for (List<String> regionCodes : countryCallingCodeToRegionCodeMap.values()) {
+      supportedRegions.addAll(regionCodes);
     }
-    nanpaCountries.addAll(countryCodeToRegionCodeMap.get(NANPA_COUNTRY_CODE));
+    nanpaRegions.addAll(countryCallingCodeToRegionCodeMap.get(NANPA_COUNTRY_CODE));
   }
 
   private void loadMetadataForRegionFromFile(String filePrefix, String regionCode) {
@@ -431,7 +463,7 @@
       PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection();
       metadataCollection.readExternal(in);
       for (PhoneMetadata metadata : metadataCollection.getMetadataList()) {
-        countryToMetadataMap.put(regionCode, metadata);
+        regionToMetadataMap.put(regionCode, metadata);
       }
     } catch (IOException e) {
       LOGGER.log(Level.WARNING, e.toString());
@@ -440,13 +472,13 @@
 
   /**
    * Attempts to extract a possible number from the string passed in. This currently strips all
-   * leading characters that could not be used to start a phone number. Characters that can be used
-   * to start a phone number are defined in the VALID_START_CHAR_PATTERN. If none of these
-   * characters are found in the number passed in, an empty string is returned. This function also
-   * attempts to strip off any alternative extensions or endings if two or more are present, such as
-   * in the case of: (530) 583-6985 x302/x2303. The second extension here makes this actually two
-   * phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second extension so
-   * that the first number is parsed correctly.
+   * leading characters that cannot be used to start a phone number. Characters that can be used to
+   * start a phone number are defined in the VALID_START_CHAR_PATTERN. If none of these characters
+   * are found in the number passed in, an empty string is returned. This function also attempts to
+   * strip off any alternative extensions or endings if two or more are present, such as in the case
+   * of: (530) 583-6985 x302/x2303. The second extension here makes this actually two phone numbers,
+   * (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second extension so that the first
+   * number is parsed correctly.
    *
    * @param number  the string that might contain a phone number
    * @return        the number, stripped of any non-phone-number prefix (such as "Tel:") or an empty
@@ -461,6 +493,7 @@
       Matcher trailingCharsMatcher = UNWANTED_END_CHAR_PATTERN.matcher(number);
       if (trailingCharsMatcher.find()) {
         number = number.substring(0, trailingCharsMatcher.start());
+        LOGGER.log(Level.FINER, "Stripped trailing characters: " + number);
       }
       // Check for extra numbers at the end.
       Matcher secondNumber = SECOND_NUMBER_START_PATTERN.matcher(number);
@@ -516,12 +549,12 @@
 
   /**
    * Normalizes a string of characters representing a phone number. This is a wrapper for
-   * normalize(String number) but does in-place normalization of the StringBuffer provided.
+   * normalize(String number) but does in-place normalization of the StringBuilder provided.
    *
-   * @param number  a StringBuffer of characters representing a phone number that will be normalized
-   *     in place
+   * @param number  a StringBuilder of characters representing a phone number that will be
+   *     normalized in place
    */
-  static void normalize(StringBuffer number) {
+  static void normalize(StringBuilder number) {
     String normalizedNumber = normalize(number.toString());
     number.replace(0, number.length(), normalizedNumber);
   }
@@ -547,15 +580,16 @@
   }
 
   /**
-   * Gets the length of the geographical area code from the national_number field of the PhoneNumber
-   * object passed in, so that clients could use it to split a national significant number into
-   * geographical area code and subscriber number. It works in such a way that the resultant
-   * subscriber number should be diallable, at least on some devices. An example of how this could
-   * be used:
+   * Gets the length of the geographical area code in the {@code nationalNumber_} field of the
+   * PhoneNumber object passed in, so that clients could use it to split a national significant
+   * number into geographical area code and subscriber number. It works in such a way that the
+   * resultant subscriber number should be diallable, at least on some devices. An example of how
+   * this could be used:
    *
+   * <pre>
    * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    * PhoneNumber number = phoneUtil.parse("16502530000", "US");
-   * String nationalSignificantNumber = PhoneNumberUtil.getNationalSignificantNumber(number);
+   * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
    * String areaCode;
    * String subscriberNumber;
    *
@@ -567,10 +601,10 @@
    *   areaCode = "";
    *   subscriberNumber = nationalSignificantNumber;
    * }
+   * </pre>
    *
    * N.B.: area code is a very ambiguous concept, so the I18N team generally recommends against
-   * using it for most purposes, but recommends using the more general national_number instead. Read
-   * the following carefully before deciding to use this method:
+   * using it for most purposes. Read the following carefully before deciding to use this method:
    *
    *  - geographical area codes change over time, and this method honors those changes; therefore,
    *    it doesn't guarantee the stability of the result it produces.
@@ -607,12 +641,13 @@
    * Gets the length of the national destination code (NDC) from the PhoneNumber object passed in,
    * so that clients could use it to split a national significant number into NDC and subscriber
    * number. The NDC of a phone number is normally the first group of digit(s) right after the
-   * country code when the number is formatted in the international format, if there is a subscriber
-   * number part that follows. An example of how this could be used:
+   * country calling code when the number is formatted in the international format, if there is a
+   * subscriber number part that follows. An example of how this could be used:
    *
+   * <pre>
    * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    * PhoneNumber number = phoneUtil.parse("18002530000", "US");
-   * String nationalSignificantNumber = PhoneNumberUtil.getNationalSignificantNumber(number);
+   * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
    * String nationalDestinationCode;
    * String subscriberNumber;
    *
@@ -625,9 +660,10 @@
    *   nationalDestinationCode = "";
    *   subscriberNumber = nationalSignificantNumber;
    * }
+   * </pre>
    *
    * Refer to the unittests to see the difference between this function and
-   * getLengthOfGeographicalAreaCode().
+   * {@link #getLengthOfGeographicalAreaCode()}.
    *
    * @param number  the PhoneNumber object for which clients want to know the length of the NDC.
    * @return  the length of NDC of the PhoneNumber object passed in.
@@ -648,8 +684,8 @@
                                               PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
     String[] numberGroups = NON_DIGITS_PATTERN.split(nationalSignificantNumber);
     // The pattern will start with "+COUNTRY_CODE " so the first group will always be the empty
-    // string (before the + symbol) and the second group will be the country code. The third group
-    // will be area code if it is not the last group.
+    // string (before the + symbol) and the second group will be the country calling code. The third
+    // group will be area code if it is not the last group.
     if (numberGroups.length <= 3) {
       return 0;
     }
@@ -683,7 +719,7 @@
   private static String normalizeHelper(String number,
                                         Map<Character, Character> normalizationReplacements,
                                         boolean removeNonMatches) {
-    StringBuffer normalizedNumber = new StringBuffer(number.length());
+    StringBuilder normalizedNumber = new StringBuilder(number.length());
     char[] numberAsCharArray = number.toCharArray();
     for (char character : numberAsCharArray) {
       Character newDigit = normalizationReplacements.get(Character.toUpperCase(character));
@@ -699,10 +735,10 @@
 
   static synchronized PhoneNumberUtil getInstance(
       String baseFileLocation,
-      Map<Integer, List<String>> countryCodeToRegionCodeMap) {
+      Map<Integer, List<String>> countryCallingCodeToRegionCodeMap) {
     if (instance == null) {
       instance = new PhoneNumberUtil();
-      instance.countryCodeToRegionCodeMap = countryCodeToRegionCodeMap;
+      instance.countryCallingCodeToRegionCodeMap = countryCallingCodeToRegionCodeMap;
       instance.init(baseFileLocation);
     }
     return instance;
@@ -716,20 +752,19 @@
   }
 
   /**
-   * Convenience method to enable tests to get a list of what countries the library has metadata
-   * for.
+   * Convenience method to enable tests to get a list of what regions the library has metadata for.
    */
-  public Set<String> getSupportedCountries() {
-    return supportedCountries;
+  public Set<String> getSupportedRegions() {
+    return supportedRegions;
   }
 
   /**
-   * Gets a PhoneNumberUtil instance to carry out international phone number formatting, parsing,
-   * or validation. The instance is loaded with phone number metadata for a number of most commonly
-   * used countries/regions.
+   * Gets a {@link PhoneNumberUtil} instance to carry out international phone number formatting,
+   * parsing, or validation. The instance is loaded with phone number metadata for a number of most
+   * commonly used regions.
    *
-   * The PhoneNumberUtil is implemented as a singleton. Therefore, calling getInstance multiple
-   * times will only result in one instance being created.
+   * <p>The {@link PhoneNumberUtil} is implemented as a singleton. Therefore, calling getInstance
+   * multiple times will only result in one instance being created.
    *
    * @return a PhoneNumberUtil instance
    */
@@ -745,7 +780,23 @@
    * Helper function to check region code is not unknown or null.
    */
   private boolean isValidRegionCode(String regionCode) {
-    return regionCode != null && supportedCountries.contains(regionCode.toUpperCase());
+    return regionCode != null && supportedRegions.contains(regionCode.toUpperCase());
+  }
+
+  /**
+   * Helper function to check region code is not unknown or null and log an error message. The
+   * {@code countryCallingCode} and {@code number} supplied is used only for the resultant log
+   * message.
+   */
+  private boolean hasValidRegionCode(String regionCode,
+                                     int countryCallingCode, String number) {
+    if (!isValidRegionCode(regionCode)) {
+      LOGGER.log(Level.WARNING,
+                 "Number " + number + " has invalid or missing country calling code ("
+                 + countryCallingCode + ")");
+      return false;
+    }
+    return true;
   }
 
   /**
@@ -754,24 +805,25 @@
    * format in either 'national' or 'international' format depending on what the client asks for, we
    * do not currently support a more abbreviated format, such as for users in the same "area" who
    * could potentially dial the number without area code. Note that if the phone number has a
-   * country code of 0 or an otherwise invalid country code, we cannot work out which formatting
-   * rules to apply so we return the national significant number with no formatting applied.
+   * country calling code of 0 or an otherwise invalid country calling code, we cannot work out
+   * which formatting rules to apply so we return the national significant number with no formatting
+   * applied.
    *
    * @param number         the phone number to be formatted
    * @param numberFormat   the format the phone number should be formatted into
    * @return  the formatted phone number
    */
   public String format(PhoneNumber number, PhoneNumberFormat numberFormat) {
-    StringBuffer formattedNumber = new StringBuffer(20);
+    StringBuilder formattedNumber = new StringBuilder(20);
     format(number, numberFormat, formattedNumber);
     return formattedNumber.toString();
   }
 
-  // Same as format(PhoneNumber, PhoneNumberFormat), but accepts mutable StringBuffer as parameters
+  // Same as format(PhoneNumber, PhoneNumberFormat), but accepts mutable StringBuilder as parameters
   // to decrease object creation when invoked many times.
   public void format(PhoneNumber number, PhoneNumberFormat numberFormat,
-                     StringBuffer formattedNumber) {
-    // Clear the StringBuffer first.
+                     StringBuilder formattedNumber) {
+    // Clear the StringBuilder first.
     formattedNumber.setLength(0);
     int countryCode = number.getCountryCode();
     String nationalSignificantNumber = getNationalSignificantNumber(number);
@@ -782,9 +834,9 @@
       formatNumberByFormat(countryCode, PhoneNumberFormat.E164, formattedNumber);
       return;
     }
-    // Note getRegionCodeForCountryCode() is used because formatting information for countries which
-    // share a country code is contained by only one country for performance reasons. For example,
-    // for NANPA countries it will be contained in the metadata for US.
+    // Note getRegionCodeForCountryCode() is used because formatting information for regions which
+    // share a country calling code is contained by only one region for performance reasons. For
+    // example, for NANPA regions it will be contained in the metadata for US.
     String regionCode = getRegionCodeForCountryCode(countryCode);
     if (!isValidRegionCode(regionCode)) {
       formattedNumber.append(nationalSignificantNumber);
@@ -793,15 +845,15 @@
 
     formattedNumber.append(formatNationalNumber(nationalSignificantNumber,
                                                 regionCode, numberFormat));
-    maybeGetFormattedExtension(number, regionCode, formattedNumber);
+    maybeGetFormattedExtension(number, regionCode, numberFormat, formattedNumber);
     formatNumberByFormat(countryCode, numberFormat, formattedNumber);
   }
 
   /**
    * Formats a phone number in the specified format using client-defined formatting rules. Note that
-   * if the phone number has a country code of zero or an otherwise invalid country code, we cannot
-   * work out things like whether there should be a national prefix applied, or how to format
-   * extensions, so we return the national significant number with no formatting applied.
+   * if the phone number has a country calling code of zero or an otherwise invalid country calling
+   * code, we cannot work out things like whether there should be a national prefix applied, or how
+   * to format extensions, so we return the national significant number with no formatting applied.
    *
    * @param number                        the phone number to be formatted
    * @param numberFormat                  the format the phone number should be formatted into
@@ -811,13 +863,13 @@
   public String formatByPattern(PhoneNumber number,
                                 PhoneNumberFormat numberFormat,
                                 List<NumberFormat> userDefinedFormats) {
-    int countryCode = number.getCountryCode();
+    int countryCallingCode = number.getCountryCode();
     String nationalSignificantNumber = getNationalSignificantNumber(number);
-    // Note getRegionCodeForCountryCode() is used because formatting information for countries which
-    // share a country code is contained by only one country for performance reasons. For example,
-    // for NANPA countries it will be contained in the metadata for US.
-    String regionCode = getRegionCodeForCountryCode(countryCode);
-    if (!isValidRegionCode(regionCode)) {
+    // Note getRegionCodeForCountryCode() is used because formatting information for regions which
+    // share a country calling code is contained by only one region for performance reasons. For
+    // example, for NANPA regions it will be contained in the metadata for US.
+    String regionCode = getRegionCodeForCountryCode(countryCallingCode);
+    if (!hasValidRegionCode(regionCode, countryCallingCode, nationalSignificantNumber)) {
       return nationalSignificantNumber;
     }
     List<NumberFormat> userDefinedFormatsCopy =
@@ -849,62 +901,63 @@
       }
     }
 
-    StringBuffer formattedNumber =
-        new StringBuffer(formatAccordingToFormats(nationalSignificantNumber,
-                                                  userDefinedFormatsCopy,
-                                                  numberFormat));
-    maybeGetFormattedExtension(number, regionCode, formattedNumber);
-    formatNumberByFormat(countryCode, numberFormat, formattedNumber);
+    StringBuilder formattedNumber =
+        new StringBuilder(formatAccordingToFormats(nationalSignificantNumber,
+                                                   userDefinedFormatsCopy,
+                                                   numberFormat));
+    maybeGetFormattedExtension(number, regionCode, numberFormat, formattedNumber);
+    formatNumberByFormat(countryCallingCode, numberFormat, formattedNumber);
     return formattedNumber.toString();
   }
 
   /**
    * Formats a phone number in national format for dialing using the carrier as specified in the
-   * carrierCode. The carrierCode will always be used regardless of whether the phone number already
-   * has a preferred domestic carrier code stored. If carrierCode contains an empty string, return
-   * the number in national format without any carrier code.
+   * {@code carrierCode}. The {@code carrierCode} will always be used regardless of whether the
+   * phone number already has a preferred domestic carrier code stored. If {@code carrierCode}
+   * contains an empty string, returns the number in national format without any carrier code.
    *
    * @param number  the phone number to be formatted
    * @param carrierCode  the carrier selection code to be used
    * @return  the formatted phone number in national format for dialing using the carrier as
-   *          specified in the carrierCode
+   *          specified in the {@code carrierCode}
    */
   public String formatNationalNumberWithCarrierCode(PhoneNumber number, String carrierCode) {
-    int countryCode = number.getCountryCode();
+    int countryCallingCode = number.getCountryCode();
     String nationalSignificantNumber = getNationalSignificantNumber(number);
-    // Note getRegionCodeForCountryCode() is used because formatting information for countries which
-    // share a country code is contained by only one country for performance reasons. For example,
-    // for NANPA countries it will be contained in the metadata for US.
-    String regionCode = getRegionCodeForCountryCode(countryCode);
-    if (!isValidRegionCode(regionCode)) {
+    // Note getRegionCodeForCountryCode() is used because formatting information for regions which
+    // share a country calling code is contained by only one region for performance reasons. For
+    // example, for NANPA regions it will be contained in the metadata for US.
+    String regionCode = getRegionCodeForCountryCode(countryCallingCode);
+    if (!hasValidRegionCode(regionCode, countryCallingCode, nationalSignificantNumber)) {
       return nationalSignificantNumber;
     }
 
-    StringBuffer formattedNumber = new StringBuffer(20);
+    StringBuilder formattedNumber = new StringBuilder(20);
     formattedNumber.append(formatNationalNumber(nationalSignificantNumber,
                                                 regionCode,
                                                 PhoneNumberFormat.NATIONAL,
                                                 carrierCode));
-    maybeGetFormattedExtension(number, regionCode, formattedNumber);
-    formatNumberByFormat(countryCode, PhoneNumberFormat.NATIONAL, formattedNumber);
+    maybeGetFormattedExtension(number, regionCode, PhoneNumberFormat.NATIONAL, formattedNumber);
+    formatNumberByFormat(countryCallingCode, PhoneNumberFormat.NATIONAL, formattedNumber);
     return formattedNumber.toString();
   }
 
   /**
    * Formats a phone number in national format for dialing using the carrier as specified in the
-   * preferred_domestic_carrier_code field of the PhoneNumber object passed in. If that is missing,
-   * use the fallbackCarrierCode passed in instead. If there is no preferred_domestic_carrier_code,
-   * and the fallbackCarrierCode contains an empty string, return the number in national format
-   * without any carrier code.
+   * preferredDomesticCarrierCode field of the PhoneNumber object passed in. If that is missing,
+   * use the {@code fallbackCarrierCode} passed in instead. If there is no
+   * {@code preferredDomesticCarrierCode}, and the {@code fallbackCarrierCode} contains an empty
+   * string, return the number in national format without any carrier code.
    *
-   * Use formatNationalNumberWithCarrierCode instead if the carrier code passed in should take
-   * precedence over the number's preferred_domestic_carrier_code when formatting.
+   * <p>Use {@link #formatNationalNumberWithCarrierCode} instead if the carrier code passed in
+   * should take precedence over the number's {@code preferredDomesticCarrierCode} when formatting.
    *
    * @param number  the phone number to be formatted
    * @param fallbackCarrierCode  the carrier selection code to be used, if none is found in the
-   *        phone number itself
+   *     phone number itself
    * @return  the formatted phone number in national format for dialing using the number's
-   *          preferred_domestic_carrier_code, or the fallbackCarrierCode passed in if none is found
+   *     {@code preferredDomesticCarrierCode}, or the {@code fallbackCarrierCode} passed in if
+   *     none is found
    */
   public String formatNationalNumberWithPreferredCarrierCode(PhoneNumber number,
                                                              String fallbackCarrierCode) {
@@ -914,56 +967,55 @@
   }
 
   /**
-   * Formats a phone number for out-of-country dialing purpose. If no countryCallingFrom
-   * is supplied, we format the number in its INTERNATIONAL format. If the countryCallingFrom is
-   * the same as the country where the number is from, then NATIONAL formatting will be applied.
+   * Formats a phone number for out-of-country dialing purposes. If no regionCallingFrom is
+   * supplied, we format the number in its INTERNATIONAL format. If the country calling code is the
+   * same as the region where the number is from, then NATIONAL formatting will be applied.
    *
-   * If the number itself has a country code of zero or an otherwise invalid country code, then we
-   * return the number with no formatting applied.
+   * <p>If the number itself has a country calling code of zero or an otherwise invalid country
+   * calling code, then we return the number with no formatting applied.
    *
-   * Note this function takes care of the case for calling inside of NANPA and between Russia and
-   * Kazakhstan (who share the same country code). In those cases, no international prefix is used.
-   * For countries which have multiple international prefixes, the number in its INTERNATIONAL
-   * format will be returned instead.
+   * <p>Note this function takes care of the case for calling inside of NANPA and between Russia and
+   * Kazakhstan (who share the same country calling code). In those cases, no international prefix
+   * is used. For regions which have multiple international prefixes, the number in its
+   * INTERNATIONAL format will be returned instead.
    *
    * @param number               the phone number to be formatted
-   * @param countryCallingFrom   the ISO 3166-1 two-letter country code that denotes
-   *                             the foreign country where the call is being placed
+   * @param regionCallingFrom    the ISO 3166-1 two-letter region code that denotes the region
+   *                             where the call is being placed
    * @return  the formatted phone number
    */
-  public String formatOutOfCountryCallingNumber(PhoneNumber number,
-                                                String countryCallingFrom) {
-    if (!isValidRegionCode(countryCallingFrom)) {
+  public String formatOutOfCountryCallingNumber(PhoneNumber number, String regionCallingFrom) {
+    if (!isValidRegionCode(regionCallingFrom)) {
       return format(number, PhoneNumberFormat.INTERNATIONAL);
     }
-    int countryCode = number.getCountryCode();
-    String regionCode = getRegionCodeForCountryCode(countryCode);
+    int countryCallingCode = number.getCountryCode();
+    String regionCode = getRegionCodeForCountryCode(countryCallingCode);
     String nationalSignificantNumber = getNationalSignificantNumber(number);
     if (!isValidRegionCode(regionCode)) {
       return nationalSignificantNumber;
     }
-    if (countryCode == NANPA_COUNTRY_CODE) {
-      if (isNANPACountry(countryCallingFrom)) {
-        // For NANPA countries, return the national format for these countries but prefix it with
-        // the country code.
-        return countryCode + " " + format(number, PhoneNumberFormat.NATIONAL);
+    if (countryCallingCode == NANPA_COUNTRY_CODE) {
+      if (isNANPACountry(regionCallingFrom)) {
+        // For NANPA regions, return the national format for these regions but prefix it with the
+        // country calling code.
+        return countryCallingCode + " " + format(number, PhoneNumberFormat.NATIONAL);
       }
-    } else if (countryCode == getCountryCodeForRegion(countryCallingFrom)) {
-    // For countries that share a country calling code, the country code need not be dialled. This
-    // also applies when dialling within a country, so this if clause covers both these cases.
-    // Technically this is the case for dialling from la Reunion to other overseas departments of
+    } else if (countryCallingCode == getCountryCodeForRegion(regionCallingFrom)) {
+    // For regions that share a country calling code, the country calling code need not be dialled.
+    // This also applies when dialling within a region, so this if clause covers both these cases.
+    // Technically this is the case for dialling from La Reunion to other overseas departments of
     // France (French Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover this
-    // edge case for now and for those cases return the version including country code.
+    // edge case for now and for those cases return the version including country calling code.
     // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion
       return format(number, PhoneNumberFormat.NATIONAL);
     }
     String formattedNationalNumber =
         formatNationalNumber(nationalSignificantNumber,
                              regionCode, PhoneNumberFormat.INTERNATIONAL);
-    PhoneMetadata metadata = getMetadataForRegion(countryCallingFrom);
+    PhoneMetadata metadata = getMetadataForRegion(regionCallingFrom);
     String internationalPrefix = metadata.getInternationalPrefix();
 
-    // For countries that have multiple international prefixes, the international format of the
+    // For regions that have multiple international prefixes, the international format of the
     // number is returned, unless there is a preferred international prefix.
     String internationalPrefixForFormatting = "";
     if (UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches()) {
@@ -972,13 +1024,14 @@
       internationalPrefixForFormatting = metadata.getPreferredInternationalPrefix();
     }
 
-    StringBuffer formattedNumber = new StringBuffer(formattedNationalNumber);
-    maybeGetFormattedExtension(number, regionCode, formattedNumber);
+    StringBuilder formattedNumber = new StringBuilder(formattedNationalNumber);
+    maybeGetFormattedExtension(number, regionCode, PhoneNumberFormat.INTERNATIONAL,
+                               formattedNumber);
     if (internationalPrefixForFormatting.length() > 0) {
-      formattedNumber.insert(0, " ").insert(0, countryCode).insert(0, " ")
+      formattedNumber.insert(0, " ").insert(0, countryCallingCode).insert(0, " ")
           .insert(0, internationalPrefixForFormatting);
     } else {
-      formatNumberByFormat(countryCode,
+      formatNumberByFormat(countryCallingCode,
                            PhoneNumberFormat.INTERNATIONAL,
                            formattedNumber);
     }
@@ -991,12 +1044,12 @@
    * passed in. If such information is missing, the number will be formatted into the NATIONAL
    * format by default.
    *
-   * @param number  the PhoneNumber that needs to be formatted in its original number format
-   * @param countryCallingFrom  the country whose IDD needs to be prefixed if the original number
+   * @param number  the phone number that needs to be formatted in its original number format
+   * @param regionCallingFrom  the region whose IDD needs to be prefixed if the original number
    *     has one
    * @return  the formatted phone number in its original number format
    */
-  public String formatInOriginalFormat(PhoneNumber number, String countryCallingFrom) {
+  public String formatInOriginalFormat(PhoneNumber number, String regionCallingFrom) {
     if (!number.hasCountryCodeSource()) {
       return format(number, PhoneNumberFormat.NATIONAL);
     }
@@ -1004,7 +1057,7 @@
       case FROM_NUMBER_WITH_PLUS_SIGN:
         return format(number, PhoneNumberFormat.INTERNATIONAL);
       case FROM_NUMBER_WITH_IDD:
-        return formatOutOfCountryCallingNumber(number, countryCallingFrom);
+        return formatOutOfCountryCallingNumber(number, regionCallingFrom);
       case FROM_NUMBER_WITHOUT_PLUS_SIGN:
         return format(number, PhoneNumberFormat.INTERNATIONAL).substring(1);
       case FROM_DEFAULT_COUNTRY:
@@ -1014,23 +1067,122 @@
   }
 
   /**
+   * Formats a phone number for out-of-country dialing purposes.
+   *
+   * Note that in this version, if the number was entered originally using alpha characters and
+   * this version of the number is stored in raw_input, this representation of the number will be
+   * used rather than the digit representation. Grouping information, as specified by characters
+   * such as "-" and " ", will be retained.
+   *
+   * <p><b>Caveats:</b></p>
+   * <ul>
+   *  <li> This will not produce good results if the country calling code is both present in the raw
+   *       input _and_ is the start of the national number. This is not a problem in the regions
+   *       which typically use alpha numbers.
+   *  <li> This will also not produce good results if the raw input has any grouping information
+   *       within the first three digits of the national number, and if the function needs to strip
+   *       preceding digits/words in the raw input before these digits. Normally people group the
+   *       first three digits together so this is not a huge problem - and will be fixed if it
+   *       proves to be so.
+   * </ul>
+   *
+   * @param number  the phone number that needs to be formatted
+   * @param regionCallingFrom  the region where the call is being placed
+   * @return  the formatted phone number
+   */
+  public String formatOutOfCountryKeepingAlphaChars(PhoneNumber number, String regionCallingFrom) {
+    String rawInput = number.getRawInput();
+    // If there is no raw input, then we can't keep alpha characters because there aren't any.
+    // In this case, we return formatOutOfCountryCallingNumber.
+    if (rawInput.length() == 0) {
+      return formatOutOfCountryCallingNumber(number, regionCallingFrom);
+    }
+    int countryCode = number.getCountryCode();
+    String regionCode = getRegionCodeForCountryCode(countryCode);
+    if (!hasValidRegionCode(regionCode, countryCode, rawInput)) {
+      return rawInput;
+    }
+    // Strip any prefix such as country calling code, IDD, that was present. We do this by comparing
+    // the number in raw_input with the parsed number.
+    // To do this, first we normalize punctuation. We retain number grouping symbols such as " "
+    // only.
+    rawInput = normalizeHelper(rawInput, ALL_PLUS_NUMBER_GROUPING_SYMBOLS, true);
+    // Now we trim everything before the first three digits in the parsed number. We choose three
+    // because all valid alpha numbers have 3 digits at the start - if it does not, then we don't
+    // trim anything at all. Similarly, if the national number was less than three digits, we don't
+    // trim anything at all.
+    String nationalNumber = getNationalSignificantNumber(number);
+    if (nationalNumber.length() > 3) {
+      int firstNationalNumberDigit = rawInput.indexOf(nationalNumber.substring(0, 3));
+      if (firstNationalNumberDigit != -1) {
+        rawInput = rawInput.substring(firstNationalNumberDigit);
+      }
+    }
+    PhoneMetadata metadata = getMetadataForRegion(regionCallingFrom);
+    if (countryCode == NANPA_COUNTRY_CODE) {
+      if (isNANPACountry(regionCallingFrom)) {
+        return countryCode + " " + rawInput;
+      }
+    } else if (countryCode == getCountryCodeForRegion(regionCallingFrom)) {
+      // Here we copy the formatting rules so we can modify the pattern we expect to match against.
+      List<NumberFormat> availableFormats =
+          new ArrayList<NumberFormat>(metadata.numberFormatSize());
+      for (NumberFormat format : metadata.numberFormats()) {
+        NumberFormat newFormat = new NumberFormat();
+        newFormat.mergeFrom(format);
+        // The first group is the first group of digits that the user determined.
+        newFormat.setPattern("(\\d+)(.*)");
+        // Here we just concatenate them back together after the national prefix has been fixed.
+        newFormat.setFormat("$1$2");
+        availableFormats.add(newFormat);
+      }
+      // Now we format using these patterns instead of the default pattern, but with the national
+      // prefix prefixed if necessary, by choosing the format rule based on the leading digits
+      // present in the unformatted national number.
+      // This will not work in the cases where the pattern (and not the leading digits) decide
+      // whether a national prefix needs to be used, since we have overridden the pattern to match
+      // anything, but that is not the case in the metadata to date.
+      return formatAccordingToFormats(rawInput, availableFormats, PhoneNumberFormat.NATIONAL);
+    }
+    String internationalPrefix = metadata.getInternationalPrefix();
+    // For countries that have multiple international prefixes, the international format of the
+    // number is returned, unless there is a preferred international prefix.
+    String internationalPrefixForFormatting =
+        UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches()
+        ? internationalPrefix
+        : metadata.getPreferredInternationalPrefix();
+    StringBuilder formattedNumber = new StringBuilder(rawInput);
+    maybeGetFormattedExtension(number, regionCode, PhoneNumberFormat.INTERNATIONAL,
+                               formattedNumber);
+    if (internationalPrefixForFormatting.length() > 0) {
+      formattedNumber.insert(0, " ").insert(0, countryCode).insert(0, " ")
+          .insert(0, internationalPrefixForFormatting);
+    } else {
+      formatNumberByFormat(countryCode,
+                           PhoneNumberFormat.INTERNATIONAL,
+                           formattedNumber);
+    }
+    return formattedNumber.toString();
+  }
+
+  /**
    * Gets the national significant number of the a phone number. Note a national significant number
    * doesn't contain a national prefix or any formatting.
    *
    * @param number  the PhoneNumber object for which the national significant number is needed
    * @return  the national significant number of the PhoneNumber object passed in
    */
-  public static String getNationalSignificantNumber(PhoneNumber number) {
+  public String getNationalSignificantNumber(PhoneNumber number) {
     // The leading zero in the national (significant) number of an Italian phone number has a
     // special meaning. Unlike the rest of the world, it indicates the number is a landline
     // number. There have been plans to migrate landline numbers to start with the digit two since
     // December 2000, but it has not yet happened.
     // See http://en.wikipedia.org/wiki/%2B39 for more details.
-    // Other countries such as Cote d'Ivoire and Gabon use this for their mobile numbers.
-    StringBuffer nationalNumber = new StringBuffer(
+    // Other regions such as Cote d'Ivoire and Gabon use this for their mobile numbers.
+    StringBuilder nationalNumber = new StringBuilder(
         (number.hasItalianLeadingZero() &&
          number.getItalianLeadingZero() &&
-         isLeadingZeroCountry(number.getCountryCode()))
+         isLeadingZeroPossible(number.getCountryCode()))
         ? "0" : ""
     );
     nationalNumber.append(number.getNationalNumber());
@@ -1040,15 +1192,18 @@
   /**
    * A helper function that is used by format and formatByPattern.
    */
-  private void formatNumberByFormat(int countryCode,
+  private void formatNumberByFormat(int countryCallingCode,
                                     PhoneNumberFormat numberFormat,
-                                    StringBuffer formattedNumber) {
+                                    StringBuilder formattedNumber) {
     switch (numberFormat) {
       case E164:
-        formattedNumber.insert(0, countryCode).insert(0, PLUS_SIGN);
+        formattedNumber.insert(0, countryCallingCode).insert(0, PLUS_SIGN);
         return;
       case INTERNATIONAL:
-        formattedNumber.insert(0, " ").insert(0, countryCode).insert(0, PLUS_SIGN);
+        formattedNumber.insert(0, " ").insert(0, countryCallingCode).insert(0, PLUS_SIGN);
+        return;
+      case RFC3966:
+        formattedNumber.insert(0, "-").insert(0, countryCallingCode) .insert(0, PLUS_SIGN);
         return;
       case NATIONAL:
       default:
@@ -1063,7 +1218,7 @@
     return formatNationalNumber(number, regionCode, numberFormat, null);
   }
 
-  // Note in some countries, the national number can be written in two completely different ways
+  // Note in some regions, the national number can be written in two completely different ways
   // depending on whether it forms part of the NATIONAL format or INTERNATIONAL format. The
   // numberFormat parameter here is used to specify which format to use for those cases. If a
   // carrierCode is specified, this will be inserted into the formatted string to replace $CC.
@@ -1072,14 +1227,20 @@
                                       PhoneNumberFormat numberFormat,
                                       String carrierCode) {
     PhoneMetadata metadata = getMetadataForRegion(regionCode);
-    List<NumberFormat> intlNumberFormats = metadata.getIntlNumberFormatList();
+    List<NumberFormat> intlNumberFormats = metadata.intlNumberFormats();
     // When the intlNumberFormats exists, we use that to format national number for the
     // INTERNATIONAL format instead of using the numberDesc.numberFormats.
     List<NumberFormat> availableFormats =
         (intlNumberFormats.size() == 0 || numberFormat == PhoneNumberFormat.NATIONAL)
-        ? metadata.getNumberFormatList()
-        : metadata.getIntlNumberFormatList();
-    return formatAccordingToFormats(number, availableFormats, numberFormat, carrierCode);
+        ? metadata.numberFormats()
+        : metadata.intlNumberFormats();
+    String formattedNationalNumber =
+        formatAccordingToFormats(number, availableFormats, numberFormat, carrierCode);
+    if (numberFormat == PhoneNumberFormat.RFC3966) {
+      formattedNationalNumber =
+          SEPARATOR_PATTERN.matcher(formattedNationalNumber).replaceAll("-");
+    }
+    return formattedNationalNumber;
   }
 
   // Simple wrapper of formatAccordingToFormats for the common case of no carrier code.
@@ -1096,7 +1257,7 @@
                                           PhoneNumberFormat numberFormat,
                                           String carrierCode) {
     for (NumberFormat numFormat : availableFormats) {
-      int size = numFormat.getLeadingDigitsPatternCount();
+      int size = numFormat.leadingDigitsPatternSize();
       if (size == 0 || regexCache.getPatternForRegex(
               // We always use the last leading_digits_pattern, as it is the most detailed.
               numFormat.getLeadingDigitsPattern(size - 1)).matcher(nationalNumber).lookingAt()) {
@@ -1136,11 +1297,11 @@
   }
 
   /**
-   * Gets a valid number for the specified country.
+   * Gets a valid number for the specified region.
    *
-   * @param regionCode  the ISO 3166-1 two-letter country code that denotes
-   *                    the country for which an example number is needed
-   * @return  a valid fixed-line number for the specified country. Returns null when the metadata
+   * @param regionCode  the ISO 3166-1 two-letter region code that denotes
+   *                    the region for which an example number is needed
+   * @return  a valid fixed-line number for the specified region. Returns null when the metadata
    *    does not contain such information.
    */
   public PhoneNumber getExampleNumber(String regionCode) {
@@ -1148,15 +1309,20 @@
   }
 
   /**
-   * Gets a valid number for the specified country and number type.
+   * Gets a valid number for the specified region and number type.
    *
-   * @param regionCode  the ISO 3166-1 two-letter country code that denotes
-   *                    the country for which an example number is needed
+   * @param regionCode  the ISO 3166-1 two-letter region code that denotes
+   *                    the region for which an example number is needed
    * @param type  the type of number that is needed
-   * @return  a valid number for the specified country and type. Returns null when the metadata
+   * @return  a valid number for the specified region and type. Returns null when the metadata
    *     does not contain such information.
    */
   public PhoneNumber getExampleNumberForType(String regionCode, PhoneNumberType type) {
+    // Check the region code is valid.
+    if (!isValidRegionCode(regionCode)) {
+      LOGGER.log(Level.WARNING, "Invalid or unknown region code provided.");
+      return null;
+    }
     PhoneNumberDesc desc = getNumberDescByType(getMetadataForRegion(regionCode), type);
     try {
       if (desc.hasExampleNumber()) {
@@ -1173,18 +1339,28 @@
    * an extension specified.
    */
   private void maybeGetFormattedExtension(PhoneNumber number, String regionCode,
-                                          StringBuffer formattedNumber) {
-    if (number.hasExtension()) {
-      // Formats the extension part of the phone number by prefixing it with the appropriate
-      // extension prefix. This will be the default extension prefix, unless overridden by a
-      // preferred extension prefix for this country.
-      PhoneMetadata metadata = getMetadataForRegion(regionCode);
-      if (metadata.hasPreferredExtnPrefix()) {
-        formattedNumber.append(metadata.getPreferredExtnPrefix());
+                                          PhoneNumberFormat numberFormat,
+                                          StringBuilder formattedNumber) {
+    if (number.hasExtension() && number.getExtension().length() > 0) {
+      if (numberFormat == PhoneNumberFormat.RFC3966) {
+        formattedNumber.append(RFC3966_EXTN_PREFIX).append(number.getExtension());
       } else {
-        formattedNumber.append(DEFAULT_EXTN_PREFIX);
+        formatExtension(number.getExtension(), regionCode, formattedNumber);
       }
-      formattedNumber.append(number.getExtension());
+    }
+  }
+
+  /**
+   * Formats the extension part of the phone number by prefixing it with the appropriate extension
+   * prefix. This will be the default extension prefix, unless overridden by a preferred
+   * extension prefix for this region.
+   */
+  private void formatExtension(String extensionDigits, String regionCode, StringBuilder extension) {
+    PhoneMetadata metadata = getMetadataForRegion(regionCode);
+    if (metadata.hasPreferredExtnPrefix()) {
+      extension.append(metadata.getPreferredExtnPrefix()).append(extensionDigits);
+    } else {
+      extension.append(DEFAULT_EXTN_PREFIX).append(extensionDigits);
     }
   }
 
@@ -1281,10 +1457,10 @@
       return null;
     }
     regionCode = regionCode.toUpperCase();
-    if (!countryToMetadataMap.containsKey(regionCode)) {
+    if (!regionToMetadataMap.containsKey(regionCode)) {
       loadMetadataForRegionFromFile(currentFilePrefix, regionCode);
     }
-    return countryToMetadataMap.get(regionCode);
+    return regionToMetadataMap.get(regionCode);
   }
 
   private boolean isNumberMatchingDesc(String nationalNumber, PhoneNumberDesc numberDesc) {
@@ -1312,14 +1488,14 @@
   /**
    * Tests whether a phone number is valid for a certain region. Note this doesn't verify the number
    * is actually in use, which is impossible to tell by just looking at a number itself. If the
-   * country code is not the same as the country code for the region, this immediately exits with
-   * false. After this, the specific number pattern rules for the region are examined. This is
-   * useful for determining for example whether a particular number is valid for Canada, rather than
-   * just a valid NANPA number.
+   * country calling code is not the same as the country calling code for the region, this
+   * immediately exits with false. After this, the specific number pattern rules for the region are
+   * examined. This is useful for determining for example whether a particular number is valid for
+   * Canada, rather than just a valid NANPA number.
    *
    * @param number       the phone number that we want to validate
-   * @param regionCode   the ISO 3166-1 two-letter country code that denotes
-   *                     the region/country that we want to validate the phone number for
+   * @param regionCode   the ISO 3166-1 two-letter region code that denotes the region that we want
+   *                     to validate the phone number for
    * @return  a boolean that indicates whether the number is of a valid pattern
    */
   public boolean isValidNumberForRegion(PhoneNumber number, String regionCode) {
@@ -1330,8 +1506,8 @@
     PhoneNumberDesc generalNumDesc = metadata.getGeneralDesc();
     String nationalSignificantNumber = getNationalSignificantNumber(number);
 
-    // For countries where we don't have metadata for PhoneNumberDesc, we treat any number passed
-    // in as a valid number if its national significant number is between the minimum and maximum
+    // For regions where we don't have metadata for PhoneNumberDesc, we treat any number passed in
+    // as a valid number if its national significant number is between the minimum and maximum
     // lengths defined by ITU for a national significant number.
     if (!generalNumDesc.hasNationalNumberPattern()) {
       int numberLength = nationalSignificantNumber.length();
@@ -1341,16 +1517,16 @@
   }
 
   /**
-   * Returns the country/region where a phone number is from. This could be used for geo-coding in
-   * the country/region level.
+   * Returns the region where a phone number is from. This could be used for geocoding at the region
+   * level.
    *
    * @param number  the phone number whose origin we want to know
-   * @return  the country/region where the phone number is from, or null if no country matches this
-   *     calling code.
+   * @return  the region where the phone number is from, or null if no region matches this calling
+   *     code
    */
   public String getRegionCodeForNumber(PhoneNumber number) {
     int countryCode = number.getCountryCode();
-    List<String> regions = countryCodeToRegionCodeMap.get(countryCode);
+    List<String> regions = countryCallingCodeToRegionCodeMap.get(countryCode);
     if (regions == null) {
       return null;
     }
@@ -1363,7 +1539,7 @@
 
   private String getRegionCodeForNumberFromRegionList(PhoneNumber number,
                                                       List<String> regionCodes) {
-    String nationalNumber = String.valueOf(number.getNationalNumber());
+    String nationalNumber = getNationalSignificantNumber(number);
     for (String regionCode : regionCodes) {
       // If leadingDigits is present, use this. Otherwise, do full validation.
       PhoneMetadata metadata = getMetadataForRegion(regionCode);
@@ -1380,12 +1556,12 @@
   }
 
   /**
-   * Returns the region code that matches the specific country code. In the case of no region code
-   * being found, ZZ will be returned. In the case of multiple regions, the one designated in the
-   * metadata as the "main" country for this calling code will be returned.
+   * Returns the region code that matches the specific country calling code. In the case of no
+   * region code being found, ZZ will be returned. In the case of multiple regions, the one
+   * designated in the metadata as the "main" region for this calling code will be returned.
    */
-  public String getRegionCodeForCountryCode(int countryCode) {
-    List<String> regionCodes = countryCodeToRegionCodeMap.get(countryCode);
+  public String getRegionCodeForCountryCode(int countryCallingCode) {
+    List<String> regionCodes = countryCallingCodeToRegionCodeMap.get(countryCallingCode);
     return regionCodes == null ? UNKNOWN_REGION : regionCodes.get(0);
   }
 
@@ -1393,18 +1569,15 @@
    * Returns the country calling code for a specific region. For example, this would be 1 for the
    * United States, and 64 for New Zealand.
    *
-   * @param regionCode  the ISO 3166-1 two-letter country code that denotes
-   *                    the country/region that we want to get the country code for
-   * @return  the country calling code for the country/region denoted by regionCode
+   * @param regionCode  the ISO 3166-1 two-letter region code that denotes
+   *                    the region that we want to get the country calling code for
+   * @return  the country calling code for the region denoted by regionCode
    */
   public int getCountryCodeForRegion(String regionCode) {
     if (!isValidRegionCode(regionCode)) {
       return 0;
     }
     PhoneMetadata metadata = getMetadataForRegion(regionCode);
-    if (metadata == null) {
-      return 0;
-    }
     return metadata.getCountryCode();
   }
 
@@ -1414,25 +1587,21 @@
    * (which indicates a wait for a dialling tone) from the prefix returned. If no national prefix is
    * present, we return null.
    *
-   * Warning: Do not use this method for do-your-own formatting - for some countries, the national
-   * dialling prefix is used only for certain types of numbers. Use the library's formatting
-   * functions to prefix the national prefix when required.
+   * <p>Warning: Do not use this method for do-your-own formatting - for some regions, the
+   * national dialling prefix is used only for certain types of numbers. Use the library's
+   * formatting functions to prefix the national prefix when required.
    *
-   * @param regionCode  the ISO 3166-1 two-letter country code that denotes
-   *                    the country/region that we want to get the dialling prefix for
+   * @param regionCode  the ISO 3166-1 two-letter region code that denotes
+   *                    the region that we want to get the dialling prefix for
    * @param stripNonDigits  true to strip non-digits from the national dialling prefix
-   * @return  the dialling prefix for the country/region denoted by regionCode
+   * @return  the dialling prefix for the region denoted by regionCode
    */
   public String getNddPrefixForRegion(String regionCode, boolean stripNonDigits) {
     if (!isValidRegionCode(regionCode)) {
-      LOGGER.log(Level.SEVERE, "Invalid or missing country code provided.");
+      LOGGER.log(Level.SEVERE, "Invalid or missing region code provided.");
       return null;
     }
     PhoneMetadata metadata = getMetadataForRegion(regionCode);
-    if (metadata == null) {
-      LOGGER.log(Level.SEVERE, "Unsupported country code provided.");
-      return null;
-    }
     String nationalPrefix = metadata.getNationalPrefix();
     // If no national prefix was found, we return null.
     if (nationalPrefix.length() == 0) {
@@ -1447,26 +1616,51 @@
   }
 
   /**
-   * Check if a country is one of the countries under the North American Numbering Plan
-   * Administration (NANPA).
+   * Checks if this is a region under the North American Numbering Plan Administration (NANPA).
    *
-   * @return  true if regionCode is one of the countries under NANPA
+   * @return  true if regionCode is one of the regions under NANPA
    */
   public boolean isNANPACountry(String regionCode) {
-    return regionCode != null && nanpaCountries.contains(regionCode.toUpperCase());
+    return regionCode != null && nanpaRegions.contains(regionCode.toUpperCase());
   }
 
   /**
-   * Check whether countryCode represents the country calling code from a country whose national
-   * significant number could contain a leading zero. An example of such a country is Italy.
+   * Checks whether countryCode represents the country calling code from a region whose national
+   * significant number could contain a leading zero. An example of such a region is Italy. Returns
+   * false if no metadata for the country is found.
    */
-  public static boolean isLeadingZeroCountry(int countryCode) {
-    return LEADING_ZERO_COUNTRIES.contains(countryCode);
+  boolean isLeadingZeroPossible(int countryCallingCode) {
+    PhoneMetadata mainMetadataForCallingCode = getMetadataForRegion(
+        getRegionCodeForCountryCode(countryCallingCode));
+    if (mainMetadataForCallingCode == null) {
+      return false;
+    }
+    return mainMetadataForCallingCode.isLeadingZeroPossible();
   }
 
   /**
-   * Convenience wrapper around isPossibleNumberWithReason. Instead of returning the reason for
-   * failure, this method returns a boolean value.
+   * Checks if the number is a valid vanity (alpha) number such as 800 MICROSOFT. A valid vanity
+   * number will start with at least 3 digits and will have three or more alpha characters. This
+   * does not do region-specific checks - to work out if this number is actually valid for a region,
+   * it should be parsed and methods such as {@link #isPossibleNumberWithReason} and
+   * {@link #isValidNumber} should be used.
+   *
+   * @param number  the number that needs to be checked
+   * @return  true if the number is a valid vanity number
+   */
+  public boolean isAlphaNumber(String number) {
+    if (!isViablePhoneNumber(number)) {
+      // Number is too short, or doesn't match the basic phone number pattern.
+      return false;
+    }
+    StringBuilder strippedNumber = new StringBuilder(number);
+    maybeStripExtension(strippedNumber);
+    return VALID_ALPHA_PHONE_PATTERN.matcher(strippedNumber).matches();
+  }
+
+  /**
+   * Convenience wrapper around {@link #isPossibleNumberWithReason}. Instead of returning the reason
+   * for failure, this method returns a boolean value.
    * @param number  the number that needs to be checked
    * @return  true if the number is possible
    */
@@ -1475,14 +1669,33 @@
   }
 
   /**
+   * Helper method to check a number against a particular pattern and determine whether it matches,
+   * or is too short or too long. Currently, if a number pattern suggests that numbers of length 7
+   * and 10 are possible, and a number in between these possible lengths is entered, such as of
+   * length 8, this will return TOO_LONG.
+   */
+  private ValidationResult testNumberLengthAgainstPattern(Pattern numberPattern, String number) {
+    Matcher numberMatcher = numberPattern.matcher(number);
+    if (numberMatcher.matches()) {
+      return ValidationResult.IS_POSSIBLE;
+    }
+    if (numberMatcher.lookingAt()) {
+      return ValidationResult.TOO_LONG;
+    } else {
+      return ValidationResult.TOO_SHORT;
+    }
+  }
+
+  /**
    * Check whether a phone number is a possible number. It provides a more lenient check than
-   * isValidNumber in the following sense:
-   *   1. It only checks the length of phone numbers. In particular, it doesn't check starting
+   * {@link #isValidNumber} in the following sense:
+   *<ol>
+   * <li> It only checks the length of phone numbers. In particular, it doesn't check starting
    *      digits of the number.
-   *   2. It doesn't attempt to figure out the type of the number, but uses general rules which
-   *      applies to all types of phone numbers in a country. Therefore, it is much faster than
+   * <li> It doesn't attempt to figure out the type of the number, but uses general rules which
+   *      applies to all types of phone numbers in a region. Therefore, it is much faster than
    *      isValidNumber.
-   *   3. For fixed line numbers, many countries have the concept of area code, which together with
+   * <li> For fixed line numbers, many regions have the concept of area code, which together with
    *      subscriber number constitute the national significant number. It is sometimes okay to dial
    *      the subscriber number only when dialing in the same area. This function will return
    *      true if the subscriber-number-only version is passed in. On the other hand, because
@@ -1490,21 +1703,21 @@
    *      numbers, that would most likely be area codes) and length (obviously includes the
    *      length of area codes for fixed line numbers), it will return false for the
    *      subscriber-number-only version.
-   *
+   * </ol
    * @param number  the number that needs to be checked
    * @return  a ValidationResult object which indicates whether the number is possible
    */
   public ValidationResult isPossibleNumberWithReason(PhoneNumber number) {
+    String nationalNumber = getNationalSignificantNumber(number);
     int countryCode = number.getCountryCode();
     // Note: For Russian Fed and NANPA numbers, we just use the rules from the default region (US or
     // Russia) since the getRegionCodeForNumber will not work if the number is possible but not
     // valid. This would need to be revisited if the possible number pattern ever differed between
-    // various countries within those plans.
+    // various regions within those plans.
     String regionCode = getRegionCodeForCountryCode(countryCode);
     if (!isValidRegionCode(regionCode)) {
       return ValidationResult.INVALID_COUNTRY_CODE;
     }
-    String nationalNumber = getNationalSignificantNumber(number);
     PhoneNumberDesc generalNumDesc = getMetadataForRegion(regionCode).getGeneralDesc();
     // Handling case of numbers with no metadata.
     if (!generalNumDesc.hasNationalNumberPattern()) {
@@ -1518,39 +1731,34 @@
         return ValidationResult.IS_POSSIBLE;
       }
     }
-    String possibleNumberPattern = generalNumDesc.getPossibleNumberPattern();
-    Matcher m = regexCache.getPatternForRegex(possibleNumberPattern).matcher(nationalNumber);
-    if (m.lookingAt()) {
-      return (m.end() == nationalNumber.length()) ? ValidationResult.IS_POSSIBLE
-                                                  : ValidationResult.TOO_LONG;
-    } else {
-      return ValidationResult.TOO_SHORT;
-    }
+    Pattern possibleNumberPattern =
+        regexCache.getPatternForRegex(generalNumDesc.getPossibleNumberPattern());
+    return testNumberLengthAgainstPattern(possibleNumberPattern, nationalNumber);
   }
 
   /**
    * Check whether a phone number is a possible number given a number in the form of a string, and
-   * the country where the number could be dialed from. It provides a more lenient check than
-   * isValidNumber. See isPossibleNumber(PhoneNumber number) for details.
+   * the region where the number could be dialed from. It provides a more lenient check than
+   * {@link #isValidNumber}. See {@link #isPossibleNumber(PhoneNumber)} for details.
    *
-   * This method first parses the number, then invokes isPossibleNumber(PhoneNumber number) with the
-   * resultant PhoneNumber object.
+   * <p>This method first parses the number, then invokes {@link #isPossibleNumber(PhoneNumber
+   * number)} with the resultant PhoneNumber object.
    *
    * @param number  the number that needs to be checked, in the form of a string
-   * @param countryDialingFrom  the ISO 3166-1 two-letter country code that denotes
-   *     the country that we are expecting the number to be dialed from.
-   *     Note this is different from the country where the number belongs. For example, the number
-   *     +1 650 253 0000 is a number that belongs to US. When written in this form, it could be
-   *     dialed from any country. When it is written as 00 1 650 253 0000, it could be dialed from
-   *     any country which uses an international dialling prefix of 00. When it is written as 650
-   *     253 0000, it could only be dialed from within the US, and when written as 253 0000, it
-   *     could only be dialed from within a smaller area in the US (Mountain View, CA, to be more
+   * @param regionDialingFrom  the ISO 3166-1 two-letter region code that denotes the region that
+   *     we are expecting the number to be dialed from.
+   *     Note this is different from the region where the number belongs.  For example, the number
+   *     +1 650 253 0000 is a number that belongs to US. When written in this form, it can be
+   *     dialed from any region. When it is written as 00 1 650 253 0000, it can be dialed from any
+   *     region which uses an international dialling prefix of 00. When it is written as
+   *     650 253 0000, it can only be dialed from within the US, and when written as 253 0000, it
+   *     can only be dialed from within a smaller area in the US (Mountain View, CA, to be more
    *     specific).
    * @return  true if the number is possible
    */
-  public boolean isPossibleNumber(String number, String countryDialingFrom) {
+  public boolean isPossibleNumber(String number, String regionDialingFrom) {
     try {
-      return isPossibleNumber(parse(number, countryDialingFrom));
+      return isPossibleNumber(parse(number, regionDialingFrom));
     } catch (NumberParseException e) {
       return false;
     }
@@ -1583,27 +1791,28 @@
   }
 
   /**
-   * Gets an AsYouTypeFormatter for the specific country.
+   * Gets an {@link com.google.i18n.phonenumbers.AsYouTypeFormatter} for the specific region.
    *
-   * @param regionCode  the ISO 3166-1 two-letter country code that denotes the
-   *     country/region where the phone number is being entered
+   * @param regionCode  the ISO 3166-1 two-letter region code that denotes the region where
+   *     the phone number is being entered
    *
-   * @return  an AsYouTypeFormatter object, which could be used to format phone numbers in the
-   *     specific country "as you type"
+   * @return  an {@link com.google.i18n.phonenumbers.AsYouTypeFormatter} object, which can be used
+   *     to format phone numbers in the specific region "as you type"
    */
   public AsYouTypeFormatter getAsYouTypeFormatter(String regionCode) {
     return new AsYouTypeFormatter(regionCode);
   }
 
-  // Extracts country code from fullNumber, returns it and places the remaining number in
+  // Extracts country calling code from fullNumber, returns it and places the remaining number in
   // nationalNumber. It assumes that the leading plus sign or IDD has already been removed. Returns
-  // 0 if fullNumber doesn't start with a valid country code, and leaves nationalNumber unmodified.
-  int extractCountryCode(StringBuffer fullNumber, StringBuffer nationalNumber) {
+  // 0 if fullNumber doesn't start with a valid country calling code, and leaves nationalNumber
+  // unmodified.
+  int extractCountryCode(StringBuilder fullNumber, StringBuilder nationalNumber) {
     int potentialCountryCode;
     int numberLength = fullNumber.length();
     for (int i = 1; i <= MAX_LENGTH_COUNTRY_CODE && i <= numberLength; i++) {
       potentialCountryCode = Integer.parseInt(fullNumber.substring(0, i));
-      if (countryCodeToRegionCodeMap.containsKey(potentialCountryCode)) {
+      if (countryCallingCodeToRegionCodeMap.containsKey(potentialCountryCode)) {
         nationalNumber.append(fullNumber.substring(i));
         return potentialCountryCode;
       }
@@ -1612,41 +1821,44 @@
   }
 
   /**
-   * Tries to extract a country code from a number. This method will return zero if no country code
-   * is considered to be present. Country codes are extracted in the following ways:
-   *     - by stripping the international dialing prefix of the country the person is dialing from,
+   * Tries to extract a country calling code from a number. This method will return zero if no
+   * country calling code is considered to be present. Country calling codes are extracted in the
+   * following ways:
+   * <ul>
+   *  <li> by stripping the international dialing prefix of the region the person is dialing from,
    *       if this is present in the number, and looking at the next digits
-   *     - by stripping the '+' sign if present and then looking at the next digits
-   *     - by comparing the start of the number and the country code of the default region. If the
-   *       number is not considered possible for the numbering plan of the default region initially,
-   *       but starts with the country code of this region, validation will be reattempted after
-   *       stripping this country code. If this number is considered a possible number, then the
-   *       first digits will be considered the country code and removed as such.
+   *  <li> by stripping the '+' sign if present and then looking at the next digits
+   *  <li> by comparing the start of the number and the country calling code of the default region.
+   *       If the number is not considered possible for the numbering plan of the default region
+   *       initially, but starts with the country calling code of this region, validation will be
+   *       reattempted after stripping this country calling code. If this number is considered a
+   *       possible number, then the first digits will be considered the country calling code and
+   *       removed as such.
+   * </ul>
+   * It will throw a NumberParseException if the number starts with a '+' but the country calling
+   * code supplied after this does not match that of any known region.
    *
-   * It will throw a NumberParseException if the number starts with a '+' but the country code
-   * supplied after this does not match that of any known country.
-   *
-   * @param number  non-normalized telephone number that we wish to extract a country
+   * @param number  non-normalized telephone number that we wish to extract a country calling
    *     code from - may begin with '+'
    * @param defaultRegionMetadata  metadata about the region this number may be from
    * @param nationalNumber  a string buffer to store the national significant number in, in the case
-   *     that a country code was extracted. The number is appended to any existing contents. If no
-   *     country code was extracted, this will be left unchanged.
+   *     that a country calling code was extracted. The number is appended to any existing contents.
+   *     If no country calling code was extracted, this will be left unchanged.
    * @param keepRawInput  true if the country_code_source and preferred_carrier_code fields of
    *     phoneNumber should be populated.
-   * @param phoneNumber  the PhoneNumber object that needs to be populated with country code and
-   *     country code source. Note the country code is always populated, whereas country code source
-   *     is only populated when keepCountryCodeSource is true.
-   * @return  the country code extracted or 0 if none could be extracted
+   * @param phoneNumber  the PhoneNumber object where the country_code and country_code_source need
+   *     to be populated. Note the country_code is always populated, whereas country_code_source is
+   *     only populated when keepCountryCodeSource is true.
+   * @return  the country calling code extracted or 0 if none could be extracted
    */
   int maybeExtractCountryCode(String number, PhoneMetadata defaultRegionMetadata,
-                              StringBuffer nationalNumber, boolean keepRawInput,
+                              StringBuilder nationalNumber, boolean keepRawInput,
                               PhoneNumber phoneNumber)
       throws NumberParseException {
     if (number.length() == 0) {
       return 0;
     }
-    StringBuffer fullNumber = new StringBuffer(number);
+    StringBuilder fullNumber = new StringBuilder(number);
     // Set the default prefix to be something that will never match.
     String possibleCountryIddPrefix = "NonMatch";
     if (defaultRegionMetadata != null) {
@@ -1670,44 +1882,43 @@
         return potentialCountryCode;
       }
 
-      // If this fails, they must be using a strange country code that we don't recognize, or
-      // that doesn't exist.
+      // If this fails, they must be using a strange country calling code that we don't recognize,
+      // or that doesn't exist.
       throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
-                                     "Country code supplied was not recognised.");
+                                     "Country calling code supplied was not recognised.");
     } else if (defaultRegionMetadata != null) {
-      // Check to see if the number is valid for the default region already. If not, we check to
-      // see if the country code for the default region is present at the start of the number.
-      PhoneNumberDesc generalDesc = defaultRegionMetadata.getGeneralDesc();
-      Pattern validNumberPattern =
-          regexCache.getPatternForRegex(generalDesc.getNationalNumberPattern());
-      if (!validNumberPattern.matcher(fullNumber).matches()) {
-        int defaultCountryCode = defaultRegionMetadata.getCountryCode();
-        String defaultCountryCodeString = String.valueOf(defaultCountryCode);
-        String normalizedNumber = fullNumber.toString();
-        if (normalizedNumber.startsWith(defaultCountryCodeString)) {
-          // If so, strip this, and see if the resultant number is valid.
-          StringBuffer potentialNationalNumber =
-              new StringBuffer(normalizedNumber.substring(defaultCountryCodeString.length()));
-          maybeStripNationalPrefixAndCarrierCode(potentialNationalNumber, defaultRegionMetadata);
-          Matcher possibleNumberMatcher =
-              regexCache.getPatternForRegex(generalDesc.getPossibleNumberPattern()).matcher(
-                  potentialNationalNumber);
-          // If the resultant number is either valid, or still too long even with the country code
-          // stripped, we consider this a better result and keep the potential national number.
-          if (validNumberPattern.matcher(potentialNationalNumber).matches() ||
-              (possibleNumberMatcher.lookingAt() &&
-               possibleNumberMatcher.end() != potentialNationalNumber.length())) {
-            nationalNumber.append(potentialNationalNumber);
-            if (keepRawInput) {
-              phoneNumber.setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN);
-            }
-            phoneNumber.setCountryCode(defaultCountryCode);
-            return defaultCountryCode;
+      // Check to see if the number starts with the country calling code for the default region. If
+      // so, we remove the country calling code, and do some checks on the validity of the number
+      // before and after.
+      int defaultCountryCode = defaultRegionMetadata.getCountryCode();
+      String defaultCountryCodeString = String.valueOf(defaultCountryCode);
+      String normalizedNumber = fullNumber.toString();
+      if (normalizedNumber.startsWith(defaultCountryCodeString)) {
+        StringBuilder potentialNationalNumber =
+            new StringBuilder(normalizedNumber.substring(defaultCountryCodeString.length()));
+        PhoneNumberDesc generalDesc = defaultRegionMetadata.getGeneralDesc();
+        Pattern validNumberPattern =
+            regexCache.getPatternForRegex(generalDesc.getNationalNumberPattern());
+        maybeStripNationalPrefixAndCarrierCode(potentialNationalNumber, defaultRegionMetadata);
+        Pattern possibleNumberPattern =
+            regexCache.getPatternForRegex(generalDesc.getPossibleNumberPattern());
+        // If the number was not valid before but is valid now, or if it was too long before, we
+        // consider the number with the country calling code stripped to be a better result and
+        // keep that instead.
+        if ((!validNumberPattern.matcher(fullNumber).matches() &&
+             validNumberPattern.matcher(potentialNationalNumber).matches()) ||
+             testNumberLengthAgainstPattern(possibleNumberPattern, fullNumber.toString())
+                  == ValidationResult.TOO_LONG) {
+          nationalNumber.append(potentialNationalNumber);
+          if (keepRawInput) {
+            phoneNumber.setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN);
           }
+          phoneNumber.setCountryCode(defaultCountryCode);
+          return defaultCountryCode;
         }
       }
     }
-    // No country code present.
+    // No country calling code present.
     phoneNumber.setCountryCode(0);
     return 0;
   }
@@ -1716,12 +1927,12 @@
    * Strips the IDD from the start of the number if present. Helper function used by
    * maybeStripInternationalPrefixAndNormalize.
    */
-  private boolean parsePrefixAsIdd(Pattern iddPattern, StringBuffer number) {
+  private boolean parsePrefixAsIdd(Pattern iddPattern, StringBuilder number) {
     Matcher m = iddPattern.matcher(number);
     if (m.lookingAt()) {
       int matchEnd = m.end();
-      // Only strip this if the first digit after the match is not a 0, since country codes cannot
-      // begin with 0.
+      // Only strip this if the first digit after the match is not a 0, since country calling codes
+      // cannot begin with 0.
       Matcher digitMatcher = CAPTURING_DIGIT_PATTERN.matcher(number.substring(matchEnd));
       if (digitMatcher.find()) {
         String normalizedGroup = normalizeHelper(digitMatcher.group(1), DIGIT_MAPPINGS, true);
@@ -1741,14 +1952,14 @@
    *
    * @param number  the non-normalized telephone number that we wish to strip any international
    *     dialing prefix from.
-   * @param possibleIddPrefix  the international direct dialing prefix from the country we
+   * @param possibleIddPrefix  the international direct dialing prefix from the region we
    *     think this number may be dialed in
    * @return  the corresponding CountryCodeSource if an international dialing prefix could be
-   *          removed from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if the
-   *          number did not seem to be in international format.
+   *     removed from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if the number did
+   *     not seem to be in international format.
    */
   CountryCodeSource maybeStripInternationalPrefixAndNormalize(
-      StringBuffer number,
+      StringBuilder number,
       String possibleIddPrefix) {
     if (number.length() == 0) {
       return CountryCodeSource.FROM_DEFAULT_COUNTRY;
@@ -1781,10 +1992,10 @@
    *
    * @param number  the normalized telephone number that we wish to strip any national
    *     dialing prefix from
-   * @param metadata  the metadata for the country that we think this number is from
+   * @param metadata  the metadata for the region that we think this number is from
    * @return the carrier code extracted if it is present, otherwise return an empty string.
    */
-  String maybeStripNationalPrefixAndCarrierCode(StringBuffer number, PhoneMetadata metadata) {
+  String maybeStripNationalPrefixAndCarrierCode(StringBuilder number, PhoneMetadata metadata) {
     String carrierCode = "";
     int numberLength = number.length();
     String possibleNationalPrefix = metadata.getNationalPrefixForParsing();
@@ -1816,7 +2027,7 @@
       } else {
         // Check that the resultant number is viable. If not, return. Check this by copying the
         // string buffer and making the transformation on the copy first.
-        StringBuffer transformedNumber = new StringBuffer(number);
+        StringBuilder transformedNumber = new StringBuilder(number);
         transformedNumber.replace(0, numberLength, prefixMatcher.replaceFirst(transformRule));
         Matcher nationalNumber = nationalNumberRule.matcher(transformedNumber.toString());
         if (!nationalNumber.matches()) {
@@ -1838,7 +2049,7 @@
    * @param number  the non-normalized telephone number that we wish to strip the extension from
    * @return        the phone extension
    */
-  String maybeStripExtension(StringBuffer number) {
+  String maybeStripExtension(StringBuilder number) {
     Matcher m = EXTN_PATTERN.matcher(number);
     // If we find a potential extension, and the number preceding this is a viable number, we assume
     // it is an extension.
@@ -1859,12 +2070,12 @@
 
   /**
    * Checks to see that the region code used is valid, or if it is not valid, that the number to
-   * parse starts with a + symbol so that we can attempt to infer the country from the number.
+   * parse starts with a + symbol so that we can attempt to infer the region from the number.
    * Returns false if it cannot use the region provided and the region cannot be inferred.
    */
-  private boolean checkRegionForParsing(String numberToParse, String defaultCountry) {
-    if (!isValidRegionCode(defaultCountry)) {
-      // If the number is null or empty, we can't guess the country code.
+  private boolean checkRegionForParsing(String numberToParse, String defaultRegion) {
+    if (!isValidRegionCode(defaultRegion)) {
+      // If the number is null or empty, we can't infer the region.
       if (numberToParse == null || numberToParse.length() == 0 ||
           !PLUS_CHARS_PATTERN.matcher(numberToParse).lookingAt()) {
         return false;
@@ -1875,95 +2086,95 @@
 
   /**
    * Parses a string and returns it in proto buffer format. This method will throw a
-   * NumberParseException exception if the number is not considered to be a possible number. Note
-   * that validation of whether the number is actually a valid number for a particular
-   * country/region is not performed. This can be done separately with isValidNumber.
+   * {@link com.google.i18n.phonenumbers.NumberParseException} if the number is not considered to be
+   * a possible number. Note that validation of whether the number is actually a valid number for a
+   * particular region is not performed. This can be done separately with {@link #isValidNumber}.
    *
    * @param numberToParse     number that we are attempting to parse. This can contain formatting
    *                          such as +, ( and -, as well as a phone number extension.
-   * @param defaultCountry    the ISO 3166-1 two-letter country code that denotes the
-   *                          country that we are expecting the number to be from. This is only used
-   *                          if the number being parsed is not written in international format.
-   *                          The country code for the number in this case would be stored as that
-   *                          of the default country supplied. If the number is guaranteed to
-   *                          start with a '+' followed by the country code, then "ZZ" or
+   * @param defaultRegion     the ISO 3166-1 two-letter region code that denotes the region that we
+   *                          are expecting the number to be from. This is only used if the number
+   *                          being parsed is not written in international format.
+   *                          The country_code for the number in this case would be stored as that
+   *                          of the default region supplied. If the number is guaranteed to
+   *                          start with a '+' followed by the country calling code, then "ZZ" or
    *                          null can be supplied.
    * @return                  a phone number proto buffer filled with the parsed number
    * @throws NumberParseException  if the string is not considered to be a viable phone number or if
-   *                               no default country was supplied and the number is not in
+   *                               no default region was supplied and the number is not in
    *                               international format (does not start with +)
    */
-  public PhoneNumber parse(String numberToParse, String defaultCountry)
+  public PhoneNumber parse(String numberToParse, String defaultRegion)
       throws NumberParseException {
     PhoneNumber phoneNumber = new PhoneNumber();
-    parse(numberToParse, defaultCountry, phoneNumber);
+    parse(numberToParse, defaultRegion, phoneNumber);
     return phoneNumber;
   }
 
   // Same as parse(String, String), but accepts mutable PhoneNumber as a parameter to
   // decrease object creation when invoked many times.
-  public void parse(String numberToParse, String defaultCountry, PhoneNumber phoneNumber)
+  public void parse(String numberToParse, String defaultRegion, PhoneNumber phoneNumber)
       throws NumberParseException {
-    parseHelper(numberToParse, defaultCountry, false, true, phoneNumber);
+    parseHelper(numberToParse, defaultRegion, false, true, phoneNumber);
   }
 
   /**
-   * Parses a string and returns it in proto buffer format. This method differs from parse() in that
-   * it always populates the raw_input field of the protocol buffer with numberToParse as well as
-   * the country_code_source field.
+   * Parses a string and returns it in proto buffer format. This method differs from {@link #parse}
+   * in that it always populates the raw_input field of the protocol buffer with numberToParse as
+   * well as the country_code_source field.
    *
    * @param numberToParse     number that we are attempting to parse. This can contain formatting
    *                          such as +, ( and -, as well as a phone number extension.
-   * @param defaultCountry    the ISO 3166-1 two-letter country code that denotes the country that
+   * @param defaultRegion     the ISO 3166-1 two-letter region code that denotes the region that
    *                          we are expecting the number to be from. This is only used if the
    *                          number being parsed is not written in international format. The
-   *                          country code for the number in this case would be stored as that of
-   *                          the default country supplied.
+   *                          country calling code for the number in this case would be stored as
+   *                          that of the default region supplied.
    * @return                  a phone number proto buffer filled with the parsed number
    * @throws NumberParseException  if the string is not considered to be a viable phone number or if
-   *                               no default country was supplied
+   *                               no default region was supplied
    */
-  public PhoneNumber parseAndKeepRawInput(String numberToParse, String defaultCountry)
+  public PhoneNumber parseAndKeepRawInput(String numberToParse, String defaultRegion)
       throws NumberParseException {
     PhoneNumber phoneNumber = new PhoneNumber();
-    parseAndKeepRawInput(numberToParse, defaultCountry, phoneNumber);
+    parseAndKeepRawInput(numberToParse, defaultRegion, phoneNumber);
     return phoneNumber;
   }
 
   // Same as parseAndKeepRawInput(String, String), but accepts mutable PhoneNumber as a parameter to
   // decrease object creation when invoked many times.
-  public void parseAndKeepRawInput(String numberToParse, String defaultCountry,
+  public void parseAndKeepRawInput(String numberToParse, String defaultRegion,
                                    PhoneNumber phoneNumber)
       throws NumberParseException {
-    parseHelper(numberToParse, defaultCountry, true, true, phoneNumber);
+    parseHelper(numberToParse, defaultRegion, true, true, phoneNumber);
   }
 
   /**
    * Returns an iterable over all {@link PhoneNumberMatch PhoneNumberMatches} in {@code text}. This
    * is a shortcut for {@link #findNumbers(CharSequence, String, Leniency, long)
-   * getMatcher(text, defaultCountry, Leniency.VALID, Long.MAX_VALUE)}.
+   * getMatcher(text, defaultRegion, Leniency.VALID, Long.MAX_VALUE)}.
    *
    * @param text              the text to search for phone numbers, null for no text
-   * @param defaultCountry    the ISO 3166-1 two-letter country code that denotes the country that
+   * @param defaultRegion     the ISO 3166-1 two-letter region code that denotes the region that
    *                          we are expecting the number to be from. This is only used if the
    *                          number being parsed is not written in international format. The
-   *                          country code for the number in this case would be stored as that of
-   *                          the default country supplied. May be null if only international
+   *                          country calling code for the number in this case would be stored as
+   *                          that of the default region supplied. May be null if only international
    *                          numbers are expected.
    */
-  public Iterable<PhoneNumberMatch> findNumbers(CharSequence text, String defaultCountry) {
-    return findNumbers(text, defaultCountry, Leniency.VALID, Long.MAX_VALUE);
+  public Iterable<PhoneNumberMatch> findNumbers(CharSequence text, String defaultRegion) {
+    return findNumbers(text, defaultRegion, Leniency.VALID, Long.MAX_VALUE);
   }
 
   /**
    * Returns an iterable over all {@link PhoneNumberMatch PhoneNumberMatches} in {@code text}.
    *
    * @param text              the text to search for phone numbers, null for no text
-   * @param defaultCountry    the ISO 3166-1 two-letter country code that denotes the country that
+   * @param defaultRegion    the ISO 3166-1 two-letter region code that denotes the region that
    *                          we are expecting the number to be from. This is only used if the
    *                          number being parsed is not written in international format. The
-   *                          country code for the number in this case would be stored as that of
-   *                          the default country supplied. May be null if only international
+   *                          country calling code for the number in this case would be stored as
+   *                          that of the default region supplied. May be null if only international
    *                          numbers are expected.
    * @param leniency          the leniency to use when evaluating candidate phone numbers
    * @param maxTries          the maximum number of invalid numbers to try before giving up on the
@@ -1971,24 +2182,24 @@
    *                          false positives in it. Must be {@code >= 0}.
    */
   public Iterable<PhoneNumberMatch> findNumbers(
-      final CharSequence text, final String defaultCountry, final Leniency leniency,
+      final CharSequence text, final String defaultRegion, final Leniency leniency,
       final long maxTries) {
 
     return new Iterable<PhoneNumberMatch>() {
       public Iterator<PhoneNumberMatch> iterator() {
         return new PhoneNumberMatcher(
-            PhoneNumberUtil.this, text, defaultCountry, leniency, maxTries);
+            PhoneNumberUtil.this, text, defaultRegion, leniency, maxTries);
       }
     };
   }
 
   /**
    * Parses a string and fills up the phoneNumber. This method is the same as the public
-   * parse() method, with the exception that it allows the default country to be null, for use by
-   * isNumberMatch(). checkRegion should be set to false if it is permitted for the default country
+   * parse() method, with the exception that it allows the default region to be null, for use by
+   * isNumberMatch(). checkRegion should be set to false if it is permitted for the default region
    * to be null or unknown ("ZZ").
    */
-  private void parseHelper(String numberToParse, String defaultCountry, boolean keepRawInput,
+  private void parseHelper(String numberToParse, String defaultRegion, boolean keepRawInput,
                            boolean checkRegion, PhoneNumber phoneNumber)
       throws NumberParseException {
     if (numberToParse == null) {
@@ -2003,42 +2214,42 @@
                                      "The string supplied did not seem to be a phone number.");
     }
 
-    // Check the country supplied is valid, or that the extracted number starts with some sort of +
+    // Check the region supplied is valid, or that the extracted number starts with some sort of +
     // sign so the number's region can be determined.
-    if (checkRegion && !checkRegionForParsing(number, defaultCountry)) {
+    if (checkRegion && !checkRegionForParsing(number, defaultRegion)) {
       throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
-                                     "Missing or invalid default country.");
+                                     "Missing or invalid default region.");
     }
 
     if (keepRawInput) {
       phoneNumber.setRawInput(numberToParse);
     }
-    StringBuffer nationalNumber = new StringBuffer(number);
-    // Attempt to parse extension first, since it doesn't require country-specific data and we want
+    StringBuilder nationalNumber = new StringBuilder(number);
+    // Attempt to parse extension first, since it doesn't require region-specific data and we want
     // to have the non-normalised number here.
     String extension = maybeStripExtension(nationalNumber);
     if (extension.length() > 0) {
       phoneNumber.setExtension(extension);
     }
 
-    PhoneMetadata countryMetadata = getMetadataForRegion(defaultCountry);
+    PhoneMetadata regionMetadata = getMetadataForRegion(defaultRegion);
     // Check to see if the number is given in international format so we know whether this number is
-    // from the default country or not.
-    StringBuffer normalizedNationalNumber = new StringBuffer();
-    int countryCode = maybeExtractCountryCode(nationalNumber.toString(), countryMetadata,
+    // from the default region or not.
+    StringBuilder normalizedNationalNumber = new StringBuilder();
+    int countryCode = maybeExtractCountryCode(nationalNumber.toString(), regionMetadata,
                                               normalizedNationalNumber, keepRawInput, phoneNumber);
     if (countryCode != 0) {
       String phoneNumberRegion = getRegionCodeForCountryCode(countryCode);
-      if (!phoneNumberRegion.equals(defaultCountry)) {
-        countryMetadata = getMetadataForRegion(phoneNumberRegion);
+      if (!phoneNumberRegion.equals(defaultRegion)) {
+        regionMetadata = getMetadataForRegion(phoneNumberRegion);
       }
     } else {
-      // If no extracted country code, use the region supplied instead. The national number is just
-      // the normalized version of the number we were given to parse.
+      // If no extracted country calling code, use the region supplied instead. The national number
+      // is just the normalized version of the number we were given to parse.
       normalize(nationalNumber);
       normalizedNationalNumber.append(nationalNumber);
-      if (defaultCountry != null) {
-        countryCode = countryMetadata.getCountryCode();
+      if (defaultRegion != null) {
+        countryCode = regionMetadata.getCountryCode();
         phoneNumber.setCountryCode(countryCode);
       } else if (keepRawInput) {
         phoneNumber.clearCountryCodeSource();
@@ -2048,9 +2259,9 @@
       throw new NumberParseException(NumberParseException.ErrorType.TOO_SHORT_NSN,
                                      "The string supplied is too short to be a phone number.");
     }
-    if (countryMetadata != null) {
+    if (regionMetadata != null) {
       String carrierCode =
-          maybeStripNationalPrefixAndCarrierCode(normalizedNationalNumber, countryMetadata);
+          maybeStripNationalPrefixAndCarrierCode(normalizedNationalNumber, regionMetadata);
       if (keepRawInput) {
         phoneNumber.setPreferredDomesticCarrierCode(carrierCode);
       }
@@ -2065,7 +2276,8 @@
                                      "The string supplied is too long to be a phone number.");
     }
     if (normalizedNationalNumber.charAt(0) == '0' &&
-        isLeadingZeroCountry(countryCode)) {
+        regionMetadata != null &&
+        regionMetadata.isLeadingZeroPossible()) {
       phoneNumber.setItalianLeadingZero(true);
     }
     phoneNumber.setNationalNumber(Long.parseLong(normalizedNationalNumber.toString()));
@@ -2074,12 +2286,12 @@
   /**
    * Takes two phone numbers and compares them for equality.
    *
-   * Returns EXACT_MATCH if the country code, NSN, presence of a leading zero for Italian numbers
+   * <p>Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero for Italian numbers
    * and any extension present are the same.
-   * Returns NSN_MATCH if either or both has no country specified, and the NSNs and extensions are
+   * Returns NSN_MATCH if either or both has no region specified, and the NSNs and extensions are
    * the same.
-   * Returns SHORT_NSN_MATCH if either or both has no country specified, or the country specified
-   * is the same, and one NSN could be a shorter version of the other number. This includes the case
+   * Returns SHORT_NSN_MATCH if either or both has no region specified, or the region specified is
+   * the same, and one NSN could be a shorter version of the other number. This includes the case
    * where one has an extension specified, and the other does not.
    * Returns NO_MATCH otherwise.
    * For example, the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH.
@@ -2120,7 +2332,7 @@
     }
     int firstNumberCountryCode = firstNumber.getCountryCode();
     int secondNumberCountryCode = secondNumber.getCountryCode();
-    // Both had country code specified.
+    // Both had country_code specified.
     if (firstNumberCountryCode != 0 && secondNumberCountryCode != 0) {
       if (firstNumber.exactlySameAs(secondNumber)) {
         return MatchType.EXACT_MATCH;
@@ -2134,8 +2346,8 @@
       // This is not a match.
       return MatchType.NO_MATCH;
     }
-    // Checks cases where one or both country codes were not specified. To make equality checks
-    // easier, we first set the country codes to be equal.
+    // Checks cases where one or both country_code fields were not specified. To make equality
+    // checks easier, we first set the country_code fields to be equal.
     firstNumber.setCountryCode(secondNumberCountryCode);
     // If all else was the same, then this is an NSN_MATCH.
     if (firstNumber.exactlySameAs(secondNumber)) {
@@ -2159,13 +2371,12 @@
 
   /**
    * Takes two phone numbers as strings and compares them for equality. This is a convenience
-   * wrapper for isNumberMatch(PhoneNumber firstNumber, PhoneNumber secondNumber). No default region
-   * is known.
+   * wrapper for {@link #isNumberMatch(PhoneNumber, PhoneNumber)}. No default region is known.
    *
-   * @param firstNumber  first number to compare. Can contain formatting, and can have country code
-   *     specified with + at the start.
+   * @param firstNumber  first number to compare. Can contain formatting, and can have country
+   *     calling code specified with + at the start.
    * @param secondNumber  second number to compare. Can contain formatting, and can have country
-   *     code specified with + at the start.
+   *     calling code specified with + at the start.
    * @return  NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
    *     isNumberMatch(PhoneNumber firstNumber, PhoneNumber secondNumber) for more details.
    */
@@ -2203,18 +2414,19 @@
    *
    * @param firstNumber  first number to compare in proto buffer format.
    * @param secondNumber  second number to compare. Can contain formatting, and can have country
-   *     code specified with + at the start.
+   *     calling code specified with + at the start.
    * @return  NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
    *     isNumberMatch(PhoneNumber firstNumber, PhoneNumber secondNumber) for more details.
    */
   public MatchType isNumberMatch(PhoneNumber firstNumber, String secondNumber) {
-    // First see if the second number has an implicit country code, by attempting to parse it.
+    // First see if the second number has an implicit country calling code, by attempting to parse
+    // it.
     try {
       PhoneNumber secondNumberAsProto = parse(secondNumber, UNKNOWN_REGION);
       return isNumberMatch(firstNumber, secondNumberAsProto);
     } catch (NumberParseException e) {
       if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
-        // The second number has no country code. EXACT_MATCH is no longer possible.
+        // The second number has no country calling code. EXACT_MATCH is no longer possible.
         // We parse it as if the region was the same as that for the first number, and if
         // EXACT_MATCH is returned, we replace this with NSN_MATCH.
         String firstNumberRegion = getRegionCodeForCountryCode(firstNumber.getCountryCode());
@@ -2227,8 +2439,8 @@
             }
             return match;
           } else {
-            // If the first number didn't have a valid country code, then we parse the second number
-            // without one as well.
+            // If the first number didn't have a valid country calling code, then we parse the
+            // second number without one as well.
             PhoneNumber secondNumberProto = new PhoneNumber();
             parseHelper(secondNumber, null, false, false, secondNumberProto);
             return isNumberMatch(firstNumber, secondNumberProto);
@@ -2243,14 +2455,14 @@
   }
 
   /**
-   * Returns true if the number can only be dialled from within the country. If unknown, or the
-   * number can be dialled from outside the country as well, returns false. Does not check the
+   * Returns true if the number can only be dialled from within the region. If unknown, or the
+   * number can be dialled from outside the region as well, returns false. Does not check the
    * number is a valid number.
    * TODO: Make this method public when we have enough metadata to make it worthwhile. Currently
    * visible for testing purposes only.
    *
    * @param number  the phone-number for which we want to know whether it is only diallable from
-   *     within the country
+   *     within the region
    */
   boolean canBeInternationallyDialled(PhoneNumber number) {
     String regionCode = getRegionCodeForNumber(number);
diff --git a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
index 98dd52f..de9f7c0 100644
--- a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
+++ b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
@@ -29,10 +29,24 @@
 
 public final class Phonemetadata {
   private Phonemetadata() {}
-  public static final class NumberFormat implements Externalizable {
+  public static class NumberFormat implements Externalizable {
     private static final long serialVersionUID = 1;
     public NumberFormat() {}
 
+    /**
+     * Provides a dummy builder to 'emulate' the API of the code generated by the latest version of
+     * Protocol Buffers. This lets BuildMetadataFromXml class to build with both this hand created
+     * class and the one generated by the latest version of Protocol Buffers.
+     */
+    public static final class Builder extends NumberFormat {
+      public NumberFormat build() {
+        return this;
+      }
+    }
+    public static Builder newBuilder() {
+      return new Builder();
+    }
+
     // required string pattern = 1;
     private boolean hasPattern;
     private String pattern_ = "";
@@ -57,10 +71,10 @@
 
     // repeated string leading_digits_pattern = 3;
     private java.util.List<String> leadingDigitsPattern_ = new java.util.ArrayList<String>();
-    public java.util.List<String> getLeadingDigitsPatternList() {
+    public java.util.List<String> leadingDigitPatterns() {
       return leadingDigitsPattern_;
     }
-    public int getLeadingDigitsPatternCount() { return leadingDigitsPattern_.size(); }
+    public int leadingDigitsPatternSize() { return leadingDigitsPattern_.size(); }
     public String getLeadingDigitsPattern(int index) {
       return leadingDigitsPattern_.get(index);
     }
@@ -108,7 +122,7 @@
       if (other.hasFormat()) {
         setFormat(other.getFormat());
       }
-      int leadingDigitsPatternSize = other.getLeadingDigitsPatternCount();
+      int leadingDigitsPatternSize = other.leadingDigitsPatternSize();
       for (int i = 0; i < leadingDigitsPatternSize; i++) {
         addLeadingDigitsPattern(other.getLeadingDigitsPattern(i));
       }
@@ -124,7 +138,7 @@
     public void writeExternal(ObjectOutput objectOutput) throws IOException {
       objectOutput.writeUTF(pattern_);
       objectOutput.writeUTF(format_);
-      int leadingDigitsPatternSize = getLeadingDigitsPatternCount();
+      int leadingDigitsPatternSize = leadingDigitsPatternSize();
       objectOutput.writeInt(leadingDigitsPatternSize);
       for (int i = 0; i < leadingDigitsPatternSize; i++) {
         objectOutput.writeUTF(leadingDigitsPattern_.get(i));
@@ -156,10 +170,24 @@
     }
   }
 
-  public static final class PhoneNumberDesc implements Externalizable {
+  public static class PhoneNumberDesc implements Externalizable {
     private static final long serialVersionUID = 1;
     public PhoneNumberDesc() {}
 
+    /**
+     * Provides a dummy builder.
+     *
+     * @see NumberFormat.Builder
+     */
+    public static final class Builder extends PhoneNumberDesc {
+      public PhoneNumberDesc build() {
+        return this;
+      }
+    }
+    public static Builder newBuilder() {
+      return new Builder();
+    }
+
     // optional string national_number_pattern = 2;
     private boolean hasNationalNumberPattern;
     private String nationalNumberPattern_ = "";
@@ -244,10 +272,24 @@
     }
   }
 
-  public static final class PhoneMetadata implements Externalizable {
+  public static class PhoneMetadata implements Externalizable {
     private static final long serialVersionUID = 1;
     public PhoneMetadata() {}
 
+    /**
+     * Provides a dummy builder.
+     *
+     * @see NumberFormat.Builder
+     */
+    public static final class Builder extends PhoneMetadata {
+      public PhoneMetadata build() {
+        return this;
+      }
+    }
+    public static Builder newBuilder() {
+      return new Builder();
+    }
+
     // required PhoneNumberDesc general_desc = 1;
     private boolean hasGeneralDesc;
     private PhoneNumberDesc generalDesc_ = null;
@@ -503,10 +545,10 @@
 
     // repeated NumberFormat number_format = 19;
     private java.util.List<NumberFormat> numberFormat_ = new java.util.ArrayList<NumberFormat>();
-    public java.util.List<NumberFormat> getNumberFormatList() {
+    public java.util.List<NumberFormat> numberFormats() {
       return numberFormat_;
     }
-    public int getNumberFormatCount() { return numberFormat_.size(); }
+    public int numberFormatSize() { return numberFormat_.size(); }
     public NumberFormat getNumberFormat(int index) {
       return numberFormat_.get(index);
     }
@@ -521,10 +563,10 @@
     // repeated NumberFormat intl_number_format = 20;
     private java.util.List<NumberFormat> intlNumberFormat_ =
         new java.util.ArrayList<NumberFormat>();
-    public java.util.List<NumberFormat> getIntlNumberFormatList() {
+    public java.util.List<NumberFormat> intlNumberFormats() {
       return intlNumberFormat_;
     }
-    public int getIntlNumberFormatCount() { return intlNumberFormat_.size(); }
+    public int intlNumberFormatSize() { return intlNumberFormat_.size(); }
     public NumberFormat getIntlNumberFormat(int index) {
       return intlNumberFormat_.get(index);
     }
@@ -536,12 +578,16 @@
       intlNumberFormat_.add(value);
       return this;
     }
+    public PhoneMetadata clearIntlNumberFormat() {
+      intlNumberFormat_.clear();
+      return this;
+    }
 
     // optional bool main_country_for_code = 22 [default = false];
     private boolean hasMainCountryForCode;
     private boolean mainCountryForCode_ = false;
     public boolean hasMainCountryForCode() { return hasMainCountryForCode; }
-    public boolean getMainCountryForCode() { return mainCountryForCode_; }
+    public boolean isMainCountryForCode() { return mainCountryForCode_; }
     public PhoneMetadata setMainCountryForCode(boolean value) {
       hasMainCountryForCode = true;
       mainCountryForCode_ = value;
@@ -559,6 +605,17 @@
       return this;
     }
 
+    // optional bool leading_zero_possible = 26 [default = false];
+    private boolean hasLeadingZeroPossible;
+    private boolean leadingZeroPossible_ = false;
+    public boolean hasLeadingZeroPossible() { return hasLeadingZeroPossible; }
+    public boolean isLeadingZeroPossible() { return leadingZeroPossible_; }
+    public PhoneMetadata setLeadingZeroPossible(boolean value) {
+      hasLeadingZeroPossible = true;
+      leadingZeroPossible_ = value;
+      return this;
+    }
+
     public void writeExternal(ObjectOutput objectOutput) throws IOException {
       objectOutput.writeBoolean(hasGeneralDesc);
       if (hasGeneralDesc) {
@@ -636,13 +693,13 @@
 
       objectOutput.writeBoolean(sameMobileAndFixedLinePattern_);
 
-      int numberFormatSize = getNumberFormatCount();
+      int numberFormatSize = numberFormatSize();
       objectOutput.writeInt(numberFormatSize);
       for (int i = 0; i < numberFormatSize; i++) {
         numberFormat_.get(i).writeExternal(objectOutput);
       }
 
-      int intlNumberFormatSize = getIntlNumberFormatCount();
+      int intlNumberFormatSize = intlNumberFormatSize();
       objectOutput.writeInt(intlNumberFormatSize);
       for (int i = 0; i < intlNumberFormatSize; i++) {
         intlNumberFormat_.get(i).writeExternal(objectOutput);
@@ -654,6 +711,8 @@
       if (hasLeadingDigits) {
         objectOutput.writeUTF(leadingDigits_);
       }
+
+      objectOutput.writeBoolean(leadingZeroPossible_);
     }
 
     public void readExternal(ObjectInput objectInput) throws IOException {
@@ -775,13 +834,29 @@
       if (hasString) {
         setLeadingDigits(objectInput.readUTF());
       }
+
+      setLeadingZeroPossible(objectInput.readBoolean());
     }
   }
 
-  public static final class PhoneMetadataCollection implements Externalizable {
+  public static class PhoneMetadataCollection implements Externalizable {
     private static final long serialVersionUID = 1;
     public PhoneMetadataCollection() {}
 
+    /**
+     * Provides a dummy builder.
+     *
+     * @see NumberFormat.Builder
+     */
+    public static final class Builder extends PhoneMetadataCollection {
+      public PhoneMetadataCollection build() {
+        return this;
+      }
+    }
+    public static Builder newBuilder() {
+      return new Builder();
+    }
+
     // repeated PhoneMetadata metadata = 1;
     private java.util.List<PhoneMetadata> metadata_ = new java.util.ArrayList<PhoneMetadata>();
 
diff --git a/java/src/com/google/i18n/phonenumbers/Phonenumber.java b/java/src/com/google/i18n/phonenumbers/Phonenumber.java
index 89382a1..3f7d23e 100644
--- a/java/src/com/google/i18n/phonenumbers/Phonenumber.java
+++ b/java/src/com/google/i18n/phonenumbers/Phonenumber.java
@@ -22,9 +22,12 @@
 
 package com.google.i18n.phonenumbers;
 
+import java.io.Serializable;
+
 public final class Phonenumber {
   private Phonenumber() {}
-  public static class PhoneNumber {
+  public static class PhoneNumber implements Serializable {
+    private static final long serialVersionUID = 1L;
     public enum CountryCodeSource {
       FROM_NUMBER_WITH_PLUS_SIGN,
       FROM_NUMBER_WITH_IDD,
@@ -235,7 +238,7 @@
 
     @Override
     public String toString() {
-      StringBuffer outputString = new StringBuffer();
+      StringBuilder outputString = new StringBuilder();
       outputString.append("Country Code: ").append(countryCode_);
       outputString.append(" National Number: ").append(nationalNumber_);
       if (hasItalianLeadingZero() && getItalianLeadingZero()) {
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC
index 5bf4289..d0069f1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
index 62b3b29..2f5199b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
index cce7540..2f543e1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
index 6922340..0120a23 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
index f0b7c4f..ce1d508 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
index 403d693..2bdd9da 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
index 560b677..15cbd77 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
index e1488b3..7d0f2a2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
index 73a83e8..e2aa056 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
index 304cb0a..13a5285 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
index 44a3b68..007ab2e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
index 8728b28..76f517c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
index f2b645c..720010c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
index 0fa61dd..b34fb0a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
index 1c7842e..5e69468 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX
new file mode 100644
index 0000000..8abd003
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
index ca83c98..0581301 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
index 3c9e268..c5e36f6 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
index 0b60e57..553a1de 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
index 872fc63..f335c39 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
index b0074bf..fa90f75 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
index cd1431f..63d7e64 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
index ed3913d..e1e34d9 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
index a7b67c4..3589ec9 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
index 40ecfcb..2b67b00 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
index 1fb8318..e5ef1ec 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
index de4b804..b410d02 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
index f51c6f7..c50e099 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
index 0fe3d38..46b0177 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
index 0395299..8e8857c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
index 67fe311..9aa4d28 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
index e72eaac..23bbf75 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
index c04cc47..139f181 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
index 752f852..641043d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
index 91b8207..969f182 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
index ec98a81..3e4f371 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
index 08a19c1..5d9bfb2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC
new file mode 100644
index 0000000..948af63
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
index 029f0e9..4456d29 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
index 440ee17..eeb5eeb 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
index dfc82a1..6b809d4 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
index b9781b3..1b520c3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
index c647c3d..dadad8e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
index 2ce83c2..ce2a8ec 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
index 2e9c0d8..8fabf74 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
index 414c1dd..5fb3c1f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
index aeb8224..c80a254 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
index e89645a..49ff901 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
index 979fa17..2a047bf 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
index 58728b9..3d2e499 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
index 40f6819..947e660 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX
new file mode 100644
index 0000000..585d96a
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
index 6e910fa..fb374ed 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
index 8e4bc85..43ec39e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
index 657ff37..87844f3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
index 195b880..2978ffe 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
index 2b9a712..cbb0f4c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
index 2f46834..8713673 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
index 0100b93..c48d82c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
index 9551e58..c3d52a0 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
index 5078020..6578ddd 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
index 45242fe..8387a3b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
index 1b383cb..e3a1c56 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
index 7207396..5c25636 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
index 81c67e2..2ae03c9 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
index 6c1a588..6aacbc5 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
index 925e740..bd871b6 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
index dfc6432..d123c00 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
index 9630d47..47e774d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
index f3f3699..678e85d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
index 2d2ff18..f6641dd 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
index 2b16dea..7a2adfd 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
index f923cae..800c4f2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
index 9f4e327..d1ae758 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
index f2e6c56..ef111dd 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
index 22f3da2..b385664 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
index e82b26c..b84bf20 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
index ae3cec7..7d24686 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
index 82ff8e4..64e2f87 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
index 63a685f..6625331 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
index f8dc2b0..f50ade6 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
index 27ce34f..abef42b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
index dde6c53..c865a17 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
index f6108ee..fdce952 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
index c3bd13e..2444a74 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
index ed28df8..2c4a828 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
index b91516c..2f9f995 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
index 237d37a..7cd7701 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
index a755f36..9ca2299 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
index 10f48a7..1636ed4 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
index 01b773d..89a9cff 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
index 502c311..8aa3857 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
index 3089e8b..9766d56 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
index 11abb56..6d4d7b7 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
index 90009c0..79efc3c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
index 0c2803e..c2d6738 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
index 706aedd..bd1e9ed 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
index d39b391..f784b0f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
index 30bb20e..ab78e3a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
index 60dd9da..8354c60 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
index f15346f..7731fb8 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
index ab713bb..475492f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
index 35827c0..a5b3394 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
index 233e357..eb45cb4 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
index 8c81e18..ae03581 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
index 2e3c4d5..37dc706 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
index 77c4efc..dce03a8 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
index 6c8e265..cc0d091 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
index 9650864..b3246cc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
index bfd69a4..4c35cb2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
index 06d1f7d..c4e37cf 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
index 0ddca18..3b43e39 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
index 377f39b..1b754cc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
index a2d3de6..b691649 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
index 863b3eb..9045dfb 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
index eccdf9e..aa771a1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
index e66f157..f74cb4d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
index 7ab6e36..475d794 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
index 754551b..5bfc93e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
index b0b73df..bf98d95 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
index 984aeba..7f78cb8 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
index ab97154..faf8a72 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
index 296fe41..3239dd6 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
index 37693c5..e792149 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
index 4092102..2b06a38 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
index c5cfee6..dd7306b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
index ca98900..e65316e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
index 43b750c..02ad948 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
index 1b31374..ef5e720 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
index 631d6f2..80c3aa3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
index 6fb9f25..a3c6000 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
index bf69698..dd0beb5 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
index 61e560f..1a80b90 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
index edc5d0f..0763f61 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
index 056305b..352802e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
index 29c214b..2daec61 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
index b0c8bf2..7eef113 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
index 131f198..2df3a70 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
index 9b94a61..040a791 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
index d1efd0f..c7d6d18 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
index 8c35059..fbe65bc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
index 0d76175..b96b7f9 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
index a72a4bc..d0bb6ae 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
index 312659b..ca8b834 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
index 6a495d7..889f649 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
index fd21ea7..d4e34bc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
index c1ad3b3..c6d5fe5 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
index 9dcbbbf..e4ef74a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
index a65c8e3..cde515f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
index 49e9b28..7e2e0b3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
index 4529ee1..36fe6c9 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
index c857d1d..dc44efb 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
index 47e64ec..35b8414 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
index 6ae79b9..5128f4e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
index 046be15..5c54aa0 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
index a6ce4d0..cfa92c5 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
index 05e12c3..62309e5 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
index e4ef5e8..59991ff 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
index 09939ff..4e12b36 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
index 5eb33fe..95e956a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
index 79c8741..f0a7b30 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
index de77f88..cf7b46e 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
index 74caa04..e54df79 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
index 72e46b3..65dd064 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
index d33aa7a..ac5a701 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
index 20dc762..199e3c2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
index aa0e794..a3ce6c1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
index c8c2c76..ad660fc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
index 45de89d..c0c26bf 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
index 30924a4..cd67c8b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
index 067b499..767f47c 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
index 5810c29..cf6ad8d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
index a7a82f7..6b0027d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
index 2d51c34..012f5b7 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
index e645cd2..0041418 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
index 335b318..ed7165b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
index 21b9986..1114659 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
index bb7270f..9c691cc 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
index d65d876..f51d0d1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
index 0735436..628bd87 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
index 4717ebd..da69ee2 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
index fa0ccb4..0a282a4 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
index 595878e..d45708a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
index cc359b1..6f97714 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
index 9589b84..189e57f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
index 63319ce..9b1ce03 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
index ec5abcc..a938bbf 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
index 464b8ec..5524740 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
index 3d74da0..ff47679 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
index 34968f0..37871a1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
index fb42a83..9d94908 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
index 9071c3f..6020eb3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
index c52c527..e928407 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
index 927774b..b9df92b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ
new file mode 100644
index 0000000..aca19d3
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
index b755b5c..50b4e3a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
index c3fd293..5ab8432 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
index ea97ce1..176add7 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
index 535afa3..853bd40 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
index 334be74..2db9450 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
index b563d07..a215045 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
index 29b7d36..9a8a7ec 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
index 0a299cf..695ef3f 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
index 9c547de..b2256b3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
index 663f11a..b487a13 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
index 8034cbd..0db9395 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
index cfde8b7..dc573d1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF
index d18541d..8e7ef30 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
index d6b9654..523c84b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
index e7f2c33..119af7d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
index 5a3fd6f..a49e8a8 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
index 653d606..87012f4 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
index 8b4378c..3e96e18 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
index c3c8de1..b3b4ad8 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
index b9ffbfd..b4c0747 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
index 4497b3f..256eebf 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
index 0d20cbb..df54d35 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
index bdbaf96..2330233 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
index 8cf631d..973582a 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
index 63963cf..08b4172 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
index 0f99acb..b5c29af 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
index a5d2806..f74e132 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
index 4eb5563..97fd6fb 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
index 25b3668..7f80f1d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
index 2a198e6..ebf41e1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
index 2a307b3..05c6854 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
index a0be427..0b7f9ee 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
index ab04383..5817468 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
index 96b653f..1db7196 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
index e7d7db7..17db04b 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
index 88428e8..3f93a89 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
index a463207..6f2b378 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
index a79ddef..40c22cd 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
index 423e86d..f6b6c15 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
index 52fd0e7..9022baa 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
index e4e2e78..b18ec98 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
index 5d3b0f9..ae7df49 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
index 19896c6..15930b3 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
index 99c8152..5e0253d 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
Binary files differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
index 13aa728..45b6bc1 100644
--- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java b/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
index 4920676..b03f6e5 100644
--- a/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
+++ b/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
@@ -343,7 +343,7 @@
   }
 
   public void testAYTFGBTollFree() {
-     AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter("gb");
+    AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter("gb");
     assertEquals("0", formatter.inputDigit('0'));
     assertEquals("08", formatter.inputDigit('8'));
     assertEquals("080", formatter.inputDigit('0'));
@@ -391,10 +391,10 @@
     assertEquals("0", formatter.inputDigit('0'));
     assertEquals("03", formatter.inputDigit('3'));
     assertEquals("030", formatter.inputDigit('0'));
-    assertEquals("030 1", formatter.inputDigit('1'));
-    assertEquals("030 12", formatter.inputDigit('2'));
-    assertEquals("030 123", formatter.inputDigit('3'));
-    assertEquals("030 1234", formatter.inputDigit('4'));
+    assertEquals("030/1", formatter.inputDigit('1'));
+    assertEquals("030/12", formatter.inputDigit('2'));
+    assertEquals("030/123", formatter.inputDigit('3'));
+    assertEquals("030/1234", formatter.inputDigit('4'));
 
     // 04134 1234
     formatter.clear();
@@ -460,8 +460,7 @@
     assertEquals("+54 9", formatter.inputDigit('9'));
     assertEquals("+54 91", formatter.inputDigit('1'));
     assertEquals("+54 9 11", formatter.inputDigit('1'));
-    assertEquals("+54 9 11 2",
-                 formatter.inputDigit('2'));
+    assertEquals("+54 9 11 2", formatter.inputDigit('2'));
     assertEquals("+54 9 11 23", formatter.inputDigit('3'));
     assertEquals("+54 9 11 231", formatter.inputDigit('1'));
     assertEquals("+54 9 11 2312", formatter.inputDigit('2'));
@@ -561,6 +560,91 @@
     assertEquals("011-9876-7890", formatter.inputDigit('0'));
   }
 
+  public void testAYTF_MX() {
+    AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter("MX");
+
+    // +52 800 123 4567
+    assertEquals("+", formatter.inputDigit('+'));
+    assertEquals("+5", formatter.inputDigit('5'));
+    assertEquals("+52 ", formatter.inputDigit('2'));
+    assertEquals("+52 8", formatter.inputDigit('8'));
+    assertEquals("+52 80", formatter.inputDigit('0'));
+    assertEquals("+52 800", formatter.inputDigit('0'));
+    assertEquals("+52 800 1", formatter.inputDigit('1'));
+    assertEquals("+52 800 12", formatter.inputDigit('2'));
+    assertEquals("+52 800 123", formatter.inputDigit('3'));
+    assertEquals("+52 800 123 4", formatter.inputDigit('4'));
+    assertEquals("+52 800 123 45", formatter.inputDigit('5'));
+    assertEquals("+52 800 123 456", formatter.inputDigit('6'));
+    assertEquals("+52 800 123 4567", formatter.inputDigit('7'));
+
+    // +52 55 1234 5678
+    formatter.clear();
+    assertEquals("+", formatter.inputDigit('+'));
+    assertEquals("+5", formatter.inputDigit('5'));
+    assertEquals("+52 ", formatter.inputDigit('2'));
+    assertEquals("+52 5", formatter.inputDigit('5'));
+    assertEquals("+52 55", formatter.inputDigit('5'));
+    assertEquals("+52 55 1", formatter.inputDigit('1'));
+    assertEquals("+52 55 12", formatter.inputDigit('2'));
+    assertEquals("+52 55 123", formatter.inputDigit('3'));
+    assertEquals("+52 55 1234", formatter.inputDigit('4'));
+    assertEquals("+52 55 1234 5", formatter.inputDigit('5'));
+    assertEquals("+52 55 1234 56", formatter.inputDigit('6'));
+    assertEquals("+52 55 1234 567", formatter.inputDigit('7'));
+    assertEquals("+52 55 1234 5678", formatter.inputDigit('8'));
+
+    // +52 212 345 6789
+    formatter.clear();
+    assertEquals("+", formatter.inputDigit('+'));
+    assertEquals("+5", formatter.inputDigit('5'));
+    assertEquals("+52 ", formatter.inputDigit('2'));
+    assertEquals("+52 2", formatter.inputDigit('2'));
+    assertEquals("+52 21", formatter.inputDigit('1'));
+    assertEquals("+52 212", formatter.inputDigit('2'));
+    assertEquals("+52 212 3", formatter.inputDigit('3'));
+    assertEquals("+52 212 34", formatter.inputDigit('4'));
+    assertEquals("+52 212 345", formatter.inputDigit('5'));
+    assertEquals("+52 212 345 6", formatter.inputDigit('6'));
+    assertEquals("+52 212 345 67", formatter.inputDigit('7'));
+    assertEquals("+52 212 345 678", formatter.inputDigit('8'));
+    assertEquals("+52 212 345 6789", formatter.inputDigit('9'));
+
+    // +52 1 55 1234 5678
+    formatter.clear();
+    assertEquals("+", formatter.inputDigit('+'));
+    assertEquals("+5", formatter.inputDigit('5'));
+    assertEquals("+52 ", formatter.inputDigit('2'));
+    assertEquals("+52 1", formatter.inputDigit('1'));
+    assertEquals("+52 15", formatter.inputDigit('5'));
+    assertEquals("+52 1 55", formatter.inputDigit('5'));
+    assertEquals("+52 1 55 1", formatter.inputDigit('1'));
+    assertEquals("+52 1 55 12", formatter.inputDigit('2'));
+    assertEquals("+52 1 55 123", formatter.inputDigit('3'));
+    assertEquals("+52 1 55 1234", formatter.inputDigit('4'));
+    assertEquals("+52 1 55 1234 5", formatter.inputDigit('5'));
+    assertEquals("+52 1 55 1234 56", formatter.inputDigit('6'));
+    assertEquals("+52 1 55 1234 567", formatter.inputDigit('7'));
+    assertEquals("+52 1 55 1234 5678", formatter.inputDigit('8'));
+
+    // +52 1 541 234 5678
+    formatter.clear();
+    assertEquals("+", formatter.inputDigit('+'));
+    assertEquals("+5", formatter.inputDigit('5'));
+    assertEquals("+52 ", formatter.inputDigit('2'));
+    assertEquals("+52 1", formatter.inputDigit('1'));
+    assertEquals("+52 15", formatter.inputDigit('5'));
+    assertEquals("+52 1 54", formatter.inputDigit('4'));
+    assertEquals("+52 1 541", formatter.inputDigit('1'));
+    assertEquals("+52 1 541 2", formatter.inputDigit('2'));
+    assertEquals("+52 1 541 23", formatter.inputDigit('3'));
+    assertEquals("+52 1 541 234", formatter.inputDigit('4'));
+    assertEquals("+52 1 541 234 5", formatter.inputDigit('5'));
+    assertEquals("+52 1 541 234 56", formatter.inputDigit('6'));
+    assertEquals("+52 1 541 234 567", formatter.inputDigit('7'));
+    assertEquals("+52 1 541 234 5678", formatter.inputDigit('8'));
+  }
+
   public void testAYTFMultipleLeadingDigitPatterns() {
     // +81 50 2345 6789
     AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter("JP");
diff --git a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
index 1d83fa7..776bb22 100644
--- a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
+++ b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
@@ -65,7 +65,7 @@
    */
   private void checkNumbersValidAndCorrectType(PhoneNumberType exampleNumberRequestedType,
                                                Set<PhoneNumberType> possibleExpectedTypes) {
-    for (String regionCode : phoneNumberUtil.getSupportedCountries()) {
+    for (String regionCode : phoneNumberUtil.getSupportedRegions()) {
       PhoneNumber exampleNumber =
           phoneNumberUtil.getExampleNumberForType(regionCode, exampleNumberRequestedType);
       if (exampleNumber != null) {
@@ -149,7 +149,7 @@
   }
 
   public void testCanBeInternationallyDialled() throws Exception {
-    for (String regionCode : phoneNumberUtil.getSupportedCountries()) {
+    for (String regionCode : phoneNumberUtil.getSupportedRegions()) {
       PhoneNumber exampleNumber = null;
       PhoneNumberDesc desc =
           phoneNumberUtil.getMetadataForRegion(regionCode).getNoInternationalDialling();
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java
index d0485f8..0c55964 100644
--- a/java/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java
@@ -28,7 +28,6 @@
 
 /**
  * Tests for {@link PhoneNumberMatcher}. This only tests basic functionality based on test metadata.
- * See {@link PhoneNumberMatcherRegressionTest} for regression tests.
  *
  * @author Tom Hofmann
  * @see PhoneNumberUtilTest {@link PhoneNumberUtilTest} for the origin of the test data
@@ -198,6 +197,49 @@
     }
   }
 
+  public void testMatchWithSurroundingZipcodes() throws Exception {
+    String number = "415-666-7777";
+    String zipPreceding = "My address is CA 34215. " + number + " is my number.";
+    PhoneNumber expectedResult = phoneUtil.parse(number, "US");
+
+    Iterator<PhoneNumberMatch> iterator = phoneUtil.findNumbers(zipPreceding, "US").iterator();
+    PhoneNumberMatch match = iterator.hasNext() ? iterator.next() : null;
+    assertNotNull("Did not find a number in '" + zipPreceding + "'; expected " + number, match);
+    assertEquals(expectedResult, match.number());
+    assertEquals(number, match.rawString());
+
+    // Now repeat, but this time the phone number has spaces in it. It should still be found.
+    number = "(415) 666 7777";
+
+    String zipFollowing = "My number is " + number + ". 34215 is my zip-code.";
+    iterator = phoneUtil.findNumbers(zipFollowing, "US").iterator();
+
+    PhoneNumberMatch matchWithSpaces = iterator.hasNext() ? iterator.next() : null;
+    assertNotNull("Did not find a number in '" + zipFollowing + "'; expected " + number,
+                  matchWithSpaces);
+    assertEquals(expectedResult, matchWithSpaces.number());
+    assertEquals(number, matchWithSpaces.rawString());
+  }
+
+  public void testNonMatchingBracketsAreInvalid() throws Exception {
+    // The digits up to the ", " form a valid US number, but it shouldn't be matched as one since
+    // there was a non-matching bracket present.
+    assertTrue(hasNoMatches(phoneUtil.findNumbers(
+        "80.585 [79.964, 81.191]", "US")));
+
+    // The trailing "]" is thrown away before parsing, so the resultant number, while a valid US
+    // number, does not have matching brackets.
+    assertTrue(hasNoMatches(phoneUtil.findNumbers(
+        "80.585 [79.964]", "US")));
+
+    assertTrue(hasNoMatches(phoneUtil.findNumbers(
+        "80.585 ((79.964)", "US")));
+
+    // This case has too many sets of brackets to be valid.
+    assertTrue(hasNoMatches(phoneUtil.findNumbers(
+        "(80).(585) (79).(9)64", "US")));
+  }
+
   public void testNoMatchIfRegionIsNull() throws Exception {
     // Fail on non-international prefix if region code is null.
     assertTrue(hasNoMatches(phoneUtil.findNumbers(
@@ -417,7 +459,7 @@
   }
 
   /**
-   * Tests numbers found by {@link PhoneNumberUtil#find(CharSequence, String)} in various
+   * Tests numbers found by {@link PhoneNumberUtil#findNumbers(CharSequence, String)} in various
    * textual contexts.
    *
    * @param number the number to test and the corresponding region code to use
@@ -453,7 +495,18 @@
         "As quoted by Alfonso 12-15 (2009), you may call me at ", ""));
     contextPairs.add(new NumberContext(
         "As quoted by Alfonso et al. 12-15 (2009), you may call me at ", ""));
-         // with a postfix stripped off as it looks like the start of another number
+    // With dates, written in the American style.
+    contextPairs.add(new NumberContext(
+        "As I said on 03/10/2011, you may call me at ", ""));
+    contextPairs.add(new NumberContext(
+        "As I said on 03/27/2011, you may call me at ", ""));
+    contextPairs.add(new NumberContext(
+        "As I said on 31/8/2011, you may call me at ", ""));
+    contextPairs.add(new NumberContext(
+        "As I said on 1/12/2011, you may call me at ", ""));
+    contextPairs.add(new NumberContext(
+        "I was born on 10/12/82. Please call me at ", ""));
+    // With a postfix stripped off as it looks like the start of another number
     contextPairs.add(new NumberContext("Call ", "/x12 more"));
 
     doTestInContext(number, defaultCountry, contextPairs, Leniency.POSSIBLE);
@@ -508,7 +561,7 @@
   private void ensureTermination(String text, String defaultCountry, Leniency leniency) {
     for (int index = 0; index <= text.length(); index++) {
       String sub = text.substring(index);
-      StringBuffer matches = new StringBuffer();
+      StringBuilder matches = new StringBuilder();
       // Iterates over all matches.
       for (PhoneNumberMatch match :
            phoneUtil.findNumbers(sub, defaultCountry, leniency, Long.MAX_VALUE)) {
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoderTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoderTest.java
new file mode 100644
index 0000000..facd3c4
--- /dev/null
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberOfflineGeocoderTest.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2011 Google Inc.
+ *
+ * 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
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.i18n.phonenumbers;
+
+import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
+import junit.framework.TestCase;
+
+import java.util.Locale;
+
+/**
+ * Unit tests for PhoneNumberOfflineGeocoder.java
+ *
+ * @author Shaopeng Jia
+ */
+public class PhoneNumberOfflineGeocoderTest extends TestCase {
+  private PhoneNumberOfflineGeocoder geocoder;
+  static final String TEST_META_DATA_FILE_PREFIX =
+      "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting";
+
+  // Set up some test numbers to re-use.
+  private static final PhoneNumber US_NUMBER1 =
+      new PhoneNumber().setCountryCode(1).setNationalNumber(6502530000L);
+  private static final PhoneNumber BS_NUMBER1 =
+      new PhoneNumber().setCountryCode(1).setNationalNumber(2423651234L);
+  private static final PhoneNumber AU_NUMBER =
+      new PhoneNumber().setCountryCode(61).setNationalNumber(236618300L);
+  private static final PhoneNumber NUMBER_WITH_INVALID_COUNTRY_CODE =
+      new PhoneNumber().setCountryCode(999).setNationalNumber(2423651234L);
+
+  public PhoneNumberOfflineGeocoderTest() {
+    PhoneNumberUtil.resetInstance();
+    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(
+        TEST_META_DATA_FILE_PREFIX,
+        CountryCodeToRegionCodeMapForTesting.getCountryCodeToRegionCodeMap());
+    geocoder = new PhoneNumberOfflineGeocoder(phoneUtil);
+  }
+
+  public void testGetCompactDescriptionForNumber() {
+    assertEquals("United States",
+        geocoder.getDescriptionForNumber(US_NUMBER1, Locale.ENGLISH));
+    assertEquals("Stati Uniti",
+        geocoder.getDescriptionForNumber(US_NUMBER1, Locale.ITALIAN));
+    assertEquals("Bahamas",
+        geocoder.getDescriptionForNumber(BS_NUMBER1, Locale.ENGLISH));
+    assertEquals("Australia",
+        geocoder.getDescriptionForNumber(AU_NUMBER, Locale.ENGLISH));
+    assertEquals("", geocoder.getDescriptionForNumber(NUMBER_WITH_INVALID_COUNTRY_CODE,
+                                                      Locale.ENGLISH));
+  }
+}
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
index 7c77f1e..f4a2751 100644
--- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -71,6 +71,15 @@
   private static final PhoneNumber IT_NUMBER =
       new PhoneNumber().setCountryCode(39).setNationalNumber(236618300L).
       setItalianLeadingZero(true);
+  // Numbers to test the formatting rules from Mexico.
+  private static final PhoneNumber MX_MOBILE1 =
+      new PhoneNumber().setCountryCode(52).setNationalNumber(12345678900L);
+  private static final PhoneNumber MX_MOBILE2 =
+      new PhoneNumber().setCountryCode(52).setNationalNumber(15512345678L);
+  private static final PhoneNumber MX_NUMBER1 =
+      new PhoneNumber().setCountryCode(52).setNationalNumber(3312345678L);
+  private static final PhoneNumber MX_NUMBER2 =
+      new PhoneNumber().setCountryCode(52).setNationalNumber(8211234567L);
   private static final PhoneNumber NZ_NUMBER =
       new PhoneNumber().setCountryCode(64).setNationalNumber(33316005L);
   private static final PhoneNumber SG_NUMBER =
@@ -124,19 +133,23 @@
         CountryCodeToRegionCodeMapForTesting.getCountryCodeToRegionCodeMap());
   }
 
+  public void testGetSupportedRegions() {
+    assertTrue(phoneUtil.getSupportedRegions().size() > 0);
+  }
+
   public void testGetInstanceLoadUSMetadata() {
     PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
     assertEquals("US", metadata.getId());
     assertEquals(1, metadata.getCountryCode());
     assertEquals("011", metadata.getInternationalPrefix());
     assertTrue(metadata.hasNationalPrefix());
-    assertEquals(2, metadata.getNumberFormatCount());
+    assertEquals(2, metadata.numberFormatSize());
     assertEquals("(\\d{3})(\\d{3})(\\d{4})",
                  metadata.getNumberFormat(0).getPattern());
     assertEquals("$1 $2 $3", metadata.getNumberFormat(0).getFormat());
     assertEquals("[13-9]\\d{9}|2[0-35-9]\\d{8}",
                  metadata.getGeneralDesc().getNationalNumberPattern());
-    assertEquals("\\d{7,10}", metadata.getGeneralDesc().getPossibleNumberPattern());
+    assertEquals("\\d{7}(?:\\d{3})?", metadata.getGeneralDesc().getPossibleNumberPattern());
     assertTrue(metadata.getGeneralDesc().exactlySameAs(metadata.getFixedLine()));
     assertEquals("\\d{10}", metadata.getTollFree().getPossibleNumberPattern());
     assertEquals("900\\d{7}", metadata.getPremiumRate().getNationalNumberPattern());
@@ -151,8 +164,8 @@
     assertEquals(49, metadata.getCountryCode());
     assertEquals("00", metadata.getInternationalPrefix());
     assertEquals("0", metadata.getNationalPrefix());
-    assertEquals(6, metadata.getNumberFormatCount());
-    assertEquals(1, metadata.getNumberFormat(5).getLeadingDigitsPatternCount());
+    assertEquals(6, metadata.numberFormatSize());
+    assertEquals(1, metadata.getNumberFormat(5).leadingDigitsPatternSize());
     assertEquals("900", metadata.getNumberFormat(5).getLeadingDigitsPattern(0));
     assertEquals("(\\d{3})(\\d{3,4})(\\d{4})",
                  metadata.getNumberFormat(5).getPattern());
@@ -173,14 +186,21 @@
     assertEquals("0", metadata.getNationalPrefix());
     assertEquals("0(?:(11|343|3715)15)?", metadata.getNationalPrefixForParsing());
     assertEquals("9$1", metadata.getNationalPrefixTransformRule());
-    assertEquals("$1 15 $2-$3", metadata.getNumberFormat(2).getFormat());
-    assertEquals("9(\\d{4})(\\d{2})(\\d{4})",
+    assertEquals("$2 15 $3-$4", metadata.getNumberFormat(2).getFormat());
+    assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})",
                  metadata.getNumberFormat(3).getPattern());
     assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})",
                  metadata.getIntlNumberFormat(3).getPattern());
     assertEquals("$1 $2 $3 $4", metadata.getIntlNumberFormat(3).getFormat());
   }
 
+  public void testIsLeadingZeroPossible() {
+    assertTrue(phoneUtil.isLeadingZeroPossible(39));  // Italy
+    assertFalse(phoneUtil.isLeadingZeroPossible(1));  // USA
+    assertFalse(phoneUtil.isLeadingZeroPossible(800));  // Not in metadata file, just default to
+                                                        // false.
+  }
+
   public void testGetLengthOfGeographicalAreaCode() {
     // Google MTV, which has area code "650".
     assertEquals(3, phoneUtil.getLengthOfGeographicalAreaCode(US_NUMBER));
@@ -235,19 +255,19 @@
     // An invalid US number (1 digit shorter), which has no NDC.
     assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(US_SHORT_BY_ONE_NUMBER));
 
-    // A number containing an invalid country code, which shouldn't have any NDC.
+    // A number containing an invalid country calling code, which shouldn't have any NDC.
     PhoneNumber number = new PhoneNumber().setCountryCode(123).setNationalNumber(6502530000L);
     assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(number));
   }
 
   public void testGetNationalSignificantNumber() {
-    assertEquals("6502530000", PhoneNumberUtil.getNationalSignificantNumber(US_NUMBER));
+    assertEquals("6502530000", phoneUtil.getNationalSignificantNumber(US_NUMBER));
 
     // An Italian mobile number.
-    assertEquals("345678901", PhoneNumberUtil.getNationalSignificantNumber(IT_MOBILE));
+    assertEquals("345678901", phoneUtil.getNationalSignificantNumber(IT_MOBILE));
 
     // An Italian fixed line number.
-    assertEquals("0236618300", PhoneNumberUtil.getNationalSignificantNumber(IT_NUMBER));
+    assertEquals("0236618300", phoneUtil.getNationalSignificantNumber(IT_NUMBER));
   }
 
   public void testGetExampleNumber() {
@@ -265,6 +285,9 @@
                                                     PhoneNumberUtil.PhoneNumberType.FIXED_LINE));
     assertNotNull(phoneUtil.getExampleNumberForType(RegionCode.US,
                                                     PhoneNumberUtil.PhoneNumberType.MOBILE));
+    // CS is an invalid region, so we have no data for it.
+    assertNull(phoneUtil.getExampleNumberForType(RegionCode.CS,
+                                                 PhoneNumberUtil.PhoneNumberType.MOBILE));
   }
 
   public void testNormaliseRemovePunctuation() {
@@ -314,6 +337,7 @@
 
     assertEquals("900 253 0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.NATIONAL));
     assertEquals("+1 900 253 0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+1-900-253-0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.RFC3966));
   }
 
   public void testFormatBSNumber() {
@@ -332,8 +356,9 @@
   public void testFormatDENumber() {
     PhoneNumber deNumber = new PhoneNumber();
     deNumber.setCountryCode(49).setNationalNumber(301234L);
-    assertEquals("030 1234", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
-    assertEquals("+49 30 1234", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("030/1234", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
+    assertEquals("+49 30/1234", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+49-30-1234", phoneUtil.format(deNumber, PhoneNumberFormat.RFC3966));
 
     deNumber.clear();
     deNumber.setCountryCode(49).setNationalNumber(291123L);
@@ -359,6 +384,7 @@
     assertEquals("1234", phoneUtil.format(DE_SHORT_NUMBER, PhoneNumberFormat.NATIONAL));
     assertEquals("+49 1234", phoneUtil.format(DE_SHORT_NUMBER, PhoneNumberFormat.INTERNATIONAL));
 
+    deNumber.clear();
     deNumber.setCountryCode(49).setNationalNumber(41341234);
     assertEquals("04134 1234", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
   }
@@ -395,6 +421,26 @@
     assertEquals("+5491187654321", phoneUtil.format(AR_MOBILE, PhoneNumberFormat.E164));
   }
 
+  public void testFormatMXNumber() {
+    assertEquals("045 234 567 8900", phoneUtil.format(MX_MOBILE1, PhoneNumberFormat.NATIONAL));
+    assertEquals("+52 1 234 567 8900", phoneUtil.format(
+        MX_MOBILE1, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+5212345678900", phoneUtil.format(MX_MOBILE1, PhoneNumberFormat.E164));
+
+    assertEquals("045 55 1234 5678", phoneUtil.format(MX_MOBILE2, PhoneNumberFormat.NATIONAL));
+    assertEquals("+52 1 55 1234 5678", phoneUtil.format(
+        MX_MOBILE2, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+5215512345678", phoneUtil.format(MX_MOBILE2, PhoneNumberFormat.E164));
+
+    assertEquals("01 33 1234 5678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.NATIONAL));
+    assertEquals("+52 33 1234 5678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+523312345678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.E164));
+
+    assertEquals("01 821 123 4567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.NATIONAL));
+    assertEquals("+52 821 123 4567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.INTERNATIONAL));
+    assertEquals("+528211234567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.E164));
+  }
+
   public void testFormatOutOfCountryCallingNumber() {
     assertEquals("00 1 900 253 0000",
                  phoneUtil.formatOutOfCountryCallingNumber(US_PREMIUM, RegionCode.DE));
@@ -444,6 +490,79 @@
                  phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.AU));
   }
 
+  public void testFormatOutOfCountryKeepingAlphaChars() {
+    PhoneNumber alphaNumericNumber = new PhoneNumber();
+    alphaNumericNumber.setCountryCode(1).setNationalNumber(8007493524L)
+        .setRawInput("1800 six-flag");
+    assertEquals("0011 1 800 SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    alphaNumericNumber.setRawInput("1-800-SIX-flag");
+    assertEquals("0011 1 800-SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    alphaNumericNumber.setRawInput("Call us from UK: 00 1 800 SIX-flag");
+    assertEquals("0011 1 800 SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    alphaNumericNumber.setRawInput("800 SIX-flag");
+    assertEquals("0011 1 800 SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    // Formatting from within the NANPA region.
+    assertEquals("1 800 SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.US));
+
+    assertEquals("1 800 SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.BS));
+
+    // Testing that if the raw input doesn't exist, it is formatted using
+    // formatOutOfCountryCallingNumber.
+    alphaNumericNumber.clearRawInput();
+    assertEquals("00 1 800 749 3524",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
+
+    // Testing AU alpha number formatted from Australia.
+    alphaNumericNumber.setCountryCode(61).setNationalNumber(827493524L)
+        .setRawInput("+61 82749-FLAG");
+    // This number should have the national prefix fixed.
+    assertEquals("082749-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    alphaNumericNumber.setRawInput("082749-FLAG");
+    assertEquals("082749-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    alphaNumericNumber.setNationalNumber(18007493524L).setRawInput("1-800-SIX-flag");
+    // This number should not have the national prefix prefixed, in accordance with the override for
+    // this specific formatting rule.
+    assertEquals("1-800-SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
+
+    // The metadata should not be permanently changed, since we copied it before modifying patterns.
+    // Here we check this.
+    alphaNumericNumber.setNationalNumber(1800749352L);
+    assertEquals("1800 749 352",
+                 phoneUtil.formatOutOfCountryCallingNumber(alphaNumericNumber, RegionCode.AU));
+
+    // Testing a region with multiple international prefixes.
+    assertEquals("+61 1-800-SIX-FLAG",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.SG));
+
+    // Testing the case with an invalid country calling code.
+    alphaNumericNumber.setCountryCode(0).setNationalNumber(18007493524L)
+        .setRawInput("1-800-SIX-flag");
+    // Uses the raw input only.
+    assertEquals("1-800-SIX-flag",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
+
+    // Testing the case of an invalid alpha number.
+    alphaNumericNumber.setCountryCode(1).setNationalNumber(80749L).setRawInput("180-SIX");
+    // No country-code stripping can be done.
+    assertEquals("00 1 180-SIX",
+                 phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
+  }
+
   public void testFormatWithCarrierCode() {
     // We only support this for AR in our test metadata, and only for mobile numbers starting with
     // certain values.
@@ -557,6 +676,8 @@
     PhoneNumber nzNumber = new PhoneNumber().mergeFrom(NZ_NUMBER).setExtension("1234");
     // Uses default extension prefix:
     assertEquals("03-331 6005 ext. 1234", phoneUtil.format(nzNumber, PhoneNumberFormat.NATIONAL));
+    // Uses RFC 3966 syntax.
+    assertEquals("+64-3-331-6005;ext=1234", phoneUtil.format(nzNumber, PhoneNumberFormat.RFC3966));
     // Extension prefix overridden in the territory information for the US:
     PhoneNumber usNumberWithExtension = new PhoneNumber().mergeFrom(US_NUMBER).setExtension("4567");
     assertEquals("650 253 0000 extn. 4567", phoneUtil.format(usNumberWithExtension,
@@ -631,12 +752,11 @@
     assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(BS_MOBILE));
     assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(GB_MOBILE));
     assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(IT_MOBILE));
+    assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(AR_MOBILE));
 
     PhoneNumber mobileNumber = new PhoneNumber();
     mobileNumber.setCountryCode(49).setNationalNumber(15123456789L);
     assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(mobileNumber));
-
-    assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(AR_MOBILE));
   }
 
   public void testIsFixedLine() {
@@ -805,7 +925,7 @@
   }
 
   public void testIsPossibleNumberWithReason() {
-    // FYI, national numbers for country code +1 that are within 7 to 10 digits are possible.
+    // National numbers for country calling code +1 that are within 7 to 10 digits are possible.
     assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
                  phoneUtil.isPossibleNumberWithReason(US_NUMBER));
 
@@ -825,6 +945,11 @@
     assertEquals(PhoneNumberUtil.ValidationResult.TOO_SHORT,
                  phoneUtil.isPossibleNumberWithReason(number));
 
+    number.clear();
+    number.setCountryCode(65).setNationalNumber(1234567890L);
+    assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
+                 phoneUtil.isPossibleNumberWithReason(number));
+
     // Try with number that we don't have metadata for.
     PhoneNumber adNumber = new PhoneNumber();
     adNumber.setCountryCode(376).setNationalNumber(12345L);
@@ -949,7 +1074,7 @@
     PhoneMetadata metadata = new PhoneMetadata();
     metadata.setNationalPrefixForParsing("34");
     metadata.setGeneralDesc(new PhoneNumberDesc().setNationalNumberPattern("\\d{4,8}"));
-    StringBuffer numberToStrip = new StringBuffer("34356778");
+    StringBuilder numberToStrip = new StringBuilder("34356778");
     String strippedNumber = "356778";
     phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata);
     assertEquals("Should have had national prefix stripped.",
@@ -966,7 +1091,7 @@
                  strippedNumber, numberToStrip.toString());
     // If the resultant number doesn't match the national rule, it shouldn't be stripped.
     metadata.setNationalPrefixForParsing("3");
-    numberToStrip = new StringBuffer("3123");
+    numberToStrip = new StringBuilder("3123");
     strippedNumber = "3123";
     phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata);
     assertEquals("Should have had no change - after stripping, it wouldn't have matched " +
@@ -974,7 +1099,7 @@
                  strippedNumber, numberToStrip.toString());
     // Test extracting carrier selection code.
     metadata.setNationalPrefixForParsing("0(81)?");
-    numberToStrip = new StringBuffer("08122123456");
+    numberToStrip = new StringBuilder("08122123456");
     strippedNumber = "22123456";
     assertEquals("81", phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata));
     assertEquals("Should have had national prefix and carrier code stripped.",
@@ -983,7 +1108,7 @@
     metadata.setNationalPrefixTransformRule("5$15");
     // Note that a capturing group is present here.
     metadata.setNationalPrefixForParsing("0(\\d{2})");
-    numberToStrip = new StringBuffer("031123");
+    numberToStrip = new StringBuilder("031123");
     String transformedNumber = "5315123";
     phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata);
     assertEquals("Should transform the 031 to a 5315.",
@@ -992,9 +1117,9 @@
 
   public void testMaybeStripInternationalPrefix() {
     String internationalPrefix = "00[39]";
-    StringBuffer numberToStrip = new StringBuffer("0034567700-3898003");
+    StringBuilder numberToStrip = new StringBuilder("0034567700-3898003");
     // Note the dash is removed as part of the normalization.
-    StringBuffer strippedNumber = new StringBuffer("45677003898003");
+    StringBuilder strippedNumber = new StringBuilder("45677003898003");
     assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
@@ -1006,14 +1131,14 @@
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
 
-    numberToStrip = new StringBuffer("00945677003898003");
+    numberToStrip = new StringBuilder("00945677003898003");
     assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
     assertEquals("The number supplied was not stripped of its international prefix.",
                  strippedNumber.toString(), numberToStrip.toString());
     // Test it works when the international prefix is broken up by spaces.
-    numberToStrip = new StringBuffer("00 9 45677003898003");
+    numberToStrip = new StringBuilder("00 9 45677003898003");
     assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
@@ -1026,24 +1151,25 @@
                                                                      internationalPrefix));
 
     // Test the + symbol is also recognised and stripped.
-    numberToStrip = new StringBuffer("+45677003898003");
-    strippedNumber = new StringBuffer("45677003898003");
+    numberToStrip = new StringBuilder("+45677003898003");
+    strippedNumber = new StringBuilder("45677003898003");
     assertEquals(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
     assertEquals("The number supplied was not stripped of the plus symbol.",
                  strippedNumber.toString(), numberToStrip.toString());
 
-    // If the number afterwards is a zero, we should not strip this - no country code begins with 0.
-    numberToStrip = new StringBuffer("0090112-3123");
-    strippedNumber = new StringBuffer("00901123123");
+    // If the number afterwards is a zero, we should not strip this - no country calling code begins
+    // with 0.
+    numberToStrip = new StringBuilder("0090112-3123");
+    strippedNumber = new StringBuilder("00901123123");
     assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
     assertEquals("The number supplied had a 0 after the match so shouldn't be stripped.",
                  strippedNumber.toString(), numberToStrip.toString());
     // Here the 0 is separated by a space from the IDD.
-    numberToStrip = new StringBuffer("009 0-112-3123");
+    numberToStrip = new StringBuilder("009 0-112-3123");
     assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
                  phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
                                                                      internationalPrefix));
@@ -1056,16 +1182,16 @@
     try {
       String phoneNumber = "011112-3456789";
       String strippedNumber = "123456789";
-      int countryCode = 1;
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Did not extract country code " + countryCode + " correctly.",
-                   countryCode,
+      int countryCallingCode = 1;
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Did not extract country calling code " + countryCallingCode + " correctly.",
+                   countryCallingCode,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
                                                      number));
       assertEquals("Did not figure out CountryCodeSource correctly",
                    CountryCodeSource.FROM_NUMBER_WITH_IDD, number.getCountryCodeSource());
       // Should strip and normalize national significant number.
-      assertEquals("Did not strip off the country code correctly.",
+      assertEquals("Did not strip off the country calling code correctly.",
                    strippedNumber,
                    numberToFill.toString());
     } catch (NumberParseException e) {
@@ -1074,10 +1200,10 @@
     number.clear();
     try {
       String phoneNumber = "+6423456789";
-      int countryCode = 64;
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Did not extract country code " + countryCode + " correctly.",
-                   countryCode,
+      int countryCallingCode = 64;
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Did not extract country calling code " + countryCallingCode + " correctly.",
+                   countryCallingCode,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
                                                      number));
       assertEquals("Did not figure out CountryCodeSource correctly",
@@ -1088,11 +1214,11 @@
     number.clear();
     try {
       String phoneNumber = "2345-6789";
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Should not have extracted a country code - no international prefix present.",
-                   0,
-                   phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
-                                                     number));
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals(
+          "Should not have extracted a country calling code - no international prefix present.",
+          0,
+          phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true, number));
       assertEquals("Did not figure out CountryCodeSource correctly",
                    CountryCodeSource.FROM_DEFAULT_COUNTRY, number.getCountryCodeSource());
     } catch (NumberParseException e) {
@@ -1101,9 +1227,9 @@
     number.clear();
     try {
       String phoneNumber = "0119991123456789";
-      StringBuffer numberToFill = new StringBuffer();
+      StringBuilder numberToFill = new StringBuilder();
       phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true, number);
-      fail("Should have thrown an exception, no valid country code present.");
+      fail("Should have thrown an exception, no valid country calling code present.");
     } catch (NumberParseException e) {
       // Expected.
       assertEquals("Wrong error type stored in exception.",
@@ -1113,10 +1239,10 @@
     number.clear();
     try {
       String phoneNumber = "(1 610) 619 4466";
-      int countryCode = 1;
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Should have extracted the country code of the region passed in",
-                   countryCode,
+      int countryCallingCode = 1;
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Should have extracted the country calling code of the region passed in",
+                   countryCallingCode,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
                                                      number));
       assertEquals("Did not figure out CountryCodeSource correctly",
@@ -1128,10 +1254,10 @@
     number.clear();
     try {
       String phoneNumber = "(1 610) 619 4466";
-      int countryCode = 1;
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Should have extracted the country code of the region passed in",
-                   countryCode,
+      int countryCallingCode = 1;
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Should have extracted the country calling code of the region passed in",
+                   countryCallingCode,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, false,
                                                      number));
       assertFalse("Should not contain CountryCodeSource.", number.hasCountryCodeSource());
@@ -1141,9 +1267,9 @@
     number.clear();
     try {
       String phoneNumber = "(1 610) 619 446";
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Should not have extracted a country code - invalid number after extraction " +
-                   "of uncertain country code.",
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Should not have extracted a country calling code - invalid number after " +
+                   "extraction of uncertain country calling code.",
                    0,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, false,
                                                      number));
@@ -1153,10 +1279,10 @@
     }
     number.clear();
     try {
-      String phoneNumber = "(1 610) 619 43";
-      StringBuffer numberToFill = new StringBuffer();
-      assertEquals("Should not have extracted a country code - invalid number both before and " +
-                   "after extraction of uncertain country code.",
+      String phoneNumber = "(1 610) 619";
+      StringBuilder numberToFill = new StringBuilder();
+      assertEquals("Should not have extracted a country calling code - too short number both " +
+                   "before and after extraction of uncertain country calling code.",
                    0,
                    phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
                                                      number));
@@ -1177,10 +1303,10 @@
     assertEquals(NZ_NUMBER, phoneUtil.parse("03 331 6005", RegionCode.NZ));
 
     // Testing international prefixes.
-    // Should strip country code.
+    // Should strip country calling code.
     assertEquals(NZ_NUMBER, phoneUtil.parse("0064 3 331 6005", RegionCode.NZ));
     // Try again, but this time we have an international number with Region Code US. It should
-    // recognise the country code and parse accordingly.
+    // recognise the country calling code and parse accordingly.
     assertEquals(NZ_NUMBER, phoneUtil.parse("01164 3 331 6005", RegionCode.US));
     assertEquals(NZ_NUMBER, phoneUtil.parse("+64 3 331 6005", RegionCode.US));
 
@@ -1191,8 +1317,8 @@
     assertEquals(DE_NUMBER, phoneUtil.parse("301/23456", RegionCode.DE));
 
     PhoneNumber usNumber = new PhoneNumber();
-    // Check it doesn't use the '1' as a country code when parsing if the phone number was already
-    // possible.
+    // Check it doesn't use the '1' as a country calling code when parsing if the phone number was
+    // already possible.
     usNumber.setCountryCode(1).setNationalNumber(1234567890L);
     assertEquals(usNumber, phoneUtil.parse("123-456-7890", RegionCode.US));
   }
@@ -1350,7 +1476,7 @@
     try {
       String invalidCountryCode = "+210 3456 56789";
       phoneUtil.parse(invalidCountryCode, RegionCode.NZ);
-      fail("This is not a recognised country code: should fail: " + invalidCountryCode);
+      fail("This is not a recognised region code: should fail: " + invalidCountryCode);
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1359,8 +1485,8 @@
     }
     try {
       String someNumber = "123 456 7890";
-      phoneUtil.parse(someNumber, "YY");
-      fail("'Unknown' country code not allowed: should fail.");
+      phoneUtil.parse(someNumber, RegionCode.ZZ);
+      fail("'Unknown' region code not allowed: should fail.");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1370,7 +1496,7 @@
     try {
       String someNumber = "123 456 7890";
       phoneUtil.parse(someNumber, RegionCode.CS);
-      fail("Deprecated country code not allowed: should fail.");
+      fail("Deprecated region code not allowed: should fail.");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1380,7 +1506,7 @@
     try {
       String someNumber = "123 456 7890";
       phoneUtil.parse(someNumber, null);
-      fail("Null country code not allowed: should fail.");
+      fail("Null region code not allowed: should fail.");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1390,7 +1516,7 @@
     try {
       String someNumber = "0044------";
       phoneUtil.parse(someNumber, RegionCode.GB);
-      fail("No number provided, only country code: should fail");
+      fail("No number provided, only region code: should fail");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1400,7 +1526,7 @@
     try {
       String someNumber = "0044";
       phoneUtil.parse(someNumber, RegionCode.GB);
-      fail("No number provided, only country code: should fail");
+      fail("No number provided, only region code: should fail");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1466,8 +1592,8 @@
   }
 
   public void testParseNumbersWithPlusWithNoRegion() throws Exception {
-    // "ZZ" is allowed only if the number starts with a '+' - then the country code can be
-    // calculated.
+    // RegionCode.ZZ is allowed only if the number starts with a '+' - then the country calling code
+    // can be calculated.
     assertEquals(NZ_NUMBER, phoneUtil.parse("+64 3 331 6005", RegionCode.ZZ));
     // Test with full-width plus.
     assertEquals(NZ_NUMBER, phoneUtil.parse("\uFF0B64 3 331 6005", RegionCode.ZZ));
@@ -1514,6 +1640,7 @@
     assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X  456", RegionCode.GB));
     assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 x 456  ", RegionCode.GB));
     assertEquals(ukNumber, phoneUtil.parse("+44 2034567890  X 456", RegionCode.GB));
+    assertEquals(ukNumber, phoneUtil.parse("+44-2034567890;ext=456", RegionCode.GB));
 
     PhoneNumber usWithExtension = new PhoneNumber();
     usWithExtension.setCountryCode(1).setNationalNumber(8009013355L).setExtension("7246433");
@@ -1577,7 +1704,7 @@
     // Invalid region code supplied.
     try {
       phoneUtil.parseAndKeepRawInput("123 456 7890", RegionCode.CS);
-      fail("Deprecated country code not allowed: should fail.");
+      fail("Deprecated region code not allowed: should fail.");
     } catch (NumberParseException e) {
       // Expected this exception.
       assertEquals("Wrong error type stored in exception.",
@@ -1614,8 +1741,8 @@
   }
 
   public void testIsNumberMatchMatches() throws Exception {
-    // Test simple matches where formatting is different, or leading zeroes, or country code has
-    // been specified.
+    // Test simple matches where formatting is different, or leading zeroes, or country calling code
+    // has been specified.
     assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
                  phoneUtil.isNumberMatch("+64 3 331 6005", "+64 03 331 6005"));
     assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
@@ -1665,10 +1792,10 @@
     // Non-matches.
     assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
                  phoneUtil.isNumberMatch("03 331 6005", "03 331 6006"));
-    // Different country code, partial number match.
+    // Different country calling code, partial number match.
     assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
                  phoneUtil.isNumberMatch("+64 3 331-6005", "+16433316005"));
-    // Different country code, same number.
+    // Different country calling code, same number.
     assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
                  phoneUtil.isNumberMatch("+64 3 331-6005", "+6133316005"));
     // Extension different, all else the same.
@@ -1697,8 +1824,8 @@
                  phoneUtil.isNumberMatch("3 331-6005", "03 331 6005"));
     assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
                  phoneUtil.isNumberMatch(NZ_NUMBER, "03 331 6005"));
-    // Here the second number possibly starts with the country code for New Zealand, although we are
-    // unsure.
+    // Here the second number possibly starts with the country calling code for New Zealand,
+    // although we are unsure.
     PhoneNumber unchangedNzNumber = new PhoneNumber().mergeFrom(NZ_NUMBER);
     assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
                  phoneUtil.isNumberMatch(unchangedNzNumber, "(64-3) 331 6005"));
@@ -1740,7 +1867,7 @@
                  phoneUtil.isNumberMatch("1 234 345 6789", "345 6789"));
     assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
                  phoneUtil.isNumberMatch("+1 (234) 345 6789", "345 6789"));
-    // NSN matches, country code omitted for one number, extension missing for one.
+    // NSN matches, country calling code omitted for one number, extension missing for one.
     assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
                  phoneUtil.isNumberMatch("+64 3 331-6005", "3 331 6005#1234"));
     // One has Italian leading zero, one does not.
@@ -1771,4 +1898,11 @@
     // We have no data for NZ - should return true.
     assertTrue(phoneUtil.canBeInternationallyDialled(NZ_NUMBER));
   }
+
+  public void testIsAlphaNumber() throws Exception {
+    assertTrue(phoneUtil.isAlphaNumber("1800 six-flags"));
+    assertTrue(phoneUtil.isAlphaNumber("1800 six-flags ext. 1234"));
+    assertFalse(phoneUtil.isAlphaNumber("1800 123-1234"));
+    assertFalse(phoneUtil.isAlphaNumber("1800 123-1234 extension: 1234"));
+  }
 }
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
index f72b264..0554c1f 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
index 486d96d..8f829b8 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
index e2efc8f..80e8ebf 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
index 8c20ebf..ecd6757 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
index d1a31b0..2c30b61 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
index 82b22fb..0c78534 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
index 1d2b408..1cbd1f3 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
index 3cc5f04..a75f0db 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
index 7887d32..f1c9af5 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
index 7c2b942..7f29bca 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
index 5857b91..7f1e18b 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
index e330135..5a494e6 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
index 0fd0d27..424909c 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
index 6ec64af..77a8f8f 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
index 0836187..0838f55 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
index 3db0e26..9e6ba69 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
Binary files differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
index b9da104..50db378 100644
--- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
Binary files differ
