1.2.8 Apr 13th 2012
	- Fix: Close the database file without exceptions whether it is
	  open(STANDARD) or not(MEMORY_CACHE) in conjunction with the
	  CHECK_CACHE option. (Lorenzo Crosby)
1.2.7 Apr 10th 2012
        - Update timezones ( Boris Zentner )
	- Update FIPS codes 20120402 ( Boris Zentner )
1.2.6 Mar 28th 2012
        - Update country codes, FIPS codes and timezone ( Boris Zentner )
1.2.5 Aug 23th 2011
        - Fix small buffer issue when java tries to read over the EOF ( Boris Zentner )
        - Add support for new database types NETSPEED_EDITION_REV1_V6,
                NETSPEED_EDITION_REV1, ASNUM_EDITION_V6, CITY_EDITION_REV1_V6,
                ISP_EDITION_V6, ORG_EDITION_V6, DOMAIN_EDITION, DOMAIN_EDITION_V6 ( Boris Zentner )
        - Add new examples CityLookupTestV6 and ASNumLookupTestV6 ( Boris Zentner )
1.2.4 Aug 13th 2010
        - Update FIPS codes 20100810 ( Boris Zentner )
        - Simplify init code in class LookupServices ( Boris Zentner )
        - Big timezone update ( Boris Zentner )
        - Update FIPS codes 20100530 ( Boris Zentner )
        - Update FIPS codes 20100510 ( Boris Zentner )
        - Add IPv6 support via getCountryV6 ( Boris Zentner )
        - Add exmaple for IPv6 lookups: CountryLookupTestV6 ( Boris Zentner )
        - Fix DatabaseInfo string ( Boris Zentner ) 
        - Add netmask and last_netmask methods ( Boris Zentner )
        - Remove static keyword from objects that are reinitialized in the init() method. ( Tony Jacobs )
        - Replace nearly all calls to file.read() with file.readFully() ( Tony Jacobs )
        - Synchronized 100% of the calls to file ( Tony Jacobs )
        - Use Integer.valueOf() instead of new Integer() to reduce memory consumption. ( Tony Jacobs )
        - Use explicit imports instead of import java.io.*; and the like. ( Tony Jacobs )
        - Fix array length in distributed service setup ( quarz12h )
        - Sync with recent FIPS codes 20090723 ( Boris Zentner )
1.2.3  May 11th 2009 
        - Sync with recent FIPS codes 20090511 ( Boris Zentner )
        - Fixed spelling of Kazakhstan, was Kazakstan ( Boris Zentner )	
        - Fix rare out of range error, when the last entry of the Org/ISP/Domain database is copied ( MEMORY_CACHE only ). ( Boris Zentner )
	- Update timezones for Australia
	- Remore "\n" from RegionLookupTest.java. println add already a newline ( Boris Zentner )
	- Change regionName.java and generate_regionName.pl to support FIPS codes with letters ( Boris Zentner ). 
	- Sync with recent FIPS codes Jan 14th, 2009 ( Boris Zentner )
	- remove dma_code from city records. use  metro_code instead. ( Boris Zentner )
1.2.2  March 22nd 2008
	- Added BL/Saint Barthelemy, MF/Saint Martin (ISO-3166-1 additions)
	- Updated timeZone.java ( Boris Zentner )
	- Add missing \n to admin/generate_timeZone.pl ( Boris Zentner )
	- Fix refresh databaseInfo in combination with GEOIP_CHECK_CACHE ( Boris Zentner, Glenn Pedersen )
	- Changed license from GPL to LGPL, to allow commercial programs to include GeoIP API

1.2.1  June 19th 2007
	- Made GeoIP ASNum database work with Java API
	- Added timeZone and regionName classes to lookup timezone and region name
		from country code and region code (Frank Mather)

1.2.0  January 10th 2007
	- Added support for GEOIP_CHECK_CACHE (Frank Mather)
	- Allow database to be closed in memory cache mode
	- Replaced CS/Serbia and Montenegro with RS/Serbia, removed ZR/Zaire, added ME/Montenegro
	- Added AX/Aland Islands, GG/Guernsey, IM/Isle of Man, JE/Jersey (ISO-3166-1 changes)
	- Added support for GEOIP_INDEX_CACHE (Frank Mather)
	- close filehandle after data is read into memory for MemoryCache mode
	- Added BenchmarkGeoIP.java (Frank Mather)

1.1.8  August 18th 2006
	- Increased FULL_RECORD_LENGTH from 50 to 60, fixes Array out ArrayOutOfBounds=50
		for long city names in GeoIP City databases before July 2006
	- TP/East Timor changed to TL/Timor-Leste, reflecting changes in ISO-3166
	- Removed hashmap initialization for local database
	- Replaced Yugoslavia with Serbia and Montenegro

1.1.7  October 6th 2004
	- Specified ISO-8859-1 encoding for City, ISP and Organization field string
		(Yan Zhang Chen)

1.1.6  September 9th 2004
        - Fixed problem with postalCode, city and region fields 
	  returning null char (Frank Mather) 
	- Added support for GeoIP Netspeed Database (Frank Mather)
	- Added support for GEOIP_MEMORY_CACHE (Frank Mather)

1.1.5  June 3rd 2004
	- Added support for Maxmind GeoIP Region (Frank Mather)
	- Windows compatibility fix for CountryLookupTest.java (Hanan Al-Shargi)
	- Country name fixes

1.1.4  October 21st 2003
	- Added support for distributed queries (Frank Mather)
	- Massive code cleanup (Matt Tucker)
	- Added support for DMA code and Area codes (Frank Mather)

1.1.3  June 9th 2003
	- Added support for GeoIP Organization and ISP databases
	- Changed Taiwan, Province of China to Taiwan

1.1.2  December 16th 2002
	- Added support for postal codes in GeoIP City (beta)

1.1.1  Oct 31st 2002
	- Added support for GeoIP Full Edition, remaned CountryLookup class
	to Lookup

1.1.0  Oct 28th 2002
	- API Change!!! Return null instead of '--' if country can not be found
	- rewrote seekCountry to use loop instead of recursion for faster performance
	- Fixed error when looking Anonymous Proxies

1.0.4  Sep 11th 2002
	- Added close method to clean up filehandles
	(Jeroen Nijenhuis)

0.3.0  Aug  4th 2002
	- Added support for satellite providers

0.2.1  July 3rd 2002
	- Added support for anonymous proxies

0.1.2  Apr 14th 2002
	- Added public to CountryLookup class (Noel Bergman), should
	now be accessible outside of GeoIP package.

0.1.1  Apr 9th 2002
	- Initial Release
