July 5th, 2011
* Code changes
 - Refactored AreaCodeMap to minimize binary and memory footprint by using 2 different strategies.
 - Refactored BuildMetadataFromXml.java and added unittests.

* Metadata changes
 - Regenerate binaries for all existing area code mapping data with smaller sizes.
 - Added city-level area code data mapping for US and Canada.

June 29th, 2011
* Code changes
 - Fixed issue 38, issue 39, issue 41 and issue 43

* Metadata changes
 - Added phone number area mapping files for
   - JP in Japanese
   - FR in French
   - TW in English, Simplified and Traditional Chinese
   - RU in English
   - IT in English and Italian
   - PT in Portuguese
   - TR in English and Turkish
   - CH in English, German, French and Italian
 - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK

June 14th, 2011
* Code changes
 - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests.
 - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary
   files.
 - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate
   PhoneNumberOfflineGeocoding in the appengine demo.

* Metadata changes
 - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL
   and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean,
   Simplified and Traditional Chinese, and CN in Simplified Chinese.

June 10th, 2011
* Code changes:
 - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers
   surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be
   marked as a phone numbers.
 - Enable PhoneNumberUtil to handle all digits, rather than a subset
 - Fix for AYTF issue36 and improvement for US AYTF behaviour.
* Metadata changes:
 - Updates: BG, EG, ES, GH, PF, SC, SY, VA

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,
   falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode).
 - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput
 - New functionality to extract phone-numbers from text (findNumbers). This is just the first
   version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate
   endings are specified (such as 03-331 6005/6006).
* Code changes:
 - Tidying up the test file to use several pre-defined phone number constants
 - Fixing several lint errors
 - Added javadoc to formatNationalNumberWithCarrierCode
 - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an
   invalid region code
 - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU
* Metadata changes:
 - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW,
   LA, LU, MU, SC, SH, TR, VE
 - New country: SH

Mar 10th, 2011
* Code changes:
  - releasing the code to run the demo on localhost or appengine.

Mar 7th, 2011
* Metadata changes:
 - Adding support for AC

Feb 11th, 2011
* Metadata changes:
 - Update UAN number ranges for IM and JE.

Feb 9th, 2011
* Code changes:
  - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as
    an NSN_MATCH, instead of SHORT_NSN_MATCH.
    == Note Non-backwards-compatible API change here! ==
      This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one
      or other of the numbers provided do not match.
  - New number-type UAN now supported in the code. This represents Company Numbers or Universally
    Accessible Numbers.
* Metadata changes:
  - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG,
    IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US
  - New countries: CO, LU, LY, MC, SM
  - Addition of "Personal Number" ranges to all NANPA countries

Jan 31st, 2011
* Code changes:
  - Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class

Jan 28th, 2011
* Code changes:
  - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in
    reg-ex matches.

Jan 20th, 2011
* Code improvements:
  - Handle null phone-numbers when parsing by throwing a NumberParseException.
  - Handle extension written with an accented "o", as per Spanish, when parsing.
  - Handle U+30FC dashes as phone-number punctuation.
  - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or
    with other characters (such as whitespace) before the leading +.
  - new getLengthOfNationalDestinationCode function
* Metadata changes:
  - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that
    "generalDesc" patterns do not encompass short-codes.  No code-support for these has been
    introduced as of yet. We are also now enabling the collection of data for information such as
    area-code-optional, and no-international-dialling ranges.
  - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR,
    DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW
  - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD
  - Indentation fixes in reg-exes for the following countries: BG, GB
  - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle
    possible carrier prefixes

Jan 3rd, 2011
* Metadata changes:
  - Updates to JE
  - Updated comments for GB/GG/IM/JE

November 25th, 2010
* Metadata changes:
  - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM,
    GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI.
  - Reorganize reg-exes for better readability.
  - Updated comments.

October 22nd, 2010
* Metadata changes:
  - Updates to existing countries: AE, GB, GG, IM, JE

October 15th, 2010
* Code improvements:
  - Allowed parsing of numbers that start with "++" or a full-width "+" symbol
  - Allowed reg-exes for national and possible number patterns to have white space in them in the
    source XML file
  - Added a more useful toString method for the phone number proto class
* Metadata changes:
  - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE,
    TT, ZW
* Bug fixes:
  - Parsing empty strings with invalid region codes no longer throws a null pointer exception

September 4th, 2010
* Code improvement:
  - Added new phone number type: pager
* Metadata change:
  - update to existing country: GG, IM, JE, RS, RU
* Bug fixes:
  - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
  - AsYouTypeFormatter for UK childline number

September 1st, 2010
* Bug fix on KZ metadata.

August 17th, 2010
* Code improvement:
  - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
    BuildMetadataProtoFromXml.java
  - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java
  - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
    files.

August 16th, 2010
* Bug fixes
  - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format.
  - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format.
* Metadata change:
  - new countries: AM, AN, BH, GL, IS
  - adding national prefix 1 to all NANPA countries.
  - update to existing countries: BF, FR, UK, PK, RE

August 4th, 2010
* Further improve startup performance
  - Preload no country specific metadata at startup.
  - Stop creating the file containing mapping from country calling code to region code
    and loading it at startup; instead, do the initialization in PhoneNumberUtil.

July 31th, 2010

* Improve startup performance
  - Separate generated metadata binary file to one file per region
  - Preload US at start up, and load other region at the time when needed
  - Create a file containing mapping from country calling code to region code,
    and load it at startup
  - Same change also applied to unittests

July 30th, 2010
* Metadata change:
  - new country: TL
  - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN

* Code improvement
  - China local number formatting for AsYouTypeFormatter
  - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910#
