Plugin Directory

Changeset 734683


Ignore:
Timestamp:
07/01/2013 03:27:36 PM (13 years ago)
Author:
mikelynn
Message:

Updated GeoIP PHP Api Version

Location:
wpgeocode/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wpgeocode/trunk/includes/geoip.php

    r428630 r734683  
    11<?php
    2 
    3 /* geoipcity.inc
    4  *
    5  * Copyright (C) 2004 Maxmind LLC
    6  *
    7  * This library is free software; you can redistribute it and/or
    8  * modify it under the terms of the GNU Lesser General Public
    9  * License as published by the Free Software Foundation; either
    10  * version 2.1 of the License, or (at your option) any later version.
    11  *
    12  * This library is distributed in the hope that it will be useful,
    13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    15  * Lesser General Public License for more details.
    16  *
    17  * You should have received a copy of the GNU Lesser General Public
    18  * License along with this library; if not, write to the Free Software
    19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
    20  */
    21 
    22 /*
    23  * Changelog:
    24  * 2009-09-16 mike challis PHP 5.3 fix
    25  * 2005-01-13   Andrew Hill, Awarez Ltd. (http://www.awarez.net)
    26  *              Formatted file according to PEAR library standards.
    27  *              Changed inclusion of geoip.inc file to require_once, so that
    28  *                  this library can be used in the same script as geoip.inc.
    29  */
    30 
    31 define("VMWO_FULL_RECORD_LENGTH",50);
    32 
    33 // mchallis begin geoip.inc ----------------------------------------------------
    342
    353/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
     
    4513 * This library is distributed in the hope that it will be useful,
    4614 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    47  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    4816 * Lesser General Public License for more details.
    4917 *
    5018 * You should have received a copy of the GNU Lesser General Public
    5119 * License along with this library; if not, write to the Free Software
    52  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
     20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    5321 */
    5422
    55 define("VMWO_GEOIP_COUNTRY_BEGIN", 16776960);
    56 define("VMWO_GEOIP_STATE_BEGIN_REV0", 16700000);
    57 define("VMWO_GEOIP_STATE_BEGIN_REV1", 16000000);
    58 define("VMWO_GEOIP_STANDARD", 0);
    59 define("VMWO_GEOIP_MEMORY_CACHE", 1);
    60 define("VMWO_GEOIP_SHARED_MEMORY", 2);
    61 define("VMWO_STRUCTURE_INFO_MAX_SIZE", 20);
    62 define("VMWO_DATABASE_INFO_MAX_SIZE", 100);
    63 define("VMWO_GEOIP_COUNTRY_EDITION", 106);
    64 define("VMWO_GEOIP_PROXY_EDITION", 8);
    65 define("VMWO_GEOIP_ASNUM_EDITION", 9);
    66 define("VMWO_GEOIP_NETSPEED_EDITION", 10);
    67 define("VMWO_GEOIP_REGION_EDITION_REV0", 112);
    68 define("VMWO_GEOIP_REGION_EDITION_REV1", 3);
    69 define("VMWO_GEOIP_CITY_EDITION_REV0", 111);
    70 define("VMWO_GEOIP_CITY_EDITION_REV1", 2);
    71 define("VMWO_GEOIP_ORG_EDITION", 110);
    72 define("VMWO_GEOIP_ISP_EDITION", 4);
    73 define("VMWO_SEGMENT_RECORD_LENGTH", 3);
    74 define("VMWO_STANDARD_RECORD_LENGTH", 3);
    75 define("VMWO_ORG_RECORD_LENGTH", 4);
    76 define("VMWO_MAX_RECORD_LENGTH", 4);
    77 define("VMWO_MAX_ORG_RECORD_LENGTH", 300);
    78 define("VMWO_GEOIP_SHM_KEY", 0x4f415401);
    79 define("VMWO_US_OFFSET", 1);
    80 define("VMWO_CANADA_OFFSET", 677);
    81 define("VMWO_WORLD_OFFSET", 1353);
    82 define("VMWO_FIPS_RANGE", 360);
    83 define("VMWO_GEOIP_UNKNOWN_SPEED", 0);
    84 define("VMWO_GEOIP_DIALUP_SPEED", 1);
    85 define("VMWO_GEOIP_CABLEDSL_SPEED", 2);
    86 define("VMWO_GEOIP_CORPORATE_SPEED", 3);
    87 
    88 class GeoIP_VMWO {
     23define("GEOIP_COUNTRY_BEGIN", 16776960);
     24define("GEOIP_STATE_BEGIN_REV0", 16700000);
     25define("GEOIP_STATE_BEGIN_REV1", 16000000);
     26define("GEOIP_STANDARD", 0);
     27define("GEOIP_MEMORY_CACHE", 1);
     28define("GEOIP_SHARED_MEMORY", 2);
     29define("STRUCTURE_INFO_MAX_SIZE", 20);
     30define("DATABASE_INFO_MAX_SIZE", 100);
     31define("GEOIP_COUNTRY_EDITION", 106);
     32define("GEOIP_PROXY_EDITION", 8);
     33define("GEOIP_ASNUM_EDITION", 9);
     34define("GEOIP_NETSPEED_EDITION", 10);
     35define("GEOIP_REGION_EDITION_REV0", 112);
     36define("GEOIP_REGION_EDITION_REV1", 3);
     37define("GEOIP_CITY_EDITION_REV0", 111);
     38define("GEOIP_CITY_EDITION_REV1", 2);
     39define("GEOIP_ORG_EDITION", 110);
     40define("GEOIP_ISP_EDITION", 4);
     41define("SEGMENT_RECORD_LENGTH", 3);
     42define("STANDARD_RECORD_LENGTH", 3);
     43define("ORG_RECORD_LENGTH", 4);
     44define("MAX_RECORD_LENGTH", 4);
     45define("MAX_ORG_RECORD_LENGTH", 300);
     46define("GEOIP_SHM_KEY", 0x4f415401);
     47define("US_OFFSET", 1);
     48define("CANADA_OFFSET", 677);
     49define("WORLD_OFFSET", 1353);
     50define("FIPS_RANGE", 360);
     51define("GEOIP_UNKNOWN_SPEED", 0);
     52define("GEOIP_DIALUP_SPEED", 1);
     53define("GEOIP_CABLEDSL_SPEED", 2);
     54define("GEOIP_CORPORATE_SPEED", 3);
     55define("GEOIP_DOMAIN_EDITION", 11);
     56define("GEOIP_COUNTRY_EDITION_V6", 12);
     57define("GEOIP_LOCATIONA_EDITION", 13);
     58define("GEOIP_ACCURACYRADIUS_EDITION", 14);
     59define("GEOIP_CITYCOMBINED_EDITION", 15);
     60define("GEOIP_CITY_EDITION_REV1_V6", 30);
     61define("GEOIP_CITY_EDITION_REV0_V6",31);
     62define("GEOIP_NETSPEED_EDITION_REV1",32);
     63define("GEOIP_NETSPEED_EDITION_REV1_V6",33);
     64define("GEOIP_USERTYPE_EDITION",28);
     65define("GEOIP_USERTYPE_EDITION_V6",29);
     66define("GEOIP_ASNUM_EDITION_V6",21);
     67define("GEOIP_ISP_EDITION_V6",22);
     68define("GEOIP_ORG_EDITION_V6",23);
     69define("GEOIP_DOMAIN_EDITION_V6",24);
     70
     71define("CITYCOMBINED_FIXED_RECORD", 7 );
     72
     73class GeoIP {
    8974    var $flags;
    9075    var $filehandle;
     
    9681    var $GEOIP_COUNTRY_CODE_TO_NUMBER = array(
    9782"" => 0, "AP" => 1, "EU" => 2, "AD" => 3, "AE" => 4, "AF" => 5,
    98 "AG" => 6, "AI" => 7, "AL" => 8, "AM" => 9, "AN" => 10, "AO" => 11,
     83"AG" => 6, "AI" => 7, "AL" => 8, "AM" => 9, "CW" => 10, "AO" => 11,
    9984"AQ" => 12, "AR" => 13, "AS" => 14, "AT" => 15, "AU" => 16, "AW" => 17,
    10085"AZ" => 18, "BA" => 19, "BB" => 20, "BD" => 21, "BE" => 22, "BF" => 23,
     
    10792"DO" => 60, "DZ" => 61, "EC" => 62, "EE" => 63, "EG" => 64, "EH" => 65,
    10893"ER" => 66, "ES" => 67, "ET" => 68, "FI" => 69, "FJ" => 70, "FK" => 71,
    109 "FM" => 72, "FO" => 73, "FR" => 74, "FX" => 75, "GA" => 76, "GB" => 77,
     94"FM" => 72, "FO" => 73, "FR" => 74, "SX" => 75, "GA" => 76, "GB" => 77,
    11095"GD" => 78, "GE" => 79, "GF" => 80, "GH" => 81, "GI" => 82, "GL" => 83,
    11196"GM" => 84, "GN" => 85, "GP" => 86, "GQ" => 87, "GR" => 88, "GS" => 89,
     
    137122"ZA" => 240, "ZM" => 241, "ME" => 242, "ZW" => 243, "A1" => 244, "A2" => 245,
    138123"O1" => 246, "AX" => 247, "GG" => 248, "IM" => 249, "JE" => 250, "BL" => 251,
    139 "MF" => 252
     124"MF" => 252, "BQ" => 253, "SS" => 254
    140125);
    141126    var $GEOIP_COUNTRY_CODES = array(
    142 "", "AP", "EU", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ",
    143 "AR", "AS", "AT", "AU", "AW", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH",
    144 "BI", "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA",
    145 "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU",
    146 "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG",
    147 "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "FX", "GA", "GB",
    148 "GD", "GE", "GF", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT",
    149 "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN",
    150 "IO", "IQ", "IR", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM",
    151 "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS",
    152 "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", "ML", "MM", "MN",
    153 "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA",
    154 "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA",
    155 "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY",
    156 "QA", "RE", "RO", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI",
    157 "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TC", "TD",
    158 "TF", "TG", "TH", "TJ", "TK", "TM", "TN", "TO", "TL", "TR", "TT", "TV", "TW",
    159 "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN",
    160 "VU", "WF", "WS", "YE", "YT", "RS", "ZA", "ZM", "ME", "ZW", "A1", "A2", "O1",
    161 "AX", "GG", "IM", "JE", "BL", "MF"
     127     "","AP","EU","AD","AE","AF","AG","AI","AL","AM","CW",
     128"AO","AQ","AR","AS","AT","AU","AW","AZ","BA","BB",
     129"BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO",
     130"BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD",
     131"CF","CG","CH","CI","CK","CL","CM","CN","CO","CR",
     132"CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO",
     133"DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ",
     134"FK","FM","FO","FR","SX","GA","GB","GD","GE","GF",
     135"GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT",
     136"GU","GW","GY","HK","HM","HN","HR","HT","HU","ID",
     137"IE","IL","IN","IO","IQ","IR","IS","IT","JM","JO",
     138"JP","KE","KG","KH","KI","KM","KN","KP","KR","KW",
     139"KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT",
     140"LU","LV","LY","MA","MC","MD","MG","MH","MK","ML",
     141"MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV",
     142"MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI",
     143"NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF",
     144"PG","PH","PK","PL","PM","PN","PR","PS","PT","PW",
     145"PY","QA","RE","RO","RU","RW","SA","SB","SC","SD",
     146"SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO",
     147"SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH",
     148"TJ","TK","TM","TN","TO","TL","TR","TT","TV","TW",
     149"TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE",
     150"VG","VI","VN","VU","WF","WS","YE","YT","RS","ZA",
     151"ZM","ME","ZW","A1","A2","O1","AX","GG","IM","JE",
     152  "BL","MF", "BQ", "SS", "O1" );
     153    var $GEOIP_COUNTRY_CODES3 = array(
     154      "","AP","EU","AND","ARE","AFG","ATG","AIA","ALB","ARM","CUW",
     155"AGO","ATA","ARG","ASM","AUT","AUS","ABW","AZE","BIH","BRB",
     156"BGD","BEL","BFA","BGR","BHR","BDI","BEN","BMU","BRN","BOL",
     157"BRA","BHS","BTN","BVT","BWA","BLR","BLZ","CAN","CCK","COD",
     158"CAF","COG","CHE","CIV","COK","CHL","CMR","CHN","COL","CRI",
     159"CUB","CPV","CXR","CYP","CZE","DEU","DJI","DNK","DMA","DOM",
     160"DZA","ECU","EST","EGY","ESH","ERI","ESP","ETH","FIN","FJI",
     161"FLK","FSM","FRO","FRA","SXM","GAB","GBR","GRD","GEO","GUF",
     162"GHA","GIB","GRL","GMB","GIN","GLP","GNQ","GRC","SGS","GTM",
     163"GUM","GNB","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN",
     164"IRL","ISR","IND","IOT","IRQ","IRN","ISL","ITA","JAM","JOR",
     165"JPN","KEN","KGZ","KHM","KIR","COM","KNA","PRK","KOR","KWT",
     166"CYM","KAZ","LAO","LBN","LCA","LIE","LKA","LBR","LSO","LTU",
     167"LUX","LVA","LBY","MAR","MCO","MDA","MDG","MHL","MKD","MLI",
     168"MMR","MNG","MAC","MNP","MTQ","MRT","MSR","MLT","MUS","MDV",
     169"MWI","MEX","MYS","MOZ","NAM","NCL","NER","NFK","NGA","NIC",
     170"NLD","NOR","NPL","NRU","NIU","NZL","OMN","PAN","PER","PYF",
     171"PNG","PHL","PAK","POL","SPM","PCN","PRI","PSE","PRT","PLW",
     172"PRY","QAT","REU","ROU","RUS","RWA","SAU","SLB","SYC","SDN",
     173"SWE","SGP","SHN","SVN","SJM","SVK","SLE","SMR","SEN","SOM",
     174"SUR","STP","SLV","SYR","SWZ","TCA","TCD","ATF","TGO","THA",
     175"TJK","TKL","TKM","TUN","TON","TLS","TUR","TTO","TUV","TWN",
     176"TZA","UKR","UGA","UMI","USA","URY","UZB","VAT","VCT","VEN",
     177"VGB","VIR","VNM","VUT","WLF","WSM","YEM","MYT","SRB","ZAF",
     178"ZMB","MNE","ZWE","A1","A2","O1","ALA","GGY","IMN","JEY",
     179  "BLM","MAF", "BES", "SSD", "O1"
     180  );
     181    var $GEOIP_COUNTRY_NAMES = array(
     182    "","Asia/Pacific Region","Europe","Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Curacao",
     183"Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Azerbaijan","Bosnia and Herzegovina","Barbados",
     184"Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Bermuda","Brunei Darussalam","Bolivia",
     185"Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands","Congo, The Democratic Republic of the",
     186"Central African Republic","Congo","Switzerland","Cote D'Ivoire","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica",
     187"Cuba","Cape Verde","Christmas Island","Cyprus","Czech Republic","Germany","Djibouti","Denmark","Dominica","Dominican Republic",
     188"Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji",
     189"Falkland Islands (Malvinas)","Micronesia, Federated States of","Faroe Islands","France","Sint Maarten (Dutch part)","Gabon","United Kingdom","Grenada","Georgia","French Guiana",
     190"Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala",
     191"Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia",
     192"Ireland","Israel","India","British Indian Ocean Territory","Iraq","Iran, Islamic Republic of","Iceland","Italy","Jamaica","Jordan",
     193"Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait",
     194"Cayman Islands","Kazakhstan","Lao People's Democratic Republic","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania",
     195"Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova, Republic of","Madagascar","Marshall Islands","Macedonia","Mali",
     196"Myanmar","Mongolia","Macau","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives",
     197"Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua",
     198"Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia",
     199"Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestinian Territory","Portugal","Palau",
     200"Paraguay","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan",
     201"Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname",
     202"Sao Tome and Principe","El Salvador","Syrian Arab Republic","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand",
     203"Tajikistan","Tokelau","Turkmenistan","Tunisia","Tonga","Timor-Leste","Turkey","Trinidad and Tobago","Tuvalu","Taiwan",
     204"Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands","United States","Uruguay","Uzbekistan","Holy See (Vatican City State)","Saint Vincent and the Grenadines","Venezuela",
     205"Virgin Islands, British","Virgin Islands, U.S.","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","Serbia","South Africa",
     206"Zambia","Montenegro","Zimbabwe","Anonymous Proxy","Satellite Provider","Other","Aland Islands","Guernsey","Isle of Man","Jersey",
     207        "Saint Barthelemy","Saint Martin", "Bonaire, Saint Eustatius and Saba",
     208"South Sudan", "Other"
    162209);
    163     var $GEOIP_COUNTRY_CODES3 = array(
    164 "","AP","EU","AND","ARE","AFG","ATG","AIA","ALB","ARM","ANT","AGO","AQ","ARG",
    165 "ASM","AUT","AUS","ABW","AZE","BIH","BRB","BGD","BEL","BFA","BGR","BHR","BDI",
    166 "BEN","BMU","BRN","BOL","BRA","BHS","BTN","BV","BWA","BLR","BLZ","CAN","CC",
    167 "COD","CAF","COG","CHE","CIV","COK","CHL","CMR","CHN","COL","CRI","CUB","CPV",
    168 "CX","CYP","CZE","DEU","DJI","DNK","DMA","DOM","DZA","ECU","EST","EGY","ESH",
    169 "ERI","ESP","ETH","FIN","FJI","FLK","FSM","FRO","FRA","FX","GAB","GBR","GRD",
    170 "GEO","GUF","GHA","GIB","GRL","GMB","GIN","GLP","GNQ","GRC","GS","GTM","GUM",
    171 "GNB","GUY","HKG","HM","HND","HRV","HTI","HUN","IDN","IRL","ISR","IND","IO",
    172 "IRQ","IRN","ISL","ITA","JAM","JOR","JPN","KEN","KGZ","KHM","KIR","COM","KNA",
    173 "PRK","KOR","KWT","CYM","KAZ","LAO","LBN","LCA","LIE","LKA","LBR","LSO","LTU",
    174 "LUX","LVA","LBY","MAR","MCO","MDA","MDG","MHL","MKD","MLI","MMR","MNG","MAC",
    175 "MNP","MTQ","MRT","MSR","MLT","MUS","MDV","MWI","MEX","MYS","MOZ","NAM","NCL",
    176 "NER","NFK","NGA","NIC","NLD","NOR","NPL","NRU","NIU","NZL","OMN","PAN","PER",
    177 "PYF","PNG","PHL","PAK","POL","SPM","PCN","PRI","PSE","PRT","PLW","PRY","QAT",
    178 "REU","ROU","RUS","RWA","SAU","SLB","SYC","SDN","SWE","SGP","SHN","SVN","SJM",
    179 "SVK","SLE","SMR","SEN","SOM","SUR","STP","SLV","SYR","SWZ","TCA","TCD","TF",
    180 "TGO","THA","TJK","TKL","TLS","TKM","TUN","TON","TUR","TTO","TUV","TWN","TZA",
    181 "UKR","UGA","UM","USA","URY","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT",
    182 "WLF","WSM","YEM","YT","SRB","ZAF","ZMB","MNE","ZWE","A1","A2","O1",
    183 "ALA","GGY","IMN","JEY","BLM","MAF"
    184     );
    185     var $GEOIP_COUNTRY_NAMES = array(
    186 "", "Asia/Pacific Region", "Europe", "Andorra", "United Arab Emirates",
    187 "Afghanistan", "Antigua and Barbuda", "Anguilla", "Albania", "Armenia",
    188 "Netherlands Antilles", "Angola", "Antarctica", "Argentina", "American Samoa",
    189 "Austria", "Australia", "Aruba", "Azerbaijan", "Bosnia and Herzegovina",
    190 "Barbados", "Bangladesh", "Belgium", "Burkina Faso", "Bulgaria", "Bahrain",
    191 "Burundi", "Benin", "Bermuda", "Brunei Darussalam", "Bolivia", "Brazil",
    192 "Bahamas", "Bhutan", "Bouvet Island", "Botswana", "Belarus", "Belize",
    193 "Canada", "Cocos (Keeling) Islands", "Congo, The Democratic Republic of the",
    194 "Central African Republic", "Congo", "Switzerland", "Cote D'Ivoire", "Cook Islands",
    195 "Chile", "Cameroon", "China", "Colombia", "Costa Rica", "Cuba", "Cape Verde",
    196 "Christmas Island", "Cyprus", "Czech Republic", "Germany", "Djibouti",
    197 "Denmark", "Dominica", "Dominican Republic", "Algeria", "Ecuador", "Estonia",
    198 "Egypt", "Western Sahara", "Eritrea", "Spain", "Ethiopia", "Finland", "Fiji",
    199 "Falkland Islands (Malvinas)", "Micronesia, Federated States of", "Faroe Islands",
    200 "France", "France, Metropolitan", "Gabon", "United Kingdom",
    201 "Grenada", "Georgia", "French Guiana", "Ghana", "Gibraltar", "Greenland",
    202 "Gambia", "Guinea", "Guadeloupe", "Equatorial Guinea", "Greece", "South Georgia and the South Sandwich Islands",
    203 "Guatemala", "Guam", "Guinea-Bissau",
    204 "Guyana", "Hong Kong", "Heard Island and McDonald Islands", "Honduras",
    205 "Croatia", "Haiti", "Hungary", "Indonesia", "Ireland", "Israel", "India",
    206 "British Indian Ocean Territory", "Iraq", "Iran, Islamic Republic of",
    207 "Iceland", "Italy", "Jamaica", "Jordan", "Japan", "Kenya", "Kyrgyzstan",
    208 "Cambodia", "Kiribati", "Comoros", "Saint Kitts and Nevis", "Korea, Democratic People's Republic of",
    209 "Korea, Republic of", "Kuwait", "Cayman Islands",
    210 "Kazakstan", "Lao People's Democratic Republic", "Lebanon", "Saint Lucia",
    211 "Liechtenstein", "Sri Lanka", "Liberia", "Lesotho", "Lithuania", "Luxembourg",
    212 "Latvia", "Libyan Arab Jamahiriya", "Morocco", "Monaco", "Moldova, Republic of",
    213 "Madagascar", "Marshall Islands", "Macedonia",
    214 "Mali", "Myanmar", "Mongolia", "Macau", "Northern Mariana Islands",
    215 "Martinique", "Mauritania", "Montserrat", "Malta", "Mauritius", "Maldives",
    216 "Malawi", "Mexico", "Malaysia", "Mozambique", "Namibia", "New Caledonia",
    217 "Niger", "Norfolk Island", "Nigeria", "Nicaragua", "Netherlands", "Norway",
    218 "Nepal", "Nauru", "Niue", "New Zealand", "Oman", "Panama", "Peru", "French Polynesia",
    219 "Papua New Guinea", "Philippines", "Pakistan", "Poland", "Saint Pierre and Miquelon",
    220 "Pitcairn Islands", "Puerto Rico", "Palestinian Territory",
    221 "Portugal", "Palau", "Paraguay", "Qatar", "Reunion", "Romania",
    222 "Russian Federation", "Rwanda", "Saudi Arabia", "Solomon Islands",
    223 "Seychelles", "Sudan", "Sweden", "Singapore", "Saint Helena", "Slovenia",
    224 "Svalbard and Jan Mayen", "Slovakia", "Sierra Leone", "San Marino", "Senegal",
    225 "Somalia", "Suriname", "Sao Tome and Principe", "El Salvador", "Syrian Arab Republic",
    226 "Swaziland", "Turks and Caicos Islands", "Chad", "French Southern Territories",
    227 "Togo", "Thailand", "Tajikistan", "Tokelau", "Turkmenistan",
    228 "Tunisia", "Tonga", "Timor-Leste", "Turkey", "Trinidad and Tobago", "Tuvalu",
    229 "Taiwan", "Tanzania, United Republic of", "Ukraine",
    230 "Uganda", "United States Minor Outlying Islands", "United States", "Uruguay",
    231 "Uzbekistan", "Holy See (Vatican City State)", "Saint Vincent and the Grenadines",
    232 "Venezuela", "Virgin Islands, British", "Virgin Islands, U.S.",
    233 "Vietnam", "Vanuatu", "Wallis and Futuna", "Samoa", "Yemen", "Mayotte",
    234 "Serbia", "South Africa", "Zambia", "Montenegro", "Zimbabwe",
    235 "Anonymous Proxy","Satellite Provider","Other",
    236 "Aland Islands","Guernsey","Isle of Man","Jersey","Saint Barthelemy","Saint Martin"
     210
     211    var $GEOIP_CONTINENT_CODES = array(
     212  "--", "AS","EU","EU","AS","AS","NA","NA","EU","AS","NA",
     213        "AF","AN","SA","OC","EU","OC","NA","AS","EU","NA",
     214        "AS","EU","AF","EU","AS","AF","AF","NA","AS","SA",
     215        "SA","NA","AS","AN","AF","EU","NA","NA","AS","AF",
     216        "AF","AF","EU","AF","OC","SA","AF","AS","SA","NA",
     217        "NA","AF","AS","AS","EU","EU","AF","EU","NA","NA",
     218        "AF","SA","EU","AF","AF","AF","EU","AF","EU","OC",
     219        "SA","OC","EU","EU","NA","AF","EU","NA","AS","SA",
     220        "AF","EU","NA","AF","AF","NA","AF","EU","AN","NA",
     221        "OC","AF","SA","AS","AN","NA","EU","NA","EU","AS",
     222        "EU","AS","AS","AS","AS","AS","EU","EU","NA","AS",
     223        "AS","AF","AS","AS","OC","AF","NA","AS","AS","AS",
     224        "NA","AS","AS","AS","NA","EU","AS","AF","AF","EU",
     225        "EU","EU","AF","AF","EU","EU","AF","OC","EU","AF",
     226        "AS","AS","AS","OC","NA","AF","NA","EU","AF","AS",
     227        "AF","NA","AS","AF","AF","OC","AF","OC","AF","NA",
     228        "EU","EU","AS","OC","OC","OC","AS","NA","SA","OC",
     229        "OC","AS","AS","EU","NA","OC","NA","AS","EU","OC",
     230        "SA","AS","AF","EU","EU","AF","AS","OC","AF","AF",
     231        "EU","AS","AF","EU","EU","EU","AF","EU","AF","AF",
     232        "SA","AF","NA","AS","AF","NA","AF","AN","AF","AS",
     233        "AS","OC","AS","AF","OC","AS","EU","NA","OC","AS",
     234        "AF","EU","AF","OC","NA","SA","AS","EU","NA","SA",
     235        "NA","NA","AS","OC","OC","OC","AS","AF","EU","AF",
     236        "AF","EU","AF","--","--","--","EU","EU","EU","EU",
     237        "NA","NA","NA", "AF", "--"
    237238);
    238 }
    239 function geoip_load_shared_mem_VMWO ($file) {
     239   
     240}
     241function geoip_load_shared_mem ($file) {
    240242
    241243  $fp = fopen($file, "rb");
     
    246248  $s_array = fstat($fp);
    247249  $size = $s_array['size'];
    248   if ($shmid = @shmop_open (VMWO_GEOIP_SHM_KEY, "w", 0, 0)) {
     250  if ($shmid = @shmop_open (GEOIP_SHM_KEY, "w", 0, 0)) {
    249251    shmop_delete ($shmid);
    250252    shmop_close ($shmid);
    251253  }
    252   $shmid = shmop_open (VMWO_GEOIP_SHM_KEY, "c", 0644, $size);
     254  $shmid = shmop_open (GEOIP_SHM_KEY, "c", 0644, $size);
    253255  shmop_write ($shmid, fread($fp, $size), 0);
    254256  shmop_close ($shmid);
    255257}
    256258
    257 function _setup_segments_VMWO($gi){
    258   $gi->databaseType = VMWO_GEOIP_COUNTRY_EDITION;
    259   $gi->record_length = VMWO_STANDARD_RECORD_LENGTH;
    260   if ($gi->flags & VMWO_GEOIP_SHARED_MEMORY) {
     259function _setup_segments($gi){
     260  $gi->databaseType = GEOIP_COUNTRY_EDITION;
     261  $gi->record_length = STANDARD_RECORD_LENGTH;
     262  if ($gi->flags & GEOIP_SHARED_MEMORY) {
    261263    $offset = @shmop_size ($gi->shmid) - 3;
    262     for ($i = 0; $i < VMWO_STRUCTURE_INFO_MAX_SIZE; $i++) {
     264    for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
    263265        $delim = @shmop_read ($gi->shmid, $offset, 3);
    264266        $offset += 3;
     
    267269            $offset++;
    268270
    269             if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV0){
    270                 $gi->databaseSegments = VMWO_GEOIP_STATE_BEGIN_REV0;
    271             } else if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV1){
    272                 $gi->databaseSegments = VMWO_GEOIP_STATE_BEGIN_REV1;
    273         } else if (($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV0)||
    274                      ($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV1)
    275                     || ($gi->databaseType == VMWO_GEOIP_ORG_EDITION)
    276             || ($gi->databaseType == VMWO_GEOIP_ISP_EDITION)
    277             || ($gi->databaseType == VMWO_GEOIP_ASNUM_EDITION)){
     271            if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
     272                $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
     273            } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){
     274                $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
     275} else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0)||
     276                     ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
     277                    || ($gi->databaseType == GEOIP_ORG_EDITION)
     278                    || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
     279                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
     280                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
     281|| ($gi->databaseType == GEOIP_ISP_EDITION)
     282|| ($gi->databaseType == GEOIP_ISP_EDITION_V6)
     283       || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
     284|| ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
     285|| ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
     286|| ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
     287|| ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
     288|| ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
     289                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
     290                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
     291|| ($gi->databaseType == GEOIP_ASNUM_EDITION)
     292|| ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){
    278293                $gi->databaseSegments = 0;
    279                 $buf = @shmop_read ($gi->shmid, $offset, VMWO_SEGMENT_RECORD_LENGTH);
    280                 for ($j = 0;$j < VMWO_SEGMENT_RECORD_LENGTH;$j++){
     294                $buf = @shmop_read ($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
     295                for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){
    281296                    $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
    282297                }
    283                 if (($gi->databaseType == VMWO_GEOIP_ORG_EDITION)||
    284             ($gi->databaseType == VMWO_GEOIP_ISP_EDITION)) {
    285                     $gi->record_length = VMWO_ORG_RECORD_LENGTH;
     298if (($gi->databaseType == GEOIP_ORG_EDITION)
     299|| ($gi->databaseType == GEOIP_ORG_EDITION_V6)
     300                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
     301                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
     302|| ($gi->databaseType == GEOIP_ISP_EDITION)
     303|| ($gi->databaseType == GEOIP_ISP_EDITION_V6)) {
     304$gi->record_length = ORG_RECORD_LENGTH;
    286305                }
    287306            }
     
    291310        }
    292311    }
    293     if (($gi->databaseType == VMWO_GEOIP_COUNTRY_EDITION)||
    294         ($gi->databaseType == VMWO_GEOIP_PROXY_EDITION)||
    295         ($gi->databaseType == VMWO_GEOIP_NETSPEED_EDITION)){
    296         $gi->databaseSegments = VMWO_GEOIP_COUNTRY_BEGIN;
     312    if (($gi->databaseType == GEOIP_COUNTRY_EDITION)||
     313        ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)||
     314        ($gi->databaseType == GEOIP_PROXY_EDITION)||
     315        ($gi->databaseType == GEOIP_NETSPEED_EDITION)){
     316        $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
    297317    }
    298318  } else {
    299319    $filepos = ftell($gi->filehandle);
    300320    fseek($gi->filehandle, -3, SEEK_END);
    301     for ($i = 0; $i < VMWO_STRUCTURE_INFO_MAX_SIZE; $i++) {
     321    for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
    302322        $delim = fread($gi->filehandle,3);
    303323        if ($delim == (chr(255).chr(255).chr(255))){
    304324        $gi->databaseType = ord(fread($gi->filehandle,1));
    305         if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV0){
    306             $gi->databaseSegments = VMWO_GEOIP_STATE_BEGIN_REV0;
     325        if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
     326            $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
    307327        }
    308         else if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV1){
    309         $gi->databaseSegments = VMWO_GEOIP_STATE_BEGIN_REV1;
    310                 }  else if (($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV0) ||
    311                  ($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV1) ||
    312                  ($gi->databaseType == VMWO_GEOIP_ORG_EDITION) ||
    313          ($gi->databaseType == VMWO_GEOIP_ISP_EDITION) ||
    314                  ($gi->databaseType == VMWO_GEOIP_ASNUM_EDITION)){
     328        else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){
     329$gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
     330                } else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
     331                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
     332                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
     333                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
     334                    || ($gi->databaseType == GEOIP_ORG_EDITION)
     335                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
     336|| ($gi->databaseType == GEOIP_ISP_EDITION)
     337                    || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
     338                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
     339|| ($gi->databaseType == GEOIP_ISP_EDITION_V6)
     340|| ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
     341|| ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
     342                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
     343|| ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
     344                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
     345                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
     346     || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
     347|| ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
     348                    || ($gi->databaseType == GEOIP_ASNUM_EDITION)
     349                    || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){
    315350            $gi->databaseSegments = 0;
    316             $buf = fread($gi->filehandle,VMWO_SEGMENT_RECORD_LENGTH);
    317             for ($j = 0;$j < VMWO_SEGMENT_RECORD_LENGTH;$j++){
     351            $buf = fread($gi->filehandle,SEGMENT_RECORD_LENGTH);
     352            for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){
    318353            $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
    319354            }
    320         if ($gi->databaseType == VMWO_GEOIP_ORG_EDITION ||
    321         $gi->databaseType == VMWO_GEOIP_ISP_EDITION) {
    322         $gi->record_length = VMWO_ORG_RECORD_LENGTH;
     355if ( ( $gi->databaseType == GEOIP_ORG_EDITION )
     356                || ( $gi->databaseType == GEOIP_DOMAIN_EDITION )
     357                || ( $gi->databaseType == GEOIP_ISP_EDITION )
     358                || ( $gi->databaseType == GEOIP_ORG_EDITION_V6 )
     359                || ( $gi->databaseType == GEOIP_DOMAIN_EDITION_V6 )
     360                || ( $gi->databaseType == GEOIP_ISP_EDITION_V6 )) {
     361$gi->record_length = ORG_RECORD_LENGTH;
    323362            }
    324363        }
     
    328367        }
    329368    }
    330     if (($gi->databaseType == VMWO_GEOIP_COUNTRY_EDITION)||
    331         ($gi->databaseType == VMWO_GEOIP_PROXY_EDITION)||
    332         ($gi->databaseType == VMWO_GEOIP_NETSPEED_EDITION)){
    333          $gi->databaseSegments = VMWO_GEOIP_COUNTRY_BEGIN;
     369    if (($gi->databaseType == GEOIP_COUNTRY_EDITION)||
     370        ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)||
     371        ($gi->databaseType == GEOIP_PROXY_EDITION)||
     372        ($gi->databaseType == GEOIP_NETSPEED_EDITION)){
     373         $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
    334374    }
    335375    fseek($gi->filehandle,$filepos,SEEK_SET);
     
    338378}
    339379
    340 function geoip_open_VMWO($filename, $flags) {
    341   $gi = new GeoIP_VMWO;
     380function geoip_open($filename, $flags) {
     381  $gi = new GeoIP;
    342382  $gi->flags = $flags;
    343   if ($gi->flags & VMWO_GEOIP_SHARED_MEMORY) {
    344     $gi->shmid = @shmop_open (VMWO_GEOIP_SHM_KEY, "a", 0, 0);
     383  if ($gi->flags & GEOIP_SHARED_MEMORY) {
     384    $gi->shmid = @shmop_open (GEOIP_SHM_KEY, "a", 0, 0);
    345385    } else {
    346     $gi->filehandle = fopen($filename,"rb");
    347     if ($gi->flags & VMWO_GEOIP_MEMORY_CACHE) {
     386    $gi->filehandle = fopen($filename,"rb") or die( "Can not open $filename\n" );
     387    if ($gi->flags & GEOIP_MEMORY_CACHE) {
    348388        $s_array = fstat($gi->filehandle);
    349389        $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
     
    351391  }
    352392
    353   $gi = _setup_segments_VMWO($gi);
     393  $gi = _setup_segments($gi);
    354394  return $gi;
    355395}
    356396
    357 function geoip_close_VMWO($gi) {
    358   if ($gi->flags & VMWO_GEOIP_SHARED_MEMORY) {
     397function geoip_close($gi) {
     398  if ($gi->flags & GEOIP_SHARED_MEMORY) {
    359399    return true;
    360400  }
     
    363403}
    364404
    365 function geoip_country_id_by_name_VMWO($gi, $name) {
     405function geoip_country_id_by_name_v6($gi, $name) {
     406  $rec = dns_get_record($name, DNS_AAAA);
     407  if ( !$rec ) {
     408    return false;
     409  }
     410  $addr = $rec[0]["ipv6"];
     411  if (!$addr || $addr == $name) {
     412    return false;
     413  }
     414  return geoip_country_id_by_addr_v6($gi, $addr);
     415}
     416
     417function geoip_country_id_by_name($gi, $name) {
    366418  $addr = gethostbyname($name);
    367419  if (!$addr || $addr == $name) {
    368420    return false;
    369421  }
    370   return geoip_country_id_by_addr_VMWO($gi, $addr);
    371 }
    372 
    373 function geoip_country_code_by_name_VMWO($gi, $name) {
    374   $country_id = geoip_country_id_by_name_VMWO($gi,$name);
     422  return geoip_country_id_by_addr($gi, $addr);
     423}
     424
     425function geoip_country_code_by_name_v6($gi, $name) {
     426  $country_id = geoip_country_id_by_name_v6($gi,$name);
    375427  if ($country_id !== false) {
    376428        return $gi->GEOIP_COUNTRY_CODES[$country_id];
     
    379431}
    380432
    381 function geoip_country_name_by_name_VMWO($gi, $name) {
    382   $country_id = geoip_country_id_by_name_VMWO($gi,$name);
     433function geoip_country_code_by_name($gi, $name) {
     434  $country_id = geoip_country_id_by_name($gi,$name);
     435  if ($country_id !== false) {
     436        return $gi->GEOIP_COUNTRY_CODES[$country_id];
     437  }
     438  return false;
     439}
     440
     441function geoip_country_name_by_name_v6($gi, $name) {
     442  $country_id = geoip_country_id_by_name_v6($gi,$name);
    383443  if ($country_id !== false) {
    384444        return $gi->GEOIP_COUNTRY_NAMES[$country_id];
     
    387447}
    388448
    389 function geoip_country_id_by_addr_VMWO($gi, $addr) {
     449function geoip_country_name_by_name($gi, $name) {
     450  $country_id = geoip_country_id_by_name($gi,$name);
     451  if ($country_id !== false) {
     452        return $gi->GEOIP_COUNTRY_NAMES[$country_id];
     453  }
     454  return false;
     455}
     456
     457function geoip_country_id_by_addr_v6($gi, $addr) {
     458  $ipnum = inet_pton($addr);
     459  return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
     460}
     461
     462function geoip_country_id_by_addr($gi, $addr) {
    390463  $ipnum = ip2long($addr);
    391   return _geoip_seek_country_VMWO($gi, $ipnum) - VMWO_GEOIP_COUNTRY_BEGIN;
    392 }
    393 
    394 function geoip_country_code_by_addr_VMWO($gi, $addr) {
    395   if ($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV1) {
    396     $record = geoip_record_by_addr($gi,$addr);
    397     return $record->country_code;
    398   } else {
    399     $country_id = geoip_country_id_by_addr_VMWO($gi,$addr);
     464  return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
     465}
     466
     467function geoip_country_code_by_addr_v6($gi, $addr) {
     468    $country_id = geoip_country_id_by_addr_v6($gi,$addr);
    400469    if ($country_id !== false) {
    401470      return $gi->GEOIP_COUNTRY_CODES[$country_id];
    402471    }
    403   }
    404   return false;
    405 }
    406 
    407 function geoip_country_name_by_addr_VMWO($gi, $addr) {
    408   if ($gi->databaseType == VMWO_GEOIP_CITY_EDITION_REV1) {
     472  return false;
     473}
     474
     475function geoip_country_code_by_addr($gi, $addr) {
     476  if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
     477    $record = geoip_record_by_addr($gi,$addr);
     478    if ( $record !== false ) {
     479      return $record->country_code;
     480    }
     481  } else {
     482    $country_id = geoip_country_id_by_addr($gi,$addr);
     483    if ($country_id !== false) {
     484      return $gi->GEOIP_COUNTRY_CODES[$country_id];
     485    }
     486  }
     487  return false;
     488}
     489
     490function geoip_country_name_by_addr_v6($gi, $addr) {
     491    $country_id = geoip_country_id_by_addr_v6($gi,$addr);
     492    if ($country_id !== false) {
     493      return $gi->GEOIP_COUNTRY_NAMES[$country_id];
     494    }
     495  return false;
     496}
     497
     498function geoip_country_name_by_addr($gi, $addr) {
     499  if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
    409500    $record = geoip_record_by_addr($gi,$addr);
    410501    return $record->country_name;
    411502  } else {
    412     $country_id = geoip_country_id_by_addr_VMWO($gi,$addr);
     503    $country_id = geoip_country_id_by_addr($gi,$addr);
    413504    if ($country_id !== false) {
    414505      return $gi->GEOIP_COUNTRY_NAMES[$country_id];
     
    418509}
    419510
    420 function _geoip_seek_country_VMWO($gi, $ipnum) {
     511function _geoip_seek_country_v6($gi, $ipnum) {
     512
     513  # arrays from unpack start with offset 1
     514  # yet another php mystery. array_merge work around
     515  # this broken behaviour
     516  $v6vec = array_merge(unpack( "C16", $ipnum));
     517
    421518  $offset = 0;
    422   for ($depth = 31; $depth >= 0; --$depth) {
    423     if ($gi->flags & VMWO_GEOIP_MEMORY_CACHE) {
     519  for ($depth = 127; $depth >= 0; --$depth) {
     520    if ($gi->flags & GEOIP_MEMORY_CACHE) {
     521      // workaround php's broken substr, strpos, etc handling with
     522      // mbstring.func_overload and mbstring.internal_encoding
     523      $enc = mb_internal_encoding();
     524       mb_internal_encoding('ISO-8859-1');
     525
    424526      $buf = substr($gi->memory_buffer,
    425527                            2 * $gi->record_length * $offset,
    426528                            2 * $gi->record_length);
    427         } elseif ($gi->flags & VMWO_GEOIP_SHARED_MEMORY) {
     529
     530      mb_internal_encoding($enc);
     531    } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
     532      $buf = @shmop_read ($gi->shmid,
     533                            2 * $gi->record_length * $offset,
     534                            2 * $gi->record_length );
     535        } else {
     536      fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
     537        or die("fseek failed");
     538      $buf = fread($gi->filehandle, 2 * $gi->record_length);
     539    }
     540    $x = array(0,0);
     541    for ($i = 0; $i < 2; ++$i) {
     542      for ($j = 0; $j < $gi->record_length; ++$j) {
     543        $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
     544      }
     545    }
     546
     547    $bnum = 127 - $depth;
     548    $idx = $bnum >> 3;
     549    $b_mask = 1 << ( $bnum & 7 ^ 7 );
     550    if (($v6vec[$idx] & $b_mask) > 0) {
     551      if ($x[1] >= $gi->databaseSegments) {
     552        return $x[1];
     553      }
     554      $offset = $x[1];
     555    } else {
     556      if ($x[0] >= $gi->databaseSegments) {
     557        return $x[0];
     558      }
     559      $offset = $x[0];
     560    }
     561  }
     562  trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
     563  return false;
     564}
     565
     566function _geoip_seek_country($gi, $ipnum) {
     567  $offset = 0;
     568  for ($depth = 31; $depth >= 0; --$depth) {
     569    if ($gi->flags & GEOIP_MEMORY_CACHE) {
     570      // workaround php's broken substr, strpos, etc handling with
     571      // mbstring.func_overload and mbstring.internal_encoding
     572      $enc = mb_internal_encoding();
     573       mb_internal_encoding('ISO-8859-1');
     574
     575      $buf = substr($gi->memory_buffer,
     576                            2 * $gi->record_length * $offset,
     577                            2 * $gi->record_length);
     578
     579      mb_internal_encoding($enc);
     580    } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
    428581      $buf = @shmop_read ($gi->shmid,
    429582                            2 * $gi->record_length * $offset,
     
    452605    }
    453606  }
    454   trigger_error("error traversing GeoLite City database file - perhaps it is corrupt? Try reinstalling it.", E_USER_ERROR);
    455   return false;
    456 }
    457 
    458 function _get_org_VMWO($gi,$ipnum){
    459   $seek_org = _geoip_seek_country_VMWO($gi,$ipnum);
     607  trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
     608  return false;
     609}
     610
     611function _common_get_org($gi, $seek_org){
     612  $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
     613  if ($gi->flags & GEOIP_SHARED_MEMORY) {
     614    $org_buf = @shmop_read ($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
     615    } else {
     616    fseek($gi->filehandle, $record_pointer, SEEK_SET);
     617    $org_buf = fread($gi->filehandle,MAX_ORG_RECORD_LENGTH);
     618  }
     619  // workaround php's broken substr, strpos, etc handling with
     620  // mbstring.func_overload and mbstring.internal_encoding
     621  $enc = mb_internal_encoding();
     622  mb_internal_encoding('ISO-8859-1');
     623  $org_buf = substr($org_buf, 0, strpos($org_buf, "\0"));
     624  mb_internal_encoding($enc);
     625  return $org_buf;
     626}
     627
     628function _get_org_v6($gi,$ipnum){
     629  $seek_org = _geoip_seek_country_v6($gi,$ipnum);
    460630  if ($seek_org == $gi->databaseSegments) {
    461631    return NULL;
    462632  }
    463   $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
    464   if ($gi->flags & VMWO_GEOIP_SHARED_MEMORY) {
    465     $org_buf = @shmop_read ($gi->shmid, $record_pointer, VMWO_MAX_ORG_RECORD_LENGTH);
    466     } else {
    467     fseek($gi->filehandle, $record_pointer, SEEK_SET);
    468     $org_buf = fread($gi->filehandle,VMWO_MAX_ORG_RECORD_LENGTH);
    469   }
    470   $org_buf = substr($org_buf, 0, strpos($org_buf, 0));
    471   return $org_buf;
    472 }
    473 
    474 function geoip_org_by_addr_VMWO($gi,$addr) {
     633  return _common_get_org($gi, $seek_org);
     634}
     635
     636function _get_org($gi,$ipnum){
     637  $seek_org = _geoip_seek_country($gi,$ipnum);
     638  if ($seek_org == $gi->databaseSegments) {
     639    return NULL;
     640  }
     641  return _common_get_org($gi, $seek_org);
     642}
     643
     644
     645
     646function geoip_name_by_addr_v6 ($gi,$addr) {
    475647  if ($addr == NULL) {
    476648    return 0;
    477649  }
     650  $ipnum = inet_pton($addr);
     651  return _get_org_v6($gi, $ipnum);
     652}
     653
     654function geoip_name_by_addr ($gi,$addr) {
     655  if ($addr == NULL) {
     656    return 0;
     657  }
    478658  $ipnum = ip2long($addr);
    479   return _get_org_VMWO($gi, $ipnum);
    480 }
    481 
    482 function _get_region_VMWO($gi,$ipnum){
    483   if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV0){
    484     $seek_region = _geoip_seek_country_VMWO($gi,$ipnum) - VMWO_GEOIP_STATE_BEGIN_REV0;
     659  return _get_org($gi, $ipnum);
     660}
     661
     662function geoip_org_by_addr ($gi,$addr) {
     663  return geoip_name_by_addr($gi, $addr);
     664}
     665
     666function _get_region($gi,$ipnum){
     667  if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
     668    $seek_region = _geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV0;
    485669    if ($seek_region >= 1000){
    486670      $country_code = "US";
     
    491675    }
    492676  return array ($country_code,$region);
    493     }  else if ($gi->databaseType == VMWO_GEOIP_REGION_EDITION_REV1) {
    494     $seek_region = _geoip_seek_country_VMWO($gi,$ipnum) - VMWO_GEOIP_STATE_BEGIN_REV1;
     677    } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
     678    $seek_region = _geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV1;
    495679    //print $seek_region;
    496     if ($seek_region < VMWO_US_OFFSET){
     680    if ($seek_region < US_OFFSET){
    497681      $country_code = "";
    498682      $region = "";
    499         } else if ($seek_region < VMWO_CANADA_OFFSET) {
     683        } else if ($seek_region < CANADA_OFFSET) {
    500684      $country_code = "US";
    501       $region = chr(($seek_region - VMWO_US_OFFSET)/26 + 65) . chr(($seek_region - VMWO_US_OFFSET)%26 + 65);
    502         } else if ($seek_region < VMWO_WORLD_OFFSET) {
     685      $region = chr(($seek_region - US_OFFSET)/26 + 65) . chr(($seek_region - US_OFFSET)%26 + 65);
     686        } else if ($seek_region < WORLD_OFFSET) {
    503687      $country_code = "CA";
    504       $region = chr(($seek_region - VMWO_CANADA_OFFSET)/26 + 65) . chr(($seek_region - VMWO_CANADA_OFFSET)%26 + 65);
     688      $region = chr(($seek_region - CANADA_OFFSET)/26 + 65) . chr(($seek_region - CANADA_OFFSET)%26 + 65);
    505689    } else {
    506             $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - VMWO_WORLD_OFFSET) / VMWO_FIPS_RANGE];
     690            $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
    507691      $region = "";
    508692    }
     
    511695}
    512696
    513 function geoip_region_by_addr_VMWO($gi,$addr) {
     697function geoip_region_by_addr ($gi,$addr) {
    514698  if ($addr == NULL) {
    515699    return 0;
    516700  }
    517701  $ipnum = ip2long($addr);
    518   return _get_region_VMWO($gi, $ipnum);
    519 }
    520 
    521 function getdnsattributes_VMWO($l,$ip){
     702  return _get_region($gi, $ipnum);
     703}
     704
     705function getdnsattributes ($l,$ip){
    522706  $r = new Net_DNS_Resolver();
    523707  $r->nameservers = array("ws1.maxmind.com");
    524708  $p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN");
    525709  $str = is_object($p->answer[0])?$p->answer[0]->string():'';
    526   //ereg("\"(.*)\"",$str,$regs); // mike challis PHP5.3 fix
    527   preg_match("/\"(.*)\"/",$str,$regs);
    528   $str = isset($regs[1]) ? $regs[1] : '';
     710  $str = substr( $str, 1, -1 );
    529711  return $str;
    530712}
    531713
    532 // mchallis end geoip.inc ------------------------------------------------------
    533 
    534 // mchallis begin geoipregionvars.php ------------------------------------------
    535 
    536 # Copyright 2008 Maxmind LLC All Rights Reserved
    537 $GEOIP_REGION_NAME = array(
    538 "AD" => array(
    539   "02" => "Canillo",
    540   "03" => "Encamp",
    541   "04" => "La Massana",
    542   "05" => "Ordino",
    543   "06" => "Sant Julia de Loria",
    544   "07" => "Andorra la Vella",
    545   "08" => "Escaldes-Engordany"),
    546 "AE" => array(
    547   "01" => "Abu Dhabi",
    548   "02" => "Ajman",
    549   "03" => "Dubai",
    550   "04" => "Fujairah",
    551   "05" => "Ras Al Khaimah",
    552   "06" => "Sharjah",
    553   "07" => "Umm Al Quwain"),
    554 "AF" => array(
    555   "01" => "Badakhshan",
    556   "02" => "Badghis",
    557   "03" => "Baghlan",
    558   "05" => "Bamian",
    559   "06" => "Farah",
    560   "07" => "Faryab",
    561   "08" => "Ghazni",
    562   "09" => "Ghowr",
    563   "10" => "Helmand",
    564   "11" => "Herat",
    565   "13" => "Kabol",
    566   "14" => "Kapisa",
    567   "15" => "Konar",
    568   "16" => "Laghman",
    569   "17" => "Lowgar",
    570   "18" => "Nangarhar",
    571   "19" => "Nimruz",
    572   "21" => "Paktia",
    573   "22" => "Parvan",
    574   "23" => "Kandahar",
    575   "24" => "Kondoz",
    576   "26" => "Takhar",
    577   "27" => "Vardak",
    578   "28" => "Zabol",
    579   "29" => "Paktika",
    580   "30" => "Balkh",
    581   "31" => "Jowzjan",
    582   "32" => "Samangan",
    583   "33" => "Sar-e Pol",
    584   "34" => "Konar",
    585   "35" => "Laghman",
    586   "36" => "Paktia",
    587   "37" => "Khowst",
    588   "38" => "Nurestan",
    589   "39" => "Oruzgan",
    590   "40" => "Parvan",
    591   "41" => "Daykondi",
    592   "42" => "Panjshir"),
    593 "AG" => array(
    594   "01" => "Barbuda",
    595   "03" => "Saint George",
    596   "04" => "Saint John",
    597   "05" => "Saint Mary",
    598   "06" => "Saint Paul",
    599   "07" => "Saint Peter",
    600   "08" => "Saint Philip"),
    601 "AL" => array(
    602   "40" => "Berat",
    603   "41" => "Diber",
    604   "42" => "Durres",
    605   "43" => "Elbasan",
    606   "44" => "Fier",
    607   "45" => "Gjirokaster",
    608   "46" => "Korce",
    609   "47" => "Kukes",
    610   "48" => "Lezhe",
    611   "49" => "Shkoder",
    612   "50" => "Tirane",
    613   "51" => "Vlore"),
    614 "AM" => array(
    615   "01" => "Aragatsotn",
    616   "02" => "Ararat",
    617   "03" => "Armavir",
    618   "04" => "Geghark'unik'",
    619   "05" => "Kotayk'",
    620   "06" => "Lorri",
    621   "07" => "Shirak",
    622   "08" => "Syunik'",
    623   "09" => "Tavush",
    624   "10" => "Vayots' Dzor",
    625   "11" => "Yerevan"),
    626 "AO" => array(
    627   "01" => "Benguela",
    628   "02" => "Bie",
    629   "03" => "Cabinda",
    630   "04" => "Cuando Cubango",
    631   "05" => "Cuanza Norte",
    632   "06" => "Cuanza Sul",
    633   "07" => "Cunene",
    634   "08" => "Huambo",
    635   "09" => "Huila",
    636   "10" => "Luanda",
    637   "12" => "Malanje",
    638   "14" => "Moxico",
    639   "15" => "Uige",
    640   "16" => "Zaire",
    641   "17" => "Lunda Norte",
    642   "18" => "Lunda Sul",
    643   "19" => "Bengo",
    644   "20" => "Luanda"),
    645 "AR" => array(
    646   "01" => "Buenos Aires",
    647   "02" => "Catamarca",
    648   "03" => "Chaco",
    649   "04" => "Chubut",
    650   "05" => "Cordoba",
    651   "06" => "Corrientes",
    652   "07" => "Distrito Federal",
    653   "08" => "Entre Rios",
    654   "09" => "Formosa",
    655   "10" => "Jujuy",
    656   "11" => "La Pampa",
    657   "12" => "La Rioja",
    658   "13" => "Mendoza",
    659   "14" => "Misiones",
    660   "15" => "Neuquen",
    661   "16" => "Rio Negro",
    662   "17" => "Salta",
    663   "18" => "San Juan",
    664   "19" => "San Luis",
    665   "20" => "Santa Cruz",
    666   "21" => "Santa Fe",
    667   "22" => "Santiago del Estero",
    668   "23" => "Tierra del Fuego",
    669   "24" => "Tucuman"),
    670 "AT" => array(
    671   "01" => "Burgenland",
    672   "02" => "Karnten",
    673   "03" => "Niederosterreich",
    674   "04" => "Oberosterreich",
    675   "05" => "Salzburg",
    676   "06" => "Steiermark",
    677   "07" => "Tirol",
    678   "08" => "Vorarlberg",
    679   "09" => "Wien"),
    680 "AU" => array(
    681   "01" => "Australian Capital Territory",
    682   "02" => "New South Wales",
    683   "03" => "Northern Territory",
    684   "04" => "Queensland",
    685   "05" => "South Australia",
    686   "06" => "Tasmania",
    687   "07" => "Victoria",
    688   "08" => "Western Australia"),
    689 "AZ" => array(
    690   "01" => "Abseron",
    691   "02" => "Agcabadi",
    692   "03" => "Agdam",
    693   "04" => "Agdas",
    694   "05" => "Agstafa",
    695   "06" => "Agsu",
    696   "07" => "Ali Bayramli",
    697   "08" => "Astara",
    698   "09" => "Baki",
    699   "10" => "Balakan",
    700   "11" => "Barda",
    701   "12" => "Beylaqan",
    702   "13" => "Bilasuvar",
    703   "14" => "Cabrayil",
    704   "15" => "Calilabad",
    705   "16" => "Daskasan",
    706   "17" => "Davaci",
    707   "18" => "Fuzuli",
    708   "19" => "Gadabay",
    709   "20" => "Ganca",
    710   "21" => "Goranboy",
    711   "22" => "Goycay",
    712   "23" => "Haciqabul",
    713   "24" => "Imisli",
    714   "25" => "Ismayilli",
    715   "26" => "Kalbacar",
    716   "27" => "Kurdamir",
    717   "28" => "Lacin",
    718   "29" => "Lankaran",
    719   "30" => "Lankaran",
    720   "31" => "Lerik",
    721   "32" => "Masalli",
    722   "33" => "Mingacevir",
    723   "34" => "Naftalan",
    724   "35" => "Naxcivan",
    725   "36" => "Neftcala",
    726   "37" => "Oguz",
    727   "38" => "Qabala",
    728   "39" => "Qax",
    729   "40" => "Qazax",
    730   "41" => "Qobustan",
    731   "42" => "Quba",
    732   "43" => "Qubadli",
    733   "44" => "Qusar",
    734   "45" => "Saatli",
    735   "46" => "Sabirabad",
    736   "47" => "Saki",
    737   "48" => "Saki",
    738   "49" => "Salyan",
    739   "50" => "Samaxi",
    740   "51" => "Samkir",
    741   "52" => "Samux",
    742   "53" => "Siyazan",
    743   "54" => "Sumqayit",
    744   "55" => "Susa",
    745   "56" => "Susa",
    746   "57" => "Tartar",
    747   "58" => "Tovuz",
    748   "59" => "Ucar",
    749   "60" => "Xacmaz",
    750   "61" => "Xankandi",
    751   "62" => "Xanlar",
    752   "63" => "Xizi",
    753   "64" => "Xocali",
    754   "65" => "Xocavand",
    755   "66" => "Yardimli",
    756   "67" => "Yevlax",
    757   "68" => "Yevlax",
    758   "69" => "Zangilan",
    759   "70" => "Zaqatala",
    760   "71" => "Zardab"),
    761 "BA" => array(
    762   "01" => "Federation of Bosnia and Herzegovina",
    763   "02" => "Republika Srpska"),
    764 "BB" => array(
    765   "01" => "Christ Church",
    766   "02" => "Saint Andrew",
    767   "03" => "Saint George",
    768   "04" => "Saint James",
    769   "05" => "Saint John",
    770   "06" => "Saint Joseph",
    771   "07" => "Saint Lucy",
    772   "08" => "Saint Michael",
    773   "09" => "Saint Peter",
    774   "10" => "Saint Philip",
    775   "11" => "Saint Thomas"),
    776 "BD" => array(
    777   "01" => "Barisal",
    778   "04" => "Bandarban",
    779   "05" => "Comilla",
    780   "12" => "Mymensingh",
    781   "13" => "Noakhali",
    782   "15" => "Patuakhali",
    783   "22" => "Bagerhat",
    784   "23" => "Bhola",
    785   "24" => "Bogra",
    786   "25" => "Barguna",
    787   "26" => "Brahmanbaria",
    788   "27" => "Chandpur",
    789   "28" => "Chapai Nawabganj",
    790   "29" => "Chattagram",
    791   "30" => "Chuadanga",
    792   "31" => "Cox's Bazar",
    793   "32" => "Dhaka",
    794   "33" => "Dinajpur",
    795   "34" => "Faridpur",
    796   "35" => "Feni",
    797   "36" => "Gaibandha",
    798   "37" => "Gazipur",
    799   "38" => "Gopalganj",
    800   "39" => "Habiganj",
    801   "40" => "Jaipurhat",
    802   "41" => "Jamalpur",
    803   "42" => "Jessore",
    804   "43" => "Jhalakati",
    805   "44" => "Jhenaidah",
    806   "45" => "Khagrachari",
    807   "46" => "Khulna",
    808   "47" => "Kishorganj",
    809   "48" => "Kurigram",
    810   "49" => "Kushtia",
    811   "50" => "Laksmipur",
    812   "51" => "Lalmonirhat",
    813   "52" => "Madaripur",
    814   "53" => "Magura",
    815   "54" => "Manikganj",
    816   "55" => "Meherpur",
    817   "56" => "Moulavibazar",
    818   "57" => "Munshiganj",
    819   "58" => "Naogaon",
    820   "59" => "Narail",
    821   "60" => "Narayanganj",
    822   "61" => "Narsingdi",
    823   "62" => "Nator",
    824   "63" => "Netrakona",
    825   "64" => "Nilphamari",
    826   "65" => "Pabna",
    827   "66" => "Panchagar",
    828   "67" => "Parbattya Chattagram",
    829   "68" => "Pirojpur",
    830   "69" => "Rajbari",
    831   "70" => "Rajshahi",
    832   "71" => "Rangpur",
    833   "72" => "Satkhira",
    834   "73" => "Shariyatpur",
    835   "74" => "Sherpur",
    836   "75" => "Sirajganj",
    837   "76" => "Sunamganj",
    838   "77" => "Sylhet",
    839   "78" => "Tangail",
    840   "79" => "Thakurgaon",
    841   "81" => "Dhaka",
    842   "82" => "Khulna",
    843   "83" => "Rajshahi",
    844   "84" => "Chittagong",
    845   "85" => "Barisal",
    846   "86" => "Sylhet"),
    847 "BE" => array(
    848   "01" => "Antwerpen",
    849   "02" => "Brabant",
    850   "03" => "Hainaut",
    851   "04" => "Liege",
    852   "05" => "Limburg",
    853   "06" => "Luxembourg",
    854   "07" => "Namur",
    855   "08" => "Oost-Vlaanderen",
    856   "09" => "West-Vlaanderen",
    857   "10" => "Brabant Wallon",
    858   "11" => "Brussels Hoofdstedelijk Gewest",
    859   "12" => "Vlaams-Brabant"),
    860 "BF" => array(
    861   "15" => "Bam",
    862   "19" => "Boulkiemde",
    863   "20" => "Ganzourgou",
    864   "21" => "Gnagna",
    865   "28" => "Kouritenga",
    866   "33" => "Oudalan",
    867   "34" => "Passore",
    868   "36" => "Sanguie",
    869   "40" => "Soum",
    870   "42" => "Tapoa",
    871   "44" => "Zoundweogo",
    872   "45" => "Bale",
    873   "46" => "Banwa",
    874   "47" => "Bazega",
    875   "48" => "Bougouriba",
    876   "49" => "Boulgou",
    877   "50" => "Gourma",
    878   "51" => "Houet",
    879   "52" => "Ioba",
    880   "53" => "Kadiogo",
    881   "54" => "Kenedougou",
    882   "55" => "Komoe",
    883   "56" => "Komondjari",
    884   "57" => "Kompienga",
    885   "58" => "Kossi",
    886   "59" => "Koulpelogo",
    887   "60" => "Kourweogo",
    888   "61" => "Leraba",
    889   "62" => "Loroum",
    890   "63" => "Mouhoun",
    891   "64" => "Namentenga",
    892   "65" => "Naouri",
    893   "66" => "Nayala",
    894   "67" => "Noumbiel",
    895   "68" => "Oubritenga",
    896   "69" => "Poni",
    897   "70" => "Sanmatenga",
    898   "71" => "Seno",
    899   "72" => "Sissili",
    900   "73" => "Sourou",
    901   "74" => "Tuy",
    902   "75" => "Yagha",
    903   "76" => "Yatenga",
    904   "77" => "Ziro",
    905   "78" => "Zondoma"),
    906 "BG" => array(
    907   "33" => "Mikhaylovgrad",
    908   "38" => "Blagoevgrad",
    909   "39" => "Burgas",
    910   "40" => "Dobrich",
    911   "41" => "Gabrovo",
    912   "42" => "Grad Sofiya",
    913   "43" => "Khaskovo",
    914   "44" => "Kurdzhali",
    915   "45" => "Kyustendil",
    916   "46" => "Lovech",
    917   "47" => "Montana",
    918   "48" => "Pazardzhik",
    919   "49" => "Pernik",
    920   "50" => "Pleven",
    921   "51" => "Plovdiv",
    922   "52" => "Razgrad",
    923   "53" => "Ruse",
    924   "54" => "Shumen",
    925   "55" => "Silistra",
    926   "56" => "Sliven",
    927   "57" => "Smolyan",
    928   "58" => "Sofiya",
    929   "59" => "Stara Zagora",
    930   "60" => "Turgovishte",
    931   "61" => "Varna",
    932   "62" => "Veliko Turnovo",
    933   "63" => "Vidin",
    934   "64" => "Vratsa",
    935   "65" => "Yambol"),
    936 "BH" => array(
    937   "01" => "Al Hadd",
    938   "02" => "Al Manamah",
    939   "03" => "Al Muharraq",
    940   "05" => "Jidd Hafs",
    941   "06" => "Sitrah",
    942   "08" => "Al Mintaqah al Gharbiyah",
    943   "09" => "Mintaqat Juzur Hawar",
    944   "10" => "Al Mintaqah ash Shamaliyah",
    945   "11" => "Al Mintaqah al Wusta",
    946   "12" => "Madinat",
    947   "13" => "Ar Rifa",
    948   "14" => "Madinat Hamad",
    949   "15" => "Al Muharraq",
    950   "16" => "Al Asimah",
    951   "17" => "Al Janubiyah",
    952   "18" => "Ash Shamaliyah",
    953   "19" => "Al Wusta"),
    954 "BI" => array(
    955   "02" => "Bujumbura",
    956   "09" => "Bubanza",
    957   "10" => "Bururi",
    958   "11" => "Cankuzo",
    959   "12" => "Cibitoke",
    960   "13" => "Gitega",
    961   "14" => "Karuzi",
    962   "15" => "Kayanza",
    963   "16" => "Kirundo",
    964   "17" => "Makamba",
    965   "18" => "Muyinga",
    966   "19" => "Ngozi",
    967   "20" => "Rutana",
    968   "21" => "Ruyigi",
    969   "22" => "Muramvya",
    970   "23" => "Mwaro"),
    971 "BJ" => array(
    972   "01" => "Atakora",
    973   "02" => "Atlantique",
    974   "03" => "Borgou",
    975   "04" => "Mono",
    976   "05" => "Oueme",
    977   "06" => "Zou",
    978   "14" => "Littoral"),
    979 "BM" => array(
    980   "01" => "Devonshire",
    981   "02" => "Hamilton",
    982   "03" => "Hamilton",
    983   "04" => "Paget",
    984   "05" => "Pembroke",
    985   "06" => "Saint George",
    986   "07" => "Saint George's",
    987   "08" => "Sandys",
    988   "09" => "Smiths",
    989   "10" => "Southampton",
    990   "11" => "Warwick"),
    991 "BN" => array(
    992   "07" => "Alibori",
    993   "08" => "Belait",
    994   "09" => "Brunei and Muara",
    995   "10" => "Temburong",
    996   "11" => "Collines",
    997   "12" => "Kouffo",
    998   "13" => "Donga",
    999   "14" => "Littoral",
    1000   "15" => "Tutong",
    1001   "16" => "Oueme",
    1002   "17" => "Plateau",
    1003   "18" => "Zou"),
    1004 "BO" => array(
    1005   "01" => "Chuquisaca",
    1006   "02" => "Cochabamba",
    1007   "03" => "El Beni",
    1008   "04" => "La Paz",
    1009   "05" => "Oruro",
    1010   "06" => "Pando",
    1011   "07" => "Potosi",
    1012   "08" => "Santa Cruz",
    1013   "09" => "Tarija"),
    1014 "BR" => array(
    1015   "01" => "Acre",
    1016   "02" => "Alagoas",
    1017   "03" => "Amapa",
    1018   "04" => "Amazonas",
    1019   "05" => "Bahia",
    1020   "06" => "Ceara",
    1021   "07" => "Distrito Federal",
    1022   "08" => "Espirito Santo",
    1023   "11" => "Mato Grosso do Sul",
    1024   "13" => "Maranhao",
    1025   "14" => "Mato Grosso",
    1026   "15" => "Minas Gerais",
    1027   "16" => "Para",
    1028   "17" => "Paraiba",
    1029   "18" => "Parana",
    1030   "20" => "Piaui",
    1031   "21" => "Rio de Janeiro",
    1032   "22" => "Rio Grande do Norte",
    1033   "23" => "Rio Grande do Sul",
    1034   "24" => "Rondonia",
    1035   "25" => "Roraima",
    1036   "26" => "Santa Catarina",
    1037   "27" => "Sao Paulo",
    1038   "28" => "Sergipe",
    1039   "29" => "Goias",
    1040   "30" => "Pernambuco",
    1041   "31" => "Tocantins"),
    1042 "BS" => array(
    1043   "05" => "Bimini",
    1044   "06" => "Cat Island",
    1045   "10" => "Exuma",
    1046   "13" => "Inagua",
    1047   "15" => "Long Island",
    1048   "16" => "Mayaguana",
    1049   "18" => "Ragged Island",
    1050   "22" => "Harbour Island",
    1051   "23" => "New Providence",
    1052   "24" => "Acklins and Crooked Islands",
    1053   "25" => "Freeport",
    1054   "26" => "Fresh Creek",
    1055   "27" => "Governor's Harbour",
    1056   "28" => "Green Turtle Cay",
    1057   "29" => "High Rock",
    1058   "30" => "Kemps Bay",
    1059   "31" => "Marsh Harbour",
    1060   "32" => "Nichollstown and Berry Islands",
    1061   "33" => "Rock Sound",
    1062   "34" => "Sandy Point",
    1063   "35" => "San Salvador and Rum Cay"),
    1064 "BT" => array(
    1065   "05" => "Bumthang",
    1066   "06" => "Chhukha",
    1067   "07" => "Chirang",
    1068   "08" => "Daga",
    1069   "09" => "Geylegphug",
    1070   "10" => "Ha",
    1071   "11" => "Lhuntshi",
    1072   "12" => "Mongar",
    1073   "13" => "Paro",
    1074   "14" => "Pemagatsel",
    1075   "15" => "Punakha",
    1076   "16" => "Samchi",
    1077   "17" => "Samdrup",
    1078   "18" => "Shemgang",
    1079   "19" => "Tashigang",
    1080   "20" => "Thimphu",
    1081   "21" => "Tongsa",
    1082   "22" => "Wangdi Phodrang"),
    1083 "BW" => array(
    1084   "01" => "Central",
    1085   "03" => "Ghanzi",
    1086   "04" => "Kgalagadi",
    1087   "05" => "Kgatleng",
    1088   "06" => "Kweneng",
    1089   "08" => "North-East",
    1090   "09" => "South-East",
    1091   "10" => "Southern",
    1092   "11" => "North-West"),
    1093 "BY" => array(
    1094   "01" => "Brestskaya Voblasts'",
    1095   "02" => "Homyel'skaya Voblasts'",
    1096   "03" => "Hrodzyenskaya Voblasts'",
    1097   "04" => "Minsk",
    1098   "05" => "Minskaya Voblasts'",
    1099   "06" => "Mahilyowskaya Voblasts'",
    1100   "07" => "Vitsyebskaya Voblasts'"),
    1101 "BZ" => array(
    1102   "01" => "Belize",
    1103   "02" => "Cayo",
    1104   "03" => "Corozal",
    1105   "04" => "Orange Walk",
    1106   "05" => "Stann Creek",
    1107   "06" => "Toledo"),
    1108 "CA" => array(
    1109   "AB" => "Alberta",
    1110   "BC" => "British Columbia",
    1111   "MB" => "Manitoba",
    1112   "NB" => "New Brunswick",
    1113   "NL" => "Newfoundland",
    1114   "NS" => "Nova Scotia",
    1115   "NT" => "Northwest Territories",
    1116   "NU" => "Nunavut",
    1117   "ON" => "Ontario",
    1118   "PE" => "Prince Edward Island",
    1119   "QC" => "Quebec",
    1120   "SK" => "Saskatchewan",
    1121   "YT" => "Yukon Territory"),
    1122 "CD" => array(
    1123   "01" => "Bandundu",
    1124   "02" => "Equateur",
    1125   "04" => "Kasai-Oriental",
    1126   "05" => "Katanga",
    1127   "06" => "Kinshasa",
    1128   "07" => "Kivu",
    1129   "08" => "Bas-Congo",
    1130   "09" => "Orientale",
    1131   "10" => "Maniema",
    1132   "11" => "Nord-Kivu",
    1133   "12" => "Sud-Kivu",
    1134   "13" => "Cuvette"),
    1135 "CF" => array(
    1136   "01" => "Bamingui-Bangoran",
    1137   "02" => "Basse-Kotto",
    1138   "03" => "Haute-Kotto",
    1139   "04" => "Mambere-Kadei",
    1140   "05" => "Haut-Mbomou",
    1141   "06" => "Kemo",
    1142   "07" => "Lobaye",
    1143   "08" => "Mbomou",
    1144   "09" => "Nana-Mambere",
    1145   "11" => "Ouaka",
    1146   "12" => "Ouham",
    1147   "13" => "Ouham-Pende",
    1148   "14" => "Cuvette-Ouest",
    1149   "15" => "Nana-Grebizi",
    1150   "16" => "Sangha-Mbaere",
    1151   "17" => "Ombella-Mpoko",
    1152   "18" => "Bangui"),
    1153 "CG" => array(
    1154   "01" => "Bouenza",
    1155   "03" => "Cuvette",
    1156   "04" => "Kouilou",
    1157   "05" => "Lekoumou",
    1158   "06" => "Likouala",
    1159   "07" => "Niari",
    1160   "08" => "Plateaux",
    1161   "10" => "Sangha",
    1162   "11" => "Pool",
    1163   "12" => "Brazzaville"),
    1164 "CH" => array(
    1165   "01" => "Aargau",
    1166   "02" => "Ausser-Rhoden",
    1167   "03" => "Basel-Landschaft",
    1168   "04" => "Basel-Stadt",
    1169   "05" => "Bern",
    1170   "06" => "Fribourg",
    1171   "07" => "Geneve",
    1172   "08" => "Glarus",
    1173   "09" => "Graubunden",
    1174   "10" => "Inner-Rhoden",
    1175   "11" => "Luzern",
    1176   "12" => "Neuchatel",
    1177   "13" => "Nidwalden",
    1178   "14" => "Obwalden",
    1179   "15" => "Sankt Gallen",
    1180   "16" => "Schaffhausen",
    1181   "17" => "Schwyz",
    1182   "18" => "Solothurn",
    1183   "19" => "Thurgau",
    1184   "20" => "Ticino",
    1185   "21" => "Uri",
    1186   "22" => "Valais",
    1187   "23" => "Vaud",
    1188   "24" => "Zug",
    1189   "25" => "Zurich",
    1190   "26" => "Jura"),
    1191 "CI" => array(
    1192   "51" => "Sassandra",
    1193   "61" => "Abidjan",
    1194   "74" => "Agneby",
    1195   "75" => "Bafing",
    1196   "76" => "Bas-Sassandra",
    1197   "77" => "Denguele",
    1198   "78" => "Dix-Huit Montagnes",
    1199   "79" => "Fromager",
    1200   "80" => "Haut-Sassandra",
    1201   "81" => "Lacs",
    1202   "82" => "Lagunes",
    1203   "83" => "Marahoue",
    1204   "84" => "Moyen-Cavally",
    1205   "85" => "Moyen-Comoe",
    1206   "86" => "N'zi-Comoe",
    1207   "87" => "Savanes",
    1208   "88" => "Sud-Bandama",
    1209   "89" => "Sud-Comoe",
    1210   "90" => "Vallee du Bandama",
    1211   "91" => "Worodougou",
    1212   "92" => "Zanzan"),
    1213 "CL" => array(
    1214   "01" => "Valparaiso",
    1215   "02" => "Aisen del General Carlos Ibanez del Campo",
    1216   "03" => "Antofagasta",
    1217   "04" => "Araucania",
    1218   "05" => "Atacama",
    1219   "06" => "Bio-Bio",
    1220   "07" => "Coquimbo",
    1221   "08" => "Libertador General Bernardo O'Higgins",
    1222   "09" => "Los Lagos",
    1223   "10" => "Magallanes y de la Antartica Chilena",
    1224   "11" => "Maule",
    1225   "12" => "Region Metropolitana",
    1226   "13" => "Tarapaca"),
    1227 "CM" => array(
    1228   "04" => "Est",
    1229   "05" => "Littoral",
    1230   "07" => "Nord-Ouest",
    1231   "08" => "Ouest",
    1232   "09" => "Sud-Ouest",
    1233   "10" => "Adamaoua",
    1234   "11" => "Centre",
    1235   "12" => "Extreme-Nord",
    1236   "13" => "Nord",
    1237   "14" => "Sud"),
    1238 "CN" => array(
    1239   "01" => "Anhui",
    1240   "02" => "Zhejiang",
    1241   "03" => "Jiangxi",
    1242   "04" => "Jiangsu",
    1243   "05" => "Jilin",
    1244   "06" => "Qinghai",
    1245   "07" => "Fujian",
    1246   "08" => "Heilongjiang",
    1247   "09" => "Henan",
    1248   "10" => "Hebei",
    1249   "11" => "Hunan",
    1250   "12" => "Hubei",
    1251   "13" => "Xinjiang",
    1252   "14" => "Xizang",
    1253   "15" => "Gansu",
    1254   "16" => "Guangxi",
    1255   "18" => "Guizhou",
    1256   "19" => "Liaoning",
    1257   "20" => "Nei Mongol",
    1258   "21" => "Ningxia",
    1259   "22" => "Beijing",
    1260   "23" => "Shanghai",
    1261   "24" => "Shanxi",
    1262   "25" => "Shandong",
    1263   "26" => "Shaanxi",
    1264   "28" => "Tianjin",
    1265   "29" => "Yunnan",
    1266   "30" => "Guangdong",
    1267   "31" => "Hainan",
    1268   "32" => "Sichuan",
    1269   "33" => "Chongqing"),
    1270 "CO" => array(
    1271   "01" => "Amazonas",
    1272   "02" => "Antioquia",
    1273   "03" => "Arauca",
    1274   "04" => "Atlantico",
    1275   "05" => "Bolívar Department",
    1276   "06" => "Boyacá Department",
    1277   "07" => "Caldas Department",
    1278   "08" => "Caqueta",
    1279   "09" => "Cauca",
    1280   "10" => "Cesar",
    1281   "11" => "Choco",
    1282   "12" => "Cordoba",
    1283   "14" => "Guaviare",
    1284   "15" => "Guainia",
    1285   "16" => "Huila",
    1286   "17" => "La Guajira",
    1287   "18" => "Magdalena Department",
    1288   "19" => "Meta",
    1289   "20" => "Narino",
    1290   "21" => "Norte de Santander",
    1291   "22" => "Putumayo",
    1292   "23" => "Quindio",
    1293   "24" => "Risaralda",
    1294   "25" => "San Andres y Providencia",
    1295   "26" => "Santander",
    1296   "27" => "Sucre",
    1297   "28" => "Tolima",
    1298   "29" => "Valle del Cauca",
    1299   "30" => "Vaupes",
    1300   "31" => "Vichada",
    1301   "32" => "Casanare",
    1302   "33" => "Cundinamarca",
    1303   "34" => "Distrito Especial",
    1304   "35" => "Bolivar",
    1305   "36" => "Boyaca",
    1306   "37" => "Caldas",
    1307   "38" => "Magdalena"),
    1308 "CR" => array(
    1309   "01" => "Alajuela",
    1310   "02" => "Cartago",
    1311   "03" => "Guanacaste",
    1312   "04" => "Heredia",
    1313   "06" => "Limon",
    1314   "07" => "Puntarenas",
    1315   "08" => "San Jose"),
    1316 "CU" => array(
    1317   "01" => "Pinar del Rio",
    1318   "02" => "Ciudad de la Habana",
    1319   "03" => "Matanzas",
    1320   "04" => "Isla de la Juventud",
    1321   "05" => "Camaguey",
    1322   "07" => "Ciego de Avila",
    1323   "08" => "Cienfuegos",
    1324   "09" => "Granma",
    1325   "10" => "Guantanamo",
    1326   "11" => "La Habana",
    1327   "12" => "Holguin",
    1328   "13" => "Las Tunas",
    1329   "14" => "Sancti Spiritus",
    1330   "15" => "Santiago de Cuba",
    1331   "16" => "Villa Clara"),
    1332 "CV" => array(
    1333   "01" => "Boa Vista",
    1334   "02" => "Brava",
    1335   "04" => "Maio",
    1336   "05" => "Paul",
    1337   "07" => "Ribeira Grande",
    1338   "08" => "Sal",
    1339   "10" => "Sao Nicolau",
    1340   "11" => "Sao Vicente",
    1341   "13" => "Mosteiros",
    1342   "14" => "Praia",
    1343   "15" => "Santa Catarina",
    1344   "16" => "Santa Cruz",
    1345   "17" => "Sao Domingos",
    1346   "18" => "Sao Filipe",
    1347   "19" => "Sao Miguel",
    1348   "20" => "Tarrafal"),
    1349 "CY" => array(
    1350   "01" => "Famagusta",
    1351   "02" => "Kyrenia",
    1352   "03" => "Larnaca",
    1353   "04" => "Nicosia",
    1354   "05" => "Limassol",
    1355   "06" => "Paphos"),
    1356 "CZ" => array(
    1357   "03" => "Blansko",
    1358   "04" => "Breclav",
    1359   "20" => "Hradec Kralove",
    1360   "21" => "Jablonec nad Nisou",
    1361   "23" => "Jiein",
    1362   "24" => "Jihlava",
    1363   "30" => "Kolin",
    1364   "33" => "Liberec",
    1365   "36" => "Melnik",
    1366   "37" => "Mlada Boleslav",
    1367   "39" => "Nachod",
    1368   "41" => "Nymburk",
    1369   "45" => "Pardubice",
    1370   "52" => "Hlavni Mesto Praha",
    1371   "61" => "Semily",
    1372   "70" => "Trutnov",
    1373   "78" => "Jihomoravsky Kraj",
    1374   "79" => "Jihocesky Kraj",
    1375   "80" => "Vysocina",
    1376   "81" => "Karlovarsky Kraj",
    1377   "82" => "Kralovehradecky Kraj",
    1378   "83" => "Liberecky Kraj",
    1379   "84" => "Olomoucky Kraj",
    1380   "85" => "Moravskoslezsky Kraj",
    1381   "86" => "Pardubicky Kraj",
    1382   "87" => "Plzensky Kraj",
    1383   "88" => "Stredocesky Kraj",
    1384   "89" => "Ustecky Kraj",
    1385   "90" => "Zlinsky Kraj"),
    1386 "DE" => array(
    1387   "01" => "Baden-Wurttemberg",
    1388   "02" => "Bayern",
    1389   "03" => "Bremen",
    1390   "04" => "Hamburg",
    1391   "05" => "Hessen",
    1392   "06" => "Niedersachsen",
    1393   "07" => "Nordrhein-Westfalen",
    1394   "08" => "Rheinland-Pfalz",
    1395   "09" => "Saarland",
    1396   "10" => "Schleswig-Holstein",
    1397   "11" => "Brandenburg",
    1398   "12" => "Mecklenburg-Vorpommern",
    1399   "13" => "Sachsen",
    1400   "14" => "Sachsen-Anhalt",
    1401   "15" => "Thuringen",
    1402   "16" => "Berlin"),
    1403 "DJ" => array(
    1404   "01" => "Ali Sabieh",
    1405   "04" => "Obock",
    1406   "05" => "Tadjoura",
    1407   "06" => "Dikhil",
    1408   "07" => "Djibouti",
    1409   "08" => "Arta"),
    1410 "DK" => array(
    1411   "01" => "Arhus",
    1412   "02" => "Bornholm",
    1413   "03" => "Frederiksborg",
    1414   "04" => "Fyn",
    1415   "05" => "Kobenhavn",
    1416   "06" => "Staden Kobenhavn",
    1417   "07" => "Nordjylland",
    1418   "08" => "Ribe",
    1419   "09" => "Ringkobing",
    1420   "10" => "Roskilde",
    1421   "11" => "Sonderjylland",
    1422   "12" => "Storstrom",
    1423   "13" => "Vejle",
    1424   "14" => "Vestsjalland",
    1425   "15" => "Viborg",
    1426   "17" => "Hovedstaden",
    1427   "18" => "Midtjyllen",
    1428   "19" => "Nordjylland",
    1429   "20" => "Sjelland",
    1430   "21" => "Syddanmark"),
    1431 "DM" => array(
    1432   "02" => "Saint Andrew",
    1433   "03" => "Saint David",
    1434   "04" => "Saint George",
    1435   "05" => "Saint John",
    1436   "06" => "Saint Joseph",
    1437   "07" => "Saint Luke",
    1438   "08" => "Saint Mark",
    1439   "09" => "Saint Patrick",
    1440   "10" => "Saint Paul",
    1441   "11" => "Saint Peter"),
    1442 "DO" => array(
    1443   "01" => "Azua",
    1444   "02" => "Baoruco",
    1445   "03" => "Barahona",
    1446   "04" => "Dajabon",
    1447   "05" => "Distrito Nacional",
    1448   "06" => "Duarte",
    1449   "08" => "Espaillat",
    1450   "09" => "Independencia",
    1451   "10" => "La Altagracia",
    1452   "11" => "Elias Pina",
    1453   "12" => "La Romana",
    1454   "14" => "Maria Trinidad Sanchez",
    1455   "15" => "Monte Cristi",
    1456   "16" => "Pedernales",
    1457   "17" => "Peravia",
    1458   "18" => "Puerto Plata",
    1459   "19" => "Salcedo",
    1460   "20" => "Samana",
    1461   "21" => "Sanchez Ramirez",
    1462   "23" => "San Juan",
    1463   "24" => "San Pedro De Macoris",
    1464   "25" => "Santiago",
    1465   "26" => "Santiago Rodriguez",
    1466   "27" => "Valverde",
    1467   "28" => "El Seibo",
    1468   "29" => "Hato Mayor",
    1469   "30" => "La Vega",
    1470   "31" => "Monsenor Nouel",
    1471   "32" => "Monte Plata",
    1472   "33" => "San Cristobal",
    1473   "34" => "Distrito Nacional",
    1474   "35" => "Peravia",
    1475   "36" => "San Jose de Ocoa",
    1476   "37" => "Santo Domingo"),
    1477 "DZ" => array(
    1478   "01" => "Alger",
    1479   "03" => "Batna",
    1480   "04" => "Constantine",
    1481   "06" => "Medea",
    1482   "07" => "Mostaganem",
    1483   "09" => "Oran",
    1484   "10" => "Saida",
    1485   "12" => "Setif",
    1486   "13" => "Tiaret",
    1487   "14" => "Tizi Ouzou",
    1488   "15" => "Tlemcen",
    1489   "18" => "Bejaia",
    1490   "19" => "Biskra",
    1491   "20" => "Blida",
    1492   "21" => "Bouira",
    1493   "22" => "Djelfa",
    1494   "23" => "Guelma",
    1495   "24" => "Jijel",
    1496   "25" => "Laghouat",
    1497   "26" => "Mascara",
    1498   "27" => "M'sila",
    1499   "29" => "Oum el Bouaghi",
    1500   "30" => "Sidi Bel Abbes",
    1501   "31" => "Skikda",
    1502   "33" => "Tebessa",
    1503   "34" => "Adrar",
    1504   "35" => "Ain Defla",
    1505   "36" => "Ain Temouchent",
    1506   "37" => "Annaba",
    1507   "38" => "Bechar",
    1508   "39" => "Bordj Bou Arreridj",
    1509   "40" => "Boumerdes",
    1510   "41" => "Chlef",
    1511   "42" => "El Bayadh",
    1512   "43" => "El Oued",
    1513   "44" => "El Tarf",
    1514   "45" => "Ghardaia",
    1515   "46" => "Illizi",
    1516   "47" => "Khenchela",
    1517   "48" => "Mila",
    1518   "49" => "Naama",
    1519   "50" => "Ouargla",
    1520   "51" => "Relizane",
    1521   "52" => "Souk Ahras",
    1522   "53" => "Tamanghasset",
    1523   "54" => "Tindouf",
    1524   "55" => "Tipaza",
    1525   "56" => "Tissemsilt"),
    1526 "EC" => array(
    1527   "01" => "Galapagos",
    1528   "02" => "Azuay",
    1529   "03" => "Bolivar",
    1530   "04" => "Canar",
    1531   "05" => "Carchi",
    1532   "06" => "Chimborazo",
    1533   "07" => "Cotopaxi",
    1534   "08" => "El Oro",
    1535   "09" => "Esmeraldas",
    1536   "10" => "Guayas",
    1537   "11" => "Imbabura",
    1538   "12" => "Loja",
    1539   "13" => "Los Rios",
    1540   "14" => "Manabi",
    1541   "15" => "Morona-Santiago",
    1542   "17" => "Pastaza",
    1543   "18" => "Pichincha",
    1544   "19" => "Tungurahua",
    1545   "20" => "Zamora-Chinchipe",
    1546   "22" => "Sucumbios",
    1547   "23" => "Napo",
    1548   "24" => "Orellana"),
    1549 "EE" => array(
    1550   "01" => "Harjumaa",
    1551   "02" => "Hiiumaa",
    1552   "03" => "Ida-Virumaa",
    1553   "04" => "Jarvamaa",
    1554   "05" => "Jogevamaa",
    1555   "06" => "Kohtla-Jarve",
    1556   "07" => "Laanemaa",
    1557   "08" => "Laane-Virumaa",
    1558   "09" => "Narva",
    1559   "10" => "Parnu",
    1560   "11" => "Parnumaa",
    1561   "12" => "Polvamaa",
    1562   "13" => "Raplamaa",
    1563   "14" => "Saaremaa",
    1564   "15" => "Sillamae",
    1565   "16" => "Tallinn",
    1566   "17" => "Tartu",
    1567   "18" => "Tartumaa",
    1568   "19" => "Valgamaa",
    1569   "20" => "Viljandimaa",
    1570   "21" => "Vorumaa"),
    1571 "EG" => array(
    1572   "01" => "Ad Daqahliyah",
    1573   "02" => "Al Bahr al Ahmar",
    1574   "03" => "Al Buhayrah",
    1575   "04" => "Al Fayyum",
    1576   "05" => "Al Gharbiyah",
    1577   "06" => "Al Iskandariyah",
    1578   "07" => "Al Isma'iliyah",
    1579   "08" => "Al Jizah",
    1580   "09" => "Al Minufiyah",
    1581   "10" => "Al Minya",
    1582   "11" => "Al Qahirah",
    1583   "12" => "Al Qalyubiyah",
    1584   "13" => "Al Wadi al Jadid",
    1585   "14" => "Ash Sharqiyah",
    1586   "15" => "As Suways",
    1587   "16" => "Aswan",
    1588   "17" => "Asyut",
    1589   "18" => "Bani Suwayf",
    1590   "19" => "Bur Sa'id",
    1591   "20" => "Dumyat",
    1592   "21" => "Kafr ash Shaykh",
    1593   "22" => "Matruh",
    1594   "23" => "Qina",
    1595   "24" => "Suhaj",
    1596   "26" => "Janub Sina'",
    1597   "27" => "Shamal Sina'"),
    1598 "ER" => array(
    1599   "01" => "Anseba",
    1600   "02" => "Debub",
    1601   "03" => "Debubawi K'eyih Bahri",
    1602   "04" => "Gash Barka",
    1603   "05" => "Ma'akel",
    1604   "06" => "Semenawi K'eyih Bahri"),
    1605 "ES" => array(
    1606   "07" => "Islas Baleares",
    1607   "27" => "La Rioja",
    1608   "29" => "Madrid",
    1609   "31" => "Murcia",
    1610   "32" => "Navarra",
    1611   "34" => "Asturias",
    1612   "39" => "Cantabria",
    1613   "51" => "Andalucia",
    1614   "52" => "Aragon",
    1615   "53" => "Canarias",
    1616   "54" => "Castilla-La Mancha",
    1617   "55" => "Castilla y Leon",
    1618   "56" => "Catalonia",
    1619   "57" => "Extremadura",
    1620   "58" => "Galicia",
    1621   "59" => "Pais Vasco",
    1622   "60" => "Comunidad Valenciana"),
    1623 "ET" => array(
    1624   "02" => "Amhara",
    1625   "07" => "Somali",
    1626   "08" => "Gambella",
    1627   "10" => "Addis Abeba",
    1628   "11" => "Southern",
    1629   "12" => "Tigray",
    1630   "13" => "Benishangul",
    1631   "14" => "Afar",
    1632   "44" => "Adis Abeba",
    1633   "45" => "Afar",
    1634   "46" => "Amara",
    1635   "47" => "Binshangul Gumuz",
    1636   "48" => "Dire Dawa",
    1637   "49" => "Gambela Hizboch",
    1638   "50" => "Hareri Hizb",
    1639   "51" => "Oromiya",
    1640   "52" => "Sumale",
    1641   "53" => "Tigray",
    1642   "54" => "YeDebub Biheroch Bihereseboch na Hizboch"),
    1643 "FI" => array(
    1644   "01" => "Aland",
    1645   "06" => "Lapland",
    1646   "08" => "Oulu",
    1647   "13" => "Southern Finland",
    1648   "14" => "Eastern Finland",
    1649   "15" => "Western Finland"),
    1650 "FJ" => array(
    1651   "01" => "Central",
    1652   "02" => "Eastern",
    1653   "03" => "Northern",
    1654   "04" => "Rotuma",
    1655   "05" => "Western"),
    1656 "FM" => array(
    1657   "01" => "Kosrae",
    1658   "02" => "Pohnpei",
    1659   "03" => "Chuuk",
    1660   "04" => "Yap"),
    1661 "FR" => array(
    1662   "97" => "Aquitaine",
    1663   "98" => "Auvergne",
    1664   "99" => "Basse-Normandie",
    1665   "A1" => "Bourgogne",
    1666   "A2" => "Bretagne",
    1667   "A3" => "Centre",
    1668   "A4" => "Champagne-Ardenne",
    1669   "A5" => "Corse",
    1670   "A6" => "Franche-Comte",
    1671   "A7" => "Haute-Normandie",
    1672   "A8" => "Ile-de-France",
    1673   "A9" => "Languedoc-Roussillon",
    1674   "B1" => "Limousin",
    1675   "B2" => "Lorraine",
    1676   "B3" => "Midi-Pyrenees",
    1677   "B4" => "Nord-Pas-de-Calais",
    1678   "B5" => "Pays de la Loire",
    1679   "B6" => "Picardie",
    1680   "B7" => "Poitou-Charentes",
    1681   "B8" => "Provence-Alpes-Cote d'Azur",
    1682   "B9" => "Rhone-Alpes",
    1683   "C1" => "Alsace"),
    1684 "GA" => array(
    1685   "01" => "Estuaire",
    1686   "02" => "Haut-Ogooue",
    1687   "03" => "Moyen-Ogooue",
    1688   "04" => "Ngounie",
    1689   "05" => "Nyanga",
    1690   "06" => "Ogooue-Ivindo",
    1691   "07" => "Ogooue-Lolo",
    1692   "08" => "Ogooue-Maritime",
    1693   "09" => "Woleu-Ntem"),
    1694 "GB" => array(
    1695   "01" => "Avon",
    1696   "03" => "Berkshire",
    1697   "07" => "Cleveland",
    1698   "17" => "Greater London",
    1699   "18" => "Greater Manchester",
    1700   "20" => "Hereford and Worcester",
    1701   "22" => "Humberside",
    1702   "28" => "Merseyside",
    1703   "37" => "South Yorkshire",
    1704   "41" => "Tyne and Wear",
    1705   "43" => "West Midlands",
    1706   "45" => "West Yorkshire",
    1707   "79" => "Central",
    1708   "82" => "Grampian",
    1709   "84" => "Lothian",
    1710   "87" => "Strathclyde",
    1711   "88" => "Tayside",
    1712   "90" => "Clwyd",
    1713   "91" => "Dyfed",
    1714   "92" => "Gwent",
    1715   "94" => "Mid Glamorgan",
    1716   "96" => "South Glamorgan",
    1717   "97" => "West Glamorgan",
    1718   "A1" => "Barking and Dagenham",
    1719   "A2" => "Barnet",
    1720   "A3" => "Barnsley",
    1721   "A4" => "Bath and North East Somerset",
    1722   "A5" => "Bedfordshire",
    1723   "A6" => "Bexley",
    1724   "A7" => "Birmingham",
    1725   "A8" => "Blackburn with Darwen",
    1726   "A9" => "Blackpool",
    1727   "B1" => "Bolton",
    1728   "B2" => "Bournemouth",
    1729   "B3" => "Bracknell Forest",
    1730   "B4" => "Bradford",
    1731   "B5" => "Brent",
    1732   "B6" => "Brighton and Hove",
    1733   "B7" => "Bristol, City of",
    1734   "B8" => "Bromley",
    1735   "B9" => "Buckinghamshire",
    1736   "C1" => "Bury",
    1737   "C2" => "Calderdale",
    1738   "C3" => "Cambridgeshire",
    1739   "C4" => "Camden",
    1740   "C5" => "Cheshire",
    1741   "C6" => "Cornwall",
    1742   "C7" => "Coventry",
    1743   "C8" => "Croydon",
    1744   "C9" => "Cumbria",
    1745   "D1" => "Darlington",
    1746   "D2" => "Derby",
    1747   "D3" => "Derbyshire",
    1748   "D4" => "Devon",
    1749   "D5" => "Doncaster",
    1750   "D6" => "Dorset",
    1751   "D7" => "Dudley",
    1752   "D8" => "Durham",
    1753   "D9" => "Ealing",
    1754   "E1" => "East Riding of Yorkshire",
    1755   "E2" => "East Sussex",
    1756   "E3" => "Enfield",
    1757   "E4" => "Essex",
    1758   "E5" => "Gateshead",
    1759   "E6" => "Gloucestershire",
    1760   "E7" => "Greenwich",
    1761   "E8" => "Hackney",
    1762   "E9" => "Halton",
    1763   "F1" => "Hammersmith and Fulham",
    1764   "F2" => "Hampshire",
    1765   "F3" => "Haringey",
    1766   "F4" => "Harrow",
    1767   "F5" => "Hartlepool",
    1768   "F6" => "Havering",
    1769   "F7" => "Herefordshire",
    1770   "F8" => "Hertford",
    1771   "F9" => "Hillingdon",
    1772   "G1" => "Hounslow",
    1773   "G2" => "Isle of Wight",
    1774   "G3" => "Islington",
    1775   "G4" => "Kensington and Chelsea",
    1776   "G5" => "Kent",
    1777   "G6" => "Kingston upon Hull, City of",
    1778   "G7" => "Kingston upon Thames",
    1779   "G8" => "Kirklees",
    1780   "G9" => "Knowsley",
    1781   "H1" => "Lambeth",
    1782   "H2" => "Lancashire",
    1783   "H3" => "Leeds",
    1784   "H4" => "Leicester",
    1785   "H5" => "Leicestershire",
    1786   "H6" => "Lewisham",
    1787   "H7" => "Lincolnshire",
    1788   "H8" => "Liverpool",
    1789   "H9" => "London, City of",
    1790   "I1" => "Luton",
    1791   "I2" => "Manchester",
    1792   "I3" => "Medway",
    1793   "I4" => "Merton",
    1794   "I5" => "Middlesbrough",
    1795   "I6" => "Milton Keynes",
    1796   "I7" => "Newcastle upon Tyne",
    1797   "I8" => "Newham",
    1798   "I9" => "Norfolk",
    1799   "J1" => "Northamptonshire",
    1800   "J2" => "North East Lincolnshire",
    1801   "J3" => "North Lincolnshire",
    1802   "J4" => "North Somerset",
    1803   "J5" => "North Tyneside",
    1804   "J6" => "Northumberland",
    1805   "J7" => "North Yorkshire",
    1806   "J8" => "Nottingham",
    1807   "J9" => "Nottinghamshire",
    1808   "K1" => "Oldham",
    1809   "K2" => "Oxfordshire",
    1810   "K3" => "Peterborough",
    1811   "K4" => "Plymouth",
    1812   "K5" => "Poole",
    1813   "K6" => "Portsmouth",
    1814   "K7" => "Reading",
    1815   "K8" => "Redbridge",
    1816   "K9" => "Redcar and Cleveland",
    1817   "L1" => "Richmond upon Thames",
    1818   "L2" => "Rochdale",
    1819   "L3" => "Rotherham",
    1820   "L4" => "Rutland",
    1821   "L5" => "Salford",
    1822   "L6" => "Shropshire",
    1823   "L7" => "Sandwell",
    1824   "L8" => "Sefton",
    1825   "L9" => "Sheffield",
    1826   "M1" => "Slough",
    1827   "M2" => "Solihull",
    1828   "M3" => "Somerset",
    1829   "M4" => "Southampton",
    1830   "M5" => "Southend-on-Sea",
    1831   "M6" => "South Gloucestershire",
    1832   "M7" => "South Tyneside",
    1833   "M8" => "Southwark",
    1834   "M9" => "Staffordshire",
    1835   "N1" => "St. Helens",
    1836   "N2" => "Stockport",
    1837   "N3" => "Stockton-on-Tees",
    1838   "N4" => "Stoke-on-Trent",
    1839   "N5" => "Suffolk",
    1840   "N6" => "Sunderland",
    1841   "N7" => "Surrey",
    1842   "N8" => "Sutton",
    1843   "N9" => "Swindon",
    1844   "O1" => "Tameside",
    1845   "O2" => "Telford and Wrekin",
    1846   "O3" => "Thurrock",
    1847   "O4" => "Torbay",
    1848   "O5" => "Tower Hamlets",
    1849   "O6" => "Trafford",
    1850   "O7" => "Wakefield",
    1851   "O8" => "Walsall",
    1852   "O9" => "Waltham Forest",
    1853   "P1" => "Wandsworth",
    1854   "P2" => "Warrington",
    1855   "P3" => "Warwickshire",
    1856   "P4" => "West Berkshire",
    1857   "P5" => "Westminster",
    1858   "P6" => "West Sussex",
    1859   "P7" => "Wigan",
    1860   "P8" => "Wiltshire",
    1861   "P9" => "Windsor and Maidenhead",
    1862   "Q1" => "Wirral",
    1863   "Q2" => "Wokingham",
    1864   "Q3" => "Wolverhampton",
    1865   "Q4" => "Worcestershire",
    1866   "Q5" => "York",
    1867   "Q6" => "Antrim",
    1868   "Q7" => "Ards",
    1869   "Q8" => "Armagh",
    1870   "Q9" => "Ballymena",
    1871   "R1" => "Ballymoney",
    1872   "R2" => "Banbridge",
    1873   "R3" => "Belfast",
    1874   "R4" => "Carrickfergus",
    1875   "R5" => "Castlereagh",
    1876   "R6" => "Coleraine",
    1877   "R7" => "Cookstown",
    1878   "R8" => "Craigavon",
    1879   "R9" => "Down",
    1880   "S1" => "Dungannon",
    1881   "S2" => "Fermanagh",
    1882   "S3" => "Larne",
    1883   "S4" => "Limavady",
    1884   "S5" => "Lisburn",
    1885   "S6" => "Derry",
    1886   "S7" => "Magherafelt",
    1887   "S8" => "Moyle",
    1888   "S9" => "Newry and Mourne",
    1889   "T1" => "Newtownabbey",
    1890   "T2" => "North Down",
    1891   "T3" => "Omagh",
    1892   "T4" => "Strabane",
    1893   "T5" => "Aberdeen City",
    1894   "T6" => "Aberdeenshire",
    1895   "T7" => "Angus",
    1896   "T8" => "Argyll and Bute",
    1897   "T9" => "Scottish Borders, The",
    1898   "U1" => "Clackmannanshire",
    1899   "U2" => "Dumfries and Galloway",
    1900   "U3" => "Dundee City",
    1901   "U4" => "East Ayrshire",
    1902   "U5" => "East Dunbartonshire",
    1903   "U6" => "East Lothian",
    1904   "U7" => "East Renfrewshire",
    1905   "U8" => "Edinburgh, City of",
    1906   "U9" => "Falkirk",
    1907   "V1" => "Fife",
    1908   "V2" => "Glasgow City",
    1909   "V3" => "Highland",
    1910   "V4" => "Inverclyde",
    1911   "V5" => "Midlothian",
    1912   "V6" => "Moray",
    1913   "V7" => "North Ayrshire",
    1914   "V8" => "North Lanarkshire",
    1915   "V9" => "Orkney",
    1916   "W1" => "Perth and Kinross",
    1917   "W2" => "Renfrewshire",
    1918   "W3" => "Shetland Islands",
    1919   "W4" => "South Ayrshire",
    1920   "W5" => "South Lanarkshire",
    1921   "W6" => "Stirling",
    1922   "W7" => "West Dunbartonshire",
    1923   "W8" => "Eilean Siar",
    1924   "W9" => "West Lothian",
    1925   "X1" => "Isle of Anglesey",
    1926   "X2" => "Blaenau Gwent",
    1927   "X3" => "Bridgend",
    1928   "X4" => "Caerphilly",
    1929   "X5" => "Cardiff",
    1930   "X6" => "Ceredigion",
    1931   "X7" => "Carmarthenshire",
    1932   "X8" => "Conwy",
    1933   "X9" => "Denbighshire",
    1934   "Y1" => "Flintshire",
    1935   "Y2" => "Gwynedd",
    1936   "Y3" => "Merthyr Tydfil",
    1937   "Y4" => "Monmouthshire",
    1938   "Y5" => "Neath Port Talbot",
    1939   "Y6" => "Newport",
    1940   "Y7" => "Pembrokeshire",
    1941   "Y8" => "Powys",
    1942   "Y9" => "Rhondda Cynon Taff",
    1943   "Z1" => "Swansea",
    1944   "Z2" => "Torfaen",
    1945   "Z3" => "Vale of Glamorgan, The",
    1946   "Z4" => "Wrexham"),
    1947 "GD" => array(
    1948   "01" => "Saint Andrew",
    1949   "02" => "Saint David",
    1950   "03" => "Saint George",
    1951   "04" => "Saint John",
    1952   "05" => "Saint Mark",
    1953   "06" => "Saint Patrick"),
    1954 "GE" => array(
    1955   "01" => "Abashis Raioni",
    1956   "02" => "Abkhazia",
    1957   "03" => "Adigenis Raioni",
    1958   "04" => "Ajaria",
    1959   "05" => "Akhalgoris Raioni",
    1960   "06" => "Akhalk'alak'is Raioni",
    1961   "07" => "Akhalts'ikhis Raioni",
    1962   "08" => "Akhmetis Raioni",
    1963   "09" => "Ambrolauris Raioni",
    1964   "10" => "Aspindzis Raioni",
    1965   "11" => "Baghdat'is Raioni",
    1966   "12" => "Bolnisis Raioni",
    1967   "13" => "Borjomis Raioni",
    1968   "14" => "Chiat'ura",
    1969   "15" => "Ch'khorotsqus Raioni",
    1970   "16" => "Ch'okhatauris Raioni",
    1971   "17" => "Dedop'listsqaros Raioni",
    1972   "18" => "Dmanisis Raioni",
    1973   "19" => "Dushet'is Raioni",
    1974   "20" => "Gardabanis Raioni",
    1975   "21" => "Gori",
    1976   "22" => "Goris Raioni",
    1977   "23" => "Gurjaanis Raioni",
    1978   "24" => "Javis Raioni",
    1979   "25" => "K'arelis Raioni",
    1980   "26" => "Kaspis Raioni",
    1981   "27" => "Kharagaulis Raioni",
    1982   "28" => "Khashuris Raioni",
    1983   "29" => "Khobis Raioni",
    1984   "30" => "Khonis Raioni",
    1985   "31" => "K'ut'aisi",
    1986   "32" => "Lagodekhis Raioni",
    1987   "33" => "Lanch'khut'is Raioni",
    1988   "34" => "Lentekhis Raioni",
    1989   "35" => "Marneulis Raioni",
    1990   "36" => "Martvilis Raioni",
    1991   "37" => "Mestiis Raioni",
    1992   "38" => "Mts'khet'is Raioni",
    1993   "39" => "Ninotsmindis Raioni",
    1994   "40" => "Onis Raioni",
    1995   "41" => "Ozurget'is Raioni",
    1996   "42" => "P'ot'i",
    1997   "43" => "Qazbegis Raioni",
    1998   "44" => "Qvarlis Raioni",
    1999   "45" => "Rust'avi",
    2000   "46" => "Sach'kheris Raioni",
    2001   "47" => "Sagarejos Raioni",
    2002   "48" => "Samtrediis Raioni",
    2003   "49" => "Senakis Raioni",
    2004   "50" => "Sighnaghis Raioni",
    2005   "51" => "T'bilisi",
    2006   "52" => "T'elavis Raioni",
    2007   "53" => "T'erjolis Raioni",
    2008   "54" => "T'et'ritsqaros Raioni",
    2009   "55" => "T'ianet'is Raioni",
    2010   "56" => "Tqibuli",
    2011   "57" => "Ts'ageris Raioni",
    2012   "58" => "Tsalenjikhis Raioni",
    2013   "59" => "Tsalkis Raioni",
    2014   "60" => "Tsqaltubo",
    2015   "61" => "Vanis Raioni",
    2016   "62" => "Zestap'onis Raioni",
    2017   "63" => "Zugdidi",
    2018   "64" => "Zugdidis Raioni"),
    2019 "GH" => array(
    2020   "01" => "Greater Accra",
    2021   "02" => "Ashanti",
    2022   "03" => "Brong-Ahafo",
    2023   "04" => "Central",
    2024   "05" => "Eastern",
    2025   "06" => "Northern",
    2026   "08" => "Volta",
    2027   "09" => "Western",
    2028   "10" => "Upper East",
    2029   "11" => "Upper West"),
    2030 "GL" => array(
    2031   "01" => "Nordgronland",
    2032   "02" => "Ostgronland",
    2033   "03" => "Vestgronland"),
    2034 "GM" => array(
    2035   "01" => "Banjul",
    2036   "02" => "Lower River",
    2037   "03" => "Central River",
    2038   "04" => "Upper River",
    2039   "05" => "Western",
    2040   "07" => "North Bank"),
    2041 "GN" => array(
    2042   "01" => "Beyla",
    2043   "02" => "Boffa",
    2044   "03" => "Boke",
    2045   "04" => "Conakry",
    2046   "05" => "Dabola",
    2047   "06" => "Dalaba",
    2048   "07" => "Dinguiraye",
    2049   "09" => "Faranah",
    2050   "10" => "Forecariah",
    2051   "11" => "Fria",
    2052   "12" => "Gaoual",
    2053   "13" => "Gueckedou",
    2054   "15" => "Kerouane",
    2055   "16" => "Kindia",
    2056   "17" => "Kissidougou",
    2057   "18" => "Koundara",
    2058   "19" => "Kouroussa",
    2059   "21" => "Macenta",
    2060   "22" => "Mali",
    2061   "23" => "Mamou",
    2062   "25" => "Pita",
    2063   "27" => "Telimele",
    2064   "28" => "Tougue",
    2065   "29" => "Yomou",
    2066   "30" => "Coyah",
    2067   "31" => "Dubreka",
    2068   "32" => "Kankan",
    2069   "33" => "Koubia",
    2070   "34" => "Labe",
    2071   "35" => "Lelouma",
    2072   "36" => "Lola",
    2073   "37" => "Mandiana",
    2074   "38" => "Nzerekore",
    2075   "39" => "Siguiri"),
    2076 "GQ" => array(
    2077   "03" => "Annobon",
    2078   "04" => "Bioko Norte",
    2079   "05" => "Bioko Sur",
    2080   "06" => "Centro Sur",
    2081   "07" => "Kie-Ntem",
    2082   "08" => "Litoral",
    2083   "09" => "Wele-Nzas"),
    2084 "GR" => array(
    2085   "01" => "Evros",
    2086   "02" => "Rodhopi",
    2087   "03" => "Xanthi",
    2088   "04" => "Drama",
    2089   "05" => "Serrai",
    2090   "06" => "Kilkis",
    2091   "07" => "Pella",
    2092   "08" => "Florina",
    2093   "09" => "Kastoria",
    2094   "10" => "Grevena",
    2095   "11" => "Kozani",
    2096   "12" => "Imathia",
    2097   "13" => "Thessaloniki",
    2098   "14" => "Kavala",
    2099   "15" => "Khalkidhiki",
    2100   "16" => "Pieria",
    2101   "17" => "Ioannina",
    2102   "18" => "Thesprotia",
    2103   "19" => "Preveza",
    2104   "20" => "Arta",
    2105   "21" => "Larisa",
    2106   "22" => "Trikala",
    2107   "23" => "Kardhitsa",
    2108   "24" => "Magnisia",
    2109   "25" => "Kerkira",
    2110   "26" => "Levkas",
    2111   "27" => "Kefallinia",
    2112   "28" => "Zakinthos",
    2113   "29" => "Fthiotis",
    2114   "30" => "Evritania",
    2115   "31" => "Aitolia kai Akarnania",
    2116   "32" => "Fokis",
    2117   "33" => "Voiotia",
    2118   "34" => "Evvoia",
    2119   "35" => "Attiki",
    2120   "36" => "Argolis",
    2121   "37" => "Korinthia",
    2122   "38" => "Akhaia",
    2123   "39" => "Ilia",
    2124   "40" => "Messinia",
    2125   "41" => "Arkadhia",
    2126   "42" => "Lakonia",
    2127   "43" => "Khania",
    2128   "44" => "Rethimni",
    2129   "45" => "Iraklion",
    2130   "46" => "Lasithi",
    2131   "47" => "Dhodhekanisos",
    2132   "48" => "Samos",
    2133   "49" => "Kikladhes",
    2134   "50" => "Khios",
    2135   "51" => "Lesvos"),
    2136 "GT" => array(
    2137   "01" => "Alta Verapaz",
    2138   "02" => "Baja Verapaz",
    2139   "03" => "Chimaltenango",
    2140   "04" => "Chiquimula",
    2141   "05" => "El Progreso",
    2142   "06" => "Escuintla",
    2143   "07" => "Guatemala",
    2144   "08" => "Huehuetenango",
    2145   "09" => "Izabal",
    2146   "10" => "Jalapa",
    2147   "11" => "Jutiapa",
    2148   "12" => "Peten",
    2149   "13" => "Quetzaltenango",
    2150   "14" => "Quiche",
    2151   "15" => "Retalhuleu",
    2152   "16" => "Sacatepequez",
    2153   "17" => "San Marcos",
    2154   "18" => "Santa Rosa",
    2155   "19" => "Solola",
    2156   "20" => "Suchitepequez",
    2157   "21" => "Totonicapan",
    2158   "22" => "Zacapa"),
    2159 "GW" => array(
    2160   "01" => "Bafata",
    2161   "02" => "Quinara",
    2162   "04" => "Oio",
    2163   "05" => "Bolama",
    2164   "06" => "Cacheu",
    2165   "07" => "Tombali",
    2166   "10" => "Gabu",
    2167   "11" => "Bissau",
    2168   "12" => "Biombo"),
    2169 "GY" => array(
    2170   "10" => "Barima-Waini",
    2171   "11" => "Cuyuni-Mazaruni",
    2172   "12" => "Demerara-Mahaica",
    2173   "13" => "East Berbice-Corentyne",
    2174   "14" => "Essequibo Islands-West Demerara",
    2175   "15" => "Mahaica-Berbice",
    2176   "16" => "Pomeroon-Supenaam",
    2177   "17" => "Potaro-Siparuni",
    2178   "18" => "Upper Demerara-Berbice",
    2179   "19" => "Upper Takutu-Upper Essequibo"),
    2180 "HN" => array(
    2181   "01" => "Atlantida",
    2182   "02" => "Choluteca",
    2183   "03" => "Colon",
    2184   "04" => "Comayagua",
    2185   "05" => "Copan",
    2186   "06" => "Cortes",
    2187   "07" => "El Paraiso",
    2188   "08" => "Francisco Morazan",
    2189   "09" => "Gracias a Dios",
    2190   "10" => "Intibuca",
    2191   "11" => "Islas de la Bahia",
    2192   "12" => "La Paz",
    2193   "13" => "Lempira",
    2194   "14" => "Ocotepeque",
    2195   "15" => "Olancho",
    2196   "16" => "Santa Barbara",
    2197   "17" => "Valle",
    2198   "18" => "Yoro"),
    2199 "HR" => array(
    2200   "01" => "Bjelovarsko-Bilogorska",
    2201   "02" => "Brodsko-Posavska",
    2202   "03" => "Dubrovacko-Neretvanska",
    2203   "04" => "Istarska",
    2204   "05" => "Karlovacka",
    2205   "06" => "Koprivnicko-Krizevacka",
    2206   "07" => "Krapinsko-Zagorska",
    2207   "08" => "Licko-Senjska",
    2208   "09" => "Medimurska",
    2209   "10" => "Osjecko-Baranjska",
    2210   "11" => "Pozesko-Slavonska",
    2211   "12" => "Primorsko-Goranska",
    2212   "13" => "Sibensko-Kninska",
    2213   "14" => "Sisacko-Moslavacka",
    2214   "15" => "Splitsko-Dalmatinska",
    2215   "16" => "Varazdinska",
    2216   "17" => "Viroviticko-Podravska",
    2217   "18" => "Vukovarsko-Srijemska",
    2218   "19" => "Zadarska",
    2219   "20" => "Zagrebacka",
    2220   "21" => "Grad Zagreb"),
    2221 "HT" => array(
    2222   "03" => "Nord-Ouest",
    2223   "06" => "Artibonite",
    2224   "07" => "Centre",
    2225   "09" => "Nord",
    2226   "10" => "Nord-Est",
    2227   "11" => "Ouest",
    2228   "12" => "Sud",
    2229   "13" => "Sud-Est",
    2230   "14" => "Grand' Anse",
    2231   "15" => "Nippes"),
    2232 "HU" => array(
    2233   "01" => "Bacs-Kiskun",
    2234   "02" => "Baranya",
    2235   "03" => "Bekes",
    2236   "04" => "Borsod-Abauj-Zemplen",
    2237   "05" => "Budapest",
    2238   "06" => "Csongrad",
    2239   "07" => "Debrecen",
    2240   "08" => "Fejer",
    2241   "09" => "Gyor-Moson-Sopron",
    2242   "10" => "Hajdu-Bihar",
    2243   "11" => "Heves",
    2244   "12" => "Komarom-Esztergom",
    2245   "13" => "Miskolc",
    2246   "14" => "Nograd",
    2247   "15" => "Pecs",
    2248   "16" => "Pest",
    2249   "17" => "Somogy",
    2250   "18" => "Szabolcs-Szatmar-Bereg",
    2251   "19" => "Szeged",
    2252   "20" => "Jasz-Nagykun-Szolnok",
    2253   "21" => "Tolna",
    2254   "22" => "Vas",
    2255   "23" => "Veszprem",
    2256   "24" => "Zala",
    2257   "25" => "Gyor",
    2258   "26" => "Bekescsaba",
    2259   "27" => "Dunaujvaros",
    2260   "28" => "Eger",
    2261   "29" => "Hodmezovasarhely",
    2262   "30" => "Kaposvar",
    2263   "31" => "Kecskemet",
    2264   "32" => "Nagykanizsa",
    2265   "33" => "Nyiregyhaza",
    2266   "34" => "Sopron",
    2267   "35" => "Szekesfehervar",
    2268   "36" => "Szolnok",
    2269   "37" => "Szombathely",
    2270   "38" => "Tatabanya",
    2271   "39" => "Veszprem",
    2272   "40" => "Zalaegerszeg",
    2273   "41" => "Salgotarjan",
    2274   "42" => "Szekszard"),
    2275 "ID" => array(
    2276   "01" => "Aceh",
    2277   "02" => "Bali",
    2278   "03" => "Bengkulu",
    2279   "04" => "Jakarta Raya",
    2280   "05" => "Jambi",
    2281   "06" => "Jawa Barat",
    2282   "07" => "Jawa Tengah",
    2283   "08" => "Jawa Timur",
    2284   "09" => "Papua",
    2285   "10" => "Yogyakarta",
    2286   "11" => "Kalimantan Barat",
    2287   "12" => "Kalimantan Selatan",
    2288   "13" => "Kalimantan Tengah",
    2289   "14" => "Kalimantan Timur",
    2290   "15" => "Lampung",
    2291   "16" => "Maluku",
    2292   "17" => "Nusa Tenggara Barat",
    2293   "18" => "Nusa Tenggara Timur",
    2294   "19" => "Riau",
    2295   "20" => "Sulawesi Selatan",
    2296   "21" => "Sulawesi Tengah",
    2297   "22" => "Sulawesi Tenggara",
    2298   "23" => "Sulawesi Utara",
    2299   "24" => "Sumatera Barat",
    2300   "25" => "Sumatera Selatan",
    2301   "26" => "Sumatera Utara",
    2302   "28" => "Maluku",
    2303   "29" => "Maluku Utara",
    2304   "30" => "Jawa Barat",
    2305   "31" => "Sulawesi Utara",
    2306   "32" => "Sumatera Selatan",
    2307   "33" => "Banten",
    2308   "34" => "Gorontalo",
    2309   "35" => "Kepulauan Bangka Belitung",
    2310   "36" => "Papua",
    2311   "37" => "Riau",
    2312   "38" => "Sulawesi Selatan",
    2313   "39" => "Irian Jaya Barat",
    2314   "40" => "Kepulauan Riau",
    2315   "41" => "Sulawesi Barat"),
    2316 "IE" => array(
    2317   "01" => "Carlow",
    2318   "02" => "Cavan",
    2319   "03" => "Clare",
    2320   "04" => "Cork",
    2321   "06" => "Donegal",
    2322   "07" => "Dublin",
    2323   "10" => "Galway",
    2324   "11" => "Kerry",
    2325   "12" => "Kildare",
    2326   "13" => "Kilkenny",
    2327   "14" => "Leitrim",
    2328   "15" => "Laois",
    2329   "16" => "Limerick",
    2330   "18" => "Longford",
    2331   "19" => "Louth",
    2332   "20" => "Mayo",
    2333   "21" => "Meath",
    2334   "22" => "Monaghan",
    2335   "23" => "Offaly",
    2336   "24" => "Roscommon",
    2337   "25" => "Sligo",
    2338   "26" => "Tipperary",
    2339   "27" => "Waterford",
    2340   "29" => "Westmeath",
    2341   "30" => "Wexford",
    2342   "31" => "Wicklow"),
    2343 "IL" => array(
    2344   "01" => "HaDarom",
    2345   "02" => "HaMerkaz",
    2346   "03" => "HaZafon",
    2347   "04" => "Hefa",
    2348   "05" => "Tel Aviv",
    2349   "06" => "Yerushalayim"),
    2350 "IN" => array(
    2351   "01" => "Andaman and Nicobar Islands",
    2352   "02" => "Andhra Pradesh",
    2353   "03" => "Assam",
    2354   "05" => "Chandigarh",
    2355   "06" => "Dadra and Nagar Haveli",
    2356   "07" => "Delhi",
    2357   "09" => "Gujarat",
    2358   "10" => "Haryana",
    2359   "11" => "Himachal Pradesh",
    2360   "12" => "Jammu and Kashmir",
    2361   "13" => "Kerala",
    2362   "14" => "Lakshadweep",
    2363   "16" => "Maharashtra",
    2364   "17" => "Manipur",
    2365   "18" => "Meghalaya",
    2366   "19" => "Karnataka",
    2367   "20" => "Nagaland",
    2368   "21" => "Orissa",
    2369   "22" => "Puducherry",
    2370   "23" => "Punjab",
    2371   "24" => "Rajasthan",
    2372   "25" => "Tamil Nadu",
    2373   "26" => "Tripura",
    2374   "28" => "West Bengal",
    2375   "29" => "Sikkim",
    2376   "30" => "Arunachal Pradesh",
    2377   "31" => "Mizoram",
    2378   "32" => "Daman and Diu",
    2379   "33" => "Goa",
    2380   "34" => "Bihar",
    2381   "35" => "Madhya Pradesh",
    2382   "36" => "Uttar Pradesh",
    2383   "37" => "Chhattisgarh",
    2384   "38" => "Jharkhand",
    2385   "39" => "Uttarakhand"),
    2386 "IQ" => array(
    2387   "01" => "Al Anbar",
    2388   "02" => "Al Basrah",
    2389   "03" => "Al Muthanna",
    2390   "04" => "Al Qadisiyah",
    2391   "05" => "As Sulaymaniyah",
    2392   "06" => "Babil",
    2393   "07" => "Baghdad",
    2394   "08" => "Dahuk",
    2395   "09" => "Dhi Qar",
    2396   "10" => "Diyala",
    2397   "11" => "Arbil",
    2398   "12" => "Karbala'",
    2399   "13" => "At Ta'mim",
    2400   "14" => "Maysan",
    2401   "15" => "Ninawa",
    2402   "16" => "Wasit",
    2403   "17" => "An Najaf",
    2404   "18" => "Salah ad Din"),
    2405 "IR" => array(
    2406   "01" => "Azarbayjan-e Bakhtari",
    2407   "02" => "Azarbayjan-e Khavari",
    2408   "03" => "Chahar Mahall va Bakhtiari",
    2409   "04" => "Sistan va Baluchestan",
    2410   "05" => "Kohkiluyeh va Buyer Ahmadi",
    2411   "07" => "Fars",
    2412   "08" => "Gilan",
    2413   "09" => "Hamadan",
    2414   "10" => "Ilam",
    2415   "11" => "Hormozgan",
    2416   "12" => "Kerman",
    2417   "13" => "Bakhtaran",
    2418   "15" => "Khuzestan",
    2419   "16" => "Kordestan",
    2420   "17" => "Mazandaran",
    2421   "18" => "Semnan Province",
    2422   "19" => "Markazi",
    2423   "21" => "Zanjan",
    2424   "22" => "Bushehr",
    2425   "23" => "Lorestan",
    2426   "24" => "Markazi",
    2427   "25" => "Semnan",
    2428   "26" => "Tehran",
    2429   "27" => "Zanjan",
    2430   "28" => "Esfahan",
    2431   "29" => "Kerman",
    2432   "30" => "Khorasan",
    2433   "31" => "Yazd",
    2434   "32" => "Ardabil",
    2435   "33" => "East Azarbaijan",
    2436   "34" => "Markazi",
    2437   "35" => "Mazandaran",
    2438   "36" => "Zanjan",
    2439   "37" => "Golestan",
    2440   "38" => "Qazvin",
    2441   "39" => "Qom",
    2442   "40" => "Yazd",
    2443   "41" => "Khorasan-e Janubi",
    2444   "42" => "Khorasan-e Razavi",
    2445   "43" => "Khorasan-e Shemali"),
    2446 "IS" => array(
    2447   "03" => "Arnessysla",
    2448   "05" => "Austur-Hunavatnssysla",
    2449   "06" => "Austur-Skaftafellssysla",
    2450   "07" => "Borgarfjardarsysla",
    2451   "09" => "Eyjafjardarsysla",
    2452   "10" => "Gullbringusysla",
    2453   "15" => "Kjosarsysla",
    2454   "17" => "Myrasysla",
    2455   "20" => "Nordur-Mulasysla",
    2456   "21" => "Nordur-Tingeyjarsysla",
    2457   "23" => "Rangarvallasysla",
    2458   "28" => "Skagafjardarsysla",
    2459   "29" => "Snafellsnes- og Hnappadalssysla",
    2460   "31" => "Sudur-Mulasysla",
    2461   "32" => "Sudur-Tingeyjarsysla",
    2462   "34" => "Vestur-Bardastrandarsysla",
    2463   "35" => "Vestur-Hunavatnssysla",
    2464   "36" => "Vestur-Isafjardarsysla",
    2465   "37" => "Vestur-Skaftafellssysla",
    2466   "40" => "Norourland Eystra",
    2467   "41" => "Norourland Vestra",
    2468   "42" => "Suourland",
    2469   "43" => "Suournes",
    2470   "44" => "Vestfiroir",
    2471   "45" => "Vesturland"),
    2472 "IT" => array(
    2473   "01" => "Abruzzi",
    2474   "02" => "Basilicata",
    2475   "03" => "Calabria",
    2476   "04" => "Campania",
    2477   "05" => "Emilia-Romagna",
    2478   "06" => "Friuli-Venezia Giulia",
    2479   "07" => "Lazio",
    2480   "08" => "Liguria",
    2481   "09" => "Lombardia",
    2482   "10" => "Marche",
    2483   "11" => "Molise",
    2484   "12" => "Piemonte",
    2485   "13" => "Puglia",
    2486   "14" => "Sardegna",
    2487   "15" => "Sicilia",
    2488   "16" => "Toscana",
    2489   "17" => "Trentino-Alto Adige",
    2490   "18" => "Umbria",
    2491   "19" => "Valle d'Aosta",
    2492   "20" => "Veneto"),
    2493 "JM" => array(
    2494   "01" => "Clarendon",
    2495   "02" => "Hanover",
    2496   "04" => "Manchester",
    2497   "07" => "Portland",
    2498   "08" => "Saint Andrew",
    2499   "09" => "Saint Ann",
    2500   "10" => "Saint Catherine",
    2501   "11" => "Saint Elizabeth",
    2502   "12" => "Saint James",
    2503   "13" => "Saint Mary",
    2504   "14" => "Saint Thomas",
    2505   "15" => "Trelawny",
    2506   "16" => "Westmoreland",
    2507   "17" => "Kingston"),
    2508 "JO" => array(
    2509   "02" => "Al Balqa'",
    2510   "07" => "Ma",
    2511   "09" => "Al Karak",
    2512   "10" => "Al Mafraq",
    2513   "11" => "Amman Governorate",
    2514   "12" => "At Tafilah",
    2515   "13" => "Az Zarqa",
    2516   "14" => "Irbid",
    2517   "16" => "Amman"),
    2518 "JP" => array(
    2519   "01" => "Aichi",
    2520   "02" => "Akita",
    2521   "03" => "Aomori",
    2522   "04" => "Chiba",
    2523   "05" => "Ehime",
    2524   "06" => "Fukui",
    2525   "07" => "Fukuoka",
    2526   "08" => "Fukushima",
    2527   "09" => "Gifu",
    2528   "10" => "Gumma",
    2529   "11" => "Hiroshima",
    2530   "12" => "Hokkaido",
    2531   "13" => "Hyogo",
    2532   "14" => "Ibaraki",
    2533   "15" => "Ishikawa",
    2534   "16" => "Iwate",
    2535   "17" => "Kagawa",
    2536   "18" => "Kagoshima",
    2537   "19" => "Kanagawa",
    2538   "20" => "Kochi",
    2539   "21" => "Kumamoto",
    2540   "22" => "Kyoto",
    2541   "23" => "Mie",
    2542   "24" => "Miyagi",
    2543   "25" => "Miyazaki",
    2544   "26" => "Nagano",
    2545   "27" => "Nagasaki",
    2546   "28" => "Nara",
    2547   "29" => "Niigata",
    2548   "30" => "Oita",
    2549   "31" => "Okayama",
    2550   "32" => "Osaka",
    2551   "33" => "Saga",
    2552   "34" => "Saitama",
    2553   "35" => "Shiga",
    2554   "36" => "Shimane",
    2555   "37" => "Shizuoka",
    2556   "38" => "Tochigi",
    2557   "39" => "Tokushima",
    2558   "40" => "Tokyo",
    2559   "41" => "Tottori",
    2560   "42" => "Toyama",
    2561   "43" => "Wakayama",
    2562   "44" => "Yamagata",
    2563   "45" => "Yamaguchi",
    2564   "46" => "Yamanashi",
    2565   "47" => "Okinawa"),
    2566 "KE" => array(
    2567   "01" => "Central",
    2568   "02" => "Coast",
    2569   "03" => "Eastern",
    2570   "05" => "Nairobi Area",
    2571   "06" => "North-Eastern",
    2572   "07" => "Nyanza",
    2573   "08" => "Rift Valley",
    2574   "09" => "Western"),
    2575 "KG" => array(
    2576   "01" => "Bishkek",
    2577   "02" => "Chuy",
    2578   "03" => "Jalal-Abad",
    2579   "04" => "Naryn",
    2580   "05" => "Osh",
    2581   "06" => "Talas",
    2582   "07" => "Ysyk-Kol",
    2583   "08" => "Osh",
    2584   "09" => "Batken"),
    2585 "KH" => array(
    2586   "02" => "Kampong Cham",
    2587   "03" => "Kampong Chhnang",
    2588   "04" => "Kampong Spoe",
    2589   "05" => "Kampong Thum",
    2590   "06" => "Kampot",
    2591   "07" => "Kandal",
    2592   "08" => "Kaoh Kong",
    2593   "09" => "Kracheh",
    2594   "10" => "Mondol Kiri",
    2595   "11" => "Phnum Penh",
    2596   "12" => "Pouthisat",
    2597   "13" => "Preah Vihear",
    2598   "14" => "Prey Veng",
    2599   "15" => "Rotanokiri",
    2600   "16" => "Siemreab-Otdar Meanchey",
    2601   "17" => "Stoeng Treng",
    2602   "18" => "Svay Rieng",
    2603   "19" => "Takev",
    2604   "29" => "Batdambang",
    2605   "30" => "Pailin"),
    2606 "KI" => array(
    2607   "01" => "Gilbert Islands",
    2608   "02" => "Line Islands",
    2609   "03" => "Phoenix Islands"),
    2610 "KM" => array(
    2611   "01" => "Anjouan",
    2612   "02" => "Grande Comore",
    2613   "03" => "Moheli"),
    2614 "KN" => array(
    2615   "01" => "Christ Church Nichola Town",
    2616   "02" => "Saint Anne Sandy Point",
    2617   "03" => "Saint George Basseterre",
    2618   "04" => "Saint George Gingerland",
    2619   "05" => "Saint James Windward",
    2620   "06" => "Saint John Capisterre",
    2621   "07" => "Saint John Figtree",
    2622   "08" => "Saint Mary Cayon",
    2623   "09" => "Saint Paul Capisterre",
    2624   "10" => "Saint Paul Charlestown",
    2625   "11" => "Saint Peter Basseterre",
    2626   "12" => "Saint Thomas Lowland",
    2627   "13" => "Saint Thomas Middle Island",
    2628   "15" => "Trinity Palmetto Point"),
    2629 "KP" => array(
    2630   "01" => "Chagang-do",
    2631   "03" => "Hamgyong-namdo",
    2632   "06" => "Hwanghae-namdo",
    2633   "07" => "Hwanghae-bukto",
    2634   "08" => "Kaesong-si",
    2635   "09" => "Kangwon-do",
    2636   "11" => "P'yongan-bukto",
    2637   "12" => "P'yongyang-si",
    2638   "13" => "Yanggang-do",
    2639   "14" => "Namp'o-si",
    2640   "15" => "P'yongan-namdo",
    2641   "17" => "Hamgyong-bukto",
    2642   "18" => "Najin Sonbong-si"),
    2643 "KR" => array(
    2644   "01" => "Cheju-do",
    2645   "03" => "Cholla-bukto",
    2646   "05" => "Ch'ungch'ong-bukto",
    2647   "06" => "Kangwon-do",
    2648   "10" => "Pusan-jikhalsi",
    2649   "11" => "Seoul-t'ukpyolsi",
    2650   "12" => "Inch'on-jikhalsi",
    2651   "13" => "Kyonggi-do",
    2652   "14" => "Kyongsang-bukto",
    2653   "15" => "Taegu-jikhalsi",
    2654   "16" => "Cholla-namdo",
    2655   "17" => "Ch'ungch'ong-namdo",
    2656   "18" => "Kwangju-jikhalsi",
    2657   "19" => "Taejon-jikhalsi",
    2658   "20" => "Kyongsang-namdo",
    2659   "21" => "Ulsan-gwangyoksi"),
    2660 "KW" => array(
    2661   "01" => "Al Ahmadi",
    2662   "02" => "Al Kuwayt",
    2663   "05" => "Al Jahra",
    2664   "07" => "Al Farwaniyah",
    2665   "08" => "Hawalli",
    2666   "09" => "Mubarak al Kabir"),
    2667 "KY" => array(
    2668   "01" => "Creek",
    2669   "02" => "Eastern",
    2670   "03" => "Midland",
    2671   "04" => "South Town",
    2672   "05" => "Spot Bay",
    2673   "06" => "Stake Bay",
    2674   "07" => "West End",
    2675   "08" => "Western"),
    2676 "KZ" => array(
    2677   "01" => "Almaty",
    2678   "02" => "Almaty City",
    2679   "03" => "Aqmola",
    2680   "04" => "Aqtobe",
    2681   "05" => "Astana",
    2682   "06" => "Atyrau",
    2683   "07" => "West Kazakhstan",
    2684   "08" => "Bayqonyr",
    2685   "09" => "Mangghystau",
    2686   "10" => "South Kazakhstan",
    2687   "11" => "Pavlodar",
    2688   "12" => "Qaraghandy",
    2689   "13" => "Qostanay",
    2690   "14" => "Qyzylorda",
    2691   "15" => "East Kazakhstan",
    2692   "16" => "North Kazakhstan",
    2693   "17" => "Zhambyl"),
    2694 "LA" => array(
    2695   "01" => "Attapu",
    2696   "02" => "Champasak",
    2697   "03" => "Houaphan",
    2698   "04" => "Khammouan",
    2699   "05" => "Louang Namtha",
    2700   "07" => "Oudomxai",
    2701   "08" => "Phongsali",
    2702   "09" => "Saravan",
    2703   "10" => "Savannakhet",
    2704   "11" => "Vientiane",
    2705   "13" => "Xaignabouri",
    2706   "14" => "Xiangkhoang",
    2707   "17" => "Louangphrabang"),
    2708 "LB" => array(
    2709   "01" => "Beqaa",
    2710   "03" => "Liban-Nord",
    2711   "04" => "Beyrouth",
    2712   "05" => "Mont-Liban",
    2713   "06" => "Liban-Sud",
    2714   "07" => "Nabatiye",
    2715   "08" => "Beqaa",
    2716   "09" => "Liban-Nord",
    2717   "10" => "Aakk,r",
    2718   "11" => "Baalbek-Hermel"),
    2719 "LC" => array(
    2720   "01" => "Anse-la-Raye",
    2721   "02" => "Dauphin",
    2722   "03" => "Castries",
    2723   "04" => "Choiseul",
    2724   "05" => "Dennery",
    2725   "06" => "Gros-Islet",
    2726   "07" => "Laborie",
    2727   "08" => "Micoud",
    2728   "09" => "Soufriere",
    2729   "10" => "Vieux-Fort",
    2730   "11" => "Praslin"),
    2731 "LI" => array(
    2732   "01" => "Balzers",
    2733   "02" => "Eschen",
    2734   "03" => "Gamprin",
    2735   "04" => "Mauren",
    2736   "05" => "Planken",
    2737   "06" => "Ruggell",
    2738   "07" => "Schaan",
    2739   "08" => "Schellenberg",
    2740   "09" => "Triesen",
    2741   "10" => "Triesenberg",
    2742   "11" => "Vaduz",
    2743   "21" => "Gbarpolu",
    2744   "22" => "River Gee"),
    2745 "LK" => array(
    2746   "01" => "Amparai",
    2747   "02" => "Anuradhapura",
    2748   "03" => "Badulla",
    2749   "04" => "Batticaloa",
    2750   "06" => "Galle",
    2751   "07" => "Hambantota",
    2752   "09" => "Kalutara",
    2753   "10" => "Kandy",
    2754   "11" => "Kegalla",
    2755   "12" => "Kurunegala",
    2756   "14" => "Matale",
    2757   "15" => "Matara",
    2758   "16" => "Moneragala",
    2759   "17" => "Nuwara Eliya",
    2760   "18" => "Polonnaruwa",
    2761   "19" => "Puttalam",
    2762   "20" => "Ratnapura",
    2763   "21" => "Trincomalee",
    2764   "23" => "Colombo",
    2765   "24" => "Gampaha",
    2766   "25" => "Jaffna",
    2767   "26" => "Mannar",
    2768   "27" => "Mullaittivu",
    2769   "28" => "Vavuniya",
    2770   "29" => "Central",
    2771   "30" => "North Central",
    2772   "31" => "Northern",
    2773   "32" => "North Western",
    2774   "33" => "Sabaragamuwa",
    2775   "34" => "Southern",
    2776   "35" => "Uva",
    2777   "36" => "Western"),
    2778 "LR" => array(
    2779   "01" => "Bong",
    2780   "04" => "Grand Cape Mount",
    2781   "06" => "Maryland",
    2782   "07" => "Monrovia",
    2783   "09" => "Nimba",
    2784   "10" => "Sino",
    2785   "11" => "Grand Bassa",
    2786   "14" => "Montserrado",
    2787   "19" => "Grand Gedeh",
    2788   "20" => "Lofa"),
    2789 "LS" => array(
    2790   "10" => "Berea",
    2791   "11" => "Butha-Buthe",
    2792   "12" => "Leribe",
    2793   "13" => "Mafeteng",
    2794   "14" => "Maseru",
    2795   "15" => "Mohales Hoek",
    2796   "16" => "Mokhotlong",
    2797   "17" => "Qachas Nek",
    2798   "18" => "Quthing",
    2799   "19" => "Thaba-Tseka"),
    2800 "LT" => array(
    2801   "56" => "Alytaus Apskritis",
    2802   "57" => "Kauno Apskritis",
    2803   "58" => "Klaipedos Apskritis",
    2804   "59" => "Marijampoles Apskritis",
    2805   "60" => "Panevezio Apskritis",
    2806   "61" => "Siauliu Apskritis",
    2807   "62" => "Taurages Apskritis",
    2808   "63" => "Telsiu Apskritis",
    2809   "64" => "Utenos Apskritis",
    2810   "65" => "Vilniaus Apskritis"),
    2811 "LU" => array(
    2812   "01" => "Diekirch",
    2813   "02" => "Grevenmacher",
    2814   "03" => "Luxembourg"),
    2815 "LV" => array(
    2816   "01" => "Aizkraukles",
    2817   "02" => "Aluksnes",
    2818   "03" => "Balvu",
    2819   "04" => "Bauskas",
    2820   "05" => "Cesu",
    2821   "06" => "Daugavpils",
    2822   "07" => "Daugavpils",
    2823   "08" => "Dobeles",
    2824   "09" => "Gulbenes",
    2825   "10" => "Jekabpils",
    2826   "11" => "Jelgava",
    2827   "12" => "Jelgavas",
    2828   "13" => "Jurmala",
    2829   "14" => "Kraslavas",
    2830   "15" => "Kuldigas",
    2831   "16" => "Liepaja",
    2832   "17" => "Liepajas",
    2833   "18" => "Limbazu",
    2834   "19" => "Ludzas",
    2835   "20" => "Madonas",
    2836   "21" => "Ogres",
    2837   "22" => "Preilu",
    2838   "23" => "Rezekne",
    2839   "24" => "Rezeknes",
    2840   "25" => "Riga",
    2841   "26" => "Rigas",
    2842   "27" => "Saldus",
    2843   "28" => "Talsu",
    2844   "29" => "Tukuma",
    2845   "30" => "Valkas",
    2846   "31" => "Valmieras",
    2847   "32" => "Ventspils",
    2848   "33" => "Ventspils"),
    2849 "LY" => array(
    2850   "03" => "Al Aziziyah",
    2851   "05" => "Al Jufrah",
    2852   "08" => "Al Kufrah",
    2853   "13" => "Ash Shati'",
    2854   "30" => "Murzuq",
    2855   "34" => "Sabha",
    2856   "41" => "Tarhunah",
    2857   "42" => "Tubruq",
    2858   "45" => "Zlitan",
    2859   "47" => "Ajdabiya",
    2860   "48" => "Al Fatih",
    2861   "49" => "Al Jabal al Akhdar",
    2862   "50" => "Al Khums",
    2863   "51" => "An Nuqat al Khams",
    2864   "52" => "Awbari",
    2865   "53" => "Az Zawiyah",
    2866   "54" => "Banghazi",
    2867   "55" => "Darnah",
    2868   "56" => "Ghadamis",
    2869   "57" => "Gharyan",
    2870   "58" => "Misratah",
    2871   "59" => "Sawfajjin",
    2872   "60" => "Surt",
    2873   "61" => "Tarabulus",
    2874   "62" => "Yafran"),
    2875 "MA" => array(
    2876   "01" => "Agadir",
    2877   "02" => "Al Hoceima",
    2878   "03" => "Azilal",
    2879   "04" => "Ben Slimane",
    2880   "05" => "Beni Mellal",
    2881   "06" => "Boulemane",
    2882   "07" => "Casablanca",
    2883   "08" => "Chaouen",
    2884   "09" => "El Jadida",
    2885   "10" => "El Kelaa des Srarhna",
    2886   "11" => "Er Rachidia",
    2887   "12" => "Essaouira",
    2888   "13" => "Fes",
    2889   "14" => "Figuig",
    2890   "15" => "Kenitra",
    2891   "16" => "Khemisset",
    2892   "17" => "Khenifra",
    2893   "18" => "Khouribga",
    2894   "19" => "Marrakech",
    2895   "20" => "Meknes",
    2896   "21" => "Nador",
    2897   "22" => "Ouarzazate",
    2898   "23" => "Oujda",
    2899   "24" => "Rabat-Sale",
    2900   "25" => "Safi",
    2901   "26" => "Settat",
    2902   "27" => "Tanger",
    2903   "29" => "Tata",
    2904   "30" => "Taza",
    2905   "32" => "Tiznit",
    2906   "33" => "Guelmim",
    2907   "34" => "Ifrane",
    2908   "35" => "Laayoune",
    2909   "36" => "Tan-Tan",
    2910   "37" => "Taounate",
    2911   "38" => "Sidi Kacem",
    2912   "39" => "Taroudannt",
    2913   "40" => "Tetouan",
    2914   "41" => "Larache",
    2915   "45" => "Grand Casablanca",
    2916   "46" => "Fes-Boulemane",
    2917   "47" => "Marrakech-Tensift-Al Haouz",
    2918   "48" => "Meknes-Tafilalet",
    2919   "49" => "Rabat-Sale-Zemmour-Zaer",
    2920   "50" => "Chaouia-Ouardigha",
    2921   "51" => "Doukkala-Abda",
    2922   "52" => "Gharb-Chrarda-Beni Hssen",
    2923   "53" => "Guelmim-Es Smara",
    2924   "54" => "Oriental",
    2925   "55" => "Souss-Massa-Dr,a",
    2926   "56" => "Tadla-Azilal",
    2927   "57" => "Tanger-Tetouan",
    2928   "58" => "Taza-Al Hoceima-Taounate",
    2929   "59" => "La,youne-Boujdour-Sakia El Hamra"),
    2930 "MC" => array(
    2931   "01" => "La Condamine",
    2932   "02" => "Monaco",
    2933   "03" => "Monte-Carlo"),
    2934 "MD" => array(
    2935   "46" => "Balti",
    2936   "47" => "Cahul",
    2937   "48" => "Chisinau",
    2938   "49" => "Stinga Nistrului",
    2939   "50" => "Edinet",
    2940   "51" => "Gagauzia",
    2941   "52" => "Lapusna",
    2942   "53" => "Orhei",
    2943   "54" => "Soroca",
    2944   "55" => "Tighina",
    2945   "56" => "Ungheni",
    2946   "58" => "Stinga Nistrului",
    2947   "59" => "Anenii Noi",
    2948   "60" => "Balti",
    2949   "61" => "Basarabeasca",
    2950   "62" => "Bender",
    2951   "63" => "Briceni",
    2952   "64" => "Cahul",
    2953   "65" => "Cantemir",
    2954   "66" => "Calarasi",
    2955   "67" => "Causeni",
    2956   "68" => "Cimislia",
    2957   "69" => "Criuleni",
    2958   "70" => "Donduseni",
    2959   "71" => "Drochia",
    2960   "72" => "Dubasari",
    2961   "73" => "Edinet",
    2962   "74" => "Falesti",
    2963   "75" => "Floresti",
    2964   "76" => "Glodeni",
    2965   "77" => "Hincesti",
    2966   "78" => "Ialoveni",
    2967   "79" => "Leova",
    2968   "80" => "Nisporeni",
    2969   "81" => "Ocnita",
    2970   "83" => "Rezina",
    2971   "84" => "Riscani",
    2972   "85" => "Singerei",
    2973   "86" => "Soldanesti",
    2974   "87" => "Soroca",
    2975   "88" => "Stefan-Voda",
    2976   "89" => "Straseni",
    2977   "90" => "Taraclia",
    2978   "91" => "Telenesti",
    2979   "92" => "Ungheni"),
    2980 "MG" => array(
    2981   "01" => "Antsiranana",
    2982   "02" => "Fianarantsoa",
    2983   "03" => "Mahajanga",
    2984   "04" => "Toamasina",
    2985   "05" => "Antananarivo",
    2986   "06" => "Toliara"),
    2987 "MK" => array(
    2988   "01" => "Aracinovo",
    2989   "02" => "Bac",
    2990   "03" => "Belcista",
    2991   "04" => "Berovo",
    2992   "05" => "Bistrica",
    2993   "06" => "Bitola",
    2994   "07" => "Blatec",
    2995   "08" => "Bogdanci",
    2996   "09" => "Bogomila",
    2997   "10" => "Bogovinje",
    2998   "11" => "Bosilovo",
    2999   "12" => "Brvenica",
    3000   "13" => "Cair",
    3001   "14" => "Capari",
    3002   "15" => "Caska",
    3003   "16" => "Cegrane",
    3004   "17" => "Centar",
    3005   "18" => "Centar Zupa",
    3006   "19" => "Cesinovo",
    3007   "20" => "Cucer-Sandevo",
    3008   "21" => "Debar",
    3009   "22" => "Delcevo",
    3010   "23" => "Delogozdi",
    3011   "24" => "Demir Hisar",
    3012   "25" => "Demir Kapija",
    3013   "26" => "Dobrusevo",
    3014   "27" => "Dolna Banjica",
    3015   "28" => "Dolneni",
    3016   "29" => "Dorce Petrov",
    3017   "30" => "Drugovo",
    3018   "31" => "Dzepciste",
    3019   "32" => "Gazi Baba",
    3020   "33" => "Gevgelija",
    3021   "34" => "Gostivar",
    3022   "35" => "Gradsko",
    3023   "36" => "Ilinden",
    3024   "37" => "Izvor",
    3025   "38" => "Jegunovce",
    3026   "39" => "Kamenjane",
    3027   "40" => "Karbinci",
    3028   "41" => "Karpos",
    3029   "42" => "Kavadarci",
    3030   "43" => "Kicevo",
    3031   "44" => "Kisela Voda",
    3032   "45" => "Klecevce",
    3033   "46" => "Kocani",
    3034   "47" => "Konce",
    3035   "48" => "Kondovo",
    3036   "49" => "Konopiste",
    3037   "50" => "Kosel",
    3038   "51" => "Kratovo",
    3039   "52" => "Kriva Palanka",
    3040   "53" => "Krivogastani",
    3041   "54" => "Krusevo",
    3042   "55" => "Kuklis",
    3043   "56" => "Kukurecani",
    3044   "57" => "Kumanovo",
    3045   "58" => "Labunista",
    3046   "59" => "Lipkovo",
    3047   "60" => "Lozovo",
    3048   "61" => "Lukovo",
    3049   "62" => "Makedonska Kamenica",
    3050   "63" => "Makedonski Brod",
    3051   "64" => "Mavrovi Anovi",
    3052   "65" => "Meseista",
    3053   "66" => "Miravci",
    3054   "67" => "Mogila",
    3055   "68" => "Murtino",
    3056   "69" => "Negotino",
    3057   "70" => "Negotino-Polosko",
    3058   "71" => "Novaci",
    3059   "72" => "Novo Selo",
    3060   "73" => "Oblesevo",
    3061   "74" => "Ohrid",
    3062   "75" => "Orasac",
    3063   "76" => "Orizari",
    3064   "77" => "Oslomej",
    3065   "78" => "Pehcevo",
    3066   "79" => "Petrovec",
    3067   "80" => "Plasnica",
    3068   "81" => "Podares",
    3069   "82" => "Prilep",
    3070   "83" => "Probistip",
    3071   "84" => "Radovis",
    3072   "85" => "Rankovce",
    3073   "86" => "Resen",
    3074   "87" => "Rosoman",
    3075   "88" => "Rostusa",
    3076   "89" => "Samokov",
    3077   "90" => "Saraj",
    3078   "91" => "Sipkovica",
    3079   "92" => "Sopiste",
    3080   "93" => "Sopotnica",
    3081   "94" => "Srbinovo",
    3082   "95" => "Staravina",
    3083   "96" => "Star Dojran",
    3084   "97" => "Staro Nagoricane",
    3085   "98" => "Stip",
    3086   "99" => "Struga",
    3087   "A1" => "Strumica",
    3088   "A2" => "Studenicani",
    3089   "A3" => "Suto Orizari",
    3090   "A4" => "Sveti Nikole",
    3091   "A5" => "Tearce",
    3092   "A6" => "Tetovo",
    3093   "A7" => "Topolcani",
    3094   "A8" => "Valandovo",
    3095   "A9" => "Vasilevo",
    3096   "B1" => "Veles",
    3097   "B2" => "Velesta",
    3098   "B3" => "Vevcani",
    3099   "B4" => "Vinica",
    3100   "B5" => "Vitoliste",
    3101   "B6" => "Vranestica",
    3102   "B7" => "Vrapciste",
    3103   "B8" => "Vratnica",
    3104   "B9" => "Vrutok",
    3105   "C1" => "Zajas",
    3106   "C2" => "Zelenikovo",
    3107   "C3" => "Zelino",
    3108   "C4" => "Zitose",
    3109   "C5" => "Zletovo",
    3110   "C6" => "Zrnovci"),
    3111 "ML" => array(
    3112   "01" => "Bamako",
    3113   "03" => "Kayes",
    3114   "04" => "Mopti",
    3115   "05" => "Segou",
    3116   "06" => "Sikasso",
    3117   "07" => "Koulikoro",
    3118   "08" => "Tombouctou",
    3119   "09" => "Gao",
    3120   "10" => "Kidal"),
    3121 "MM" => array(
    3122   "01" => "Rakhine State",
    3123   "02" => "Chin State",
    3124   "03" => "Irrawaddy",
    3125   "04" => "Kachin State",
    3126   "05" => "Karan State",
    3127   "06" => "Kayah State",
    3128   "07" => "Magwe",
    3129   "08" => "Mandalay",
    3130   "09" => "Pegu",
    3131   "10" => "Sagaing",
    3132   "11" => "Shan State",
    3133   "12" => "Tenasserim",
    3134   "13" => "Mon State",
    3135   "14" => "Rangoon",
    3136   "17" => "Yangon"),
    3137 "MN" => array(
    3138   "01" => "Arhangay",
    3139   "02" => "Bayanhongor",
    3140   "03" => "Bayan-Olgiy",
    3141   "05" => "Darhan",
    3142   "06" => "Dornod",
    3143   "07" => "Dornogovi",
    3144   "08" => "Dundgovi",
    3145   "09" => "Dzavhan",
    3146   "10" => "Govi-Altay",
    3147   "11" => "Hentiy",
    3148   "12" => "Hovd",
    3149   "13" => "Hovsgol",
    3150   "14" => "Omnogovi",
    3151   "15" => "Ovorhangay",
    3152   "16" => "Selenge",
    3153   "17" => "Suhbaatar",
    3154   "18" => "Tov",
    3155   "19" => "Uvs",
    3156   "20" => "Ulaanbaatar",
    3157   "21" => "Bulgan",
    3158   "22" => "Erdenet",
    3159   "23" => "Darhan-Uul",
    3160   "24" => "Govisumber",
    3161   "25" => "Orhon"),
    3162 "MO" => array(
    3163   "01" => "Ilhas",
    3164   "02" => "Macau"),
    3165 "MR" => array(
    3166   "01" => "Hodh Ech Chargui",
    3167   "02" => "Hodh El Gharbi",
    3168   "03" => "Assaba",
    3169   "04" => "Gorgol",
    3170   "05" => "Brakna",
    3171   "06" => "Trarza",
    3172   "07" => "Adrar",
    3173   "08" => "Dakhlet Nouadhibou",
    3174   "09" => "Tagant",
    3175   "10" => "Guidimaka",
    3176   "11" => "Tiris Zemmour",
    3177   "12" => "Inchiri"),
    3178 "MS" => array(
    3179   "01" => "Saint Anthony",
    3180   "02" => "Saint Georges",
    3181   "03" => "Saint Peter"),
    3182 "MU" => array(
    3183   "12" => "Black River",
    3184   "13" => "Flacq",
    3185   "14" => "Grand Port",
    3186   "15" => "Moka",
    3187   "16" => "Pamplemousses",
    3188   "17" => "Plaines Wilhems",
    3189   "18" => "Port Louis",
    3190   "19" => "Riviere du Rempart",
    3191   "20" => "Savanne",
    3192   "21" => "Agalega Islands",
    3193   "22" => "Cargados Carajos",
    3194   "23" => "Rodrigues"),
    3195 "MV" => array(
    3196   "01" => "Seenu",
    3197   "02" => "Aliff",
    3198   "03" => "Laviyani",
    3199   "04" => "Waavu",
    3200   "05" => "Laamu",
    3201   "07" => "Haa Aliff",
    3202   "08" => "Thaa",
    3203   "12" => "Meemu",
    3204   "13" => "Raa",
    3205   "14" => "Faafu",
    3206   "17" => "Daalu",
    3207   "20" => "Baa",
    3208   "23" => "Haa Daalu",
    3209   "24" => "Shaviyani",
    3210   "25" => "Noonu",
    3211   "26" => "Kaafu",
    3212   "27" => "Gaafu Aliff",
    3213   "28" => "Gaafu Daalu",
    3214   "29" => "Naviyani",
    3215   "40" => "Male"),
    3216 "MW" => array(
    3217   "02" => "Chikwawa",
    3218   "03" => "Chiradzulu",
    3219   "04" => "Chitipa",
    3220   "05" => "Thyolo",
    3221   "06" => "Dedza",
    3222   "07" => "Dowa",
    3223   "08" => "Karonga",
    3224   "09" => "Kasungu",
    3225   "11" => "Lilongwe",
    3226   "12" => "Mangochi",
    3227   "13" => "Mchinji",
    3228   "15" => "Mzimba",
    3229   "16" => "Ntcheu",
    3230   "17" => "Nkhata Bay",
    3231   "18" => "Nkhotakota",
    3232   "19" => "Nsanje",
    3233   "20" => "Ntchisi",
    3234   "21" => "Rumphi",
    3235   "22" => "Salima",
    3236   "23" => "Zomba",
    3237   "24" => "Blantyre",
    3238   "25" => "Mwanza",
    3239   "26" => "Balaka",
    3240   "27" => "Likoma",
    3241   "28" => "Machinga",
    3242   "29" => "Mulanje",
    3243   "30" => "Phalombe"),
    3244 "MX" => array(
    3245   "01" => "Aguascalientes",
    3246   "02" => "Baja California",
    3247   "03" => "Baja California Sur",
    3248   "04" => "Campeche",
    3249   "05" => "Chiapas",
    3250   "06" => "Chihuahua",
    3251   "07" => "Coahuila de Zaragoza",
    3252   "08" => "Colima",
    3253   "09" => "Distrito Federal",
    3254   "10" => "Durango",
    3255   "11" => "Guanajuato",
    3256   "12" => "Guerrero",
    3257   "13" => "Hidalgo",
    3258   "14" => "Jalisco",
    3259   "15" => "Mexico",
    3260   "16" => "Michoacan de Ocampo",
    3261   "17" => "Morelos",
    3262   "18" => "Nayarit",
    3263   "19" => "Nuevo Leon",
    3264   "20" => "Oaxaca",
    3265   "21" => "Puebla",
    3266   "22" => "Queretaro de Arteaga",
    3267   "23" => "Quintana Roo",
    3268   "24" => "San Luis Potosi",
    3269   "25" => "Sinaloa",
    3270   "26" => "Sonora",
    3271   "27" => "Tabasco",
    3272   "28" => "Tamaulipas",
    3273   "29" => "Tlaxcala",
    3274   "30" => "Veracruz-Llave",
    3275   "31" => "Yucatan",
    3276   "32" => "Zacatecas"),
    3277 "MY" => array(
    3278   "01" => "Johor",
    3279   "02" => "Kedah",
    3280   "03" => "Kelantan",
    3281   "04" => "Melaka",
    3282   "05" => "Negeri Sembilan",
    3283   "06" => "Pahang",
    3284   "07" => "Perak",
    3285   "08" => "Perlis",
    3286   "09" => "Pulau Pinang",
    3287   "11" => "Sarawak",
    3288   "12" => "Selangor",
    3289   "13" => "Terengganu",
    3290   "14" => "Kuala Lumpur",
    3291   "15" => "Labuan",
    3292   "16" => "Sabah",
    3293   "17" => "Putrajaya"),
    3294 "MZ" => array(
    3295   "01" => "Cabo Delgado",
    3296   "02" => "Gaza",
    3297   "03" => "Inhambane",
    3298   "04" => "Maputo",
    3299   "05" => "Sofala",
    3300   "06" => "Nampula",
    3301   "07" => "Niassa",
    3302   "08" => "Tete",
    3303   "09" => "Zambezia",
    3304   "10" => "Manica",
    3305   "11" => "Maputo"),
    3306 "NA" => array(
    3307   "01" => "Bethanien",
    3308   "02" => "Caprivi Oos",
    3309   "03" => "Boesmanland",
    3310   "04" => "Gobabis",
    3311   "05" => "Grootfontein",
    3312   "06" => "Kaokoland",
    3313   "07" => "Karibib",
    3314   "08" => "Keetmanshoop",
    3315   "09" => "Luderitz",
    3316   "10" => "Maltahohe",
    3317   "11" => "Okahandja",
    3318   "12" => "Omaruru",
    3319   "13" => "Otjiwarongo",
    3320   "14" => "Outjo",
    3321   "15" => "Owambo",
    3322   "16" => "Rehoboth",
    3323   "17" => "Swakopmund",
    3324   "18" => "Tsumeb",
    3325   "20" => "Karasburg",
    3326   "21" => "Windhoek",
    3327   "22" => "Damaraland",
    3328   "23" => "Hereroland Oos",
    3329   "24" => "Hereroland Wes",
    3330   "25" => "Kavango",
    3331   "26" => "Mariental",
    3332   "27" => "Namaland",
    3333   "28" => "Caprivi",
    3334   "29" => "Erongo",
    3335   "30" => "Hardap",
    3336   "31" => "Karas",
    3337   "32" => "Kunene",
    3338   "33" => "Ohangwena",
    3339   "34" => "Okavango",
    3340   "35" => "Omaheke",
    3341   "36" => "Omusati",
    3342   "37" => "Oshana",
    3343   "38" => "Oshikoto",
    3344   "39" => "Otjozondjupa"),
    3345 "NE" => array(
    3346   "01" => "Agadez",
    3347   "02" => "Diffa",
    3348   "03" => "Dosso",
    3349   "04" => "Maradi",
    3350   "05" => "Niamey",
    3351   "06" => "Tahoua",
    3352   "07" => "Zinder",
    3353   "08" => "Niamey"),
    3354 "NG" => array(
    3355   "05" => "Lagos",
    3356   "10" => "Rivers",
    3357   "11" => "Federal Capital Territory",
    3358   "16" => "Ogun",
    3359   "17" => "Ondo",
    3360   "21" => "Akwa Ibom",
    3361   "22" => "Cross River",
    3362   "23" => "Kaduna",
    3363   "24" => "Katsina",
    3364   "25" => "Anambra",
    3365   "26" => "Benue",
    3366   "27" => "Borno",
    3367   "28" => "Imo",
    3368   "29" => "Kano",
    3369   "30" => "Kwara",
    3370   "31" => "Niger",
    3371   "32" => "Oyo",
    3372   "35" => "Adamawa",
    3373   "36" => "Delta",
    3374   "37" => "Edo",
    3375   "39" => "Jigawa",
    3376   "40" => "Kebbi",
    3377   "41" => "Kogi",
    3378   "42" => "Osun",
    3379   "43" => "Taraba",
    3380   "44" => "Yobe",
    3381   "45" => "Abia",
    3382   "46" => "Bauchi",
    3383   "47" => "Enugu",
    3384   "48" => "Ondo",
    3385   "49" => "Plateau",
    3386   "50" => "Rivers",
    3387   "51" => "Sokoto",
    3388   "52" => "Bayelsa",
    3389   "53" => "Ebonyi",
    3390   "54" => "Ekiti",
    3391   "55" => "Gombe",
    3392   "56" => "Nassarawa",
    3393   "57" => "Zamfara"),
    3394 "NI" => array(
    3395   "01" => "Boaco",
    3396   "02" => "Carazo",
    3397   "03" => "Chinandega",
    3398   "04" => "Chontales",
    3399   "05" => "Esteli",
    3400   "06" => "Granada",
    3401   "07" => "Jinotega",
    3402   "08" => "Leon",
    3403   "09" => "Madriz",
    3404   "10" => "Managua",
    3405   "11" => "Masaya",
    3406   "12" => "Matagalpa",
    3407   "13" => "Nueva Segovia",
    3408   "14" => "Rio San Juan",
    3409   "15" => "Rivas",
    3410   "16" => "Zelaya"),
    3411 "NL" => array(
    3412   "01" => "Drenthe",
    3413   "02" => "Friesland",
    3414   "03" => "Gelderland",
    3415   "04" => "Groningen",
    3416   "05" => "Limburg",
    3417   "06" => "Noord-Brabant",
    3418   "07" => "Noord-Holland",
    3419   "08" => "Overijssel",
    3420   "09" => "Utrecht",
    3421   "10" => "Zeeland",
    3422   "11" => "Zuid-Holland",
    3423   "12" => "Dronten",
    3424   "13" => "Zuidelijke IJsselmeerpolders",
    3425   "14" => "Lelystad",
    3426   "15" => "Overijssel",
    3427   "16" => "Flevoland"),
    3428 "NO" => array(
    3429   "01" => "Akershus",
    3430   "02" => "Aust-Agder",
    3431   "04" => "Buskerud",
    3432   "05" => "Finnmark",
    3433   "06" => "Hedmark",
    3434   "07" => "Hordaland",
    3435   "08" => "More og Romsdal",
    3436   "09" => "Nordland",
    3437   "10" => "Nord-Trondelag",
    3438   "11" => "Oppland",
    3439   "12" => "Oslo",
    3440   "13" => "Ostfold",
    3441   "14" => "Rogaland",
    3442   "15" => "Sogn og Fjordane",
    3443   "16" => "Sor-Trondelag",
    3444   "17" => "Telemark",
    3445   "18" => "Troms",
    3446   "19" => "Vest-Agder",
    3447   "20" => "Vestfold"),
    3448 "NP" => array(
    3449   "01" => "Bagmati",
    3450   "02" => "Bheri",
    3451   "03" => "Dhawalagiri",
    3452   "04" => "Gandaki",
    3453   "05" => "Janakpur",
    3454   "06" => "Karnali",
    3455   "07" => "Kosi",
    3456   "08" => "Lumbini",
    3457   "09" => "Mahakali",
    3458   "10" => "Mechi",
    3459   "11" => "Narayani",
    3460   "12" => "Rapti",
    3461   "13" => "Sagarmatha",
    3462   "14" => "Seti"),
    3463 "NR" => array(
    3464   "01" => "Aiwo",
    3465   "02" => "Anabar",
    3466   "03" => "Anetan",
    3467   "04" => "Anibare",
    3468   "05" => "Baiti",
    3469   "06" => "Boe",
    3470   "07" => "Buada",
    3471   "08" => "Denigomodu",
    3472   "09" => "Ewa",
    3473   "10" => "Ijuw",
    3474   "11" => "Meneng",
    3475   "12" => "Nibok",
    3476   "13" => "Uaboe",
    3477   "14" => "Yaren"),
    3478 "NZ" => array(
    3479   "10" => "Chatham Islands",
    3480   "E7" => "Auckland",
    3481   "E8" => "Bay of Plenty",
    3482   "E9" => "Canterbury",
    3483   "F1" => "Gisborne",
    3484   "F2" => "Hawke's Bay",
    3485   "F3" => "Manawatu-Wanganui",
    3486   "F4" => "Marlborough",
    3487   "F5" => "Nelson",
    3488   "F6" => "Northland",
    3489   "F7" => "Otago",
    3490   "F8" => "Southland",
    3491   "F9" => "Taranaki",
    3492   "G1" => "Waikato",
    3493   "G2" => "Wellington",
    3494   "G3" => "West Coast"),
    3495 "OM" => array(
    3496   "01" => "Ad Dakhiliyah",
    3497   "02" => "Al Batinah",
    3498   "03" => "Al Wusta",
    3499   "04" => "Ash Sharqiyah",
    3500   "05" => "Az Zahirah",
    3501   "06" => "Masqat",
    3502   "07" => "Musandam",
    3503   "08" => "Zufar"),
    3504 "PA" => array(
    3505   "01" => "Bocas del Toro",
    3506   "02" => "Chiriqui",
    3507   "03" => "Cocle",
    3508   "04" => "Colon",
    3509   "05" => "Darien",
    3510   "06" => "Herrera",
    3511   "07" => "Los Santos",
    3512   "08" => "Panama",
    3513   "09" => "San Blas",
    3514   "10" => "Veraguas"),
    3515 "PE" => array(
    3516   "01" => "Amazonas",
    3517   "02" => "Ancash",
    3518   "03" => "Apurimac",
    3519   "04" => "Arequipa",
    3520   "05" => "Ayacucho",
    3521   "06" => "Cajamarca",
    3522   "07" => "Callao",
    3523   "08" => "Cusco",
    3524   "09" => "Huancavelica",
    3525   "10" => "Huanuco",
    3526   "11" => "Ica",
    3527   "12" => "Junin",
    3528   "13" => "La Libertad",
    3529   "14" => "Lambayeque",
    3530   "15" => "Lima",
    3531   "16" => "Loreto",
    3532   "17" => "Madre de Dios",
    3533   "18" => "Moquegua",
    3534   "19" => "Pasco",
    3535   "20" => "Piura",
    3536   "21" => "Puno",
    3537   "22" => "San Martin",
    3538   "23" => "Tacna",
    3539   "24" => "Tumbes",
    3540   "25" => "Ucayali"),
    3541 "PG" => array(
    3542   "01" => "Central",
    3543   "02" => "Gulf",
    3544   "03" => "Milne Bay",
    3545   "04" => "Northern",
    3546   "05" => "Southern Highlands",
    3547   "06" => "Western",
    3548   "07" => "North Solomons",
    3549   "08" => "Chimbu",
    3550   "09" => "Eastern Highlands",
    3551   "10" => "East New Britain",
    3552   "11" => "East Sepik",
    3553   "12" => "Madang",
    3554   "13" => "Manus",
    3555   "14" => "Morobe",
    3556   "15" => "New Ireland",
    3557   "16" => "Western Highlands",
    3558   "17" => "West New Britain",
    3559   "18" => "Sandaun",
    3560   "19" => "Enga",
    3561   "20" => "National Capital"),
    3562 "PH" => array(
    3563   "01" => "Abra",
    3564   "02" => "Agusan del Norte",
    3565   "03" => "Agusan del Sur",
    3566   "04" => "Aklan",
    3567   "05" => "Albay",
    3568   "06" => "Antique",
    3569   "07" => "Bataan",
    3570   "08" => "Batanes",
    3571   "09" => "Batangas",
    3572   "10" => "Benguet",
    3573   "11" => "Bohol",
    3574   "12" => "Bukidnon",
    3575   "13" => "Bulacan",
    3576   "14" => "Cagayan",
    3577   "15" => "Camarines Norte",
    3578   "16" => "Camarines Sur",
    3579   "17" => "Camiguin",
    3580   "18" => "Capiz",
    3581   "19" => "Catanduanes",
    3582   "20" => "Cavite",
    3583   "21" => "Cebu",
    3584   "22" => "Basilan",
    3585   "23" => "Eastern Samar",
    3586   "24" => "Davao",
    3587   "25" => "Davao del Sur",
    3588   "26" => "Davao Oriental",
    3589   "27" => "Ifugao",
    3590   "28" => "Ilocos Norte",
    3591   "29" => "Ilocos Sur",
    3592   "30" => "Iloilo",
    3593   "31" => "Isabela",
    3594   "32" => "Kalinga-Apayao",
    3595   "33" => "Laguna",
    3596   "34" => "Lanao del Norte",
    3597   "35" => "Lanao del Sur",
    3598   "36" => "La Union",
    3599   "37" => "Leyte",
    3600   "38" => "Marinduque",
    3601   "39" => "Masbate",
    3602   "40" => "Mindoro Occidental",
    3603   "41" => "Mindoro Oriental",
    3604   "42" => "Misamis Occidental",
    3605   "43" => "Misamis Oriental",
    3606   "44" => "Mountain",
    3607   "46" => "Negros Oriental",
    3608   "47" => "Nueva Ecija",
    3609   "48" => "Nueva Vizcaya",
    3610   "49" => "Palawan",
    3611   "50" => "Pampanga",
    3612   "51" => "Pangasinan",
    3613   "53" => "Rizal",
    3614   "54" => "Romblon",
    3615   "55" => "Samar",
    3616   "56" => "Maguindanao",
    3617   "57" => "North Cotabato",
    3618   "58" => "Sorsogon",
    3619   "59" => "Southern Leyte",
    3620   "60" => "Sulu",
    3621   "61" => "Surigao del Norte",
    3622   "62" => "Surigao del Sur",
    3623   "63" => "Tarlac",
    3624   "64" => "Zambales",
    3625   "65" => "Zamboanga del Norte",
    3626   "66" => "Zamboanga del Sur",
    3627   "67" => "Northern Samar",
    3628   "68" => "Quirino",
    3629   "69" => "Siquijor",
    3630   "70" => "South Cotabato",
    3631   "71" => "Sultan Kudarat",
    3632   "72" => "Tawitawi",
    3633   "A1" => "Angeles",
    3634   "A2" => "Bacolod",
    3635   "A3" => "Bago",
    3636   "A4" => "Baguio",
    3637   "A5" => "Bais",
    3638   "A6" => "Basilan City",
    3639   "A7" => "Batangas City",
    3640   "A8" => "Butuan",
    3641   "A9" => "Cabanatuan",
    3642   "B1" => "Cadiz",
    3643   "B2" => "Cagayan de Oro",
    3644   "B3" => "Calbayog",
    3645   "B4" => "Caloocan",
    3646   "B5" => "Canlaon",
    3647   "B6" => "Cavite City",
    3648   "B7" => "Cebu City",
    3649   "B8" => "Cotabato",
    3650   "B9" => "Dagupan",
    3651   "C1" => "Danao",
    3652   "C2" => "Dapitan",
    3653   "C3" => "Davao City",
    3654   "C4" => "Dipolog",
    3655   "C5" => "Dumaguete",
    3656   "C6" => "General Santos",
    3657   "C7" => "Gingoog",
    3658   "C8" => "Iligan",
    3659   "C9" => "Iloilo City",
    3660   "D1" => "Iriga",
    3661   "D2" => "La Carlota",
    3662   "D3" => "Laoag",
    3663   "D4" => "Lapu-Lapu",
    3664   "D5" => "Legaspi",
    3665   "D6" => "Lipa",
    3666   "D7" => "Lucena",
    3667   "D8" => "Mandaue",
    3668   "D9" => "Manila",
    3669   "E1" => "Marawi",
    3670   "E2" => "Naga",
    3671   "E3" => "Olongapo",
    3672   "E4" => "Ormoc",
    3673   "E5" => "Oroquieta",
    3674   "E6" => "Ozamis",
    3675   "E7" => "Pagadian",
    3676   "E8" => "Palayan",
    3677   "E9" => "Pasay",
    3678   "F1" => "Puerto Princesa",
    3679   "F2" => "Quezon City",
    3680   "F3" => "Roxas",
    3681   "F4" => "San Carlos",
    3682   "F5" => "San Carlos",
    3683   "F6" => "San Jose",
    3684   "F7" => "San Pablo",
    3685   "F8" => "Silay",
    3686   "F9" => "Surigao",
    3687   "G1" => "Tacloban",
    3688   "G2" => "Tagaytay",
    3689   "G3" => "Tagbilaran",
    3690   "G4" => "Tangub",
    3691   "G5" => "Toledo",
    3692   "G6" => "Trece Martires",
    3693   "G7" => "Zamboanga",
    3694   "G8" => "Aurora",
    3695   "H2" => "Quezon",
    3696   "H3" => "Negros Occidental"),
    3697 "PK" => array(
    3698   "01" => "Federally Administered Tribal Areas",
    3699   "02" => "Balochistan",
    3700   "03" => "North-West Frontier",
    3701   "04" => "Punjab",
    3702   "05" => "Sindh",
    3703   "06" => "Azad Kashmir",
    3704   "07" => "Northern Areas",
    3705   "08" => "Islamabad"),
    3706 "PL" => array(
    3707   "23" => "Biala Podlaska",
    3708   "24" => "Bialystok",
    3709   "25" => "Bielsko",
    3710   "26" => "Bydgoszcz",
    3711   "27" => "Chelm",
    3712   "28" => "Ciechanow",
    3713   "29" => "Czestochowa",
    3714   "30" => "Elblag",
    3715   "31" => "Gdansk",
    3716   "32" => "Gorzow",
    3717   "33" => "Jelenia Gora",
    3718   "34" => "Kalisz",
    3719   "35" => "Katowice",
    3720   "36" => "Kielce",
    3721   "37" => "Konin",
    3722   "38" => "Koszalin",
    3723   "39" => "Krakow",
    3724   "40" => "Krosno",
    3725   "41" => "Legnica",
    3726   "42" => "Leszno",
    3727   "43" => "Lodz",
    3728   "44" => "Lomza",
    3729   "45" => "Lublin",
    3730   "46" => "Nowy Sacz",
    3731   "47" => "Olsztyn",
    3732   "48" => "Opole",
    3733   "49" => "Ostroleka",
    3734   "50" => "Pila",
    3735   "51" => "Piotrkow",
    3736   "52" => "Plock",
    3737   "53" => "Poznan",
    3738   "54" => "Przemysl",
    3739   "55" => "Radom",
    3740   "56" => "Rzeszow",
    3741   "57" => "Siedlce",
    3742   "58" => "Sieradz",
    3743   "59" => "Skierniewice",
    3744   "60" => "Slupsk",
    3745   "61" => "Suwalki",
    3746   "62" => "Szczecin",
    3747   "63" => "Tarnobrzeg",
    3748   "64" => "Tarnow",
    3749   "65" => "Torun",
    3750   "66" => "Walbrzych",
    3751   "67" => "Warszawa",
    3752   "68" => "Wloclawek",
    3753   "69" => "Wroclaw",
    3754   "70" => "Zamosc",
    3755   "71" => "Zielona Gora",
    3756   "72" => "Dolnoslaskie",
    3757   "73" => "Kujawsko-Pomorskie",
    3758   "74" => "Lodzkie",
    3759   "75" => "Lubelskie",
    3760   "76" => "Lubuskie",
    3761   "77" => "Malopolskie",
    3762   "78" => "Mazowieckie",
    3763   "79" => "Opolskie",
    3764   "80" => "Podkarpackie",
    3765   "81" => "Podlaskie",
    3766   "82" => "Pomorskie",
    3767   "83" => "Slaskie",
    3768   "84" => "Swietokrzyskie",
    3769   "85" => "Warminsko-Mazurskie",
    3770   "86" => "Wielkopolskie",
    3771   "87" => "Zachodniopomorskie"),
    3772 "PS" => array(
    3773   "GZ" => "Gaza",
    3774   "WE" => "West Bank"),
    3775 "PT" => array(
    3776   "02" => "Aveiro",
    3777   "03" => "Beja",
    3778   "04" => "Braga",
    3779   "05" => "Braganca",
    3780   "06" => "Castelo Branco",
    3781   "07" => "Coimbra",
    3782   "08" => "Evora",
    3783   "09" => "Faro",
    3784   "10" => "Madeira",
    3785   "11" => "Guarda",
    3786   "13" => "Leiria",
    3787   "14" => "Lisboa",
    3788   "16" => "Portalegre",
    3789   "17" => "Porto",
    3790   "18" => "Santarem",
    3791   "19" => "Setubal",
    3792   "20" => "Viana do Castelo",
    3793   "21" => "Vila Real",
    3794   "22" => "Viseu",
    3795   "23" => "Azores"),
    3796 "PY" => array(
    3797   "01" => "Alto Parana",
    3798   "02" => "Amambay",
    3799   "03" => "Boqueron",
    3800   "04" => "Caaguazu",
    3801   "05" => "Caazapa",
    3802   "06" => "Central",
    3803   "07" => "Concepcion",
    3804   "08" => "Cordillera",
    3805   "10" => "Guaira",
    3806   "11" => "Itapua",
    3807   "12" => "Misiones",
    3808   "13" => "Neembucu",
    3809   "15" => "Paraguari",
    3810   "16" => "Presidente Hayes",
    3811   "17" => "San Pedro",
    3812   "19" => "Canindeyu",
    3813   "20" => "Chaco",
    3814   "21" => "Nueva Asuncion",
    3815   "23" => "Alto Paraguay"),
    3816 "QA" => array(
    3817   "01" => "Ad Dawhah",
    3818   "02" => "Al Ghuwariyah",
    3819   "03" => "Al Jumaliyah",
    3820   "04" => "Al Khawr",
    3821   "05" => "Al Wakrah Municipality",
    3822   "06" => "Ar Rayyan",
    3823   "08" => "Madinat ach Shamal",
    3824   "09" => "Umm Salal",
    3825   "10" => "Al Wakrah",
    3826   "11" => "Jariyan al Batnah",
    3827   "12" => "Umm Sa'id"),
    3828 "RO" => array(
    3829   "01" => "Alba",
    3830   "02" => "Arad",
    3831   "03" => "Arges",
    3832   "04" => "Bacau",
    3833   "05" => "Bihor",
    3834   "06" => "Bistrita-Nasaud",
    3835   "07" => "Botosani",
    3836   "08" => "Braila",
    3837   "09" => "Brasov",
    3838   "10" => "Bucuresti",
    3839   "11" => "Buzau",
    3840   "12" => "Caras-Severin",
    3841   "13" => "Cluj",
    3842   "14" => "Constanta",
    3843   "15" => "Covasna",
    3844   "16" => "Dambovita",
    3845   "17" => "Dolj",
    3846   "18" => "Galati",
    3847   "19" => "Gorj",
    3848   "20" => "Harghita",
    3849   "21" => "Hunedoara",
    3850   "22" => "Ialomita",
    3851   "23" => "Iasi",
    3852   "25" => "Maramures",
    3853   "26" => "Mehedinti",
    3854   "27" => "Mures",
    3855   "28" => "Neamt",
    3856   "29" => "Olt",
    3857   "30" => "Prahova",
    3858   "31" => "Salaj",
    3859   "32" => "Satu Mare",
    3860   "33" => "Sibiu",
    3861   "34" => "Suceava",
    3862   "35" => "Teleorman",
    3863   "36" => "Timis",
    3864   "37" => "Tulcea",
    3865   "38" => "Vaslui",
    3866   "39" => "Valcea",
    3867   "40" => "Vrancea",
    3868   "41" => "Calarasi",
    3869   "42" => "Giurgiu",
    3870   "43" => "Ilfov"),
    3871 "RS" => array(
    3872   "00" => "Serbia proper",
    3873   "01" => "Kosovo",
    3874   "02" => "Vojvodina"),
    3875 "RU" => array(
    3876   "01" => "Adygeya, Republic of",
    3877   "02" => "Aginsky Buryatsky AO",
    3878   "03" => "Gorno-Altay",
    3879   "04" => "Altaisky krai",
    3880   "05" => "Amur",
    3881   "06" => "Arkhangel'sk",
    3882   "07" => "Astrakhan'",
    3883   "08" => "Bashkortostan",
    3884   "09" => "Belgorod",
    3885   "10" => "Bryansk",
    3886   "11" => "Buryat",
    3887   "12" => "Chechnya",
    3888   "13" => "Chelyabinsk",
    3889   "14" => "Chita",
    3890   "15" => "Chukot",
    3891   "16" => "Chuvashia",
    3892   "17" => "Dagestan",
    3893   "18" => "Evenk",
    3894   "19" => "Ingush",
    3895   "20" => "Irkutsk",
    3896   "21" => "Ivanovo",
    3897   "22" => "Kabardin-Balkar",
    3898   "23" => "Kaliningrad",
    3899   "24" => "Kalmyk",
    3900   "25" => "Kaluga",
    3901   "26" => "Kamchatka",
    3902   "27" => "Karachay-Cherkess",
    3903   "28" => "Karelia",
    3904   "29" => "Kemerovo",
    3905   "30" => "Khabarovsk",
    3906   "31" => "Khakass",
    3907   "32" => "Khanty-Mansiy",
    3908   "33" => "Kirov",
    3909   "34" => "Komi",
    3910   "35" => "Komi-Permyak",
    3911   "36" => "Koryak",
    3912   "37" => "Kostroma",
    3913   "38" => "Krasnodar",
    3914   "39" => "Krasnoyarsk",
    3915   "40" => "Kurgan",
    3916   "41" => "Kursk",
    3917   "42" => "Leningrad",
    3918   "43" => "Lipetsk",
    3919   "44" => "Magadan",
    3920   "45" => "Mariy-El",
    3921   "46" => "Mordovia",
    3922   "47" => "Moskva",
    3923   "48" => "Moscow City",
    3924   "49" => "Murmansk",
    3925   "50" => "Nenets",
    3926   "51" => "Nizhegorod",
    3927   "52" => "Novgorod",
    3928   "53" => "Novosibirsk",
    3929   "54" => "Omsk",
    3930   "55" => "Orenburg",
    3931   "56" => "Orel",
    3932   "57" => "Penza",
    3933   "58" => "Perm'",
    3934   "59" => "Primor'ye",
    3935   "60" => "Pskov",
    3936   "61" => "Rostov",
    3937   "62" => "Ryazan'",
    3938   "63" => "Sakha",
    3939   "64" => "Sakhalin",
    3940   "65" => "Samara",
    3941   "66" => "Saint Petersburg City",
    3942   "67" => "Saratov",
    3943   "68" => "North Ossetia",
    3944   "69" => "Smolensk",
    3945   "70" => "Stavropol'",
    3946   "71" => "Sverdlovsk",
    3947   "72" => "Tambovskaya oblast",
    3948   "73" => "Tatarstan",
    3949   "74" => "Taymyr",
    3950   "75" => "Tomsk",
    3951   "76" => "Tula",
    3952   "77" => "Tver'",
    3953   "78" => "Tyumen'",
    3954   "79" => "Tuva",
    3955   "80" => "Udmurt",
    3956   "81" => "Ul'yanovsk",
    3957   "82" => "Ust-Orda Buryat",
    3958   "83" => "Vladimir",
    3959   "84" => "Volgograd",
    3960   "85" => "Vologda",
    3961   "86" => "Voronezh",
    3962   "87" => "Yamal-Nenets",
    3963   "88" => "Yaroslavl'",
    3964   "89" => "Yevrey",
    3965   "90" => "Permskiy Kray",
    3966   "91" => "Krasnoyarskiy Kray"),
    3967 "RW" => array(
    3968   "01" => "Butare",
    3969   "06" => "Gitarama",
    3970   "09" => "Kigali",
    3971   "11" => "Est",
    3972   "12" => "Kigali",
    3973   "13" => "Nord",
    3974   "14" => "Ouest",
    3975   "15" => "Sud"),
    3976 "SA" => array(
    3977   "02" => "Al Bahah",
    3978   "03" => "Al Jawf",
    3979   "05" => "Al Madinah",
    3980   "06" => "Ash Sharqiyah",
    3981   "08" => "Al Qasim",
    3982   "09" => "Al Qurayyat",
    3983   "10" => "Ar Riyad",
    3984   "13" => "Ha'il",
    3985   "14" => "Makkah",
    3986   "15" => "Al Hudud ash Shamaliyah",
    3987   "16" => "Najran",
    3988   "17" => "Jizan",
    3989   "19" => "Tabuk",
    3990   "20" => "Al Jawf"),
    3991 "SB" => array(
    3992   "03" => "Malaita",
    3993   "06" => "Guadalcanal",
    3994   "07" => "Isabel",
    3995   "08" => "Makira",
    3996   "09" => "Temotu",
    3997   "10" => "Central",
    3998   "11" => "Western",
    3999   "12" => "Choiseul",
    4000   "13" => "Rennell and Bellona"),
    4001 "SC" => array(
    4002   "01" => "Anse aux Pins",
    4003   "02" => "Anse Boileau",
    4004   "03" => "Anse Etoile",
    4005   "04" => "Anse Louis",
    4006   "05" => "Anse Royale",
    4007   "06" => "Baie Lazare",
    4008   "07" => "Baie Sainte Anne",
    4009   "08" => "Beau Vallon",
    4010   "09" => "Bel Air",
    4011   "10" => "Bel Ombre",
    4012   "11" => "Cascade",
    4013   "12" => "Glacis",
    4014   "13" => "Grand' Anse",
    4015   "14" => "Grand' Anse",
    4016   "15" => "La Digue",
    4017   "16" => "La Riviere Anglaise",
    4018   "17" => "Mont Buxton",
    4019   "18" => "Mont Fleuri",
    4020   "19" => "Plaisance",
    4021   "20" => "Pointe La Rue",
    4022   "21" => "Port Glaud",
    4023   "22" => "Saint Louis",
    4024   "23" => "Takamaka"),
    4025 "SD" => array(
    4026   "27" => "Al Wusta",
    4027   "28" => "Al Istiwa'iyah",
    4028   "29" => "Al Khartum",
    4029   "30" => "Ash Shamaliyah",
    4030   "31" => "Ash Sharqiyah",
    4031   "32" => "Bahr al Ghazal",
    4032   "33" => "Darfur",
    4033   "34" => "Kurdufan",
    4034   "35" => "Upper Nile"),
    4035 "SE" => array(
    4036   "01" => "Alvsborgs Lan",
    4037   "02" => "Blekinge Lan",
    4038   "03" => "Gavleborgs Lan",
    4039   "04" => "Goteborgs och Bohus Lan",
    4040   "05" => "Gotlands Lan",
    4041   "06" => "Hallands Lan",
    4042   "07" => "Jamtlands Lan",
    4043   "08" => "Jonkopings Lan",
    4044   "09" => "Kalmar Lan",
    4045   "10" => "Dalarnas Lan",
    4046   "11" => "Kristianstads Lan",
    4047   "12" => "Kronobergs Lan",
    4048   "13" => "Malmohus Lan",
    4049   "14" => "Norrbottens Lan",
    4050   "15" => "Orebro Lan",
    4051   "16" => "Ostergotlands Lan",
    4052   "17" => "Skaraborgs Lan",
    4053   "18" => "Sodermanlands Lan",
    4054   "21" => "Uppsala Lan",
    4055   "22" => "Varmlands Lan",
    4056   "23" => "Vasterbottens Lan",
    4057   "24" => "Vasternorrlands Lan",
    4058   "25" => "Vastmanlands Lan",
    4059   "26" => "Stockholms Lan",
    4060   "27" => "Skane Lan",
    4061   "28" => "Vastra Gotaland"),
    4062 "SH" => array(
    4063   "01" => "Ascension",
    4064   "02" => "Saint Helena",
    4065   "03" => "Tristan da Cunha"),
    4066 "SI" => array(
    4067   "01" => "Ajdovscina",
    4068   "02" => "Beltinci",
    4069   "03" => "Bled",
    4070   "04" => "Bohinj",
    4071   "05" => "Borovnica",
    4072   "06" => "Bovec",
    4073   "07" => "Brda",
    4074   "08" => "Brezice",
    4075   "09" => "Brezovica",
    4076   "11" => "Celje",
    4077   "12" => "Cerklje na Gorenjskem",
    4078   "13" => "Cerknica",
    4079   "14" => "Cerkno",
    4080   "15" => "Crensovci",
    4081   "16" => "Crna na Koroskem",
    4082   "17" => "Crnomelj",
    4083   "19" => "Divaca",
    4084   "20" => "Dobrepolje",
    4085   "22" => "Dol pri Ljubljani",
    4086   "24" => "Dornava",
    4087   "25" => "Dravograd",
    4088   "26" => "Duplek",
    4089   "27" => "Gorenja Vas-Poljane",
    4090   "28" => "Gorisnica",
    4091   "29" => "Gornja Radgona",
    4092   "30" => "Gornji Grad",
    4093   "31" => "Gornji Petrovci",
    4094   "32" => "Grosuplje",
    4095   "34" => "Hrastnik",
    4096   "35" => "Hrpelje-Kozina",
    4097   "36" => "Idrija",
    4098   "37" => "Ig",
    4099   "38" => "Ilirska Bistrica",
    4100   "39" => "Ivancna Gorica",
    4101   "40" => "Izola-Isola",
    4102   "42" => "Jursinci",
    4103   "44" => "Kanal",
    4104   "45" => "Kidricevo",
    4105   "46" => "Kobarid",
    4106   "47" => "Kobilje",
    4107   "49" => "Komen",
    4108   "50" => "Koper-Capodistria",
    4109   "51" => "Kozje",
    4110   "52" => "Kranj",
    4111   "53" => "Kranjska Gora",
    4112   "54" => "Krsko",
    4113   "55" => "Kungota",
    4114   "57" => "Lasko",
    4115   "61" => "Ljubljana",
    4116   "62" => "Ljubno",
    4117   "64" => "Logatec",
    4118   "66" => "Loski Potok",
    4119   "68" => "Lukovica",
    4120   "71" => "Medvode",
    4121   "72" => "Menges",
    4122   "73" => "Metlika",
    4123   "74" => "Mezica",
    4124   "76" => "Mislinja",
    4125   "77" => "Moravce",
    4126   "78" => "Moravske Toplice",
    4127   "79" => "Mozirje",
    4128   "80" => "Murska Sobota",
    4129   "81" => "Muta",
    4130   "82" => "Naklo",
    4131   "83" => "Nazarje",
    4132   "84" => "Nova Gorica",
    4133   "86" => "Odranci",
    4134   "87" => "Ormoz",
    4135   "88" => "Osilnica",
    4136   "89" => "Pesnica",
    4137   "91" => "Pivka",
    4138   "92" => "Podcetrtek",
    4139   "94" => "Postojna",
    4140   "97" => "Puconci",
    4141   "98" => "Racam",
    4142   "99" => "Radece",
    4143   "A1" => "Radenci",
    4144   "A2" => "Radlje ob Dravi",
    4145   "A3" => "Radovljica",
    4146   "A6" => "Rogasovci",
    4147   "A7" => "Rogaska Slatina",
    4148   "A8" => "Rogatec",
    4149   "B1" => "Semic",
    4150   "B2" => "Sencur",
    4151   "B3" => "Sentilj",
    4152   "B4" => "Sentjernej",
    4153   "B6" => "Sevnica",
    4154   "B7" => "Sezana",
    4155   "B8" => "Skocjan",
    4156   "B9" => "Skofja Loka",
    4157   "C1" => "Skofljica",
    4158   "C2" => "Slovenj Gradec",
    4159   "C4" => "Slovenske Konjice",
    4160   "C5" => "Smarje pri Jelsah",
    4161   "C6" => "Smartno ob Paki",
    4162   "C7" => "Sostanj",
    4163   "C8" => "Starse",
    4164   "C9" => "Store",
    4165   "D1" => "Sveti Jurij",
    4166   "D2" => "Tolmin",
    4167   "D3" => "Trbovlje",
    4168   "D4" => "Trebnje",
    4169   "D5" => "Trzic",
    4170   "D6" => "Turnisce",
    4171   "D7" => "Velenje",
    4172   "D8" => "Velike Lasce",
    4173   "E1" => "Vipava",
    4174   "E2" => "Vitanje",
    4175   "E3" => "Vodice",
    4176   "E5" => "Vrhnika",
    4177   "E6" => "Vuzenica",
    4178   "E7" => "Zagorje ob Savi",
    4179   "E9" => "Zavrc",
    4180   "F1" => "Zelezniki",
    4181   "F2" => "Ziri",
    4182   "F3" => "Zrece",
    4183   "G4" => "Dobrova-Horjul-Polhov Gradec",
    4184   "G7" => "Domzale",
    4185   "H4" => "Jesenice",
    4186   "H6" => "Kamnik",
    4187   "H7" => "Kocevje",
    4188   "I2" => "Kuzma",
    4189   "I3" => "Lenart",
    4190   "I5" => "Litija",
    4191   "I6" => "Ljutomer",
    4192   "I7" => "Loska Dolina",
    4193   "I9" => "Luce",
    4194   "J1" => "Majsperk",
    4195   "J2" => "Maribor",
    4196   "J5" => "Miren-Kostanjevica",
    4197   "J7" => "Novo Mesto",
    4198   "J9" => "Piran",
    4199   "K5" => "Preddvor",
    4200   "K7" => "Ptuj",
    4201   "L1" => "Ribnica",
    4202   "L3" => "Ruse",
    4203   "L7" => "Sentjur pri Celju",
    4204   "L8" => "Slovenska Bistrica",
    4205   "N2" => "Videm",
    4206   "N3" => "Vojnik",
    4207   "N5" => "Zalec"),
    4208 "SK" => array(
    4209   "01" => "Banska Bystrica",
    4210   "02" => "Bratislava",
    4211   "03" => "Kosice",
    4212   "04" => "Nitra",
    4213   "05" => "Presov",
    4214   "06" => "Trencin",
    4215   "07" => "Trnava",
    4216   "08" => "Zilina"),
    4217 "SL" => array(
    4218   "01" => "Eastern",
    4219   "02" => "Northern",
    4220   "03" => "Southern",
    4221   "04" => "Western Area"),
    4222 "SM" => array(
    4223   "01" => "Acquaviva",
    4224   "02" => "Chiesanuova",
    4225   "03" => "Domagnano",
    4226   "04" => "Faetano",
    4227   "05" => "Fiorentino",
    4228   "06" => "Borgo Maggiore",
    4229   "07" => "San Marino",
    4230   "08" => "Monte Giardino",
    4231   "09" => "Serravalle"),
    4232 "SN" => array(
    4233   "01" => "Dakar",
    4234   "03" => "Diourbel",
    4235   "04" => "Saint-Louis",
    4236   "05" => "Tambacounda",
    4237   "07" => "Thies",
    4238   "09" => "Fatick",
    4239   "10" => "Kaolack",
    4240   "11" => "Kolda",
    4241   "12" => "Ziguinchor",
    4242   "13" => "Louga",
    4243   "14" => "Saint-Louis",
    4244   "15" => "Matam"),
    4245 "SO" => array(
    4246   "01" => "Bakool",
    4247   "02" => "Banaadir",
    4248   "03" => "Bari",
    4249   "04" => "Bay",
    4250   "05" => "Galguduud",
    4251   "06" => "Gedo",
    4252   "07" => "Hiiraan",
    4253   "08" => "Jubbada Dhexe",
    4254   "09" => "Jubbada Hoose",
    4255   "10" => "Mudug",
    4256   "11" => "Nugaal",
    4257   "12" => "Sanaag",
    4258   "13" => "Shabeellaha Dhexe",
    4259   "14" => "Shabeellaha Hoose",
    4260   "16" => "Woqooyi Galbeed",
    4261   "18" => "Nugaal",
    4262   "19" => "Togdheer",
    4263   "20" => "Woqooyi Galbeed",
    4264   "21" => "Awdal",
    4265   "22" => "Sool"),
    4266 "SR" => array(
    4267   "10" => "Brokopondo",
    4268   "11" => "Commewijne",
    4269   "12" => "Coronie",
    4270   "13" => "Marowijne",
    4271   "14" => "Nickerie",
    4272   "15" => "Para",
    4273   "16" => "Paramaribo",
    4274   "17" => "Saramacca",
    4275   "18" => "Sipaliwini",
    4276   "19" => "Wanica"),
    4277 "ST" => array(
    4278   "01" => "Principe",
    4279   "02" => "Sao Tome"),
    4280 "SV" => array(
    4281   "01" => "Ahuachapan",
    4282   "02" => "Cabanas",
    4283   "03" => "Chalatenango",
    4284   "04" => "Cuscatlan",
    4285   "05" => "La Libertad",
    4286   "06" => "La Paz",
    4287   "07" => "La Union",
    4288   "08" => "Morazan",
    4289   "09" => "San Miguel",
    4290   "10" => "San Salvador",
    4291   "11" => "Santa Ana",
    4292   "12" => "San Vicente",
    4293   "13" => "Sonsonate",
    4294   "14" => "Usulutan"),
    4295 "SY" => array(
    4296   "01" => "Al Hasakah",
    4297   "02" => "Al Ladhiqiyah",
    4298   "03" => "Al Qunaytirah",
    4299   "04" => "Ar Raqqah",
    4300   "05" => "As Suwayda'",
    4301   "06" => "Dar",
    4302   "07" => "Dayr az Zawr",
    4303   "08" => "Rif Dimashq",
    4304   "09" => "Halab",
    4305   "10" => "Hamah",
    4306   "11" => "Hims",
    4307   "12" => "Idlib",
    4308   "13" => "Dimashq",
    4309   "14" => "Tartus"),
    4310 "SZ" => array(
    4311   "01" => "Hhohho",
    4312   "02" => "Lubombo",
    4313   "03" => "Manzini",
    4314   "04" => "Shiselweni",
    4315   "05" => "Praslin"),
    4316 "TD" => array(
    4317   "01" => "Batha",
    4318   "02" => "Biltine",
    4319   "03" => "Borkou-Ennedi-Tibesti",
    4320   "04" => "Chari-Baguirmi",
    4321   "05" => "Guera",
    4322   "06" => "Kanem",
    4323   "07" => "Lac",
    4324   "08" => "Logone Occidental",
    4325   "09" => "Logone Oriental",
    4326   "10" => "Mayo-Kebbi",
    4327   "11" => "Moyen-Chari",
    4328   "12" => "Ouaddai",
    4329   "13" => "Salamat",
    4330   "14" => "Tandjile"),
    4331 "TG" => array(
    4332   "09" => "Lama-Kara",
    4333   "18" => "Tsevie",
    4334   "22" => "Centrale",
    4335   "23" => "Kara",
    4336   "24" => "Maritime",
    4337   "25" => "Plateaux",
    4338   "26" => "Savanes"),
    4339 "TH" => array(
    4340   "01" => "Mae Hong Son",
    4341   "02" => "Chiang Mai",
    4342   "03" => "Chiang Rai",
    4343   "04" => "Nan",
    4344   "05" => "Lamphun",
    4345   "06" => "Lampang",
    4346   "07" => "Phrae",
    4347   "08" => "Tak",
    4348   "09" => "Sukhothai",
    4349   "10" => "Uttaradit",
    4350   "11" => "Kamphaeng Phet",
    4351   "12" => "Phitsanulok",
    4352   "13" => "Phichit",
    4353   "14" => "Phetchabun",
    4354   "15" => "Uthai Thani",
    4355   "16" => "Nakhon Sawan",
    4356   "17" => "Nong Khai",
    4357   "18" => "Loei",
    4358   "20" => "Sakon Nakhon",
    4359   "21" => "Nakhon Phanom",
    4360   "22" => "Khon Kaen",
    4361   "23" => "Kalasin",
    4362   "24" => "Maha Sarakham",
    4363   "25" => "Roi Et",
    4364   "26" => "Chaiyaphum",
    4365   "27" => "Nakhon Ratchasima",
    4366   "28" => "Buriram",
    4367   "29" => "Surin",
    4368   "30" => "Sisaket",
    4369   "31" => "Narathiwat",
    4370   "32" => "Chai Nat",
    4371   "33" => "Sing Buri",
    4372   "34" => "Lop Buri",
    4373   "35" => "Ang Thong",
    4374   "36" => "Phra Nakhon Si Ayutthaya",
    4375   "37" => "Saraburi",
    4376   "38" => "Nonthaburi",
    4377   "39" => "Pathum Thani",
    4378   "40" => "Krung Thep",
    4379   "41" => "Phayao",
    4380   "42" => "Samut Prakan",
    4381   "43" => "Nakhon Nayok",
    4382   "44" => "Chachoengsao",
    4383   "45" => "Prachin Buri",
    4384   "46" => "Chon Buri",
    4385   "47" => "Rayong",
    4386   "48" => "Chanthaburi",
    4387   "49" => "Trat",
    4388   "50" => "Kanchanaburi",
    4389   "51" => "Suphan Buri",
    4390   "52" => "Ratchaburi",
    4391   "53" => "Nakhon Pathom",
    4392   "54" => "Samut Songkhram",
    4393   "55" => "Samut Sakhon",
    4394   "56" => "Phetchaburi",
    4395   "57" => "Prachuap Khiri Khan",
    4396   "58" => "Chumphon",
    4397   "59" => "Ranong",
    4398   "60" => "Surat Thani",
    4399   "61" => "Phangnga",
    4400   "62" => "Phuket",
    4401   "63" => "Krabi",
    4402   "64" => "Nakhon Si Thammarat",
    4403   "65" => "Trang",
    4404   "66" => "Phatthalung",
    4405   "67" => "Satun",
    4406   "68" => "Songkhla",
    4407   "69" => "Pattani",
    4408   "70" => "Yala",
    4409   "71" => "Ubon Ratchathani",
    4410   "72" => "Yasothon",
    4411   "75" => "Ubon Ratchathani",
    4412   "76" => "Udon Thani",
    4413   "78" => "Mukdahan"),
    4414 "TJ" => array(
    4415   "01" => "Kuhistoni Badakhshon",
    4416   "02" => "Khatlon",
    4417   "03" => "Sughd"),
    4418 "TM" => array(
    4419   "01" => "Ahal",
    4420   "02" => "Balkan",
    4421   "03" => "Dashoguz",
    4422   "04" => "Lebap",
    4423   "05" => "Mary"),
    4424 "TN" => array(
    4425   "02" => "Al Qasrayn",
    4426   "03" => "Al Qayrawan",
    4427   "06" => "Jundubah",
    4428   "10" => "Qafsah",
    4429   "14" => "Kef",
    4430   "15" => "Al Mahdiyah",
    4431   "16" => "Al Munastir",
    4432   "17" => "Bajah",
    4433   "18" => "Banzart",
    4434   "19" => "Nabul",
    4435   "22" => "Silyanah",
    4436   "23" => "Susah",
    4437   "27" => "Bin",
    4438   "28" => "Madanin",
    4439   "29" => "Qabis",
    4440   "30" => "Qafsah",
    4441   "31" => "Qibili",
    4442   "32" => "Safaqis",
    4443   "33" => "Sidi Bu Zayd",
    4444   "34" => "Tatawin",
    4445   "35" => "Tawzar",
    4446   "36" => "Tunis",
    4447   "37" => "Zaghwan",
    4448   "38" => "Ariana",
    4449   "39" => "Manouba"),
    4450 "TO" => array(
    4451   "01" => "Ha",
    4452   "02" => "Tongatapu",
    4453   "03" => "Vava"),
    4454 "TR" => array(
    4455   "02" => "Adiyaman",
    4456   "03" => "Afyonkarahisar",
    4457   "04" => "Agri",
    4458   "05" => "Amasya",
    4459   "07" => "Antalya",
    4460   "08" => "Artvin",
    4461   "09" => "Aydin",
    4462   "10" => "Balikesir",
    4463   "11" => "Bilecik",
    4464   "12" => "Bingol",
    4465   "13" => "Bitlis",
    4466   "14" => "Bolu",
    4467   "15" => "Burdur",
    4468   "16" => "Bursa",
    4469   "17" => "Canakkale",
    4470   "19" => "Corum",
    4471   "20" => "Denizli",
    4472   "21" => "Diyarbakir",
    4473   "22" => "Edirne",
    4474   "23" => "Elazig",
    4475   "24" => "Erzincan",
    4476   "25" => "Erzurum",
    4477   "26" => "Eskisehir",
    4478   "28" => "Giresun",
    4479   "31" => "Hatay",
    4480   "32" => "Icel",
    4481   "33" => "Isparta",
    4482   "34" => "Istanbul",
    4483   "35" => "Izmir",
    4484   "37" => "Kastamonu",
    4485   "38" => "Kayseri",
    4486   "39" => "Kirklareli",
    4487   "40" => "Kirsehir",
    4488   "41" => "Kocaeli",
    4489   "43" => "Kutahya",
    4490   "44" => "Malatya",
    4491   "45" => "Manisa",
    4492   "46" => "Kahramanmaras",
    4493   "48" => "Mugla",
    4494   "49" => "Mus",
    4495   "50" => "Nevsehir",
    4496   "52" => "Ordu",
    4497   "53" => "Rize",
    4498   "54" => "Sakarya",
    4499   "55" => "Samsun",
    4500   "57" => "Sinop",
    4501   "58" => "Sivas",
    4502   "59" => "Tekirdag",
    4503   "60" => "Tokat",
    4504   "61" => "Trabzon",
    4505   "62" => "Tunceli",
    4506   "63" => "Sanliurfa",
    4507   "64" => "Usak",
    4508   "65" => "Van",
    4509   "66" => "Yozgat",
    4510   "68" => "Ankara",
    4511   "69" => "Gumushane",
    4512   "70" => "Hakkari",
    4513   "71" => "Konya",
    4514   "72" => "Mardin",
    4515   "73" => "Nigde",
    4516   "74" => "Siirt",
    4517   "75" => "Aksaray",
    4518   "76" => "Batman",
    4519   "77" => "Bayburt",
    4520   "78" => "Karaman",
    4521   "79" => "Kirikkale",
    4522   "80" => "Sirnak",
    4523   "81" => "Adana",
    4524   "82" => "Cankiri",
    4525   "83" => "Gaziantep",
    4526   "84" => "Kars",
    4527   "85" => "Zonguldak",
    4528   "86" => "Ardahan",
    4529   "87" => "Bartin",
    4530   "88" => "Igdir",
    4531   "89" => "Karabuk",
    4532   "90" => "Kilis",
    4533   "91" => "Osmaniye",
    4534   "92" => "Yalova",
    4535   "93" => "Duzce"),
    4536 "TT" => array(
    4537   "01" => "Arima",
    4538   "02" => "Caroni",
    4539   "03" => "Mayaro",
    4540   "04" => "Nariva",
    4541   "05" => "Port-of-Spain",
    4542   "06" => "Saint Andrew",
    4543   "07" => "Saint David",
    4544   "08" => "Saint George",
    4545   "09" => "Saint Patrick",
    4546   "10" => "San Fernando",
    4547   "11" => "Tobago",
    4548   "12" => "Victoria"),
    4549 "TW" => array(
    4550   "01" => "Fu-chien",
    4551   "02" => "Kao-hsiung",
    4552   "03" => "T'ai-pei",
    4553   "04" => "T'ai-wan"),
    4554 "TZ" => array(
    4555   "02" => "Pwani",
    4556   "03" => "Dodoma",
    4557   "04" => "Iringa",
    4558   "05" => "Kigoma",
    4559   "06" => "Kilimanjaro",
    4560   "07" => "Lindi",
    4561   "08" => "Mara",
    4562   "09" => "Mbeya",
    4563   "10" => "Morogoro",
    4564   "11" => "Mtwara",
    4565   "12" => "Mwanza",
    4566   "13" => "Pemba North",
    4567   "14" => "Ruvuma",
    4568   "15" => "Shinyanga",
    4569   "16" => "Singida",
    4570   "17" => "Tabora",
    4571   "18" => "Tanga",
    4572   "19" => "Kagera",
    4573   "20" => "Pemba South",
    4574   "21" => "Zanzibar Central",
    4575   "22" => "Zanzibar North",
    4576   "23" => "Dar es Salaam",
    4577   "24" => "Rukwa",
    4578   "25" => "Zanzibar Urban",
    4579   "26" => "Arusha",
    4580   "27" => "Manyara"),
    4581 "UA" => array(
    4582   "01" => "Cherkas'ka Oblast'",
    4583   "02" => "Chernihivs'ka Oblast'",
    4584   "03" => "Chernivets'ka Oblast'",
    4585   "04" => "Dnipropetrovs'ka Oblast'",
    4586   "05" => "Donets'ka Oblast'",
    4587   "06" => "Ivano-Frankivs'ka Oblast'",
    4588   "07" => "Kharkivs'ka Oblast'",
    4589   "08" => "Khersons'ka Oblast'",
    4590   "09" => "Khmel'nyts'ka Oblast'",
    4591   "10" => "Kirovohrads'ka Oblast'",
    4592   "11" => "Krym",
    4593   "12" => "Kyyiv",
    4594   "13" => "Kyyivs'ka Oblast'",
    4595   "14" => "Luhans'ka Oblast'",
    4596   "15" => "L'vivs'ka Oblast'",
    4597   "16" => "Mykolayivs'ka Oblast'",
    4598   "17" => "Odes'ka Oblast'",
    4599   "18" => "Poltavs'ka Oblast'",
    4600   "19" => "Rivnens'ka Oblast'",
    4601   "20" => "Sevastopol'",
    4602   "21" => "Sums'ka Oblast'",
    4603   "22" => "Ternopil's'ka Oblast'",
    4604   "23" => "Vinnyts'ka Oblast'",
    4605   "24" => "Volyns'ka Oblast'",
    4606   "25" => "Zakarpats'ka Oblast'",
    4607   "26" => "Zaporiz'ka Oblast'",
    4608   "27" => "Zhytomyrs'ka Oblast'"),
    4609 "UG" => array(
    4610   "05" => "Busoga",
    4611   "08" => "Karamoja",
    4612   "12" => "South Buganda",
    4613   "18" => "Central",
    4614   "20" => "Eastern",
    4615   "21" => "Nile",
    4616   "22" => "North Buganda",
    4617   "23" => "Northern",
    4618   "24" => "Southern",
    4619   "25" => "Western",
    4620   "37" => "Kampala",
    4621   "56" => "Mubende",
    4622   "65" => "Adjumani",
    4623   "66" => "Bugiri",
    4624   "67" => "Busia",
    4625   "69" => "Katakwi",
    4626   "73" => "Nakasongola",
    4627   "74" => "Sembabule",
    4628   "77" => "Arua",
    4629   "78" => "Iganga",
    4630   "79" => "Kabarole",
    4631   "80" => "Kaberamaido",
    4632   "81" => "Kamwenge",
    4633   "82" => "Kanungu",
    4634   "83" => "Kayunga",
    4635   "84" => "Kitgum",
    4636   "85" => "Kyenjojo",
    4637   "86" => "Mayuge",
    4638   "87" => "Mbale",
    4639   "88" => "Moroto",
    4640   "89" => "Mpigi",
    4641   "90" => "Mukono",
    4642   "91" => "Nakapiripirit",
    4643   "92" => "Pader",
    4644   "93" => "Rukungiri",
    4645   "94" => "Sironko",
    4646   "95" => "Soroti",
    4647   "96" => "Wakiso",
    4648   "97" => "Yumbe"),
    4649 "US" => array(
    4650   "AA" => "Armed Forces Americas",
    4651   "AE" => "Armed Forces Europe, Middle East, & Canada",
    4652   "AK" => "Alaska",
    4653   "AL" => "Alabama",
    4654   "AP" => "Armed Forces Pacific",
    4655   "AR" => "Arkansas",
    4656   "AS" => "American Samoa",
    4657   "AZ" => "Arizona",
    4658   "CA" => "California",
    4659   "CO" => "Colorado",
    4660   "CT" => "Connecticut",
    4661   "DC" => "District of Columbia",
    4662   "DE" => "Delaware",
    4663   "FL" => "Florida",
    4664   "FM" => "Federated States of Micronesia",
    4665   "GA" => "Georgia",
    4666   "GU" => "Guam",
    4667   "HI" => "Hawaii",
    4668   "IA" => "Iowa",
    4669   "ID" => "Idaho",
    4670   "IL" => "Illinois",
    4671   "IN" => "Indiana",
    4672   "KS" => "Kansas",
    4673   "KY" => "Kentucky",
    4674   "LA" => "Louisiana",
    4675   "MA" => "Massachusetts",
    4676   "MD" => "Maryland",
    4677   "ME" => "Maine",
    4678   "MH" => "Marshall Islands",
    4679   "MI" => "Michigan",
    4680   "MN" => "Minnesota",
    4681   "MO" => "Missouri",
    4682   "MP" => "Northern Mariana Islands",
    4683   "MS" => "Mississippi",
    4684   "MT" => "Montana",
    4685   "NC" => "North Carolina",
    4686   "ND" => "North Dakota",
    4687   "NE" => "Nebraska",
    4688   "NH" => "New Hampshire",
    4689   "NJ" => "New Jersey",
    4690   "NM" => "New Mexico",
    4691   "NV" => "Nevada",
    4692   "NY" => "New York",
    4693   "OH" => "Ohio",
    4694   "OK" => "Oklahoma",
    4695   "OR" => "Oregon",
    4696   "PA" => "Pennsylvania",
    4697   "PR" => "Puerto Rico",
    4698   "PW" => "Palau",
    4699   "RI" => "Rhode Island",
    4700   "SC" => "South Carolina",
    4701   "SD" => "South Dakota",
    4702   "TN" => "Tennessee",
    4703   "TX" => "Texas",
    4704   "UT" => "Utah",
    4705   "VA" => "Virginia",
    4706   "VI" => "Virgin Islands",
    4707   "VT" => "Vermont",
    4708   "WA" => "Washington",
    4709   "WI" => "Wisconsin",
    4710   "WV" => "West Virginia",
    4711   "WY" => "Wyoming"),
    4712 "UY" => array(
    4713   "01" => "Artigas",
    4714   "02" => "Canelones",
    4715   "03" => "Cerro Largo",
    4716   "04" => "Colonia",
    4717   "05" => "Durazno",
    4718   "06" => "Flores",
    4719   "07" => "Florida",
    4720   "08" => "Lavalleja",
    4721   "09" => "Maldonado",
    4722   "10" => "Montevideo",
    4723   "11" => "Paysandu",
    4724   "12" => "Rio Negro",
    4725   "13" => "Rivera",
    4726   "14" => "Rocha",
    4727   "15" => "Salto",
    4728   "16" => "San Jose",
    4729   "17" => "Soriano",
    4730   "18" => "Tacuarembo",
    4731   "19" => "Treinta y Tres"),
    4732 "UZ" => array(
    4733   "01" => "Andijon",
    4734   "02" => "Bukhoro",
    4735   "03" => "Farghona",
    4736   "04" => "Jizzakh",
    4737   "05" => "Khorazm",
    4738   "06" => "Namangan",
    4739   "07" => "Nawoiy",
    4740   "08" => "Qashqadaryo",
    4741   "09" => "Qoraqalpoghiston",
    4742   "10" => "Samarqand",
    4743   "11" => "Sirdaryo",
    4744   "12" => "Surkhondaryo",
    4745   "13" => "Toshkent",
    4746   "14" => "Toshkent"),
    4747 "VC" => array(
    4748   "01" => "Charlotte",
    4749   "02" => "Saint Andrew",
    4750   "03" => "Saint David",
    4751   "04" => "Saint George",
    4752   "05" => "Saint Patrick",
    4753   "06" => "Grenadines"),
    4754 "VE" => array(
    4755   "01" => "Amazonas",
    4756   "02" => "Anzoategui",
    4757   "03" => "Apure",
    4758   "04" => "Aragua",
    4759   "05" => "Barinas",
    4760   "06" => "Bolivar",
    4761   "07" => "Carabobo",
    4762   "08" => "Cojedes",
    4763   "09" => "Delta Amacuro",
    4764   "11" => "Falcon",
    4765   "12" => "Guarico",
    4766   "13" => "Lara",
    4767   "14" => "Merida",
    4768   "15" => "Miranda",
    4769   "16" => "Monagas",
    4770   "17" => "Nueva Esparta",
    4771   "18" => "Portuguesa",
    4772   "19" => "Sucre",
    4773   "20" => "Tachira",
    4774   "21" => "Trujillo",
    4775   "22" => "Yaracuy",
    4776   "23" => "Zulia",
    4777   "24" => "Dependencias Federales",
    4778   "25" => "Distrito Federal",
    4779   "26" => "Vargas"),
    4780 "VN" => array(
    4781   "01" => "An Giang",
    4782   "02" => "Bac Thai",
    4783   "03" => "Ben Tre",
    4784   "04" => "Binh Tri Thien",
    4785   "05" => "Cao Bang",
    4786   "07" => "Dac Lac",
    4787   "09" => "Dong Thap",
    4788   "11" => "Ha Bac",
    4789   "12" => "Hai Hung",
    4790   "13" => "Hai Phong",
    4791   "14" => "Ha Nam Ninh",
    4792   "16" => "Ha Son Binh",
    4793   "17" => "Ha Tuyen",
    4794   "19" => "Hoang Lien Son",
    4795   "20" => "Ho Chi Minh",
    4796   "21" => "Kien Giang",
    4797   "22" => "Lai Chau",
    4798   "23" => "Lam Dong",
    4799   "24" => "Long An",
    4800   "25" => "Minh Hai",
    4801   "26" => "Nghe Tinh",
    4802   "27" => "Nghia Binh",
    4803   "28" => "Phu Khanh",
    4804   "29" => "Quang Nam-Da Nang",
    4805   "30" => "Quang Ninh",
    4806   "31" => "Song Be",
    4807   "32" => "Son La",
    4808   "33" => "Tay Ninh",
    4809   "34" => "Thanh Hoa",
    4810   "35" => "Thai Binh",
    4811   "36" => "Thuan Hai",
    4812   "37" => "Tien Giang",
    4813   "38" => "Vinh Phu",
    4814   "39" => "Lang Son",
    4815   "40" => "Dong Nai",
    4816   "43" => "An Giang",
    4817   "44" => "Dac Lac",
    4818   "45" => "Dong Nai",
    4819   "46" => "Dong Thap",
    4820   "47" => "Kien Giang",
    4821   "48" => "Minh Hai",
    4822   "49" => "Song Be",
    4823   "50" => "Vinh Phu",
    4824   "51" => "Ha Noi",
    4825   "52" => "Ho Chi Minh",
    4826   "53" => "Ba Ria-Vung Tau",
    4827   "54" => "Binh Dinh",
    4828   "55" => "Binh Thuan",
    4829   "56" => "Can Tho",
    4830   "57" => "Gia Lai",
    4831   "58" => "Ha Giang",
    4832   "59" => "Ha Tay",
    4833   "60" => "Ha Tinh",
    4834   "61" => "Hoa Binh",
    4835   "62" => "Khanh Hoa",
    4836   "63" => "Kon Tum",
    4837   "64" => "Quang Tri",
    4838   "65" => "Nam Ha",
    4839   "66" => "Nghe An",
    4840   "67" => "Ninh Binh",
    4841   "68" => "Ninh Thuan",
    4842   "69" => "Phu Yen",
    4843   "70" => "Quang Binh",
    4844   "71" => "Quang Ngai",
    4845   "72" => "Quang Tri",
    4846   "73" => "Soc Trang",
    4847   "74" => "Thua Thien",
    4848   "75" => "Tra Vinh",
    4849   "76" => "Tuyen Quang",
    4850   "77" => "Vinh Long",
    4851   "78" => "Da Nang",
    4852   "79" => "Hai Duong",
    4853   "80" => "Ha Nam",
    4854   "81" => "Hung Yen",
    4855   "82" => "Nam Dinh",
    4856   "83" => "Phu Tho",
    4857   "84" => "Quang Nam",
    4858   "85" => "Thai Nguyen",
    4859   "87" => "Can Tho",
    4860   "88" => "Dak Lak",
    4861   "89" => "Lai Chau",
    4862   "90" => "Lao Cai",
    4863   "91" => "Dak Nong",
    4864   "92" => "Dien Bien",
    4865   "93" => "Hau Giang"),
    4866 "VU" => array(
    4867   "05" => "Ambrym",
    4868   "06" => "Aoba",
    4869   "07" => "Torba",
    4870   "08" => "Efate",
    4871   "09" => "Epi",
    4872   "10" => "Malakula",
    4873   "11" => "Paama",
    4874   "12" => "Pentecote",
    4875   "13" => "Sanma",
    4876   "14" => "Shepherd",
    4877   "15" => "Tafea",
    4878   "16" => "Malampa",
    4879   "17" => "Penama",
    4880   "18" => "Shefa"),
    4881 "WS" => array(
    4882   "02" => "Aiga-i-le-Tai",
    4883   "03" => "Atua",
    4884   "04" => "Fa",
    4885   "05" => "Gaga",
    4886   "06" => "Va",
    4887   "07" => "Gagaifomauga",
    4888   "08" => "Palauli",
    4889   "09" => "Satupa",
    4890   "10" => "Tuamasaga",
    4891   "11" => "Vaisigano"),
    4892 "YE" => array(
    4893   "01" => "Abyan",
    4894   "02" => "Adan",
    4895   "03" => "Al Mahrah",
    4896   "04" => "Hadramawt",
    4897   "05" => "Shabwah",
    4898   "08" => "Al Hudaydah",
    4899   "10" => "Al Mahwit",
    4900   "11" => "Dhamar",
    4901   "14" => "Ma'rib",
    4902   "15" => "Sa",
    4903   "16" => "San",
    4904   "20" => "Al Bayda'",
    4905   "21" => "Al Jawf",
    4906   "22" => "Hajjah",
    4907   "23" => "Ibb",
    4908   "24" => "Lahij",
    4909   "25" => "Ta"),
    4910 "ZA" => array(
    4911   "02" => "KwaZulu-Natal",
    4912   "03" => "Free State",
    4913   "05" => "Eastern Cape",
    4914   "06" => "Gauteng",
    4915   "07" => "Mpumalanga",
    4916   "08" => "Northern Cape",
    4917   "09" => "Limpopo",
    4918   "10" => "North-West",
    4919   "11" => "Western Cape"),
    4920 "ZM" => array(
    4921   "01" => "Western",
    4922   "02" => "Central",
    4923   "03" => "Eastern",
    4924   "04" => "Luapula",
    4925   "05" => "Northern",
    4926   "06" => "North-Western",
    4927   "07" => "Southern",
    4928   "08" => "Copperbelt",
    4929   "09" => "Lusaka"),
    4930 "ZW" => array(
    4931   "01" => "Manicaland",
    4932   "02" => "Midlands",
    4933   "03" => "Mashonaland Central",
    4934   "04" => "Mashonaland East",
    4935   "05" => "Mashonaland West",
    4936   "06" => "Matabeleland North",
    4937   "07" => "Matabeleland South",
    4938   "08" => "Masvingo",
    4939   "09" => "Bulawayo",
    4940   "10" => "Harare")
    4941 );
    4942 
    4943 // mchallis end geoipregionvars.php --------------------------------------------
    4944 
    4945 
    4946 class geoiprecord_VMWO {
    4947   var $country_code;
    4948   var $country_code3;
    4949   var $country_name;
    4950   var $region;
    4951   var $city;
    4952   var $postal_code;
    4953   var $latitude;
    4954   var $longitude;
    4955   var $area_code;
    4956   var $dma_code;
    4957 }
    4958 
    4959 class geoipdnsrecord_VMWO {
    4960   var $country_code;
    4961   var $country_code3;
    4962   var $country_name;
    4963   var $region;
    4964   var $regionname;
    4965   var $city;
    4966   var $postal_code;
    4967   var $latitude;
    4968   var $longitude;
    4969   var $areacode;
    4970   var $dmacode;
    4971   var $isp;
    4972   var $org;
    4973 }
    4974 
    4975 function getrecordwithdnsservice_VMWO($str){
    4976   $record = new geoipdnsrecord_VMWO;
    4977   $keyvalue = explode(";",$str);
    4978   foreach ($keyvalue as $keyvalue2){
    4979     list($key,$value) = explode("=",$keyvalue2);
    4980     if ($key == "co"){
    4981       $record->country_code = $value;
    4982     }
    4983     if ($key == "ci"){
    4984       $record->city = $value;
    4985     }
    4986     if ($key == "re"){
    4987       $record->region = $value;
    4988     }
    4989     if ($key == "ac"){
    4990       $record->areacode = $value;
    4991     }
    4992     if ($key == "dm"){
    4993       $record->dmacode = $value;
    4994     }
    4995     if ($key == "is"){
    4996       $record->isp = $value;
    4997     }
    4998     if ($key == "or"){
    4999       $record->org = $value;
    5000     }
    5001     if ($key == "zi"){
    5002       $record->postal_code = $value;
    5003     }
    5004     if ($key == "la"){
    5005       $record->latitude = $value;
    5006     }
    5007     if ($key == "lo"){
    5008       $record->longitude = $value;
    5009     }
    5010   }
    5011   $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code];
    5012   $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number];
    5013   $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number];
    5014   if ($record->region != "") {
    5015     if (($record->country_code == "US") || ($record->country_code == "CA")){
    5016       $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region];
    5017     } else {
    5018       $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region];
    5019     }
    5020   }
    5021   return $record;
    5022 }
    5023 
    5024 function _get_record_VMWO($gi,$ipnum){
    5025   $seek_country = _geoip_seek_country_VMWO($gi,$ipnum);
    5026   if ($seek_country == $gi->databaseSegments) {
    5027     return NULL;
    5028   }
    5029   $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments;
    5030 
    5031   if ($gi->flags & VMWO_GEOIP_MEMORY_CACHE) {
    5032     $record_buf = substr($gi->memory_buffer,$record_pointer,VMWO_FULL_RECORD_LENGTH);
    5033   } elseif ($gi->flags & VMWO_GEOIP_SHARED_MEMORY){
    5034     $record_buf = @shmop_read($gi->shmid,$record_pointer,VMWO_FULL_RECORD_LENGTH);
    5035   } else {
    5036     fseek($gi->filehandle, $record_pointer, SEEK_SET);
    5037     $record_buf = fread($gi->filehandle,VMWO_FULL_RECORD_LENGTH);
    5038   }
    5039   $record = new geoiprecord_VMWO;
    5040   $record_buf_pos = 0;
    5041   $char = ord(substr($record_buf,$record_buf_pos,1));
    5042     $record->country_code = $gi->GEOIP_COUNTRY_CODES[$char];
    5043     $record->country_code3 = $gi->GEOIP_COUNTRY_CODES3[$char];
    5044     $record->country_name = $gi->GEOIP_COUNTRY_NAMES[$char];
    5045   $record_buf_pos++;
    5046   $str_length = 0;
    5047     // Get region
    5048   $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5049   while ($char != 0){
    5050     $str_length++;
    5051     $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5052   }
    5053   if ($str_length > 0){
    5054     $record->region = substr($record_buf,$record_buf_pos,$str_length);
    5055   }
    5056   $record_buf_pos += $str_length + 1;
    5057   $str_length = 0;
    5058     // Get city
    5059   $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5060   while ($char != 0){
    5061     $str_length++;
    5062     $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5063   }
    5064   if ($str_length > 0){
    5065     $record->city = substr($record_buf,$record_buf_pos,$str_length);
    5066   }
    5067   $record_buf_pos += $str_length + 1;
    5068   $str_length = 0;
    5069     // Get postal code
    5070   $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5071   while ($char != 0){
    5072     $str_length++;
    5073     $char = ord(substr($record_buf,$record_buf_pos+$str_length,1));
    5074   }
    5075   if ($str_length > 0){
    5076     $record->postal_code = substr($record_buf,$record_buf_pos,$str_length);
    5077   }
    5078   $record_buf_pos += $str_length + 1;
    5079   $str_length = 0;
    5080     // Get latitude and longitude
    5081   $latitude = 0;
    5082   $longitude = 0;
    5083   for ($j = 0;$j < 3; ++$j){
    5084     $char = ord(substr($record_buf,$record_buf_pos++,1));
    5085     $latitude += ($char << ($j * 8));
    5086   }
    5087   $record->latitude = ($latitude/10000) - 180;
    5088   for ($j = 0;$j < 3; ++$j){
    5089     $char = ord(substr($record_buf,$record_buf_pos++,1));
    5090     $longitude += ($char << ($j * 8));
    5091   }
    5092   $record->longitude = ($longitude/10000) - 180;
    5093   if (VMWO_GEOIP_CITY_EDITION_REV1 == $gi->databaseType){
    5094     $dmaarea_combo = 0;
    5095     if ($record->country_code == "US"){
    5096       for ($j = 0;$j < 3;++$j){
    5097         $char = ord(substr($record_buf,$record_buf_pos++,1));
    5098         $dmaarea_combo += ($char << ($j * 8));
    5099       }
    5100       $record->dma_code = floor($dmaarea_combo/1000);
    5101       $record->area_code = $dmaarea_combo%1000;
    5102     }
    5103   }
    5104   return $record;
    5105 }
    5106 
    5107 function GeoIP_record_by_addr_VMWO($gi,$addr){
    5108   if ($addr == NULL){
    5109      return 0;
    5110   }
    5111   $ipnum = ip2long($addr);
    5112   return _get_record_VMWO($gi, $ipnum);
    5113 }
    5114 
    5115714?>
  • wpgeocode/trunk/readme.txt

    r734011 r734683  
    8888== Change Log ==
    8989
     90= 1.0.11 =
     91* Updated GeoIP PHP Api Version
     92
    9093= 1.0.10 =
    9194* Updated Geocity database
     
    154157= 1.0.10 =
    155158* Updated Geocity database
     159
     160= 1.0.11 =
     161* Updated GeoIP PHP Api Version
  • wpgeocode/trunk/wpgeocode.php

    r734011 r734683  
    55Tags: geocode, geotagging, geolocation, geotags, latitude, longitude, city, state, geomarketing, geolocation marketing
    66Description: Use WPGeocode to customize the content of your blog based on the location of your readers.
    7 Version: 1.0.10
     7Version: 1.0.11
    88Author: Michael Lynn
    99Author URI: http://www.mlynn.org/
     
    965965    require_once($wpgc_path.'includes/geoip.php');
    966966
    967     $gi = geoip_open_VMWO($wpgc_path.'database/GeoLiteCity.dat', VMWO_GEOIP_STANDARD);
    968 
    969     $record = geoip_record_by_addr_VMWO($gi, "$user_ip");
    970     geoip_close_VMWO($gi);
     967    $gi = geoip_open($wpgc_path.'database/GeoLiteCity.dat', GEOIP_STANDARD);
     968
     969    $record = geoip_record_by_addr($gi, "$user_ip");
     970    geoip_close($gi);
    971971
    972972    $location_info = array();
Note: See TracChangeset for help on using the changeset viewer.