diff --git a/libs/MaxMindGeoIP/geoip.inc b/libs/MaxMindGeoIP/geoip.inc index 516eb2fc594..739a4ef9876 100755 --- a/libs/MaxMindGeoIP/geoip.inc +++ b/libs/MaxMindGeoIP/geoip.inc @@ -29,34 +29,44 @@ define("GEOIP_SHARED_MEMORY", 2); define("STRUCTURE_INFO_MAX_SIZE", 20); define("DATABASE_INFO_MAX_SIZE", 100); if (!defined('GEOIP_COUNTRY_EDITION')) { - define("GEOIP_COUNTRY_EDITION", 106); + // GeoIP PECL installed? + define("GEOIP_COUNTRY_EDITION", 1); } -if (!defined("GEOIP_PROXY_EDITION")) { - define("GEOIP_PROXY_EDITION", 8); +if (!defined('GEOIP_PROXY_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_PROXY_EDITION", 8); } -if (!defined("GEOIP_ASNUM_EDITION")) { - define("GEOIP_ASNUM_EDITION", 9); +if (!defined('GEOIP_ASNUM_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_ASNUM_EDITION", 9); } -if (!defined("GEOIP_NETSPEED_EDITION")) { - define("GEOIP_NETSPEED_EDITION", 10); +if (!defined('GEOIP_NETSPEED_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_NETSPEED_EDITION", 10); } -if (!defined("GEOIP_REGION_EDITION_REV0")) { - define("GEOIP_REGION_EDITION_REV0", 112); +if (!defined('GEOIP_REGION_EDITION_REV0')) { + // GeoIP PECL installed? + define("GEOIP_REGION_EDITION_REV0", 7); } -if (!defined("GEOIP_REGION_EDITION_REV1")) { - define("GEOIP_REGION_EDITION_REV1", 3); +if (!defined('GEOIP_REGION_EDITION_REV1')) { + // GeoIP PECL installed? + define("GEOIP_REGION_EDITION_REV1", 3); } -if (!defined("GEOIP_CITY_EDITION_REV0")) { - define("GEOIP_CITY_EDITION_REV0", 111); +if (!defined('GEOIP_CITY_EDITION_REV0')) { + // GeoIP PECL installed? + define("GEOIP_CITY_EDITION_REV0", 6); } -if (!defined("GEOIP_CITY_EDITION_REV1")) { - define("GEOIP_CITY_EDITION_REV1", 2); +if (!defined('GEOIP_CITY_EDITION_REV1')) { + // GeoIP PECL installed? + define("GEOIP_CITY_EDITION_REV1", 2); } -if (!defined("GEOIP_ORG_EDITION")) { - define("GEOIP_ORG_EDITION", 110); +if (!defined('GEOIP_ORG_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_ORG_EDITION", 5); } -if (!defined("GEOIP_ISP_EDITION")) { - define("GEOIP_ISP_EDITION", 4); +if (!defined('GEOIP_ISP_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_ISP_EDITION", 4); } define("SEGMENT_RECORD_LENGTH", 3); define("STANDARD_RECORD_LENGTH", 3); @@ -68,682 +78,1875 @@ define("US_OFFSET", 1); define("CANADA_OFFSET", 677); define("WORLD_OFFSET", 1353); define("FIPS_RANGE", 360); -if (!defined("GEOIP_UNKNOWN_SPEED")) { - define("GEOIP_UNKNOWN_SPEED", 0); +if (!defined('GEOIP_UNKNOWN_SPEED')) { + // GeoIP PECL installed? + define("GEOIP_UNKNOWN_SPEED", 0); } -if (!defined("GEOIP_DIALUP_SPEED")) { - define("GEOIP_DIALUP_SPEED", 1); +if (!defined('GEOIP_DIALUP_SPEED')) { + // GeoIP PECL installed? + define("GEOIP_DIALUP_SPEED", 1); } -if (!defined("GEOIP_CABLEDSL_SPEED")) { - define("GEOIP_CABLEDSL_SPEED", 2); +if (!defined('GEOIP_CABLEDSL_SPEED')) { + // GeoIP PECL installed? + define("GEOIP_CABLEDSL_SPEED", 2); } -if (!defined("GEOIP_CORPORATE_SPEED")) { - define("GEOIP_CORPORATE_SPEED", 3); +if (!defined('GEOIP_CORPORATE_SPEED')) { + // GeoIP PECL installed? + define("GEOIP_CORPORATE_SPEED", 3); } -if (!defined("GEOIP_DOMAIN_EDITION")) { - define("GEOIP_DOMAIN_EDITION", 11); -} -if (!defined("GEOIP_COUNTRY_EDITION_V6")) { - define("GEOIP_COUNTRY_EDITION_V6", 12); +if (!defined('GEOIP_DOMAIN_EDITION')) { + // GeoIP PECL installed? + define("GEOIP_DOMAIN_EDITION", 11); } +//if (!defined('GEOIP_COUNTRY_EDITION_V6')) { + // GeoIP PECL installed? + define("GEOIP_COUNTRY_EDITION_V6", 12); +//} define("GEOIP_LOCATIONA_EDITION", 13); define("GEOIP_ACCURACYRADIUS_EDITION", 14); define("GEOIP_CITYCOMBINED_EDITION", 15); define("GEOIP_CITY_EDITION_REV1_V6", 30); -define("GEOIP_CITY_EDITION_REV0_V6",31); -define("GEOIP_NETSPEED_EDITION_REV1",32); -define("GEOIP_NETSPEED_EDITION_REV1_V6",33); -define("GEOIP_USERTYPE_EDITION",28); -define("GEOIP_USERTYPE_EDITION_V6",29); -define("GEOIP_ASNUM_EDITION_V6",21); -define("GEOIP_ISP_EDITION_V6",22); -define("GEOIP_ORG_EDITION_V6",23); -define("GEOIP_DOMAIN_EDITION_V6",24); - -define("CITYCOMBINED_FIXED_RECORD", 7 ); - -class GeoIP { - var $flags; - var $filehandle; - var $memory_buffer; - var $databaseType; - var $databaseSegments; - var $record_length; - var $shmid; - var $GEOIP_COUNTRY_CODE_TO_NUMBER = array( -"" => 0, "AP" => 1, "EU" => 2, "AD" => 3, "AE" => 4, "AF" => 5, -"AG" => 6, "AI" => 7, "AL" => 8, "AM" => 9, "CW" => 10, "AO" => 11, -"AQ" => 12, "AR" => 13, "AS" => 14, "AT" => 15, "AU" => 16, "AW" => 17, -"AZ" => 18, "BA" => 19, "BB" => 20, "BD" => 21, "BE" => 22, "BF" => 23, -"BG" => 24, "BH" => 25, "BI" => 26, "BJ" => 27, "BM" => 28, "BN" => 29, -"BO" => 30, "BR" => 31, "BS" => 32, "BT" => 33, "BV" => 34, "BW" => 35, -"BY" => 36, "BZ" => 37, "CA" => 38, "CC" => 39, "CD" => 40, "CF" => 41, -"CG" => 42, "CH" => 43, "CI" => 44, "CK" => 45, "CL" => 46, "CM" => 47, -"CN" => 48, "CO" => 49, "CR" => 50, "CU" => 51, "CV" => 52, "CX" => 53, -"CY" => 54, "CZ" => 55, "DE" => 56, "DJ" => 57, "DK" => 58, "DM" => 59, -"DO" => 60, "DZ" => 61, "EC" => 62, "EE" => 63, "EG" => 64, "EH" => 65, -"ER" => 66, "ES" => 67, "ET" => 68, "FI" => 69, "FJ" => 70, "FK" => 71, -"FM" => 72, "FO" => 73, "FR" => 74, "SX" => 75, "GA" => 76, "GB" => 77, -"GD" => 78, "GE" => 79, "GF" => 80, "GH" => 81, "GI" => 82, "GL" => 83, -"GM" => 84, "GN" => 85, "GP" => 86, "GQ" => 87, "GR" => 88, "GS" => 89, -"GT" => 90, "GU" => 91, "GW" => 92, "GY" => 93, "HK" => 94, "HM" => 95, -"HN" => 96, "HR" => 97, "HT" => 98, "HU" => 99, "ID" => 100, "IE" => 101, -"IL" => 102, "IN" => 103, "IO" => 104, "IQ" => 105, "IR" => 106, "IS" => 107, -"IT" => 108, "JM" => 109, "JO" => 110, "JP" => 111, "KE" => 112, "KG" => 113, -"KH" => 114, "KI" => 115, "KM" => 116, "KN" => 117, "KP" => 118, "KR" => 119, -"KW" => 120, "KY" => 121, "KZ" => 122, "LA" => 123, "LB" => 124, "LC" => 125, -"LI" => 126, "LK" => 127, "LR" => 128, "LS" => 129, "LT" => 130, "LU" => 131, -"LV" => 132, "LY" => 133, "MA" => 134, "MC" => 135, "MD" => 136, "MG" => 137, -"MH" => 138, "MK" => 139, "ML" => 140, "MM" => 141, "MN" => 142, "MO" => 143, -"MP" => 144, "MQ" => 145, "MR" => 146, "MS" => 147, "MT" => 148, "MU" => 149, -"MV" => 150, "MW" => 151, "MX" => 152, "MY" => 153, "MZ" => 154, "NA" => 155, -"NC" => 156, "NE" => 157, "NF" => 158, "NG" => 159, "NI" => 160, "NL" => 161, -"NO" => 162, "NP" => 163, "NR" => 164, "NU" => 165, "NZ" => 166, "OM" => 167, -"PA" => 168, "PE" => 169, "PF" => 170, "PG" => 171, "PH" => 172, "PK" => 173, -"PL" => 174, "PM" => 175, "PN" => 176, "PR" => 177, "PS" => 178, "PT" => 179, -"PW" => 180, "PY" => 181, "QA" => 182, "RE" => 183, "RO" => 184, "RU" => 185, -"RW" => 186, "SA" => 187, "SB" => 188, "SC" => 189, "SD" => 190, "SE" => 191, -"SG" => 192, "SH" => 193, "SI" => 194, "SJ" => 195, "SK" => 196, "SL" => 197, -"SM" => 198, "SN" => 199, "SO" => 200, "SR" => 201, "ST" => 202, "SV" => 203, -"SY" => 204, "SZ" => 205, "TC" => 206, "TD" => 207, "TF" => 208, "TG" => 209, -"TH" => 210, "TJ" => 211, "TK" => 212, "TM" => 213, "TN" => 214, "TO" => 215, -"TL" => 216, "TR" => 217, "TT" => 218, "TV" => 219, "TW" => 220, "TZ" => 221, -"UA" => 222, "UG" => 223, "UM" => 224, "US" => 225, "UY" => 226, "UZ" => 227, -"VA" => 228, "VC" => 229, "VE" => 230, "VG" => 231, "VI" => 232, "VN" => 233, -"VU" => 234, "WF" => 235, "WS" => 236, "YE" => 237, "YT" => 238, "RS" => 239, -"ZA" => 240, "ZM" => 241, "ME" => 242, "ZW" => 243, "A1" => 244, "A2" => 245, -"O1" => 246, "AX" => 247, "GG" => 248, "IM" => 249, "JE" => 250, "BL" => 251, -"MF" => 252, "BQ" => 253, -); - var $GEOIP_COUNTRY_CODES = array( - "","AP","EU","AD","AE","AF","AG","AI","AL","AM","CW", - "AO","AQ","AR","AS","AT","AU","AW","AZ","BA","BB", - "BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO", - "BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD", - "CF","CG","CH","CI","CK","CL","CM","CN","CO","CR", - "CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO", - "DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ", - "FK","FM","FO","FR","SX","GA","GB","GD","GE","GF", - "GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT", - "GU","GW","GY","HK","HM","HN","HR","HT","HU","ID", - "IE","IL","IN","IO","IQ","IR","IS","IT","JM","JO", - "JP","KE","KG","KH","KI","KM","KN","KP","KR","KW", - "KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT", - "LU","LV","LY","MA","MC","MD","MG","MH","MK","ML", - "MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV", - "MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI", - "NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF", - "PG","PH","PK","PL","PM","PN","PR","PS","PT","PW", - "PY","QA","RE","RO","RU","RW","SA","SB","SC","SD", - "SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO", - "SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH", - "TJ","TK","TM","TN","TO","TL","TR","TT","TV","TW", - "TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE", - "VG","VI","VN","VU","WF","WS","YE","YT","RS","ZA", - "ZM","ME","ZW","A1","A2","O1","AX","GG","IM","JE", - "BL","MF", "BQ"); - var $GEOIP_COUNTRY_CODES3 = array( - "","AP","EU","AND","ARE","AFG","ATG","AIA","ALB","ARM","CUW", - "AGO","ATA","ARG","ASM","AUT","AUS","ABW","AZE","BIH","BRB", - "BGD","BEL","BFA","BGR","BHR","BDI","BEN","BMU","BRN","BOL", - "BRA","BHS","BTN","BVT","BWA","BLR","BLZ","CAN","CCK","COD", - "CAF","COG","CHE","CIV","COK","CHL","CMR","CHN","COL","CRI", - "CUB","CPV","CXR","CYP","CZE","DEU","DJI","DNK","DMA","DOM", - "DZA","ECU","EST","EGY","ESH","ERI","ESP","ETH","FIN","FJI", - "FLK","FSM","FRO","FRA","SXM","GAB","GBR","GRD","GEO","GUF", - "GHA","GIB","GRL","GMB","GIN","GLP","GNQ","GRC","SGS","GTM", - "GUM","GNB","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN", - "IRL","ISR","IND","IOT","IRQ","IRN","ISL","ITA","JAM","JOR", - "JPN","KEN","KGZ","KHM","KIR","COM","KNA","PRK","KOR","KWT", - "CYM","KAZ","LAO","LBN","LCA","LIE","LKA","LBR","LSO","LTU", - "LUX","LVA","LBY","MAR","MCO","MDA","MDG","MHL","MKD","MLI", - "MMR","MNG","MAC","MNP","MTQ","MRT","MSR","MLT","MUS","MDV", - "MWI","MEX","MYS","MOZ","NAM","NCL","NER","NFK","NGA","NIC", - "NLD","NOR","NPL","NRU","NIU","NZL","OMN","PAN","PER","PYF", - "PNG","PHL","PAK","POL","SPM","PCN","PRI","PSE","PRT","PLW", - "PRY","QAT","REU","ROU","RUS","RWA","SAU","SLB","SYC","SDN", - "SWE","SGP","SHN","SVN","SJM","SVK","SLE","SMR","SEN","SOM", - "SUR","STP","SLV","SYR","SWZ","TCA","TCD","ATF","TGO","THA", - "TJK","TKL","TKM","TUN","TON","TLS","TUR","TTO","TUV","TWN", - "TZA","UKR","UGA","UMI","USA","URY","UZB","VAT","VCT","VEN", - "VGB","VIR","VNM","VUT","WLF","WSM","YEM","MYT","SRB","ZAF", - "ZMB","MNE","ZWE","A1","A2","O1","ALA","GGY","IMN","JEY", - "BLM","MAF", "BES" - ); - var $GEOIP_COUNTRY_NAMES = array( - "","Asia/Pacific Region","Europe","Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Curacao", - "Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Azerbaijan","Bosnia and Herzegovina","Barbados", - "Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Bermuda","Brunei Darussalam","Bolivia", - "Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands","Congo, The Democratic Republic of the", - "Central African Republic","Congo","Switzerland","Cote D'Ivoire","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica", - "Cuba","Cape Verde","Christmas Island","Cyprus","Czech Republic","Germany","Djibouti","Denmark","Dominica","Dominican Republic", - "Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji", - "Falkland Islands (Malvinas)","Micronesia, Federated States of","Faroe Islands","France","Sint Maarten (Dutch part)","Gabon","United Kingdom","Grenada","Georgia","French Guiana", - "Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala", - "Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia", - "Ireland","Israel","India","British Indian Ocean Territory","Iraq","Iran, Islamic Republic of","Iceland","Italy","Jamaica","Jordan", - "Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait", - "Cayman Islands","Kazakhstan","Lao People's Democratic Republic","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania", - "Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova, Republic of","Madagascar","Marshall Islands","Macedonia","Mali", - "Myanmar","Mongolia","Macau","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives", - "Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua", - "Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia", - "Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestinian Territory","Portugal","Palau", - "Paraguay","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan", - "Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname", - "Sao Tome and Principe","El Salvador","Syrian Arab Republic","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand", - "Tajikistan","Tokelau","Turkmenistan","Tunisia","Tonga","Timor-Leste","Turkey","Trinidad and Tobago","Tuvalu","Taiwan", - "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", - "Virgin Islands, British","Virgin Islands, U.S.","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","Serbia","South Africa", - "Zambia","Montenegro","Zimbabwe","Anonymous Proxy","Satellite Provider","Other","Aland Islands","Guernsey","Isle of Man","Jersey", - "Saint Barthelemy","Saint Martin", "Bonaire, Saint Eustatius and Saba" -); - - var $GEOIP_CONTINENT_CODES = array( - "--", "AS","EU","EU","AS","AS","NA","NA","EU","AS","NA", - "AF","AN","SA","OC","EU","OC","NA","AS","EU","NA", - "AS","EU","AF","EU","AS","AF","AF","NA","AS","SA", - "SA","NA","AS","AN","AF","EU","NA","NA","AS","AF", - "AF","AF","EU","AF","OC","SA","AF","AS","SA","NA", - "NA","AF","AS","AS","EU","EU","AF","EU","NA","NA", - "AF","SA","EU","AF","AF","AF","EU","AF","EU","OC", - "SA","OC","EU","EU","NA","AF","EU","NA","AS","SA", - "AF","EU","NA","AF","AF","NA","AF","EU","AN","NA", - "OC","AF","SA","AS","AN","NA","EU","NA","EU","AS", - "EU","AS","AS","AS","AS","AS","EU","EU","NA","AS", - "AS","AF","AS","AS","OC","AF","NA","AS","AS","AS", - "NA","AS","AS","AS","NA","EU","AS","AF","AF","EU", - "EU","EU","AF","AF","EU","EU","AF","OC","EU","AF", - "AS","AS","AS","OC","NA","AF","NA","EU","AF","AS", - "AF","NA","AS","AF","AF","OC","AF","OC","AF","NA", - "EU","EU","AS","OC","OC","OC","AS","NA","SA","OC", - "OC","AS","AS","EU","NA","OC","NA","AS","EU","OC", - "SA","AS","AF","EU","EU","AF","AS","OC","AF","AF", - "EU","AS","AF","EU","EU","EU","AF","EU","AF","AF", - "SA","AF","NA","AS","AF","NA","AF","AN","AF","AS", - "AS","OC","AS","AF","OC","AS","EU","NA","OC","AS", - "AF","EU","AF","OC","NA","SA","AS","EU","NA","SA", - "NA","NA","AS","OC","OC","OC","AS","AF","EU","AF", - "AF","EU","AF","--","--","--","EU","EU","EU","EU", - "NA","NA","NA" -); - -} -function geoip_load_shared_mem ($file) { - - $fp = fopen($file, "rb"); - if (!$fp) { - print "error opening $file: $php_errormsg\n"; - exit; - } - $s_array = fstat($fp); - $size = $s_array['size']; - if ($shmid = @shmop_open (GEOIP_SHM_KEY, "w", 0, 0)) { - shmop_delete ($shmid); - shmop_close ($shmid); - } - $shmid = shmop_open (GEOIP_SHM_KEY, "c", 0644, $size); - shmop_write ($shmid, fread($fp, $size), 0); - shmop_close ($shmid); -} - -function _setup_segments($gi){ - $gi->databaseType = GEOIP_COUNTRY_EDITION; - $gi->record_length = STANDARD_RECORD_LENGTH; - if ($gi->flags & GEOIP_SHARED_MEMORY) { - $offset = @shmop_size ($gi->shmid) - 3; - for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) { - $delim = @shmop_read ($gi->shmid, $offset, 3); - $offset += 3; - if ($delim == (chr(255).chr(255).chr(255))) { - $gi->databaseType = ord(@shmop_read ($gi->shmid, $offset, 1)); - $offset++; - - if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){ - $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; - } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){ - $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; - } else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0)|| - ($gi->databaseType == GEOIP_CITY_EDITION_REV1) +define("GEOIP_CITY_EDITION_REV0_V6", 31); +if (!defined('GEOIP_NETSPEED_EDITION_REV1')) { + // GeoIP PECL installed? + define("GEOIP_NETSPEED_EDITION_REV1", 32); +} +define("GEOIP_NETSPEED_EDITION_REV1_V6", 33); +define("GEOIP_USERTYPE_EDITION", 28); +define("GEOIP_USERTYPE_EDITION_V6", 29); +define("GEOIP_ASNUM_EDITION_V6", 21); +define("GEOIP_ISP_EDITION_V6", 22); +define("GEOIP_ORG_EDITION_V6", 23); +define("GEOIP_DOMAIN_EDITION_V6", 24); + +define("CITYCOMBINED_FIXED_RECORD", 7); + +class GeoIP +{ + public $flags; + public $filehandle; + public $memory_buffer; + public $databaseType; + public $databaseSegments; + public $record_length; + public $shmid; + public $GEOIP_COUNTRY_CODE_TO_NUMBER = array( + "" => 0, + "AP" => 1, + "EU" => 2, + "AD" => 3, + "AE" => 4, + "AF" => 5, + "AG" => 6, + "AI" => 7, + "AL" => 8, + "AM" => 9, + "CW" => 10, + "AO" => 11, + "AQ" => 12, + "AR" => 13, + "AS" => 14, + "AT" => 15, + "AU" => 16, + "AW" => 17, + "AZ" => 18, + "BA" => 19, + "BB" => 20, + "BD" => 21, + "BE" => 22, + "BF" => 23, + "BG" => 24, + "BH" => 25, + "BI" => 26, + "BJ" => 27, + "BM" => 28, + "BN" => 29, + "BO" => 30, + "BR" => 31, + "BS" => 32, + "BT" => 33, + "BV" => 34, + "BW" => 35, + "BY" => 36, + "BZ" => 37, + "CA" => 38, + "CC" => 39, + "CD" => 40, + "CF" => 41, + "CG" => 42, + "CH" => 43, + "CI" => 44, + "CK" => 45, + "CL" => 46, + "CM" => 47, + "CN" => 48, + "CO" => 49, + "CR" => 50, + "CU" => 51, + "CV" => 52, + "CX" => 53, + "CY" => 54, + "CZ" => 55, + "DE" => 56, + "DJ" => 57, + "DK" => 58, + "DM" => 59, + "DO" => 60, + "DZ" => 61, + "EC" => 62, + "EE" => 63, + "EG" => 64, + "EH" => 65, + "ER" => 66, + "ES" => 67, + "ET" => 68, + "FI" => 69, + "FJ" => 70, + "FK" => 71, + "FM" => 72, + "FO" => 73, + "FR" => 74, + "SX" => 75, + "GA" => 76, + "GB" => 77, + "GD" => 78, + "GE" => 79, + "GF" => 80, + "GH" => 81, + "GI" => 82, + "GL" => 83, + "GM" => 84, + "GN" => 85, + "GP" => 86, + "GQ" => 87, + "GR" => 88, + "GS" => 89, + "GT" => 90, + "GU" => 91, + "GW" => 92, + "GY" => 93, + "HK" => 94, + "HM" => 95, + "HN" => 96, + "HR" => 97, + "HT" => 98, + "HU" => 99, + "ID" => 100, + "IE" => 101, + "IL" => 102, + "IN" => 103, + "IO" => 104, + "IQ" => 105, + "IR" => 106, + "IS" => 107, + "IT" => 108, + "JM" => 109, + "JO" => 110, + "JP" => 111, + "KE" => 112, + "KG" => 113, + "KH" => 114, + "KI" => 115, + "KM" => 116, + "KN" => 117, + "KP" => 118, + "KR" => 119, + "KW" => 120, + "KY" => 121, + "KZ" => 122, + "LA" => 123, + "LB" => 124, + "LC" => 125, + "LI" => 126, + "LK" => 127, + "LR" => 128, + "LS" => 129, + "LT" => 130, + "LU" => 131, + "LV" => 132, + "LY" => 133, + "MA" => 134, + "MC" => 135, + "MD" => 136, + "MG" => 137, + "MH" => 138, + "MK" => 139, + "ML" => 140, + "MM" => 141, + "MN" => 142, + "MO" => 143, + "MP" => 144, + "MQ" => 145, + "MR" => 146, + "MS" => 147, + "MT" => 148, + "MU" => 149, + "MV" => 150, + "MW" => 151, + "MX" => 152, + "MY" => 153, + "MZ" => 154, + "NA" => 155, + "NC" => 156, + "NE" => 157, + "NF" => 158, + "NG" => 159, + "NI" => 160, + "NL" => 161, + "NO" => 162, + "NP" => 163, + "NR" => 164, + "NU" => 165, + "NZ" => 166, + "OM" => 167, + "PA" => 168, + "PE" => 169, + "PF" => 170, + "PG" => 171, + "PH" => 172, + "PK" => 173, + "PL" => 174, + "PM" => 175, + "PN" => 176, + "PR" => 177, + "PS" => 178, + "PT" => 179, + "PW" => 180, + "PY" => 181, + "QA" => 182, + "RE" => 183, + "RO" => 184, + "RU" => 185, + "RW" => 186, + "SA" => 187, + "SB" => 188, + "SC" => 189, + "SD" => 190, + "SE" => 191, + "SG" => 192, + "SH" => 193, + "SI" => 194, + "SJ" => 195, + "SK" => 196, + "SL" => 197, + "SM" => 198, + "SN" => 199, + "SO" => 200, + "SR" => 201, + "ST" => 202, + "SV" => 203, + "SY" => 204, + "SZ" => 205, + "TC" => 206, + "TD" => 207, + "TF" => 208, + "TG" => 209, + "TH" => 210, + "TJ" => 211, + "TK" => 212, + "TM" => 213, + "TN" => 214, + "TO" => 215, + "TL" => 216, + "TR" => 217, + "TT" => 218, + "TV" => 219, + "TW" => 220, + "TZ" => 221, + "UA" => 222, + "UG" => 223, + "UM" => 224, + "US" => 225, + "UY" => 226, + "UZ" => 227, + "VA" => 228, + "VC" => 229, + "VE" => 230, + "VG" => 231, + "VI" => 232, + "VN" => 233, + "VU" => 234, + "WF" => 235, + "WS" => 236, + "YE" => 237, + "YT" => 238, + "RS" => 239, + "ZA" => 240, + "ZM" => 241, + "ME" => 242, + "ZW" => 243, + "A1" => 244, + "A2" => 245, + "O1" => 246, + "AX" => 247, + "GG" => 248, + "IM" => 249, + "JE" => 250, + "BL" => 251, + "MF" => 252, + "BQ" => 253, + "SS" => 254 + ); + + public $GEOIP_COUNTRY_CODES = array( + "", + "AP", + "EU", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "CW", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BM", + "BN", + "BO", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "SX", + "GA", + "GB", + "GD", + "GE", + "GF", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "ST", + "SV", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TM", + "TN", + "TO", + "TL", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "YE", + "YT", + "RS", + "ZA", + "ZM", + "ME", + "ZW", + "A1", + "A2", + "O1", + "AX", + "GG", + "IM", + "JE", + "BL", + "MF", + "BQ", + "SS", + "O1" + ); + + public $GEOIP_COUNTRY_CODES3 = array( + "", + "AP", + "EU", + "AND", + "ARE", + "AFG", + "ATG", + "AIA", + "ALB", + "ARM", + "CUW", + "AGO", + "ATA", + "ARG", + "ASM", + "AUT", + "AUS", + "ABW", + "AZE", + "BIH", + "BRB", + "BGD", + "BEL", + "BFA", + "BGR", + "BHR", + "BDI", + "BEN", + "BMU", + "BRN", + "BOL", + "BRA", + "BHS", + "BTN", + "BVT", + "BWA", + "BLR", + "BLZ", + "CAN", + "CCK", + "COD", + "CAF", + "COG", + "CHE", + "CIV", + "COK", + "CHL", + "CMR", + "CHN", + "COL", + "CRI", + "CUB", + "CPV", + "CXR", + "CYP", + "CZE", + "DEU", + "DJI", + "DNK", + "DMA", + "DOM", + "DZA", + "ECU", + "EST", + "EGY", + "ESH", + "ERI", + "ESP", + "ETH", + "FIN", + "FJI", + "FLK", + "FSM", + "FRO", + "FRA", + "SXM", + "GAB", + "GBR", + "GRD", + "GEO", + "GUF", + "GHA", + "GIB", + "GRL", + "GMB", + "GIN", + "GLP", + "GNQ", + "GRC", + "SGS", + "GTM", + "GUM", + "GNB", + "GUY", + "HKG", + "HMD", + "HND", + "HRV", + "HTI", + "HUN", + "IDN", + "IRL", + "ISR", + "IND", + "IOT", + "IRQ", + "IRN", + "ISL", + "ITA", + "JAM", + "JOR", + "JPN", + "KEN", + "KGZ", + "KHM", + "KIR", + "COM", + "KNA", + "PRK", + "KOR", + "KWT", + "CYM", + "KAZ", + "LAO", + "LBN", + "LCA", + "LIE", + "LKA", + "LBR", + "LSO", + "LTU", + "LUX", + "LVA", + "LBY", + "MAR", + "MCO", + "MDA", + "MDG", + "MHL", + "MKD", + "MLI", + "MMR", + "MNG", + "MAC", + "MNP", + "MTQ", + "MRT", + "MSR", + "MLT", + "MUS", + "MDV", + "MWI", + "MEX", + "MYS", + "MOZ", + "NAM", + "NCL", + "NER", + "NFK", + "NGA", + "NIC", + "NLD", + "NOR", + "NPL", + "NRU", + "NIU", + "NZL", + "OMN", + "PAN", + "PER", + "PYF", + "PNG", + "PHL", + "PAK", + "POL", + "SPM", + "PCN", + "PRI", + "PSE", + "PRT", + "PLW", + "PRY", + "QAT", + "REU", + "ROU", + "RUS", + "RWA", + "SAU", + "SLB", + "SYC", + "SDN", + "SWE", + "SGP", + "SHN", + "SVN", + "SJM", + "SVK", + "SLE", + "SMR", + "SEN", + "SOM", + "SUR", + "STP", + "SLV", + "SYR", + "SWZ", + "TCA", + "TCD", + "ATF", + "TGO", + "THA", + "TJK", + "TKL", + "TKM", + "TUN", + "TON", + "TLS", + "TUR", + "TTO", + "TUV", + "TWN", + "TZA", + "UKR", + "UGA", + "UMI", + "USA", + "URY", + "UZB", + "VAT", + "VCT", + "VEN", + "VGB", + "VIR", + "VNM", + "VUT", + "WLF", + "WSM", + "YEM", + "MYT", + "SRB", + "ZAF", + "ZMB", + "MNE", + "ZWE", + "A1", + "A2", + "O1", + "ALA", + "GGY", + "IMN", + "JEY", + "BLM", + "MAF", + "BES", + "SSD", + "O1" + ); + + public $GEOIP_COUNTRY_NAMES = array( + "", + "Asia/Pacific Region", + "Europe", + "Andorra", + "United Arab Emirates", + "Afghanistan", + "Antigua and Barbuda", + "Anguilla", + "Albania", + "Armenia", + "Curacao", + "Angola", + "Antarctica", + "Argentina", + "American Samoa", + "Austria", + "Australia", + "Aruba", + "Azerbaijan", + "Bosnia and Herzegovina", + "Barbados", + "Bangladesh", + "Belgium", + "Burkina Faso", + "Bulgaria", + "Bahrain", + "Burundi", + "Benin", + "Bermuda", + "Brunei Darussalam", + "Bolivia", + "Brazil", + "Bahamas", + "Bhutan", + "Bouvet Island", + "Botswana", + "Belarus", + "Belize", + "Canada", + "Cocos (Keeling) Islands", + "Congo, The Democratic Republic of the", + "Central African Republic", + "Congo", + "Switzerland", + "Cote D'Ivoire", + "Cook Islands", + "Chile", + "Cameroon", + "China", + "Colombia", + "Costa Rica", + "Cuba", + "Cape Verde", + "Christmas Island", + "Cyprus", + "Czech Republic", + "Germany", + "Djibouti", + "Denmark", + "Dominica", + "Dominican Republic", + "Algeria", + "Ecuador", + "Estonia", + "Egypt", + "Western Sahara", + "Eritrea", + "Spain", + "Ethiopia", + "Finland", + "Fiji", + "Falkland Islands (Malvinas)", + "Micronesia, Federated States of", + "Faroe Islands", + "France", + "Sint Maarten (Dutch part)", + "Gabon", + "United Kingdom", + "Grenada", + "Georgia", + "French Guiana", + "Ghana", + "Gibraltar", + "Greenland", + "Gambia", + "Guinea", + "Guadeloupe", + "Equatorial Guinea", + "Greece", + "South Georgia and the South Sandwich Islands", + "Guatemala", + "Guam", + "Guinea-Bissau", + "Guyana", + "Hong Kong", + "Heard Island and McDonald Islands", + "Honduras", + "Croatia", + "Haiti", + "Hungary", + "Indonesia", + "Ireland", + "Israel", + "India", + "British Indian Ocean Territory", + "Iraq", + "Iran, Islamic Republic of", + "Iceland", + "Italy", + "Jamaica", + "Jordan", + "Japan", + "Kenya", + "Kyrgyzstan", + "Cambodia", + "Kiribati", + "Comoros", + "Saint Kitts and Nevis", + "Korea, Democratic People's Republic of", + "Korea, Republic of", + "Kuwait", + "Cayman Islands", + "Kazakhstan", + "Lao People's Democratic Republic", + "Lebanon", + "Saint Lucia", + "Liechtenstein", + "Sri Lanka", + "Liberia", + "Lesotho", + "Lithuania", + "Luxembourg", + "Latvia", + "Libya", + "Morocco", + "Monaco", + "Moldova, Republic of", + "Madagascar", + "Marshall Islands", + "Macedonia", + "Mali", + "Myanmar", + "Mongolia", + "Macau", + "Northern Mariana Islands", + "Martinique", + "Mauritania", + "Montserrat", + "Malta", + "Mauritius", + "Maldives", + "Malawi", + "Mexico", + "Malaysia", + "Mozambique", + "Namibia", + "New Caledonia", + "Niger", + "Norfolk Island", + "Nigeria", + "Nicaragua", + "Netherlands", + "Norway", + "Nepal", + "Nauru", + "Niue", + "New Zealand", + "Oman", + "Panama", + "Peru", + "French Polynesia", + "Papua New Guinea", + "Philippines", + "Pakistan", + "Poland", + "Saint Pierre and Miquelon", + "Pitcairn Islands", + "Puerto Rico", + "Palestinian Territory", + "Portugal", + "Palau", + "Paraguay", + "Qatar", + "Reunion", + "Romania", + "Russian Federation", + "Rwanda", + "Saudi Arabia", + "Solomon Islands", + "Seychelles", + "Sudan", + "Sweden", + "Singapore", + "Saint Helena", + "Slovenia", + "Svalbard and Jan Mayen", + "Slovakia", + "Sierra Leone", + "San Marino", + "Senegal", + "Somalia", + "Suriname", + "Sao Tome and Principe", + "El Salvador", + "Syrian Arab Republic", + "Swaziland", + "Turks and Caicos Islands", + "Chad", + "French Southern Territories", + "Togo", + "Thailand", + "Tajikistan", + "Tokelau", + "Turkmenistan", + "Tunisia", + "Tonga", + "Timor-Leste", + "Turkey", + "Trinidad and Tobago", + "Tuvalu", + "Taiwan", + "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", + "Virgin Islands, British", + "Virgin Islands, U.S.", + "Vietnam", + "Vanuatu", + "Wallis and Futuna", + "Samoa", + "Yemen", + "Mayotte", + "Serbia", + "South Africa", + "Zambia", + "Montenegro", + "Zimbabwe", + "Anonymous Proxy", + "Satellite Provider", + "Other", + "Aland Islands", + "Guernsey", + "Isle of Man", + "Jersey", + "Saint Barthelemy", + "Saint Martin", + "Bonaire, Saint Eustatius and Saba", + "South Sudan", + "Other" + ); + + public $GEOIP_CONTINENT_CODES = array( + "--", + "AS", + "EU", + "EU", + "AS", + "AS", + "NA", + "NA", + "EU", + "AS", + "NA", + "AF", + "AN", + "SA", + "OC", + "EU", + "OC", + "NA", + "AS", + "EU", + "NA", + "AS", + "EU", + "AF", + "EU", + "AS", + "AF", + "AF", + "NA", + "AS", + "SA", + "SA", + "NA", + "AS", + "AN", + "AF", + "EU", + "NA", + "NA", + "AS", + "AF", + "AF", + "AF", + "EU", + "AF", + "OC", + "SA", + "AF", + "AS", + "SA", + "NA", + "NA", + "AF", + "AS", + "AS", + "EU", + "EU", + "AF", + "EU", + "NA", + "NA", + "AF", + "SA", + "EU", + "AF", + "AF", + "AF", + "EU", + "AF", + "EU", + "OC", + "SA", + "OC", + "EU", + "EU", + "NA", + "AF", + "EU", + "NA", + "AS", + "SA", + "AF", + "EU", + "NA", + "AF", + "AF", + "NA", + "AF", + "EU", + "AN", + "NA", + "OC", + "AF", + "SA", + "AS", + "AN", + "NA", + "EU", + "NA", + "EU", + "AS", + "EU", + "AS", + "AS", + "AS", + "AS", + "AS", + "EU", + "EU", + "NA", + "AS", + "AS", + "AF", + "AS", + "AS", + "OC", + "AF", + "NA", + "AS", + "AS", + "AS", + "NA", + "AS", + "AS", + "AS", + "NA", + "EU", + "AS", + "AF", + "AF", + "EU", + "EU", + "EU", + "AF", + "AF", + "EU", + "EU", + "AF", + "OC", + "EU", + "AF", + "AS", + "AS", + "AS", + "OC", + "NA", + "AF", + "NA", + "EU", + "AF", + "AS", + "AF", + "NA", + "AS", + "AF", + "AF", + "OC", + "AF", + "OC", + "AF", + "NA", + "EU", + "EU", + "AS", + "OC", + "OC", + "OC", + "AS", + "NA", + "SA", + "OC", + "OC", + "AS", + "AS", + "EU", + "NA", + "OC", + "NA", + "AS", + "EU", + "OC", + "SA", + "AS", + "AF", + "EU", + "EU", + "AF", + "AS", + "OC", + "AF", + "AF", + "EU", + "AS", + "AF", + "EU", + "EU", + "EU", + "AF", + "EU", + "AF", + "AF", + "SA", + "AF", + "NA", + "AS", + "AF", + "NA", + "AF", + "AN", + "AF", + "AS", + "AS", + "OC", + "AS", + "AF", + "OC", + "AS", + "EU", + "NA", + "OC", + "AS", + "AF", + "EU", + "AF", + "OC", + "NA", + "SA", + "AS", + "EU", + "NA", + "SA", + "NA", + "NA", + "AS", + "OC", + "OC", + "OC", + "AS", + "AF", + "EU", + "AF", + "AF", + "EU", + "AF", + "--", + "--", + "--", + "EU", + "EU", + "EU", + "EU", + "NA", + "NA", + "NA", + "AF", + "--" + ); +} + +function geoip_load_shared_mem($file) +{ + $fp = fopen($file, "rb"); + if (!$fp) { + print "error opening $file: $php_errormsg\n"; + exit; + } + $s_array = fstat($fp); + $size = $s_array['size']; + if (($shmid = @shmop_open(GEOIP_SHM_KEY, "w", 0, 0))) { + shmop_delete($shmid); + shmop_close($shmid); + } + $shmid = shmop_open(GEOIP_SHM_KEY, "c", 0644, $size); + shmop_write($shmid, fread($fp, $size), 0); + shmop_close($shmid); +} + +function _setup_segments($gi) +{ + $gi->databaseType = GEOIP_COUNTRY_EDITION; + $gi->record_length = STANDARD_RECORD_LENGTH; + if ($gi->flags & GEOIP_SHARED_MEMORY) { + $offset = @shmop_size($gi->shmid) - 3; + for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) { + $delim = @shmop_read($gi->shmid, $offset, 3); + $offset += 3; + if ($delim == (chr(255) . chr(255) . chr(255))) { + $gi->databaseType = ord(@shmop_read($gi->shmid, $offset, 1)); + if ($gi->databaseType >= 106) { + $gi->databaseType -= 105; + } + $offset++; + + if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) { + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; + } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) { + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; + } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0) + || ($gi->databaseType == GEOIP_CITY_EDITION_REV1) || ($gi->databaseType == GEOIP_ORG_EDITION) || ($gi->databaseType == GEOIP_ORG_EDITION_V6) || ($gi->databaseType == GEOIP_DOMAIN_EDITION) || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6) - || ($gi->databaseType == GEOIP_ISP_EDITION) - || ($gi->databaseType == GEOIP_ISP_EDITION_V6) - || ($gi->databaseType == GEOIP_USERTYPE_EDITION) - || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6) - || ($gi->databaseType == GEOIP_LOCATIONA_EDITION) - || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION) - || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6) - || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6) - || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1) - || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6) - || ($gi->databaseType == GEOIP_ASNUM_EDITION) - || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){ - $gi->databaseSegments = 0; - $buf = @shmop_read ($gi->shmid, $offset, SEGMENT_RECORD_LENGTH); - for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){ - $gi->databaseSegments += (ord($buf[$j]) << ($j * 8)); - } - if (($gi->databaseType == GEOIP_ORG_EDITION) - || ($gi->databaseType == GEOIP_ORG_EDITION_V6) + || ($gi->databaseType == GEOIP_ISP_EDITION) + || ($gi->databaseType == GEOIP_ISP_EDITION_V6) + || ($gi->databaseType == GEOIP_USERTYPE_EDITION) + || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6) + || ($gi->databaseType == GEOIP_LOCATIONA_EDITION) + || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION) + || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6) + || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6) + || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1) + || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6) + || ($gi->databaseType == GEOIP_ASNUM_EDITION) + || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6) + ) { + $gi->databaseSegments = 0; + $buf = @shmop_read($gi->shmid, $offset, SEGMENT_RECORD_LENGTH); + for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) { + $gi->databaseSegments += (ord($buf[$j]) << ($j * 8)); + } + if (($gi->databaseType == GEOIP_ORG_EDITION) + || ($gi->databaseType == GEOIP_ORG_EDITION_V6) || ($gi->databaseType == GEOIP_DOMAIN_EDITION) || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6) - || ($gi->databaseType == GEOIP_ISP_EDITION) - || ($gi->databaseType == GEOIP_ISP_EDITION_V6)) { - $gi->record_length = ORG_RECORD_LENGTH; + || ($gi->databaseType == GEOIP_ISP_EDITION) + || ($gi->databaseType == GEOIP_ISP_EDITION_V6) + ) { + $gi->record_length = ORG_RECORD_LENGTH; + } } + break; + } else { + $offset -= 4; } - break; - } else { - $offset -= 4; } - } - if (($gi->databaseType == GEOIP_COUNTRY_EDITION)|| - ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)|| - ($gi->databaseType == GEOIP_PROXY_EDITION)|| - ($gi->databaseType == GEOIP_NETSPEED_EDITION)){ - $gi->databaseSegments = GEOIP_COUNTRY_BEGIN; - } - } else { - $filepos = ftell($gi->filehandle); - fseek($gi->filehandle, -3, SEEK_END); - for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) { - $delim = fread($gi->filehandle,3); - if ($delim == (chr(255).chr(255).chr(255))){ - $gi->databaseType = ord(fread($gi->filehandle,1)); - if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){ - $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; + if (($gi->databaseType == GEOIP_COUNTRY_EDITION) || + ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) || + ($gi->databaseType == GEOIP_PROXY_EDITION) || + ($gi->databaseType == GEOIP_NETSPEED_EDITION) + ) { + $gi->databaseSegments = GEOIP_COUNTRY_BEGIN; } - else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){ - $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; - } else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0) + } else { + $filepos = ftell($gi->filehandle); + fseek($gi->filehandle, -3, SEEK_END); + for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) { + $delim = fread($gi->filehandle, 3); + if ($delim == (chr(255) . chr(255) . chr(255))) { + $gi->databaseType = ord(fread($gi->filehandle, 1)); + if ($gi->databaseType >= 106) { + $gi->databaseType -= 105; + } + if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) { + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; + } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) { + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; + } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0) || ($gi->databaseType == GEOIP_CITY_EDITION_REV1) || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6) || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6) - || ($gi->databaseType == GEOIP_ORG_EDITION) + || ($gi->databaseType == GEOIP_ORG_EDITION) || ($gi->databaseType == GEOIP_DOMAIN_EDITION) - || ($gi->databaseType == GEOIP_ISP_EDITION) - || ($gi->databaseType == GEOIP_ORG_EDITION_V6) + || ($gi->databaseType == GEOIP_ISP_EDITION) + || ($gi->databaseType == GEOIP_ORG_EDITION_V6) || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6) - || ($gi->databaseType == GEOIP_ISP_EDITION_V6) - || ($gi->databaseType == GEOIP_LOCATIONA_EDITION) - || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION) + || ($gi->databaseType == GEOIP_ISP_EDITION_V6) + || ($gi->databaseType == GEOIP_LOCATIONA_EDITION) + || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION) || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6) - || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6) - || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1) - || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6) - || ($gi->databaseType == GEOIP_USERTYPE_EDITION) - || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6) + || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6) + || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1) + || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6) + || ($gi->databaseType == GEOIP_USERTYPE_EDITION) + || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6) || ($gi->databaseType == GEOIP_ASNUM_EDITION) - || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){ - $gi->databaseSegments = 0; - $buf = fread($gi->filehandle,SEGMENT_RECORD_LENGTH); - for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){ - $gi->databaseSegments += (ord($buf[$j]) << ($j * 8)); - } - if ( ( $gi->databaseType == GEOIP_ORG_EDITION ) - || ( $gi->databaseType == GEOIP_DOMAIN_EDITION ) - || ( $gi->databaseType == GEOIP_ISP_EDITION ) - || ( $gi->databaseType == GEOIP_ORG_EDITION_V6 ) - || ( $gi->databaseType == GEOIP_DOMAIN_EDITION_V6 ) - || ( $gi->databaseType == GEOIP_ISP_EDITION_V6 )) { - $gi->record_length = ORG_RECORD_LENGTH; + || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6) + ) { + $gi->databaseSegments = 0; + $buf = fread($gi->filehandle, SEGMENT_RECORD_LENGTH); + for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) { + $gi->databaseSegments += (ord($buf[$j]) << ($j * 8)); + } + if (($gi->databaseType == GEOIP_ORG_EDITION) + || ($gi->databaseType == GEOIP_DOMAIN_EDITION) + || ($gi->databaseType == GEOIP_ISP_EDITION) + || ($gi->databaseType == GEOIP_ORG_EDITION_V6) + || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6) + || ($gi->databaseType == GEOIP_ISP_EDITION_V6) + ) { + $gi->record_length = ORG_RECORD_LENGTH; + } + } + break; + } else { + fseek($gi->filehandle, -4, SEEK_CUR); } } - break; - } else { - fseek($gi->filehandle, -4, SEEK_CUR); + if (($gi->databaseType == GEOIP_COUNTRY_EDITION) || + ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) || + ($gi->databaseType == GEOIP_PROXY_EDITION) || + ($gi->databaseType == GEOIP_NETSPEED_EDITION) + ) { + $gi->databaseSegments = GEOIP_COUNTRY_BEGIN; } + fseek($gi->filehandle, $filepos, SEEK_SET); } - if (($gi->databaseType == GEOIP_COUNTRY_EDITION)|| - ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)|| - ($gi->databaseType == GEOIP_PROXY_EDITION)|| - ($gi->databaseType == GEOIP_NETSPEED_EDITION)){ - $gi->databaseSegments = GEOIP_COUNTRY_BEGIN; - } - fseek($gi->filehandle,$filepos,SEEK_SET); - } - return $gi; + return $gi; } -function geoip_open($filename, $flags) { - $gi = new GeoIP; - $gi->flags = $flags; - if ($gi->flags & GEOIP_SHARED_MEMORY) { - $gi->shmid = @shmop_open (GEOIP_SHM_KEY, "a", 0, 0); +function geoip_open($filename, $flags) +{ + $gi = new GeoIP; + $gi->flags = $flags; + if ($gi->flags & GEOIP_SHARED_MEMORY) { + $gi->shmid = @shmop_open(GEOIP_SHM_KEY, "a", 0, 0); } else { - $gi->filehandle = fopen($filename,"rb") or die( "Can not open $filename\n" ); - if ($gi->flags & GEOIP_MEMORY_CACHE) { - $s_array = fstat($gi->filehandle); - $gi->memory_buffer = fread($gi->filehandle, $s_array['size']); + $gi->filehandle = fopen($filename, "rb") or die("Can not open $filename\n"); + if ($gi->flags & GEOIP_MEMORY_CACHE) { + $s_array = fstat($gi->filehandle); + $gi->memory_buffer = fread($gi->filehandle, $s_array['size']); + } } - } - $gi = _setup_segments($gi); - return $gi; + $gi = _setup_segments($gi); + return $gi; } -function geoip_close($gi) { - if ($gi->flags & GEOIP_SHARED_MEMORY) { - return true; - } +function geoip_close($gi) +{ + if ($gi->flags & GEOIP_SHARED_MEMORY) { + return true; + } - return fclose($gi->filehandle); + return fclose($gi->filehandle); } -function geoip_country_id_by_name_v6($gi, $name) { - $rec = dns_get_record($name, DNS_AAAA); - if ( !$rec ) { - return false; - } - $addr = $rec[0]["ipv6"]; - if (!$addr || $addr == $name) { - return false; - } - return geoip_country_id_by_addr_v6($gi, $addr); +function geoip_country_id_by_name_v6($gi, $name) +{ + $rec = dns_get_record($name, DNS_AAAA); + if (!$rec) { + return false; + } + $addr = $rec[0]["ipv6"]; + if (!$addr || $addr == $name) { + return false; + } + return geoip_country_id_by_addr_v6($gi, $addr); } -function geoip_country_id_by_name($gi, $name) { - $addr = gethostbyname($name); - if (!$addr || $addr == $name) { - return false; - } - return geoip_country_id_by_addr($gi, $addr); +function geoip_country_id_by_name($gi, $name) +{ + $addr = gethostbyname($name); + if (!$addr || $addr == $name) { + return false; + } + return geoip_country_id_by_addr($gi, $addr); } -function geoip_country_code_by_name_v6($gi, $name) { - $country_id = geoip_country_id_by_name_v6($gi,$name); - if ($country_id !== false) { +if (!function_exists('geoip_country_code_by_name_v6')) { +// GeoIP PECL installed? +function geoip_country_code_by_name_v6($gi, $name) +{ + $country_id = geoip_country_id_by_name_v6($gi, $name); + if ($country_id !== false) { return $gi->GEOIP_COUNTRY_CODES[$country_id]; - } - return false; + } + return false; } - -if (!function_exists('geoip_country_code_by_name')) { // added for Piwik - function geoip_country_code_by_name($gi, $name) { - $country_id = geoip_country_id_by_name($gi,$name); +} +if (!function_exists('geoip_country_code_by_name')) { +// GeoIP PECL installed? +function geoip_country_code_by_name($gi, $name) +{ + $country_id = geoip_country_id_by_name($gi, $name); if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_CODES[$country_id]; + return $gi->GEOIP_COUNTRY_CODES[$country_id]; } return false; - } +} } -function geoip_country_name_by_name_v6($gi, $name) { - $country_id = geoip_country_id_by_name_v6($gi,$name); - if ($country_id !== false) { +if (!function_exists('geoip_country_name_by_name_v6')) { +// GeoIP PECL installed? +function geoip_country_name_by_name_v6($gi, $name) +{ + $country_id = geoip_country_id_by_name_v6($gi, $name); + if ($country_id !== false) { return $gi->GEOIP_COUNTRY_NAMES[$country_id]; - } - return false; + } + return false; } - -if (!function_exists('geoip_country_name_by_name')) { // added for Piwik - function geoip_country_name_by_name($gi, $name) { - $country_id = geoip_country_id_by_name($gi,$name); +} +if (!function_exists('geoip_country_name_by_name')) { +// GeoIP PECL installed? +function geoip_country_name_by_name($gi, $name) +{ + $country_id = geoip_country_id_by_name($gi, $name); if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_NAMES[$country_id]; + return $gi->GEOIP_COUNTRY_NAMES[$country_id]; } return false; - } +} } -function geoip_country_id_by_addr_v6($gi, $addr) { - $ipnum = inet_pton($addr); - return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN; +function geoip_country_id_by_addr_v6($gi, $addr) +{ + $ipnum = inet_pton($addr); + return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN; } -function geoip_country_id_by_addr($gi, $addr) { - $ipnum = ip2long($addr); - return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN; +function geoip_country_id_by_addr($gi, $addr) +{ + $ipnum = ip2long($addr); + return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN; } -function geoip_country_code_by_addr_v6($gi, $addr) { - $country_id = geoip_country_id_by_addr_v6($gi,$addr); +function geoip_country_code_by_addr_v6($gi, $addr) +{ + $country_id = geoip_country_id_by_addr_v6($gi, $addr); if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_CODES[$country_id]; + return $gi->GEOIP_COUNTRY_CODES[$country_id]; } - return false; + return false; } -function geoip_country_code_by_addr($gi, $addr) { - if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) { - $record = geoip_record_by_addr($gi,$addr); - if ( $record !== false ) { - return $record->country_code; - } - } else { - $country_id = geoip_country_id_by_addr($gi,$addr); - if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_CODES[$country_id]; +function geoip_country_code_by_addr($gi, $addr) +{ + if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) { + $record = geoip_record_by_addr($gi, $addr); + if ($record !== false) { + return $record->country_code; + } + } else { + $country_id = geoip_country_id_by_addr($gi, $addr); + if ($country_id !== false) { + return $gi->GEOIP_COUNTRY_CODES[$country_id]; + } } - } - return false; + return false; } -function geoip_country_name_by_addr_v6($gi, $addr) { - $country_id = geoip_country_id_by_addr_v6($gi,$addr); +function geoip_country_name_by_addr_v6($gi, $addr) +{ + $country_id = geoip_country_id_by_addr_v6($gi, $addr); if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_NAMES[$country_id]; + return $gi->GEOIP_COUNTRY_NAMES[$country_id]; } - return false; + return false; } -function geoip_country_name_by_addr($gi, $addr) { - if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) { - $record = geoip_record_by_addr($gi,$addr); - return $record->country_name; - } else { - $country_id = geoip_country_id_by_addr($gi,$addr); - if ($country_id !== false) { - return $gi->GEOIP_COUNTRY_NAMES[$country_id]; +function geoip_country_name_by_addr($gi, $addr) +{ + if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) { + $record = geoip_record_by_addr($gi, $addr); + return $record->country_name; + } else { + $country_id = geoip_country_id_by_addr($gi, $addr); + if ($country_id !== false) { + return $gi->GEOIP_COUNTRY_NAMES[$country_id]; + } } - } - return false; -} - -function _geoip_seek_country_v6($gi, $ipnum) { - - # arrays from unpack start with offset 1 - # yet another php mystery. array_merge work around - # this broken behaviour - $v6vec = array_merge(unpack( "C16", $ipnum)); - - $offset = 0; - for ($depth = 127; $depth >= 0; --$depth) { - if ($gi->flags & GEOIP_MEMORY_CACHE) { - // workaround php's broken substr, strpos, etc handling with - // mbstring.func_overload and mbstring.internal_encoding - $enc = mb_internal_encoding(); - mb_internal_encoding('ISO-8859-1'); - - $buf = substr($gi->memory_buffer, - 2 * $gi->record_length * $offset, - 2 * $gi->record_length); - - mb_internal_encoding($enc); - } elseif ($gi->flags & GEOIP_SHARED_MEMORY) { - $buf = @shmop_read ($gi->shmid, - 2 * $gi->record_length * $offset, - 2 * $gi->record_length ); + return false; +} + +function _geoip_seek_country_v6($gi, $ipnum) +{ + # arrays from unpack start with offset 1 + # yet another php mystery. array_merge work around + # this broken behaviour + $v6vec = array_merge(unpack("C16", $ipnum)); + + $offset = 0; + for ($depth = 127; $depth >= 0; --$depth) { + if ($gi->flags & GEOIP_MEMORY_CACHE) { + $buf = _safe_substr( + $gi->memory_buffer, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length + ); + } elseif ($gi->flags & GEOIP_SHARED_MEMORY) { + $buf = @shmop_read( + $gi->shmid, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length + ); } else { - fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0 - or die("fseek failed"); - $buf = fread($gi->filehandle, 2 * $gi->record_length); - } - $x = array(0,0); - for ($i = 0; $i < 2; ++$i) { - for ($j = 0; $j < $gi->record_length; ++$j) { - $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8); - } - } + fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0 + or die("fseek failed"); + $buf = fread($gi->filehandle, 2 * $gi->record_length); + } + $x = array(0, 0); + for ($i = 0; $i < 2; ++$i) { + for ($j = 0; $j < $gi->record_length; ++$j) { + $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8); + } + } - $bnum = 127 - $depth; - $idx = $bnum >> 3; - $b_mask = 1 << ( $bnum & 7 ^ 7 ); - if (($v6vec[$idx] & $b_mask) > 0) { - if ($x[1] >= $gi->databaseSegments) { - return $x[1]; - } - $offset = $x[1]; - } else { - if ($x[0] >= $gi->databaseSegments) { - return $x[0]; - } - $offset = $x[0]; - } - } - trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR); - return false; -} - -function _geoip_seek_country($gi, $ipnum) { - $offset = 0; - for ($depth = 31; $depth >= 0; --$depth) { - if ($gi->flags & GEOIP_MEMORY_CACHE) { - // workaround php's broken substr, strpos, etc handling with - // mbstring.func_overload and mbstring.internal_encoding - $enc = mb_internal_encoding(); - mb_internal_encoding('ISO-8859-1'); - - $buf = substr($gi->memory_buffer, - 2 * $gi->record_length * $offset, - 2 * $gi->record_length); - - mb_internal_encoding($enc); - } elseif ($gi->flags & GEOIP_SHARED_MEMORY) { - $buf = @shmop_read ($gi->shmid, - 2 * $gi->record_length * $offset, - 2 * $gi->record_length ); + $bnum = 127 - $depth; + $idx = $bnum >> 3; + $b_mask = 1 << ($bnum & 7 ^ 7); + if (($v6vec[$idx] & $b_mask) > 0) { + if ($x[1] >= $gi->databaseSegments) { + return $x[1]; + } + $offset = $x[1]; } else { - fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0 - or die("fseek failed"); - $buf = fread($gi->filehandle, 2 * $gi->record_length); - } - $x = array(0,0); - for ($i = 0; $i < 2; ++$i) { - for ($j = 0; $j < $gi->record_length; ++$j) { - $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8); - } + if ($x[0] >= $gi->databaseSegments) { + return $x[0]; + } + $offset = $x[0]; + } } - if ($ipnum & (1 << $depth)) { - if ($x[1] >= $gi->databaseSegments) { - return $x[1]; - } - $offset = $x[1]; + trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR); + return false; +} + +function _geoip_seek_country($gi, $ipnum) +{ + $offset = 0; + for ($depth = 31; $depth >= 0; --$depth) { + if ($gi->flags & GEOIP_MEMORY_CACHE) { + $buf = _safe_substr( + $gi->memory_buffer, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length + ); + } elseif ($gi->flags & GEOIP_SHARED_MEMORY) { + $buf = @shmop_read( + $gi->shmid, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length + ); } else { - if ($x[0] >= $gi->databaseSegments) { - return $x[0]; - } - $offset = $x[0]; + fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0 + or die("fseek failed"); + $buf = fread($gi->filehandle, 2 * $gi->record_length); + } + $x = array(0, 0); + for ($i = 0; $i < 2; ++$i) { + for ($j = 0; $j < $gi->record_length; ++$j) { + $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8); + } + } + if ($ipnum & (1 << $depth)) { + if ($x[1] >= $gi->databaseSegments) { + return $x[1]; + } + $offset = $x[1]; + } else { + if ($x[0] >= $gi->databaseSegments) { + return $x[0]; + } + $offset = $x[0]; + } } - } - trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR); - return false; + trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR); + return false; } -function _common_get_org($gi, $seek_org){ - $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments; - if ($gi->flags & GEOIP_SHARED_MEMORY) { - $org_buf = @shmop_read ($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH); +function _common_get_org($gi, $seek_org) +{ + $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments; + if ($gi->flags & GEOIP_SHARED_MEMORY) { + $org_buf = @shmop_read($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH); } else { - fseek($gi->filehandle, $record_pointer, SEEK_SET); - $org_buf = fread($gi->filehandle,MAX_ORG_RECORD_LENGTH); - } - // workaround php's broken substr, strpos, etc handling with - // mbstring.func_overload and mbstring.internal_encoding - $enc = mb_internal_encoding(); - mb_internal_encoding('ISO-8859-1'); - $org_buf = substr($org_buf, 0, strpos($org_buf, "\0")); - mb_internal_encoding($enc); - return $org_buf; + fseek($gi->filehandle, $record_pointer, SEEK_SET); + $org_buf = fread($gi->filehandle, MAX_ORG_RECORD_LENGTH); + } + $org_buf = _safe_substr($org_buf, 0, strpos($org_buf, "\0")); + return $org_buf; } -function _get_org_v6($gi,$ipnum){ - $seek_org = _geoip_seek_country_v6($gi,$ipnum); - if ($seek_org == $gi->databaseSegments) { - return NULL; - } - return _common_get_org($gi, $seek_org); +function _get_org_v6($gi, $ipnum) +{ + $seek_org = _geoip_seek_country_v6($gi, $ipnum); + if ($seek_org == $gi->databaseSegments) { + return null; + } + return _common_get_org($gi, $seek_org); } -function _get_org($gi,$ipnum){ - $seek_org = _geoip_seek_country($gi,$ipnum); - if ($seek_org == $gi->databaseSegments) { - return NULL; - } - return _common_get_org($gi, $seek_org); +function _get_org($gi, $ipnum) +{ + $seek_org = _geoip_seek_country($gi, $ipnum); + if ($seek_org == $gi->databaseSegments) { + return null; + } + return _common_get_org($gi, $seek_org); } - -function geoip_name_by_addr_v6 ($gi,$addr) { - if ($addr == NULL) { - return 0; - } - $ipnum = inet_pton($addr); - return _get_org_v6($gi, $ipnum); +function geoip_name_by_addr_v6($gi, $addr) +{ + if ($addr == null) { + return 0; + } + $ipnum = inet_pton($addr); + return _get_org_v6($gi, $ipnum); } -function geoip_name_by_addr ($gi,$addr) { - if ($addr == NULL) { - return 0; - } - $ipnum = ip2long($addr); - return _get_org($gi, $ipnum); +function geoip_name_by_addr($gi, $addr) +{ + if ($addr == null) { + return 0; + } + $ipnum = ip2long($addr); + return _get_org($gi, $ipnum); } -function geoip_org_by_addr ($gi,$addr) { - return geoip_name_by_addr($gi, $addr); +function geoip_org_by_addr($gi, $addr) +{ + return geoip_name_by_addr($gi, $addr); } -function _get_region($gi,$ipnum){ - if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){ - $seek_region = _geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV0; - if ($seek_region >= 1000){ - $country_code = "US"; - $region = chr(($seek_region - 1000)/26 + 65) . chr(($seek_region - 1000)%26 + 65); - } else { +function _get_region($gi, $ipnum) +{ + if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) { + $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV0; + if ($seek_region >= 1000) { + $country_code = "US"; + $region = chr(($seek_region - 1000) / 26 + 65) . chr(($seek_region - 1000) % 26 + 65); + } else { $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region]; - $region = ""; - } - return array ($country_code,$region); - } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1) { - $seek_region = _geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV1; - //print $seek_region; - if ($seek_region < US_OFFSET){ - $country_code = ""; - $region = ""; - } else if ($seek_region < CANADA_OFFSET) { - $country_code = "US"; - $region = chr(($seek_region - US_OFFSET)/26 + 65) . chr(($seek_region - US_OFFSET)%26 + 65); - } else if ($seek_region < WORLD_OFFSET) { - $country_code = "CA"; - $region = chr(($seek_region - CANADA_OFFSET)/26 + 65) . chr(($seek_region - CANADA_OFFSET)%26 + 65); - } else { + $region = ""; + } + return array($country_code, $region); + } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) { + $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV1; + if ($seek_region < US_OFFSET) { + $country_code = ""; + $region = ""; + } elseif ($seek_region < CANADA_OFFSET) { + $country_code = "US"; + $region = chr(($seek_region - US_OFFSET) / 26 + 65) . chr(($seek_region - US_OFFSET) % 26 + 65); + } elseif ($seek_region < WORLD_OFFSET) { + $country_code = "CA"; + $region = chr(($seek_region - CANADA_OFFSET) / 26 + 65) . chr(($seek_region - CANADA_OFFSET) % 26 + 65); + } else { $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE]; - $region = ""; + $region = ""; + } + return array($country_code, $region); } - return array ($country_code,$region); - } } -function geoip_region_by_addr ($gi,$addr) { - if ($addr == NULL) { - return 0; - } - $ipnum = ip2long($addr); - return _get_region($gi, $ipnum); +function geoip_region_by_addr($gi, $addr) +{ + if ($addr == null) { + return 0; + } + $ipnum = ip2long($addr); + return _get_region($gi, $ipnum); } -function getdnsattributes ($l,$ip){ - $r = new Net_DNS_Resolver(); - $r->nameservers = array("ws1.maxmind.com"); - $p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN"); - $str = is_object($p->answer[0])?$p->answer[0]->string():''; - $str = substr( $str, 1, -1 ); - return $str; +function getdnsattributes($l, $ip) +{ + $r = new Net_DNS_Resolver(); + $r->nameservers = array("ws1.maxmind.com"); + $p = $r->search($l . "." . $ip . ".s.maxmind.com", "TXT", "IN"); + $str = is_object($p->answer[0]) ? $p->answer[0]->string() : ''; + $str = substr($str, 1, -1); + return $str; } -?> +function _safe_substr($string, $start, $length) +{ + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $mbExists = extension_loaded('mbstring'); + + if ($mbExists) { + $enc = mb_internal_encoding(); + mb_internal_encoding('ISO-8859-1'); + } + + $buf = substr($string, $start, $length); + + if ($mbExists) { + mb_internal_encoding($enc); + } + + return $buf; +} diff --git a/libs/MaxMindGeoIP/geoipcity.inc b/libs/MaxMindGeoIP/geoipcity.inc index a93c3d35ddf..44ed49b878e 100755 --- a/libs/MaxMindGeoIP/geoipcity.inc +++ b/libs/MaxMindGeoIP/geoipcity.inc @@ -2,7 +2,7 @@ /* geoipcity.inc * - * Copyright (C) 2004 Maxmind LLC + * Copyright (C) 2013 MaxMind, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -11,227 +11,231 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* - * Changelog: - * - * 2005-01-13 Andrew Hill, Awarez Ltd. (http://www.awarez.net) - * Formatted file according to PEAR library standards. - * Changed inclusion of geoip.inc file to require_once, so that - * this library can be used in the same script as geoip.inc. - */ -define("FULL_RECORD_LENGTH",50); +define("FULL_RECORD_LENGTH", 50); require_once 'geoip.inc'; require_once 'geoipregionvars.php'; -class geoiprecord { - var $country_code; - var $country_code3; - var $country_name; - var $region; - var $city; - var $postal_code; - var $latitude; - var $longitude; - var $area_code; - var $dma_code; # metro and dma code are the same. use metro_code - var $metro_code; - var $continent_code; +class geoiprecord +{ + public $country_code; + public $country_code3; + public $country_name; + public $region; + public $city; + public $postal_code; + public $latitude; + public $longitude; + public $area_code; + public $dma_code; # metro and dma code are the same. use metro_code + public $metro_code; + public $continent_code; } -class geoipdnsrecord { - var $country_code; - var $country_code3; - var $country_name; - var $region; - var $regionname; - var $city; - var $postal_code; - var $latitude; - var $longitude; - var $areacode; - var $dmacode; - var $isp; - var $org; - var $metrocode; +class geoipdnsrecord +{ + public $country_code; + public $country_code3; + public $country_name; + public $region; + public $regionname; + public $city; + public $postal_code; + public $latitude; + public $longitude; + public $areacode; + public $dmacode; + public $isp; + public $org; + public $metrocode; } -function getrecordwithdnsservice($str){ - $record = new geoipdnsrecord; - $keyvalue = explode(";",$str); - foreach ($keyvalue as $keyvalue2){ - list($key,$value) = explode("=",$keyvalue2); - if ($key == "co"){ - $record->country_code = $value; - } - if ($key == "ci"){ - $record->city = $value; - } - if ($key == "re"){ - $record->region = $value; - } - if ($key == "ac"){ - $record->areacode = $value; - } - if ($key == "dm" || $key == "me" ){ - $record->dmacode = $value; - $record->metrocode = $value; - } - if ($key == "is"){ - $record->isp = $value; - } - if ($key == "or"){ - $record->org = $value; - } - if ($key == "zi"){ - $record->postal_code = $value; +function getrecordwithdnsservice($str) +{ + $record = new geoipdnsrecord; + $keyvalue = explode(";", $str); + foreach ($keyvalue as $keyvalue2) { + list($key, $value) = explode("=", $keyvalue2); + if ($key == "co") { + $record->country_code = $value; + } + if ($key == "ci") { + $record->city = $value; + } + if ($key == "re") { + $record->region = $value; + } + if ($key == "ac") { + $record->areacode = $value; + } + if ($key == "dm" || $key == "me") { + $record->dmacode = $value; + $record->metrocode = $value; + } + if ($key == "is") { + $record->isp = $value; + } + if ($key == "or") { + $record->org = $value; + } + if ($key == "zi") { + $record->postal_code = $value; + } + if ($key == "la") { + $record->latitude = $value; + } + if ($key == "lo") { + $record->longitude = $value; + } } - if ($key == "la"){ - $record->latitude = $value; + $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code]; + $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number]; + $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number]; + if ($record->region != "") { + if (($record->country_code == "US") || ($record->country_code == "CA")) { + $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region]; + } else { + $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region]; + } } - if ($key == "lo"){ - $record->longitude = $value; - } - } - $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code]; - $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number]; - $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number]; - if ($record->region != "") { - if (($record->country_code == "US") || ($record->country_code == "CA")){ - $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region]; - } else { - $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region]; - } - } - return $record; + return $record; } -function _get_record_v6($gi,$ipnum){ - $seek_country = _geoip_seek_country_v6($gi,$ipnum); - if ($seek_country == $gi->databaseSegments) { - return NULL; - } - return _common_get_record($gi, $seek_country); +function _get_record_v6($gi, $ipnum) +{ + $seek_country = _geoip_seek_country_v6($gi, $ipnum); + if ($seek_country == $gi->databaseSegments) { + return null; + } + return _common_get_record($gi, $seek_country); } -function _common_get_record($gi, $seek_country){ - // workaround php's broken substr, strpos, etc handling with - // mbstring.func_overload and mbstring.internal_encoding - $enc = mb_internal_encoding(); - mb_internal_encoding('ISO-8859-1'); - - $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments; - - if ($gi->flags & GEOIP_MEMORY_CACHE) { - $record_buf = substr($gi->memory_buffer,$record_pointer,FULL_RECORD_LENGTH); - } elseif ($gi->flags & GEOIP_SHARED_MEMORY){ - $record_buf = @shmop_read($gi->shmid,$record_pointer,FULL_RECORD_LENGTH); - } else { - fseek($gi->filehandle, $record_pointer, SEEK_SET); - $record_buf = fread($gi->filehandle,FULL_RECORD_LENGTH); - } - $record = new geoiprecord; - $record_buf_pos = 0; - $char = ord(substr($record_buf,$record_buf_pos,1)); +function _common_get_record($gi, $seek_country) +{ + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $mbExists = extension_loaded('mbstring'); + if ($mbExists) { + $enc = mb_internal_encoding(); + mb_internal_encoding('ISO-8859-1'); + } + + $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments; + + if ($gi->flags & GEOIP_MEMORY_CACHE) { + $record_buf = substr($gi->memory_buffer, $record_pointer, FULL_RECORD_LENGTH); + } elseif ($gi->flags & GEOIP_SHARED_MEMORY) { + $record_buf = @shmop_read($gi->shmid, $record_pointer, FULL_RECORD_LENGTH); + } else { + fseek($gi->filehandle, $record_pointer, SEEK_SET); + $record_buf = fread($gi->filehandle, FULL_RECORD_LENGTH); + } + $record = new geoiprecord; + $record_buf_pos = 0; + $char = ord(substr($record_buf, $record_buf_pos, 1)); $record->country_code = $gi->GEOIP_COUNTRY_CODES[$char]; $record->country_code3 = $gi->GEOIP_COUNTRY_CODES3[$char]; $record->country_name = $gi->GEOIP_COUNTRY_NAMES[$char]; - $record->continent_code = $gi->GEOIP_CONTINENT_CODES[$char]; - $record_buf_pos++; - $str_length = 0; + $record->continent_code = $gi->GEOIP_CONTINENT_CODES[$char]; + $record_buf_pos++; + $str_length = 0; + // Get region - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - while ($char != 0){ - $str_length++; - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - } - if ($str_length > 0){ - $record->region = substr($record_buf,$record_buf_pos,$str_length); - } - $record_buf_pos += $str_length + 1; - $str_length = 0; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + while ($char != 0) { + $str_length++; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + } + if ($str_length > 0) { + $record->region = substr($record_buf, $record_buf_pos, $str_length); + } + $record_buf_pos += $str_length + 1; + $str_length = 0; // Get city - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - while ($char != 0){ - $str_length++; - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - } - if ($str_length > 0){ - $record->city = substr($record_buf,$record_buf_pos,$str_length); - } - $record_buf_pos += $str_length + 1; - $str_length = 0; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + while ($char != 0) { + $str_length++; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + } + if ($str_length > 0) { + $record->city = substr($record_buf, $record_buf_pos, $str_length); + } + $record_buf_pos += $str_length + 1; + $str_length = 0; // Get postal code - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - while ($char != 0){ - $str_length++; - $char = ord(substr($record_buf,$record_buf_pos+$str_length,1)); - } - if ($str_length > 0){ - $record->postal_code = substr($record_buf,$record_buf_pos,$str_length); - } - $record_buf_pos += $str_length + 1; - $str_length = 0; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + while ($char != 0) { + $str_length++; + $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1)); + } + if ($str_length > 0) { + $record->postal_code = substr($record_buf, $record_buf_pos, $str_length); + } + $record_buf_pos += $str_length + 1; + $str_length = 0; // Get latitude and longitude - $latitude = 0; - $longitude = 0; - for ($j = 0;$j < 3; ++$j){ - $char = ord(substr($record_buf,$record_buf_pos++,1)); - $latitude += ($char << ($j * 8)); - } - $record->latitude = ($latitude/10000) - 180; - for ($j = 0;$j < 3; ++$j){ - $char = ord(substr($record_buf,$record_buf_pos++,1)); - $longitude += ($char << ($j * 8)); - } - $record->longitude = ($longitude/10000) - 180; - if (GEOIP_CITY_EDITION_REV1 == $gi->databaseType){ - $metroarea_combo = 0; - if ($record->country_code == "US"){ - for ($j = 0;$j < 3;++$j){ - $char = ord(substr($record_buf,$record_buf_pos++,1)); - $metroarea_combo += ($char << ($j * 8)); - } - $record->metro_code = $record->dma_code = floor($metroarea_combo/1000); - $record->area_code = $metroarea_combo%1000; - } - } - mb_internal_encoding($enc); - return $record; + $latitude = 0; + $longitude = 0; + for ($j = 0; $j < 3; ++$j) { + $char = ord(substr($record_buf, $record_buf_pos++, 1)); + $latitude += ($char << ($j * 8)); + } + $record->latitude = ($latitude / 10000) - 180; + for ($j = 0; $j < 3; ++$j) { + $char = ord(substr($record_buf, $record_buf_pos++, 1)); + $longitude += ($char << ($j * 8)); + } + $record->longitude = ($longitude / 10000) - 180; + if (GEOIP_CITY_EDITION_REV1 == $gi->databaseType) { + $metroarea_combo = 0; + if ($record->country_code == "US") { + for ($j = 0; $j < 3; ++$j) { + $char = ord(substr($record_buf, $record_buf_pos++, 1)); + $metroarea_combo += ($char << ($j * 8)); + } + $record->metro_code = $record->dma_code = floor($metroarea_combo / 1000); + $record->area_code = $metroarea_combo % 1000; + } + } + if ($mbExists) { + mb_internal_encoding($enc); + } + return $record; } -function GeoIP_record_by_addr_v6 ($gi,$addr){ - if ($addr == NULL){ - return 0; - } - $ipnum = inet_pton($addr); - return _get_record_v6($gi, $ipnum); +function GeoIP_record_by_addr_v6($gi, $addr) +{ + if ($addr == null) { + return 0; + } + $ipnum = inet_pton($addr); + return _get_record_v6($gi, $ipnum); } -function _get_record($gi,$ipnum){ - $seek_country = _geoip_seek_country($gi,$ipnum); - if ($seek_country == $gi->databaseSegments) { - return NULL; - } - return _common_get_record($gi, $seek_country); +function _get_record($gi, $ipnum) +{ + $seek_country = _geoip_seek_country($gi, $ipnum); + if ($seek_country == $gi->databaseSegments) { + return null; + } + return _common_get_record($gi, $seek_country); } -function GeoIP_record_by_addr ($gi,$addr){ - if ($addr == NULL){ - return 0; - } - $ipnum = ip2long($addr); - return _get_record($gi, $ipnum); +function GeoIP_record_by_addr($gi, $addr) +{ + if ($addr == null) { + return 0; + } + $ipnum = ip2long($addr); + return _get_record($gi, $ipnum); } - -?> diff --git a/libs/MaxMindGeoIP/geoipregionvars.php b/libs/MaxMindGeoIP/geoipregionvars.php index c18a4aff8e8..9cbfd61ce67 100755 --- a/libs/MaxMindGeoIP/geoipregionvars.php +++ b/libs/MaxMindGeoIP/geoipregionvars.php @@ -1,4192 +1,4447 @@ array( - "02" => "Canillo", - "03" => "Encamp", - "04" => "La Massana", - "05" => "Ordino", - "06" => "Sant Julia de Loria", - "07" => "Andorra la Vella", - "08" => "Escaldes-Engordany"), -"AE" => array( - "01" => "Abu Dhabi", - "02" => "Ajman", - "03" => "Dubai", - "04" => "Fujairah", - "05" => "Ras Al Khaimah", - "06" => "Sharjah", - "07" => "Umm Al Quwain"), -"AF" => array( - "01" => "Badakhshan", - "02" => "Badghis", - "03" => "Baghlan", - "05" => "Bamian", - "06" => "Farah", - "07" => "Faryab", - "08" => "Ghazni", - "09" => "Ghowr", - "10" => "Helmand", - "11" => "Herat", - "13" => "Kabol", - "14" => "Kapisa", - "17" => "Lowgar", - "18" => "Nangarhar", - "19" => "Nimruz", - "23" => "Kandahar", - "24" => "Kondoz", - "26" => "Takhar", - "27" => "Vardak", - "28" => "Zabol", - "29" => "Paktika", - "30" => "Balkh", - "31" => "Jowzjan", - "32" => "Samangan", - "33" => "Sar-e Pol", - "34" => "Konar", - "35" => "Laghman", - "36" => "Paktia", - "37" => "Khowst", - "38" => "Nurestan", - "39" => "Oruzgan", - "40" => "Parvan", - "41" => "Daykondi", - "42" => "Panjshir"), -"AG" => array( - "01" => "Barbuda", - "03" => "Saint George", - "04" => "Saint John", - "05" => "Saint Mary", - "06" => "Saint Paul", - "07" => "Saint Peter", - "08" => "Saint Philip", - "09" => "Redonda"), -"AL" => array( - "40" => "Berat", - "41" => "Diber", - "42" => "Durres", - "43" => "Elbasan", - "44" => "Fier", - "45" => "Gjirokaster", - "46" => "Korce", - "47" => "Kukes", - "48" => "Lezhe", - "49" => "Shkoder", - "50" => "Tirane", - "51" => "Vlore"), -"AM" => array( - "01" => "Aragatsotn", - "02" => "Ararat", - "03" => "Armavir", - "04" => "Geghark'unik'", - "05" => "Kotayk'", - "06" => "Lorri", - "07" => "Shirak", - "08" => "Syunik'", - "09" => "Tavush", - "10" => "Vayots' Dzor", - "11" => "Yerevan"), -"AO" => array( - "01" => "Benguela", - "02" => "Bie", - "03" => "Cabinda", - "04" => "Cuando Cubango", - "05" => "Cuanza Norte", - "06" => "Cuanza Sul", - "07" => "Cunene", - "08" => "Huambo", - "09" => "Huila", - "12" => "Malanje", - "13" => "Namibe", - "14" => "Moxico", - "15" => "Uige", - "16" => "Zaire", - "17" => "Lunda Norte", - "18" => "Lunda Sul", - "19" => "Bengo", - "20" => "Luanda"), -"AR" => array( - "01" => "Buenos Aires", - "02" => "Catamarca", - "03" => "Chaco", - "04" => "Chubut", - "05" => "Cordoba", - "06" => "Corrientes", - "07" => "Distrito Federal", - "08" => "Entre Rios", - "09" => "Formosa", - "10" => "Jujuy", - "11" => "La Pampa", - "12" => "La Rioja", - "13" => "Mendoza", - "14" => "Misiones", - "15" => "Neuquen", - "16" => "Rio Negro", - "17" => "Salta", - "18" => "San Juan", - "19" => "San Luis", - "20" => "Santa Cruz", - "21" => "Santa Fe", - "22" => "Santiago del Estero", - "23" => "Tierra del Fuego", - "24" => "Tucuman"), -"AT" => array( - "01" => "Burgenland", - "02" => "Karnten", - "03" => "Niederosterreich", - "04" => "Oberosterreich", - "05" => "Salzburg", - "06" => "Steiermark", - "07" => "Tirol", - "08" => "Vorarlberg", - "09" => "Wien"), -"AU" => array( - "01" => "Australian Capital Territory", - "02" => "New South Wales", - "03" => "Northern Territory", - "04" => "Queensland", - "05" => "South Australia", - "06" => "Tasmania", - "07" => "Victoria", - "08" => "Western Australia"), -"AZ" => array( - "01" => "Abseron", - "02" => "Agcabadi", - "03" => "Agdam", - "04" => "Agdas", - "05" => "Agstafa", - "06" => "Agsu", - "07" => "Ali Bayramli", - "08" => "Astara", - "09" => "Baki", - "10" => "Balakan", - "11" => "Barda", - "12" => "Beylaqan", - "13" => "Bilasuvar", - "14" => "Cabrayil", - "15" => "Calilabad", - "16" => "Daskasan", - "17" => "Davaci", - "18" => "Fuzuli", - "19" => "Gadabay", - "20" => "Ganca", - "21" => "Goranboy", - "22" => "Goycay", - "23" => "Haciqabul", - "24" => "Imisli", - "25" => "Ismayilli", - "26" => "Kalbacar", - "27" => "Kurdamir", - "28" => "Lacin", - "29" => "Lankaran", - "30" => "Lankaran", - "31" => "Lerik", - "32" => "Masalli", - "33" => "Mingacevir", - "34" => "Naftalan", - "35" => "Naxcivan", - "36" => "Neftcala", - "37" => "Oguz", - "38" => "Qabala", - "39" => "Qax", - "40" => "Qazax", - "41" => "Qobustan", - "42" => "Quba", - "43" => "Qubadli", - "44" => "Qusar", - "45" => "Saatli", - "46" => "Sabirabad", - "47" => "Saki", - "48" => "Saki", - "49" => "Salyan", - "50" => "Samaxi", - "51" => "Samkir", - "52" => "Samux", - "53" => "Siyazan", - "54" => "Sumqayit", - "55" => "Susa", - "56" => "Susa", - "57" => "Tartar", - "58" => "Tovuz", - "59" => "Ucar", - "60" => "Xacmaz", - "61" => "Xankandi", - "62" => "Xanlar", - "63" => "Xizi", - "64" => "Xocali", - "65" => "Xocavand", - "66" => "Yardimli", - "67" => "Yevlax", - "68" => "Yevlax", - "69" => "Zangilan", - "70" => "Zaqatala", - "71" => "Zardab"), -"BA" => array( - "01" => "Federation of Bosnia and Herzegovina", - "02" => "Republika Srpska"), -"BB" => array( - "01" => "Christ Church", - "02" => "Saint Andrew", - "03" => "Saint George", - "04" => "Saint James", - "05" => "Saint John", - "06" => "Saint Joseph", - "07" => "Saint Lucy", - "08" => "Saint Michael", - "09" => "Saint Peter", - "10" => "Saint Philip", - "11" => "Saint Thomas"), -"BD" => array( - "81" => "Dhaka", - "82" => "Khulna", - "83" => "Rajshahi", - "84" => "Chittagong", - "85" => "Barisal", - "86" => "Sylhet"), -"BE" => array( - "01" => "Antwerpen", - "03" => "Hainaut", - "04" => "Liege", - "05" => "Limburg", - "06" => "Luxembourg", - "07" => "Namur", - "08" => "Oost-Vlaanderen", - "09" => "West-Vlaanderen", - "10" => "Brabant Wallon", - "11" => "Brussels Hoofdstedelijk Gewest", - "12" => "Vlaams-Brabant", - "13" => "Flanders", - "14" => "Wallonia"), -"BF" => array( - "15" => "Bam", - "19" => "Boulkiemde", - "20" => "Ganzourgou", - "21" => "Gnagna", - "28" => "Kouritenga", - "33" => "Oudalan", - "34" => "Passore", - "36" => "Sanguie", - "40" => "Soum", - "42" => "Tapoa", - "44" => "Zoundweogo", - "45" => "Bale", - "46" => "Banwa", - "47" => "Bazega", - "48" => "Bougouriba", - "49" => "Boulgou", - "50" => "Gourma", - "51" => "Houet", - "52" => "Ioba", - "53" => "Kadiogo", - "54" => "Kenedougou", - "55" => "Komoe", - "56" => "Komondjari", - "57" => "Kompienga", - "58" => "Kossi", - "59" => "Koulpelogo", - "60" => "Kourweogo", - "61" => "Leraba", - "62" => "Loroum", - "63" => "Mouhoun", - "64" => "Namentenga", - "65" => "Naouri", - "66" => "Nayala", - "67" => "Noumbiel", - "68" => "Oubritenga", - "69" => "Poni", - "70" => "Sanmatenga", - "71" => "Seno", - "72" => "Sissili", - "73" => "Sourou", - "74" => "Tuy", - "75" => "Yagha", - "76" => "Yatenga", - "77" => "Ziro", - "78" => "Zondoma"), -"BG" => array( - "33" => "Mikhaylovgrad", - "38" => "Blagoevgrad", - "39" => "Burgas", - "40" => "Dobrich", - "41" => "Gabrovo", - "42" => "Grad Sofiya", - "43" => "Khaskovo", - "44" => "Kurdzhali", - "45" => "Kyustendil", - "46" => "Lovech", - "47" => "Montana", - "48" => "Pazardzhik", - "49" => "Pernik", - "50" => "Pleven", - "51" => "Plovdiv", - "52" => "Razgrad", - "53" => "Ruse", - "54" => "Shumen", - "55" => "Silistra", - "56" => "Sliven", - "57" => "Smolyan", - "58" => "Sofiya", - "59" => "Stara Zagora", - "60" => "Turgovishte", - "61" => "Varna", - "62" => "Veliko Turnovo", - "63" => "Vidin", - "64" => "Vratsa", - "65" => "Yambol"), -"BH" => array( - "01" => "Al Hadd", - "02" => "Al Manamah", - "05" => "Jidd Hafs", - "06" => "Sitrah", - "08" => "Al Mintaqah al Gharbiyah", - "09" => "Mintaqat Juzur Hawar", - "10" => "Al Mintaqah ash Shamaliyah", - "11" => "Al Mintaqah al Wusta", - "12" => "Madinat", - "13" => "Ar Rifa", - "14" => "Madinat Hamad", - "15" => "Al Muharraq", - "16" => "Al Asimah", - "17" => "Al Janubiyah", - "18" => "Ash Shamaliyah", - "19" => "Al Wusta"), -"BI" => array( - "02" => "Bujumbura", - "09" => "Bubanza", - "10" => "Bururi", - "11" => "Cankuzo", - "12" => "Cibitoke", - "13" => "Gitega", - "14" => "Karuzi", - "15" => "Kayanza", - "16" => "Kirundo", - "17" => "Makamba", - "18" => "Muyinga", - "19" => "Ngozi", - "20" => "Rutana", - "21" => "Ruyigi", - "22" => "Muramvya", - "23" => "Mwaro"), -"BJ" => array( - "07" => "Alibori", - "08" => "Atakora", - "09" => "Atlanyique", - "10" => "Borgou", - "11" => "Collines", - "12" => "Kouffo", - "13" => "Donga", - "14" => "Littoral", - "15" => "Mono", - "16" => "Oueme", - "17" => "Plateau", - "18" => "Zou"), -"BM" => array( - "01" => "Devonshire", - "02" => "Hamilton", - "03" => "Hamilton", - "04" => "Paget", - "05" => "Pembroke", - "06" => "Saint George", - "07" => "Saint George's", - "08" => "Sandys", - "09" => "Smiths", - "10" => "Southampton", - "11" => "Warwick"), -"BN" => array( - "07" => "Alibori", - "08" => "Belait", - "09" => "Brunei and Muara", - "10" => "Temburong", - "11" => "Collines", - "12" => "Kouffo", - "13" => "Donga", - "14" => "Littoral", - "15" => "Tutong", - "16" => "Oueme", - "17" => "Plateau", - "18" => "Zou"), -"BO" => array( - "01" => "Chuquisaca", - "02" => "Cochabamba", - "03" => "El Beni", - "04" => "La Paz", - "05" => "Oruro", - "06" => "Pando", - "07" => "Potosi", - "08" => "Santa Cruz", - "09" => "Tarija"), -"BR" => array( - "01" => "Acre", - "02" => "Alagoas", - "03" => "Amapa", - "04" => "Amazonas", - "05" => "Bahia", - "06" => "Ceara", - "07" => "Distrito Federal", - "08" => "Espirito Santo", - "11" => "Mato Grosso do Sul", - "13" => "Maranhao", - "14" => "Mato Grosso", - "15" => "Minas Gerais", - "16" => "Para", - "17" => "Paraiba", - "18" => "Parana", - "20" => "Piaui", - "21" => "Rio de Janeiro", - "22" => "Rio Grande do Norte", - "23" => "Rio Grande do Sul", - "24" => "Rondonia", - "25" => "Roraima", - "26" => "Santa Catarina", - "27" => "Sao Paulo", - "28" => "Sergipe", - "29" => "Goias", - "30" => "Pernambuco", - "31" => "Tocantins"), -"BS" => array( - "05" => "Bimini", - "06" => "Cat Island", - "10" => "Exuma", - "13" => "Inagua", - "15" => "Long Island", - "16" => "Mayaguana", - "18" => "Ragged Island", - "22" => "Harbour Island", - "23" => "New Providence", - "24" => "Acklins and Crooked Islands", - "25" => "Freeport", - "26" => "Fresh Creek", - "27" => "Governor's Harbour", - "28" => "Green Turtle Cay", - "29" => "High Rock", - "30" => "Kemps Bay", - "31" => "Marsh Harbour", - "32" => "Nichollstown and Berry Islands", - "33" => "Rock Sound", - "34" => "Sandy Point", - "35" => "San Salvador and Rum Cay"), -"BT" => array( - "05" => "Bumthang", - "06" => "Chhukha", - "07" => "Chirang", - "08" => "Daga", - "09" => "Geylegphug", - "10" => "Ha", - "11" => "Lhuntshi", - "12" => "Mongar", - "13" => "Paro", - "14" => "Pemagatsel", - "15" => "Punakha", - "16" => "Samchi", - "17" => "Samdrup", - "18" => "Shemgang", - "19" => "Tashigang", - "20" => "Thimphu", - "21" => "Tongsa", - "22" => "Wangdi Phodrang"), -"BW" => array( - "01" => "Central", - "03" => "Ghanzi", - "04" => "Kgalagadi", - "05" => "Kgatleng", - "06" => "Kweneng", - "08" => "North-East", - "09" => "South-East", - "10" => "Southern", - "11" => "North-West"), -"BY" => array( - "01" => "Brestskaya Voblasts'", - "02" => "Homyel'skaya Voblasts'", - "03" => "Hrodzyenskaya Voblasts'", - "04" => "Minsk", - "05" => "Minskaya Voblasts'", - "06" => "Mahilyowskaya Voblasts'", - "07" => "Vitsyebskaya Voblasts'"), -"BZ" => array( - "01" => "Belize", - "02" => "Cayo", - "03" => "Corozal", - "04" => "Orange Walk", - "05" => "Stann Creek", - "06" => "Toledo"), -"CA" => array( - "AB" => "Alberta", - "BC" => "British Columbia", - "MB" => "Manitoba", - "NB" => "New Brunswick", - "NL" => "Newfoundland", - "NS" => "Nova Scotia", - "NT" => "Northwest Territories", - "NU" => "Nunavut", - "ON" => "Ontario", - "PE" => "Prince Edward Island", - "QC" => "Quebec", - "SK" => "Saskatchewan", - "YT" => "Yukon Territory"), -"CD" => array( - "01" => "Bandundu", - "02" => "Equateur", - "04" => "Kasai-Oriental", - "05" => "Katanga", - "06" => "Kinshasa", - "08" => "Bas-Congo", - "09" => "Orientale", - "10" => "Maniema", - "11" => "Nord-Kivu", - "12" => "Sud-Kivu"), -"CF" => array( - "01" => "Bamingui-Bangoran", - "02" => "Basse-Kotto", - "03" => "Haute-Kotto", - "04" => "Mambere-Kadei", - "05" => "Haut-Mbomou", - "06" => "Kemo", - "07" => "Lobaye", - "08" => "Mbomou", - "09" => "Nana-Mambere", - "11" => "Ouaka", - "12" => "Ouham", - "13" => "Ouham-Pende", - "14" => "Cuvette-Ouest", - "15" => "Nana-Grebizi", - "16" => "Sangha-Mbaere", - "17" => "Ombella-Mpoko", - "18" => "Bangui"), -"CG" => array( - "01" => "Bouenza", - "04" => "Kouilou", - "05" => "Lekoumou", - "06" => "Likouala", - "07" => "Niari", - "08" => "Plateaux", - "10" => "Sangha", - "11" => "Pool", - "12" => "Brazzaville", - "13" => "Cuvette", - "14" => "Cuvette-Ouest"), -"CH" => array( - "01" => "Aargau", - "02" => "Ausser-Rhoden", - "03" => "Basel-Landschaft", - "04" => "Basel-Stadt", - "05" => "Bern", - "06" => "Fribourg", - "07" => "Geneve", - "08" => "Glarus", - "09" => "Graubunden", - "10" => "Inner-Rhoden", - "11" => "Luzern", - "12" => "Neuchatel", - "13" => "Nidwalden", - "14" => "Obwalden", - "15" => "Sankt Gallen", - "16" => "Schaffhausen", - "17" => "Schwyz", - "18" => "Solothurn", - "19" => "Thurgau", - "20" => "Ticino", - "21" => "Uri", - "22" => "Valais", - "23" => "Vaud", - "24" => "Zug", - "25" => "Zurich", - "26" => "Jura"), -"CI" => array( - "74" => "Agneby", - "75" => "Bafing", - "76" => "Bas-Sassandra", - "77" => "Denguele", - "78" => "Dix-Huit Montagnes", - "79" => "Fromager", - "80" => "Haut-Sassandra", - "81" => "Lacs", - "82" => "Lagunes", - "83" => "Marahoue", - "84" => "Moyen-Cavally", - "85" => "Moyen-Comoe", - "86" => "N'zi-Comoe", - "87" => "Savanes", - "88" => "Sud-Bandama", - "89" => "Sud-Comoe", - "90" => "Vallee du Bandama", - "91" => "Worodougou", - "92" => "Zanzan"), -"CL" => array( - "01" => "Valparaiso", - "02" => "Aisen del General Carlos Ibanez del Campo", - "03" => "Antofagasta", - "04" => "Araucania", - "05" => "Atacama", - "06" => "Bio-Bio", - "07" => "Coquimbo", - "08" => "Libertador General Bernardo O'Higgins", - "09" => "Los Lagos", - "10" => "Magallanes y de la Antartica Chilena", - "11" => "Maule", - "12" => "Region Metropolitana", - "13" => "Tarapaca", - "14" => "Los Lagos", - "15" => "Tarapaca", - "16" => "Arica y Parinacota", - "17" => "Los Rios"), -"CM" => array( - "04" => "Est", - "05" => "Littoral", - "07" => "Nord-Ouest", - "08" => "Ouest", - "09" => "Sud-Ouest", - "10" => "Adamaoua", - "11" => "Centre", - "12" => "Extreme-Nord", - "13" => "Nord", - "14" => "Sud"), -"CN" => array( - "01" => "Anhui", - "02" => "Zhejiang", - "03" => "Jiangxi", - "04" => "Jiangsu", - "05" => "Jilin", - "06" => "Qinghai", - "07" => "Fujian", - "08" => "Heilongjiang", - "09" => "Henan", - "10" => "Hebei", - "11" => "Hunan", - "12" => "Hubei", - "13" => "Xinjiang", - "14" => "Xizang", - "15" => "Gansu", - "16" => "Guangxi", - "18" => "Guizhou", - "19" => "Liaoning", - "20" => "Nei Mongol", - "21" => "Ningxia", - "22" => "Beijing", - "23" => "Shanghai", - "24" => "Shanxi", - "25" => "Shandong", - "26" => "Shaanxi", - "28" => "Tianjin", - "29" => "Yunnan", - "30" => "Guangdong", - "31" => "Hainan", - "32" => "Sichuan", - "33" => "Chongqing"), -"CO" => array( - "01" => "Amazonas", - "02" => "Antioquia", - "03" => "Arauca", - "04" => "Atlantico", - "08" => "Caqueta", - "09" => "Cauca", - "10" => "Cesar", - "11" => "Choco", - "12" => "Cordoba", - "14" => "Guaviare", - "15" => "Guainia", - "16" => "Huila", - "17" => "La Guajira", - "19" => "Meta", - "20" => "Narino", - "21" => "Norte de Santander", - "22" => "Putumayo", - "23" => "Quindio", - "24" => "Risaralda", - "25" => "San Andres y Providencia", - "26" => "Santander", - "27" => "Sucre", - "28" => "Tolima", - "29" => "Valle del Cauca", - "30" => "Vaupes", - "31" => "Vichada", - "32" => "Casanare", - "33" => "Cundinamarca", - "34" => "Distrito Especial", - "35" => "Bolivar", - "36" => "Boyaca", - "37" => "Caldas", - "38" => "Magdalena"), -"CR" => array( - "01" => "Alajuela", - "02" => "Cartago", - "03" => "Guanacaste", - "04" => "Heredia", - "06" => "Limon", - "07" => "Puntarenas", - "08" => "San Jose"), -"CU" => array( - "01" => "Pinar del Rio", - "02" => "Ciudad de la Habana", - "03" => "Matanzas", - "04" => "Isla de la Juventud", - "05" => "Camaguey", - "07" => "Ciego de Avila", - "08" => "Cienfuegos", - "09" => "Granma", - "10" => "Guantanamo", - "11" => "La Habana", - "12" => "Holguin", - "13" => "Las Tunas", - "14" => "Sancti Spiritus", - "15" => "Santiago de Cuba", - "16" => "Villa Clara"), -"CV" => array( - "01" => "Boa Vista", - "02" => "Brava", - "04" => "Maio", - "05" => "Paul", - "07" => "Ribeira Grande", - "08" => "Sal", - "10" => "Sao Nicolau", - "11" => "Sao Vicente", - "13" => "Mosteiros", - "14" => "Praia", - "15" => "Santa Catarina", - "16" => "Santa Cruz", - "17" => "Sao Domingos", - "18" => "Sao Filipe", - "19" => "Sao Miguel", - "20" => "Tarrafal"), -"CY" => array( - "01" => "Famagusta", - "02" => "Kyrenia", - "03" => "Larnaca", - "04" => "Nicosia", - "05" => "Limassol", - "06" => "Paphos"), -"CZ" => array( - "52" => "Hlavni mesto Praha", - "78" => "Jihomoravsky kraj", - "79" => "Jihocesky kraj", - "80" => "Vysocina", - "81" => "Karlovarsky kraj", - "82" => "Kralovehradecky kraj", - "83" => "Liberecky kraj", - "84" => "Olomoucky kraj", - "85" => "Moravskoslezsky kraj", - "86" => "Pardubicky kraj", - "87" => "Plzensky kraj", - "88" => "Stredocesky kraj", - "89" => "Ustecky kraj", - "90" => "Zlinsky kraj"), -"DE" => array( - "01" => "Baden-Wurttemberg", - "02" => "Bayern", - "03" => "Bremen", - "04" => "Hamburg", - "05" => "Hessen", - "06" => "Niedersachsen", - "07" => "Nordrhein-Westfalen", - "08" => "Rheinland-Pfalz", - "09" => "Saarland", - "10" => "Schleswig-Holstein", - "11" => "Brandenburg", - "12" => "Mecklenburg-Vorpommern", - "13" => "Sachsen", - "14" => "Sachsen-Anhalt", - "15" => "Thuringen", - "16" => "Berlin"), -"DJ" => array( - "01" => "Ali Sabieh", - "04" => "Obock", - "05" => "Tadjoura", - "06" => "Dikhil", - "07" => "Djibouti", - "08" => "Arta"), -"DK" => array( - "17" => "Hovedstaden", - "18" => "Midtjylland", - "19" => "Nordjylland", - "20" => "Sjelland", - "21" => "Syddanmark"), -"DM" => array( - "02" => "Saint Andrew", - "03" => "Saint David", - "04" => "Saint George", - "05" => "Saint John", - "06" => "Saint Joseph", - "07" => "Saint Luke", - "08" => "Saint Mark", - "09" => "Saint Patrick", - "10" => "Saint Paul", - "11" => "Saint Peter"), -"DO" => array( - "01" => "Azua", - "02" => "Baoruco", - "03" => "Barahona", - "04" => "Dajabon", - "05" => "Distrito Nacional", - "06" => "Duarte", - "08" => "Espaillat", - "09" => "Independencia", - "10" => "La Altagracia", - "11" => "Elias Pina", - "12" => "La Romana", - "14" => "Maria Trinidad Sanchez", - "15" => "Monte Cristi", - "16" => "Pedernales", - "17" => "Peravia", - "18" => "Puerto Plata", - "19" => "Salcedo", - "20" => "Samana", - "21" => "Sanchez Ramirez", - "23" => "San Juan", - "24" => "San Pedro De Macoris", - "25" => "Santiago", - "26" => "Santiago Rodriguez", - "27" => "Valverde", - "28" => "El Seibo", - "29" => "Hato Mayor", - "30" => "La Vega", - "31" => "Monsenor Nouel", - "32" => "Monte Plata", - "33" => "San Cristobal", - "34" => "Distrito Nacional", - "35" => "Peravia", - "36" => "San Jose de Ocoa", - "37" => "Santo Domingo"), -"DZ" => array( - "01" => "Alger", - "03" => "Batna", - "04" => "Constantine", - "06" => "Medea", - "07" => "Mostaganem", - "09" => "Oran", - "10" => "Saida", - "12" => "Setif", - "13" => "Tiaret", - "14" => "Tizi Ouzou", - "15" => "Tlemcen", - "18" => "Bejaia", - "19" => "Biskra", - "20" => "Blida", - "21" => "Bouira", - "22" => "Djelfa", - "23" => "Guelma", - "24" => "Jijel", - "25" => "Laghouat", - "26" => "Mascara", - "27" => "M'sila", - "29" => "Oum el Bouaghi", - "30" => "Sidi Bel Abbes", - "31" => "Skikda", - "33" => "Tebessa", - "34" => "Adrar", - "35" => "Ain Defla", - "36" => "Ain Temouchent", - "37" => "Annaba", - "38" => "Bechar", - "39" => "Bordj Bou Arreridj", - "40" => "Boumerdes", - "41" => "Chlef", - "42" => "El Bayadh", - "43" => "El Oued", - "44" => "El Tarf", - "45" => "Ghardaia", - "46" => "Illizi", - "47" => "Khenchela", - "48" => "Mila", - "49" => "Naama", - "50" => "Ouargla", - "51" => "Relizane", - "52" => "Souk Ahras", - "53" => "Tamanghasset", - "54" => "Tindouf", - "55" => "Tipaza", - "56" => "Tissemsilt"), -"EC" => array( - "01" => "Galapagos", - "02" => "Azuay", - "03" => "Bolivar", - "04" => "Canar", - "05" => "Carchi", - "06" => "Chimborazo", - "07" => "Cotopaxi", - "08" => "El Oro", - "09" => "Esmeraldas", - "10" => "Guayas", - "11" => "Imbabura", - "12" => "Loja", - "13" => "Los Rios", - "14" => "Manabi", - "15" => "Morona-Santiago", - "17" => "Pastaza", - "18" => "Pichincha", - "19" => "Tungurahua", - "20" => "Zamora-Chinchipe", - "22" => "Sucumbios", - "23" => "Napo", - "24" => "Orellana"), -"EE" => array( - "01" => "Harjumaa", - "02" => "Hiiumaa", - "03" => "Ida-Virumaa", - "04" => "Jarvamaa", - "05" => "Jogevamaa", - "06" => "Kohtla-Jarve", - "07" => "Laanemaa", - "08" => "Laane-Virumaa", - "09" => "Narva", - "10" => "Parnu", - "11" => "Parnumaa", - "12" => "Polvamaa", - "13" => "Raplamaa", - "14" => "Saaremaa", - "15" => "Sillamae", - "16" => "Tallinn", - "17" => "Tartu", - "18" => "Tartumaa", - "19" => "Valgamaa", - "20" => "Viljandimaa", - "21" => "Vorumaa"), -"EG" => array( - "01" => "Ad Daqahliyah", - "02" => "Al Bahr al Ahmar", - "03" => "Al Buhayrah", - "04" => "Al Fayyum", - "05" => "Al Gharbiyah", - "06" => "Al Iskandariyah", - "07" => "Al Isma'iliyah", - "08" => "Al Jizah", - "09" => "Al Minufiyah", - "10" => "Al Minya", - "11" => "Al Qahirah", - "12" => "Al Qalyubiyah", - "13" => "Al Wadi al Jadid", - "14" => "Ash Sharqiyah", - "15" => "As Suways", - "16" => "Aswan", - "17" => "Asyut", - "18" => "Bani Suwayf", - "19" => "Bur Sa'id", - "20" => "Dumyat", - "21" => "Kafr ash Shaykh", - "22" => "Matruh", - "23" => "Qina", - "24" => "Suhaj", - "26" => "Janub Sina'", - "27" => "Shamal Sina'"), -"ER" => array( - "01" => "Anseba", - "02" => "Debub", - "03" => "Debubawi K'eyih Bahri", - "04" => "Gash Barka", - "05" => "Ma'akel", - "06" => "Semenawi K'eyih Bahri"), -"ES" => array( - "07" => "Islas Baleares", - "27" => "La Rioja", - "29" => "Madrid", - "31" => "Murcia", - "32" => "Navarra", - "34" => "Asturias", - "39" => "Cantabria", - "51" => "Andalucia", - "52" => "Aragon", - "53" => "Canarias", - "54" => "Castilla-La Mancha", - "55" => "Castilla y Leon", - "56" => "Catalonia", - "57" => "Extremadura", - "58" => "Galicia", - "59" => "Pais Vasco", - "60" => "Comunidad Valenciana"), -"ET" => array( - "44" => "Adis Abeba", - "45" => "Afar", - "46" => "Amara", - "47" => "Binshangul Gumuz", - "48" => "Dire Dawa", - "49" => "Gambela Hizboch", - "50" => "Hareri Hizb", - "51" => "Oromiya", - "52" => "Sumale", - "53" => "Tigray", - "54" => "YeDebub Biheroch Bihereseboch na Hizboch"), -"FI" => array( - "01" => "Aland", - "06" => "Lapland", - "08" => "Oulu", - "13" => "Southern Finland", - "14" => "Eastern Finland", - "15" => "Western Finland"), -"FJ" => array( - "01" => "Central", - "02" => "Eastern", - "03" => "Northern", - "04" => "Rotuma", - "05" => "Western"), -"FM" => array( - "01" => "Kosrae", - "02" => "Pohnpei", - "03" => "Chuuk", - "04" => "Yap"), -"FR" => array( - "97" => "Aquitaine", - "98" => "Auvergne", - "99" => "Basse-Normandie", - "A1" => "Bourgogne", - "A2" => "Bretagne", - "A3" => "Centre", - "A4" => "Champagne-Ardenne", - "A5" => "Corse", - "A6" => "Franche-Comte", - "A7" => "Haute-Normandie", - "A8" => "Ile-de-France", - "A9" => "Languedoc-Roussillon", - "B1" => "Limousin", - "B2" => "Lorraine", - "B3" => "Midi-Pyrenees", - "B4" => "Nord-Pas-de-Calais", - "B5" => "Pays de la Loire", - "B6" => "Picardie", - "B7" => "Poitou-Charentes", - "B8" => "Provence-Alpes-Cote d'Azur", - "B9" => "Rhone-Alpes", - "C1" => "Alsace"), -"GA" => array( - "01" => "Estuaire", - "02" => "Haut-Ogooue", - "03" => "Moyen-Ogooue", - "04" => "Ngounie", - "05" => "Nyanga", - "06" => "Ogooue-Ivindo", - "07" => "Ogooue-Lolo", - "08" => "Ogooue-Maritime", - "09" => "Woleu-Ntem"), -"GB" => array( - "A1" => "Barking and Dagenham", - "A2" => "Barnet", - "A3" => "Barnsley", - "A4" => "Bath and North East Somerset", - "A5" => "Bedfordshire", - "A6" => "Bexley", - "A7" => "Birmingham", - "A8" => "Blackburn with Darwen", - "A9" => "Blackpool", - "B1" => "Bolton", - "B2" => "Bournemouth", - "B3" => "Bracknell Forest", - "B4" => "Bradford", - "B5" => "Brent", - "B6" => "Brighton and Hove", - "B7" => "Bristol, City of", - "B8" => "Bromley", - "B9" => "Buckinghamshire", - "C1" => "Bury", - "C2" => "Calderdale", - "C3" => "Cambridgeshire", - "C4" => "Camden", - "C5" => "Cheshire", - "C6" => "Cornwall", - "C7" => "Coventry", - "C8" => "Croydon", - "C9" => "Cumbria", - "D1" => "Darlington", - "D2" => "Derby", - "D3" => "Derbyshire", - "D4" => "Devon", - "D5" => "Doncaster", - "D6" => "Dorset", - "D7" => "Dudley", - "D8" => "Durham", - "D9" => "Ealing", - "E1" => "East Riding of Yorkshire", - "E2" => "East Sussex", - "E3" => "Enfield", - "E4" => "Essex", - "E5" => "Gateshead", - "E6" => "Gloucestershire", - "E7" => "Greenwich", - "E8" => "Hackney", - "E9" => "Halton", - "F1" => "Hammersmith and Fulham", - "F2" => "Hampshire", - "F3" => "Haringey", - "F4" => "Harrow", - "F5" => "Hartlepool", - "F6" => "Havering", - "F7" => "Herefordshire", - "F8" => "Hertford", - "F9" => "Hillingdon", - "G1" => "Hounslow", - "G2" => "Isle of Wight", - "G3" => "Islington", - "G4" => "Kensington and Chelsea", - "G5" => "Kent", - "G6" => "Kingston upon Hull, City of", - "G7" => "Kingston upon Thames", - "G8" => "Kirklees", - "G9" => "Knowsley", - "H1" => "Lambeth", - "H2" => "Lancashire", - "H3" => "Leeds", - "H4" => "Leicester", - "H5" => "Leicestershire", - "H6" => "Lewisham", - "H7" => "Lincolnshire", - "H8" => "Liverpool", - "H9" => "London, City of", - "I1" => "Luton", - "I2" => "Manchester", - "I3" => "Medway", - "I4" => "Merton", - "I5" => "Middlesbrough", - "I6" => "Milton Keynes", - "I7" => "Newcastle upon Tyne", - "I8" => "Newham", - "I9" => "Norfolk", - "J1" => "Northamptonshire", - "J2" => "North East Lincolnshire", - "J3" => "North Lincolnshire", - "J4" => "North Somerset", - "J5" => "North Tyneside", - "J6" => "Northumberland", - "J7" => "North Yorkshire", - "J8" => "Nottingham", - "J9" => "Nottinghamshire", - "K1" => "Oldham", - "K2" => "Oxfordshire", - "K3" => "Peterborough", - "K4" => "Plymouth", - "K5" => "Poole", - "K6" => "Portsmouth", - "K7" => "Reading", - "K8" => "Redbridge", - "K9" => "Redcar and Cleveland", - "L1" => "Richmond upon Thames", - "L2" => "Rochdale", - "L3" => "Rotherham", - "L4" => "Rutland", - "L5" => "Salford", - "L6" => "Shropshire", - "L7" => "Sandwell", - "L8" => "Sefton", - "L9" => "Sheffield", - "M1" => "Slough", - "M2" => "Solihull", - "M3" => "Somerset", - "M4" => "Southampton", - "M5" => "Southend-on-Sea", - "M6" => "South Gloucestershire", - "M7" => "South Tyneside", - "M8" => "Southwark", - "M9" => "Staffordshire", - "N1" => "St. Helens", - "N2" => "Stockport", - "N3" => "Stockton-on-Tees", - "N4" => "Stoke-on-Trent", - "N5" => "Suffolk", - "N6" => "Sunderland", - "N7" => "Surrey", - "N8" => "Sutton", - "N9" => "Swindon", - "O1" => "Tameside", - "O2" => "Telford and Wrekin", - "O3" => "Thurrock", - "O4" => "Torbay", - "O5" => "Tower Hamlets", - "O6" => "Trafford", - "O7" => "Wakefield", - "O8" => "Walsall", - "O9" => "Waltham Forest", - "P1" => "Wandsworth", - "P2" => "Warrington", - "P3" => "Warwickshire", - "P4" => "West Berkshire", - "P5" => "Westminster", - "P6" => "West Sussex", - "P7" => "Wigan", - "P8" => "Wiltshire", - "P9" => "Windsor and Maidenhead", - "Q1" => "Wirral", - "Q2" => "Wokingham", - "Q3" => "Wolverhampton", - "Q4" => "Worcestershire", - "Q5" => "York", - "Q6" => "Antrim", - "Q7" => "Ards", - "Q8" => "Armagh", - "Q9" => "Ballymena", - "R1" => "Ballymoney", - "R2" => "Banbridge", - "R3" => "Belfast", - "R4" => "Carrickfergus", - "R5" => "Castlereagh", - "R6" => "Coleraine", - "R7" => "Cookstown", - "R8" => "Craigavon", - "R9" => "Down", - "S1" => "Dungannon", - "S2" => "Fermanagh", - "S3" => "Larne", - "S4" => "Limavady", - "S5" => "Lisburn", - "S6" => "Derry", - "S7" => "Magherafelt", - "S8" => "Moyle", - "S9" => "Newry and Mourne", - "T1" => "Newtownabbey", - "T2" => "North Down", - "T3" => "Omagh", - "T4" => "Strabane", - "T5" => "Aberdeen City", - "T6" => "Aberdeenshire", - "T7" => "Angus", - "T8" => "Argyll and Bute", - "T9" => "Scottish Borders, The", - "U1" => "Clackmannanshire", - "U2" => "Dumfries and Galloway", - "U3" => "Dundee City", - "U4" => "East Ayrshire", - "U5" => "East Dunbartonshire", - "U6" => "East Lothian", - "U7" => "East Renfrewshire", - "U8" => "Edinburgh, City of", - "U9" => "Falkirk", - "V1" => "Fife", - "V2" => "Glasgow City", - "V3" => "Highland", - "V4" => "Inverclyde", - "V5" => "Midlothian", - "V6" => "Moray", - "V7" => "North Ayrshire", - "V8" => "North Lanarkshire", - "V9" => "Orkney", - "W1" => "Perth and Kinross", - "W2" => "Renfrewshire", - "W3" => "Shetland Islands", - "W4" => "South Ayrshire", - "W5" => "South Lanarkshire", - "W6" => "Stirling", - "W7" => "West Dunbartonshire", - "W8" => "Eilean Siar", - "W9" => "West Lothian", - "X1" => "Isle of Anglesey", - "X2" => "Blaenau Gwent", - "X3" => "Bridgend", - "X4" => "Caerphilly", - "X5" => "Cardiff", - "X6" => "Ceredigion", - "X7" => "Carmarthenshire", - "X8" => "Conwy", - "X9" => "Denbighshire", - "Y1" => "Flintshire", - "Y2" => "Gwynedd", - "Y3" => "Merthyr Tydfil", - "Y4" => "Monmouthshire", - "Y5" => "Neath Port Talbot", - "Y6" => "Newport", - "Y7" => "Pembrokeshire", - "Y8" => "Powys", - "Y9" => "Rhondda Cynon Taff", - "Z1" => "Swansea", - "Z2" => "Torfaen", - "Z3" => "Vale of Glamorgan, The", - "Z4" => "Wrexham"), -"GD" => array( - "01" => "Saint Andrew", - "02" => "Saint David", - "03" => "Saint George", - "04" => "Saint John", - "05" => "Saint Mark", - "06" => "Saint Patrick"), -"GE" => array( - "01" => "Abashis Raioni", - "02" => "Abkhazia", - "03" => "Adigenis Raioni", - "04" => "Ajaria", - "05" => "Akhalgoris Raioni", - "06" => "Akhalk'alak'is Raioni", - "07" => "Akhalts'ikhis Raioni", - "08" => "Akhmetis Raioni", - "09" => "Ambrolauris Raioni", - "10" => "Aspindzis Raioni", - "11" => "Baghdat'is Raioni", - "12" => "Bolnisis Raioni", - "13" => "Borjomis Raioni", - "14" => "Chiat'ura", - "15" => "Ch'khorotsqus Raioni", - "16" => "Ch'okhatauris Raioni", - "17" => "Dedop'listsqaros Raioni", - "18" => "Dmanisis Raioni", - "19" => "Dushet'is Raioni", - "20" => "Gardabanis Raioni", - "21" => "Gori", - "22" => "Goris Raioni", - "23" => "Gurjaanis Raioni", - "24" => "Javis Raioni", - "25" => "K'arelis Raioni", - "26" => "Kaspis Raioni", - "27" => "Kharagaulis Raioni", - "28" => "Khashuris Raioni", - "29" => "Khobis Raioni", - "30" => "Khonis Raioni", - "31" => "K'ut'aisi", - "32" => "Lagodekhis Raioni", - "33" => "Lanch'khut'is Raioni", - "34" => "Lentekhis Raioni", - "35" => "Marneulis Raioni", - "36" => "Martvilis Raioni", - "37" => "Mestiis Raioni", - "38" => "Mts'khet'is Raioni", - "39" => "Ninotsmindis Raioni", - "40" => "Onis Raioni", - "41" => "Ozurget'is Raioni", - "42" => "P'ot'i", - "43" => "Qazbegis Raioni", - "44" => "Qvarlis Raioni", - "45" => "Rust'avi", - "46" => "Sach'kheris Raioni", - "47" => "Sagarejos Raioni", - "48" => "Samtrediis Raioni", - "49" => "Senakis Raioni", - "50" => "Sighnaghis Raioni", - "51" => "T'bilisi", - "52" => "T'elavis Raioni", - "53" => "T'erjolis Raioni", - "54" => "T'et'ritsqaros Raioni", - "55" => "T'ianet'is Raioni", - "56" => "Tqibuli", - "57" => "Ts'ageris Raioni", - "58" => "Tsalenjikhis Raioni", - "59" => "Tsalkis Raioni", - "60" => "Tsqaltubo", - "61" => "Vanis Raioni", - "62" => "Zestap'onis Raioni", - "63" => "Zugdidi", - "64" => "Zugdidis Raioni"), -"GH" => array( - "01" => "Greater Accra", - "02" => "Ashanti", - "03" => "Brong-Ahafo", - "04" => "Central", - "05" => "Eastern", - "06" => "Northern", - "08" => "Volta", - "09" => "Western", - "10" => "Upper East", - "11" => "Upper West"), -"GL" => array( - "01" => "Nordgronland", - "02" => "Ostgronland", - "03" => "Vestgronland"), -"GM" => array( - "01" => "Banjul", - "02" => "Lower River", - "03" => "Central River", - "04" => "Upper River", - "05" => "Western", - "07" => "North Bank"), -"GN" => array( - "01" => "Beyla", - "02" => "Boffa", - "03" => "Boke", - "04" => "Conakry", - "05" => "Dabola", - "06" => "Dalaba", - "07" => "Dinguiraye", - "09" => "Faranah", - "10" => "Forecariah", - "11" => "Fria", - "12" => "Gaoual", - "13" => "Gueckedou", - "15" => "Kerouane", - "16" => "Kindia", - "17" => "Kissidougou", - "18" => "Koundara", - "19" => "Kouroussa", - "21" => "Macenta", - "22" => "Mali", - "23" => "Mamou", - "25" => "Pita", - "27" => "Telimele", - "28" => "Tougue", - "29" => "Yomou", - "30" => "Coyah", - "31" => "Dubreka", - "32" => "Kankan", - "33" => "Koubia", - "34" => "Labe", - "35" => "Lelouma", - "36" => "Lola", - "37" => "Mandiana", - "38" => "Nzerekore", - "39" => "Siguiri"), -"GQ" => array( - "03" => "Annobon", - "04" => "Bioko Norte", - "05" => "Bioko Sur", - "06" => "Centro Sur", - "07" => "Kie-Ntem", - "08" => "Litoral", - "09" => "Wele-Nzas"), -"GR" => array( - "01" => "Evros", - "02" => "Rodhopi", - "03" => "Xanthi", - "04" => "Drama", - "05" => "Serrai", - "06" => "Kilkis", - "07" => "Pella", - "08" => "Florina", - "09" => "Kastoria", - "10" => "Grevena", - "11" => "Kozani", - "12" => "Imathia", - "13" => "Thessaloniki", - "14" => "Kavala", - "15" => "Khalkidhiki", - "16" => "Pieria", - "17" => "Ioannina", - "18" => "Thesprotia", - "19" => "Preveza", - "20" => "Arta", - "21" => "Larisa", - "22" => "Trikala", - "23" => "Kardhitsa", - "24" => "Magnisia", - "25" => "Kerkira", - "26" => "Levkas", - "27" => "Kefallinia", - "28" => "Zakinthos", - "29" => "Fthiotis", - "30" => "Evritania", - "31" => "Aitolia kai Akarnania", - "32" => "Fokis", - "33" => "Voiotia", - "34" => "Evvoia", - "35" => "Attiki", - "36" => "Argolis", - "37" => "Korinthia", - "38" => "Akhaia", - "39" => "Ilia", - "40" => "Messinia", - "41" => "Arkadhia", - "42" => "Lakonia", - "43" => "Khania", - "44" => "Rethimni", - "45" => "Iraklion", - "46" => "Lasithi", - "47" => "Dhodhekanisos", - "48" => "Samos", - "49" => "Kikladhes", - "50" => "Khios", - "51" => "Lesvos"), -"GT" => array( - "01" => "Alta Verapaz", - "02" => "Baja Verapaz", - "03" => "Chimaltenango", - "04" => "Chiquimula", - "05" => "El Progreso", - "06" => "Escuintla", - "07" => "Guatemala", - "08" => "Huehuetenango", - "09" => "Izabal", - "10" => "Jalapa", - "11" => "Jutiapa", - "12" => "Peten", - "13" => "Quetzaltenango", - "14" => "Quiche", - "15" => "Retalhuleu", - "16" => "Sacatepequez", - "17" => "San Marcos", - "18" => "Santa Rosa", - "19" => "Solola", - "20" => "Suchitepequez", - "21" => "Totonicapan", - "22" => "Zacapa"), -"GW" => array( - "01" => "Bafata", - "02" => "Quinara", - "04" => "Oio", - "05" => "Bolama", - "06" => "Cacheu", - "07" => "Tombali", - "10" => "Gabu", - "11" => "Bissau", - "12" => "Biombo"), -"GY" => array( - "10" => "Barima-Waini", - "11" => "Cuyuni-Mazaruni", - "12" => "Demerara-Mahaica", - "13" => "East Berbice-Corentyne", - "14" => "Essequibo Islands-West Demerara", - "15" => "Mahaica-Berbice", - "16" => "Pomeroon-Supenaam", - "17" => "Potaro-Siparuni", - "18" => "Upper Demerara-Berbice", - "19" => "Upper Takutu-Upper Essequibo"), -"HN" => array( - "01" => "Atlantida", - "02" => "Choluteca", - "03" => "Colon", - "04" => "Comayagua", - "05" => "Copan", - "06" => "Cortes", - "07" => "El Paraiso", - "08" => "Francisco Morazan", - "09" => "Gracias a Dios", - "10" => "Intibuca", - "11" => "Islas de la Bahia", - "12" => "La Paz", - "13" => "Lempira", - "14" => "Ocotepeque", - "15" => "Olancho", - "16" => "Santa Barbara", - "17" => "Valle", - "18" => "Yoro"), -"HR" => array( - "01" => "Bjelovarsko-Bilogorska", - "02" => "Brodsko-Posavska", - "03" => "Dubrovacko-Neretvanska", - "04" => "Istarska", - "05" => "Karlovacka", - "06" => "Koprivnicko-Krizevacka", - "07" => "Krapinsko-Zagorska", - "08" => "Licko-Senjska", - "09" => "Medimurska", - "10" => "Osjecko-Baranjska", - "11" => "Pozesko-Slavonska", - "12" => "Primorsko-Goranska", - "13" => "Sibensko-Kninska", - "14" => "Sisacko-Moslavacka", - "15" => "Splitsko-Dalmatinska", - "16" => "Varazdinska", - "17" => "Viroviticko-Podravska", - "18" => "Vukovarsko-Srijemska", - "19" => "Zadarska", - "20" => "Zagrebacka", - "21" => "Grad Zagreb"), -"HT" => array( - "03" => "Nord-Ouest", - "06" => "Artibonite", - "07" => "Centre", - "09" => "Nord", - "10" => "Nord-Est", - "11" => "Ouest", - "12" => "Sud", - "13" => "Sud-Est", - "14" => "Grand' Anse", - "15" => "Nippes"), -"HU" => array( - "01" => "Bacs-Kiskun", - "02" => "Baranya", - "03" => "Bekes", - "04" => "Borsod-Abauj-Zemplen", - "05" => "Budapest", - "06" => "Csongrad", - "07" => "Debrecen", - "08" => "Fejer", - "09" => "Gyor-Moson-Sopron", - "10" => "Hajdu-Bihar", - "11" => "Heves", - "12" => "Komarom-Esztergom", - "13" => "Miskolc", - "14" => "Nograd", - "15" => "Pecs", - "16" => "Pest", - "17" => "Somogy", - "18" => "Szabolcs-Szatmar-Bereg", - "19" => "Szeged", - "20" => "Jasz-Nagykun-Szolnok", - "21" => "Tolna", - "22" => "Vas", - "23" => "Veszprem", - "24" => "Zala", - "25" => "Gyor", - "26" => "Bekescsaba", - "27" => "Dunaujvaros", - "28" => "Eger", - "29" => "Hodmezovasarhely", - "30" => "Kaposvar", - "31" => "Kecskemet", - "32" => "Nagykanizsa", - "33" => "Nyiregyhaza", - "34" => "Sopron", - "35" => "Szekesfehervar", - "36" => "Szolnok", - "37" => "Szombathely", - "38" => "Tatabanya", - "39" => "Veszprem", - "40" => "Zalaegerszeg", - "41" => "Salgotarjan", - "42" => "Szekszard", - "43" => "Erd"), -"ID" => array( - "01" => "Aceh", - "02" => "Bali", - "03" => "Bengkulu", - "04" => "Jakarta Raya", - "05" => "Jambi", - "07" => "Jawa Tengah", - "08" => "Jawa Timur", - "10" => "Yogyakarta", - "11" => "Kalimantan Barat", - "12" => "Kalimantan Selatan", - "13" => "Kalimantan Tengah", - "14" => "Kalimantan Timur", - "15" => "Lampung", - "17" => "Nusa Tenggara Barat", - "18" => "Nusa Tenggara Timur", - "21" => "Sulawesi Tengah", - "22" => "Sulawesi Tenggara", - "24" => "Sumatera Barat", - "26" => "Sumatera Utara", - "28" => "Maluku", - "29" => "Maluku Utara", - "30" => "Jawa Barat", - "31" => "Sulawesi Utara", - "32" => "Sumatera Selatan", - "33" => "Banten", - "34" => "Gorontalo", - "35" => "Kepulauan Bangka Belitung", - "36" => "Papua", - "37" => "Riau", - "38" => "Sulawesi Selatan", - "39" => "Irian Jaya Barat", - "40" => "Kepulauan Riau", - "41" => "Sulawesi Barat"), -"IE" => array( - "01" => "Carlow", - "02" => "Cavan", - "03" => "Clare", - "04" => "Cork", - "06" => "Donegal", - "07" => "Dublin", - "10" => "Galway", - "11" => "Kerry", - "12" => "Kildare", - "13" => "Kilkenny", - "14" => "Leitrim", - "15" => "Laois", - "16" => "Limerick", - "18" => "Longford", - "19" => "Louth", - "20" => "Mayo", - "21" => "Meath", - "22" => "Monaghan", - "23" => "Offaly", - "24" => "Roscommon", - "25" => "Sligo", - "26" => "Tipperary", - "27" => "Waterford", - "29" => "Westmeath", - "30" => "Wexford", - "31" => "Wicklow"), -"IL" => array( - "01" => "HaDarom", - "02" => "HaMerkaz", - "03" => "HaZafon", - "04" => "Hefa", - "05" => "Tel Aviv", - "06" => "Yerushalayim"), -"IN" => array( - "01" => "Andaman and Nicobar Islands", - "02" => "Andhra Pradesh", - "03" => "Assam", - "05" => "Chandigarh", - "06" => "Dadra and Nagar Haveli", - "07" => "Delhi", - "09" => "Gujarat", - "10" => "Haryana", - "11" => "Himachal Pradesh", - "12" => "Jammu and Kashmir", - "13" => "Kerala", - "14" => "Lakshadweep", - "16" => "Maharashtra", - "17" => "Manipur", - "18" => "Meghalaya", - "19" => "Karnataka", - "20" => "Nagaland", - "21" => "Orissa", - "22" => "Puducherry", - "23" => "Punjab", - "24" => "Rajasthan", - "25" => "Tamil Nadu", - "26" => "Tripura", - "28" => "West Bengal", - "29" => "Sikkim", - "30" => "Arunachal Pradesh", - "31" => "Mizoram", - "32" => "Daman and Diu", - "33" => "Goa", - "34" => "Bihar", - "35" => "Madhya Pradesh", - "36" => "Uttar Pradesh", - "37" => "Chhattisgarh", - "38" => "Jharkhand", - "39" => "Uttarakhand"), -"IQ" => array( - "01" => "Al Anbar", - "02" => "Al Basrah", - "03" => "Al Muthanna", - "04" => "Al Qadisiyah", - "05" => "As Sulaymaniyah", - "06" => "Babil", - "07" => "Baghdad", - "08" => "Dahuk", - "09" => "Dhi Qar", - "10" => "Diyala", - "11" => "Arbil", - "12" => "Karbala'", - "13" => "At Ta'mim", - "14" => "Maysan", - "15" => "Ninawa", - "16" => "Wasit", - "17" => "An Najaf", - "18" => "Salah ad Din"), -"IR" => array( - "01" => "Azarbayjan-e Bakhtari", - "03" => "Chahar Mahall va Bakhtiari", - "04" => "Sistan va Baluchestan", - "05" => "Kohkiluyeh va Buyer Ahmadi", - "07" => "Fars", - "08" => "Gilan", - "09" => "Hamadan", - "10" => "Ilam", - "11" => "Hormozgan", - "12" => "Kerman", - "13" => "Bakhtaran", - "15" => "Khuzestan", - "16" => "Kordestan", - "17" => "Mazandaran", - "18" => "Semnan Province", - "19" => "Markazi", - "21" => "Zanjan", - "22" => "Bushehr", - "23" => "Lorestan", - "24" => "Markazi", - "25" => "Semnan", - "26" => "Tehran", - "27" => "Zanjan", - "28" => "Esfahan", - "29" => "Kerman", - "30" => "Khorasan", - "31" => "Yazd", - "32" => "Ardabil", - "33" => "East Azarbaijan", - "34" => "Markazi", - "35" => "Mazandaran", - "36" => "Zanjan", - "37" => "Golestan", - "38" => "Qazvin", - "39" => "Qom", - "40" => "Yazd", - "41" => "Khorasan-e Janubi", - "42" => "Khorasan-e Razavi", - "43" => "Khorasan-e Shemali"), -"IS" => array( - "03" => "Arnessysla", - "05" => "Austur-Hunavatnssysla", - "06" => "Austur-Skaftafellssysla", - "07" => "Borgarfjardarsysla", - "09" => "Eyjafjardarsysla", - "10" => "Gullbringusysla", - "15" => "Kjosarsysla", - "17" => "Myrasysla", - "20" => "Nordur-Mulasysla", - "21" => "Nordur-Tingeyjarsysla", - "23" => "Rangarvallasysla", - "28" => "Skagafjardarsysla", - "29" => "Snafellsnes- og Hnappadalssysla", - "30" => "Strandasysla", - "31" => "Sudur-Mulasysla", - "32" => "Sudur-Tingeyjarsysla", - "34" => "Vestur-Bardastrandarsysla", - "35" => "Vestur-Hunavatnssysla", - "36" => "Vestur-Isafjardarsysla", - "37" => "Vestur-Skaftafellssysla", - "40" => "Norourland Eystra", - "41" => "Norourland Vestra", - "42" => "Suourland", - "43" => "Suournes", - "44" => "Vestfiroir", - "45" => "Vesturland"), -"IT" => array( - "01" => "Abruzzi", - "02" => "Basilicata", - "03" => "Calabria", - "04" => "Campania", - "05" => "Emilia-Romagna", - "06" => "Friuli-Venezia Giulia", - "07" => "Lazio", - "08" => "Liguria", - "09" => "Lombardia", - "10" => "Marche", - "11" => "Molise", - "12" => "Piemonte", - "13" => "Puglia", - "14" => "Sardegna", - "15" => "Sicilia", - "16" => "Toscana", - "17" => "Trentino-Alto Adige", - "18" => "Umbria", - "19" => "Valle d'Aosta", - "20" => "Veneto"), -"JM" => array( - "01" => "Clarendon", - "02" => "Hanover", - "04" => "Manchester", - "07" => "Portland", - "08" => "Saint Andrew", - "09" => "Saint Ann", - "10" => "Saint Catherine", - "11" => "Saint Elizabeth", - "12" => "Saint James", - "13" => "Saint Mary", - "14" => "Saint Thomas", - "15" => "Trelawny", - "16" => "Westmoreland", - "17" => "Kingston"), -"JO" => array( - "02" => "Al Balqa'", - "09" => "Al Karak", - "12" => "At Tafilah", - "15" => "Al Mafraq", - "16" => "Amman", - "17" => "Az Zaraqa", - "18" => "Irbid", - "19" => "Ma'an", - "20" => "Ajlun", - "21" => "Al Aqabah", - "22" => "Jarash", - "23" => "Madaba"), -"JP" => array( - "01" => "Aichi", - "02" => "Akita", - "03" => "Aomori", - "04" => "Chiba", - "05" => "Ehime", - "06" => "Fukui", - "07" => "Fukuoka", - "08" => "Fukushima", - "09" => "Gifu", - "10" => "Gumma", - "11" => "Hiroshima", - "12" => "Hokkaido", - "13" => "Hyogo", - "14" => "Ibaraki", - "15" => "Ishikawa", - "16" => "Iwate", - "17" => "Kagawa", - "18" => "Kagoshima", - "19" => "Kanagawa", - "20" => "Kochi", - "21" => "Kumamoto", - "22" => "Kyoto", - "23" => "Mie", - "24" => "Miyagi", - "25" => "Miyazaki", - "26" => "Nagano", - "27" => "Nagasaki", - "28" => "Nara", - "29" => "Niigata", - "30" => "Oita", - "31" => "Okayama", - "32" => "Osaka", - "33" => "Saga", - "34" => "Saitama", - "35" => "Shiga", - "36" => "Shimane", - "37" => "Shizuoka", - "38" => "Tochigi", - "39" => "Tokushima", - "40" => "Tokyo", - "41" => "Tottori", - "42" => "Toyama", - "43" => "Wakayama", - "44" => "Yamagata", - "45" => "Yamaguchi", - "46" => "Yamanashi", - "47" => "Okinawa"), -"KE" => array( - "01" => "Central", - "02" => "Coast", - "03" => "Eastern", - "05" => "Nairobi Area", - "06" => "North-Eastern", - "07" => "Nyanza", - "08" => "Rift Valley", - "09" => "Western"), -"KG" => array( - "01" => "Bishkek", - "02" => "Chuy", - "03" => "Jalal-Abad", - "04" => "Naryn", - "05" => "Osh", - "06" => "Talas", - "07" => "Ysyk-Kol", - "08" => "Osh", - "09" => "Batken"), -"KH" => array( - "01" => "Batdambang", - "02" => "Kampong Cham", - "03" => "Kampong Chhnang", - "04" => "Kampong Speu", - "05" => "Kampong Thum", - "06" => "Kampot", - "07" => "Kandal", - "08" => "Koh Kong", - "09" => "Kracheh", - "10" => "Mondulkiri", - "11" => "Phnum Penh", - "12" => "Pursat", - "13" => "Preah Vihear", - "14" => "Prey Veng", - "15" => "Ratanakiri Kiri", - "16" => "Siem Reap", - "17" => "Stung Treng", - "18" => "Svay Rieng", - "19" => "Takeo", - "25" => "Banteay Meanchey", - "29" => "Batdambang", - "30" => "Pailin"), -"KI" => array( - "01" => "Gilbert Islands", - "02" => "Line Islands", - "03" => "Phoenix Islands"), -"KM" => array( - "01" => "Anjouan", - "02" => "Grande Comore", - "03" => "Moheli"), -"KN" => array( - "01" => "Christ Church Nichola Town", - "02" => "Saint Anne Sandy Point", - "03" => "Saint George Basseterre", - "04" => "Saint George Gingerland", - "05" => "Saint James Windward", - "06" => "Saint John Capisterre", - "07" => "Saint John Figtree", - "08" => "Saint Mary Cayon", - "09" => "Saint Paul Capisterre", - "10" => "Saint Paul Charlestown", - "11" => "Saint Peter Basseterre", - "12" => "Saint Thomas Lowland", - "13" => "Saint Thomas Middle Island", - "15" => "Trinity Palmetto Point"), -"KP" => array( - "01" => "Chagang-do", - "03" => "Hamgyong-namdo", - "06" => "Hwanghae-namdo", - "07" => "Hwanghae-bukto", - "08" => "Kaesong-si", - "09" => "Kangwon-do", - "11" => "P'yongan-bukto", - "12" => "P'yongyang-si", - "13" => "Yanggang-do", - "14" => "Namp'o-si", - "15" => "P'yongan-namdo", - "17" => "Hamgyong-bukto", - "18" => "Najin Sonbong-si"), -"KR" => array( - "01" => "Cheju-do", - "03" => "Cholla-bukto", - "05" => "Ch'ungch'ong-bukto", - "06" => "Kangwon-do", - "10" => "Pusan-jikhalsi", - "11" => "Seoul-t'ukpyolsi", - "12" => "Inch'on-jikhalsi", - "13" => "Kyonggi-do", - "14" => "Kyongsang-bukto", - "15" => "Taegu-jikhalsi", - "16" => "Cholla-namdo", - "17" => "Ch'ungch'ong-namdo", - "18" => "Kwangju-jikhalsi", - "19" => "Taejon-jikhalsi", - "20" => "Kyongsang-namdo", - "21" => "Ulsan-gwangyoksi"), -"KW" => array( - "01" => "Al Ahmadi", - "02" => "Al Kuwayt", - "05" => "Al Jahra", - "07" => "Al Farwaniyah", - "08" => "Hawalli", - "09" => "Mubarak al Kabir"), -"KY" => array( - "01" => "Creek", - "02" => "Eastern", - "03" => "Midland", - "04" => "South Town", - "05" => "Spot Bay", - "06" => "Stake Bay", - "07" => "West End", - "08" => "Western"), -"KZ" => array( - "01" => "Almaty", - "02" => "Almaty City", - "03" => "Aqmola", - "04" => "Aqtobe", - "05" => "Astana", - "06" => "Atyrau", - "07" => "West Kazakhstan", - "08" => "Bayqonyr", - "09" => "Mangghystau", - "10" => "South Kazakhstan", - "11" => "Pavlodar", - "12" => "Qaraghandy", - "13" => "Qostanay", - "14" => "Qyzylorda", - "15" => "East Kazakhstan", - "16" => "North Kazakhstan", - "17" => "Zhambyl"), -"LA" => array( - "01" => "Attapu", - "02" => "Champasak", - "03" => "Houaphan", - "04" => "Khammouan", - "05" => "Louang Namtha", - "07" => "Oudomxai", - "08" => "Phongsali", - "09" => "Saravan", - "10" => "Savannakhet", - "11" => "Vientiane", - "13" => "Xaignabouri", - "14" => "Xiangkhoang", - "17" => "Louangphrabang"), -"LB" => array( - "01" => "Beqaa", - "02" => "Al Janub", - "03" => "Liban-Nord", - "04" => "Beyrouth", - "05" => "Mont-Liban", - "06" => "Liban-Sud", - "07" => "Nabatiye", - "08" => "Beqaa", - "09" => "Liban-Nord", - "10" => "Aakk,r", - "11" => "Baalbek-Hermel"), -"LC" => array( - "01" => "Anse-la-Raye", - "02" => "Dauphin", - "03" => "Castries", - "04" => "Choiseul", - "05" => "Dennery", - "06" => "Gros-Islet", - "07" => "Laborie", - "08" => "Micoud", - "09" => "Soufriere", - "10" => "Vieux-Fort", - "11" => "Praslin"), -"LI" => array( - "01" => "Balzers", - "02" => "Eschen", - "03" => "Gamprin", - "04" => "Mauren", - "05" => "Planken", - "06" => "Ruggell", - "07" => "Schaan", - "08" => "Schellenberg", - "09" => "Triesen", - "10" => "Triesenberg", - "11" => "Vaduz", - "21" => "Gbarpolu", - "22" => "River Gee"), -"LK" => array( - "01" => "Amparai", - "02" => "Anuradhapura", - "03" => "Badulla", - "04" => "Batticaloa", - "06" => "Galle", - "07" => "Hambantota", - "09" => "Kalutara", - "10" => "Kandy", - "11" => "Kegalla", - "12" => "Kurunegala", - "14" => "Matale", - "15" => "Matara", - "16" => "Moneragala", - "17" => "Nuwara Eliya", - "18" => "Polonnaruwa", - "19" => "Puttalam", - "20" => "Ratnapura", - "21" => "Trincomalee", - "23" => "Colombo", - "24" => "Gampaha", - "25" => "Jaffna", - "26" => "Mannar", - "27" => "Mullaittivu", - "28" => "Vavuniya", - "29" => "Central", - "30" => "North Central", - "31" => "Northern", - "32" => "North Western", - "33" => "Sabaragamuwa", - "34" => "Southern", - "35" => "Uva", - "36" => "Western"), -"LR" => array( - "01" => "Bong", - "04" => "Grand Cape Mount", - "05" => "Lofa", - "06" => "Maryland", - "07" => "Monrovia", - "09" => "Nimba", - "10" => "Sino", - "11" => "Grand Bassa", - "12" => "Grand Cape Mount", - "13" => "Maryland", - "14" => "Montserrado", - "17" => "Margibi", - "18" => "River Cess", - "19" => "Grand Gedeh", - "20" => "Lofa", - "21" => "Gbarpolu", - "22" => "River Gee"), -"LS" => array( - "10" => "Berea", - "11" => "Butha-Buthe", - "12" => "Leribe", - "13" => "Mafeteng", - "14" => "Maseru", - "15" => "Mohales Hoek", - "16" => "Mokhotlong", - "17" => "Qachas Nek", - "18" => "Quthing", - "19" => "Thaba-Tseka"), -"LT" => array( - "56" => "Alytaus Apskritis", - "57" => "Kauno Apskritis", - "58" => "Klaipedos Apskritis", - "59" => "Marijampoles Apskritis", - "60" => "Panevezio Apskritis", - "61" => "Siauliu Apskritis", - "62" => "Taurages Apskritis", - "63" => "Telsiu Apskritis", - "64" => "Utenos Apskritis", - "65" => "Vilniaus Apskritis"), -"LU" => array( - "01" => "Diekirch", - "02" => "Grevenmacher", - "03" => "Luxembourg"), -"LV" => array( - "01" => "Aizkraukles", - "02" => "Aluksnes", - "03" => "Balvu", - "04" => "Bauskas", - "05" => "Cesu", - "06" => "Daugavpils", - "07" => "Daugavpils", - "08" => "Dobeles", - "09" => "Gulbenes", - "10" => "Jekabpils", - "11" => "Jelgava", - "12" => "Jelgavas", - "13" => "Jurmala", - "14" => "Kraslavas", - "15" => "Kuldigas", - "16" => "Liepaja", - "17" => "Liepajas", - "18" => "Limbazu", - "19" => "Ludzas", - "20" => "Madonas", - "21" => "Ogres", - "22" => "Preilu", - "23" => "Rezekne", - "24" => "Rezeknes", - "25" => "Riga", - "26" => "Rigas", - "27" => "Saldus", - "28" => "Talsu", - "29" => "Tukuma", - "30" => "Valkas", - "31" => "Valmieras", - "32" => "Ventspils", - "33" => "Ventspils"), -"LY" => array( - "03" => "Al Aziziyah", - "05" => "Al Jufrah", - "08" => "Al Kufrah", - "13" => "Ash Shati'", - "30" => "Murzuq", - "34" => "Sabha", - "41" => "Tarhunah", - "42" => "Tubruq", - "45" => "Zlitan", - "47" => "Ajdabiya", - "48" => "Al Fatih", - "49" => "Al Jabal al Akhdar", - "50" => "Al Khums", - "51" => "An Nuqat al Khams", - "52" => "Awbari", - "53" => "Az Zawiyah", - "54" => "Banghazi", - "55" => "Darnah", - "56" => "Ghadamis", - "57" => "Gharyan", - "58" => "Misratah", - "59" => "Sawfajjin", - "60" => "Surt", - "61" => "Tarabulus", - "62" => "Yafran"), -"MA" => array( - "45" => "Grand Casablanca", - "46" => "Fes-Boulemane", - "47" => "Marrakech-Tensift-Al Haouz", - "48" => "Meknes-Tafilalet", - "49" => "Rabat-Sale-Zemmour-Zaer", - "50" => "Chaouia-Ouardigha", - "51" => "Doukkala-Abda", - "52" => "Gharb-Chrarda-Beni Hssen", - "53" => "Guelmim-Es Smara", - "54" => "Oriental", - "55" => "Souss-Massa-Dr,a", - "56" => "Tadla-Azilal", - "57" => "Tanger-Tetouan", - "58" => "Taza-Al Hoceima-Taounate", - "59" => "La,youne-Boujdour-Sakia El Hamra"), -"MC" => array( - "01" => "La Condamine", - "02" => "Monaco", - "03" => "Monte-Carlo"), -"MD" => array( - "51" => "Gagauzia", - "57" => "Chisinau", - "58" => "Stinga Nistrului", - "59" => "Anenii Noi", - "60" => "Balti", - "61" => "Basarabeasca", - "62" => "Bender", - "63" => "Briceni", - "64" => "Cahul", - "65" => "Cantemir", - "66" => "Calarasi", - "67" => "Causeni", - "68" => "Cimislia", - "69" => "Criuleni", - "70" => "Donduseni", - "71" => "Drochia", - "72" => "Dubasari", - "73" => "Edinet", - "74" => "Falesti", - "75" => "Floresti", - "76" => "Glodeni", - "77" => "Hincesti", - "78" => "Ialoveni", - "79" => "Leova", - "80" => "Nisporeni", - "81" => "Ocnita", - "82" => "Orhei", - "83" => "Rezina", - "84" => "Riscani", - "85" => "Singerei", - "86" => "Soldanesti", - "87" => "Soroca", - "88" => "Stefan-Voda", - "89" => "Straseni", - "90" => "Taraclia", - "91" => "Telenesti", - "92" => "Ungheni"), -"MG" => array( - "01" => "Antsiranana", - "02" => "Fianarantsoa", - "03" => "Mahajanga", - "04" => "Toamasina", - "05" => "Antananarivo", - "06" => "Toliara"), -"MK" => array( - "01" => "Aracinovo", - "02" => "Bac", - "03" => "Belcista", - "04" => "Berovo", - "05" => "Bistrica", - "06" => "Bitola", - "07" => "Blatec", - "08" => "Bogdanci", - "09" => "Bogomila", - "10" => "Bogovinje", - "11" => "Bosilovo", - "12" => "Brvenica", - "13" => "Cair", - "14" => "Capari", - "15" => "Caska", - "16" => "Cegrane", - "17" => "Centar", - "18" => "Centar Zupa", - "19" => "Cesinovo", - "20" => "Cucer-Sandevo", - "21" => "Debar", - "22" => "Delcevo", - "23" => "Delogozdi", - "24" => "Demir Hisar", - "25" => "Demir Kapija", - "26" => "Dobrusevo", - "27" => "Dolna Banjica", - "28" => "Dolneni", - "29" => "Dorce Petrov", - "30" => "Drugovo", - "31" => "Dzepciste", - "32" => "Gazi Baba", - "33" => "Gevgelija", - "34" => "Gostivar", - "35" => "Gradsko", - "36" => "Ilinden", - "37" => "Izvor", - "38" => "Jegunovce", - "39" => "Kamenjane", - "40" => "Karbinci", - "41" => "Karpos", - "42" => "Kavadarci", - "43" => "Kicevo", - "44" => "Kisela Voda", - "45" => "Klecevce", - "46" => "Kocani", - "47" => "Konce", - "48" => "Kondovo", - "49" => "Konopiste", - "50" => "Kosel", - "51" => "Kratovo", - "52" => "Kriva Palanka", - "53" => "Krivogastani", - "54" => "Krusevo", - "55" => "Kuklis", - "56" => "Kukurecani", - "57" => "Kumanovo", - "58" => "Labunista", - "59" => "Lipkovo", - "60" => "Lozovo", - "61" => "Lukovo", - "62" => "Makedonska Kamenica", - "63" => "Makedonski Brod", - "64" => "Mavrovi Anovi", - "65" => "Meseista", - "66" => "Miravci", - "67" => "Mogila", - "68" => "Murtino", - "69" => "Negotino", - "70" => "Negotino-Polosko", - "71" => "Novaci", - "72" => "Novo Selo", - "73" => "Oblesevo", - "74" => "Ohrid", - "75" => "Orasac", - "76" => "Orizari", - "77" => "Oslomej", - "78" => "Pehcevo", - "79" => "Petrovec", - "80" => "Plasnica", - "81" => "Podares", - "82" => "Prilep", - "83" => "Probistip", - "84" => "Radovis", - "85" => "Rankovce", - "86" => "Resen", - "87" => "Rosoman", - "88" => "Rostusa", - "89" => "Samokov", - "90" => "Saraj", - "91" => "Sipkovica", - "92" => "Sopiste", - "93" => "Sopotnica", - "94" => "Srbinovo", - "95" => "Staravina", - "96" => "Star Dojran", - "97" => "Staro Nagoricane", - "98" => "Stip", - "99" => "Struga", - "A1" => "Strumica", - "A2" => "Studenicani", - "A3" => "Suto Orizari", - "A4" => "Sveti Nikole", - "A5" => "Tearce", - "A6" => "Tetovo", - "A7" => "Topolcani", - "A8" => "Valandovo", - "A9" => "Vasilevo", - "B1" => "Veles", - "B2" => "Velesta", - "B3" => "Vevcani", - "B4" => "Vinica", - "B5" => "Vitoliste", - "B6" => "Vranestica", - "B7" => "Vrapciste", - "B8" => "Vratnica", - "B9" => "Vrutok", - "C1" => "Zajas", - "C2" => "Zelenikovo", - "C3" => "Zelino", - "C4" => "Zitose", - "C5" => "Zletovo", - "C6" => "Zrnovci"), -"ML" => array( - "01" => "Bamako", - "03" => "Kayes", - "04" => "Mopti", - "05" => "Segou", - "06" => "Sikasso", - "07" => "Koulikoro", - "08" => "Tombouctou", - "09" => "Gao", - "10" => "Kidal"), -"MM" => array( - "01" => "Rakhine State", - "02" => "Chin State", - "03" => "Irrawaddy", - "04" => "Kachin State", - "05" => "Karan State", - "06" => "Kayah State", - "07" => "Magwe", - "08" => "Mandalay", - "09" => "Pegu", - "10" => "Sagaing", - "11" => "Shan State", - "12" => "Tenasserim", - "13" => "Mon State", - "14" => "Rangoon", - "17" => "Yangon"), -"MN" => array( - "01" => "Arhangay", - "02" => "Bayanhongor", - "03" => "Bayan-Olgiy", - "05" => "Darhan", - "06" => "Dornod", - "07" => "Dornogovi", - "08" => "Dundgovi", - "09" => "Dzavhan", - "10" => "Govi-Altay", - "11" => "Hentiy", - "12" => "Hovd", - "13" => "Hovsgol", - "14" => "Omnogovi", - "15" => "Ovorhangay", - "16" => "Selenge", - "17" => "Suhbaatar", - "18" => "Tov", - "19" => "Uvs", - "20" => "Ulaanbaatar", - "21" => "Bulgan", - "22" => "Erdenet", - "23" => "Darhan-Uul", - "24" => "Govisumber", - "25" => "Orhon"), -"MO" => array( - "01" => "Ilhas", - "02" => "Macau"), -"MR" => array( - "01" => "Hodh Ech Chargui", - "02" => "Hodh El Gharbi", - "03" => "Assaba", - "04" => "Gorgol", - "05" => "Brakna", - "06" => "Trarza", - "07" => "Adrar", - "08" => "Dakhlet Nouadhibou", - "09" => "Tagant", - "10" => "Guidimaka", - "11" => "Tiris Zemmour", - "12" => "Inchiri"), -"MS" => array( - "01" => "Saint Anthony", - "02" => "Saint Georges", - "03" => "Saint Peter"), -"MU" => array( - "12" => "Black River", - "13" => "Flacq", - "14" => "Grand Port", - "15" => "Moka", - "16" => "Pamplemousses", - "17" => "Plaines Wilhems", - "18" => "Port Louis", - "19" => "Riviere du Rempart", - "20" => "Savanne", - "21" => "Agalega Islands", - "22" => "Cargados Carajos", - "23" => "Rodrigues"), -"MV" => array( - "01" => "Seenu", - "05" => "Laamu", - "30" => "Alifu", - "31" => "Baa", - "32" => "Dhaalu", - "33" => "Faafu ", - "34" => "Gaafu Alifu", - "35" => "Gaafu Dhaalu", - "36" => "Haa Alifu", - "37" => "Haa Dhaalu", - "38" => "Kaafu", - "39" => "Lhaviyani", - "40" => "Maale", - "41" => "Meemu", - "42" => "Gnaviyani", - "43" => "Noonu", - "44" => "Raa", - "45" => "Shaviyani", - "46" => "Thaa", - "47" => "Vaavu"), -"MW" => array( - "02" => "Chikwawa", - "03" => "Chiradzulu", - "04" => "Chitipa", - "05" => "Thyolo", - "06" => "Dedza", - "07" => "Dowa", - "08" => "Karonga", - "09" => "Kasungu", - "11" => "Lilongwe", - "12" => "Mangochi", - "13" => "Mchinji", - "15" => "Mzimba", - "16" => "Ntcheu", - "17" => "Nkhata Bay", - "18" => "Nkhotakota", - "19" => "Nsanje", - "20" => "Ntchisi", - "21" => "Rumphi", - "22" => "Salima", - "23" => "Zomba", - "24" => "Blantyre", - "25" => "Mwanza", - "26" => "Balaka", - "27" => "Likoma", - "28" => "Machinga", - "29" => "Mulanje", - "30" => "Phalombe"), -"MX" => array( - "01" => "Aguascalientes", - "02" => "Baja California", - "03" => "Baja California Sur", - "04" => "Campeche", - "05" => "Chiapas", - "06" => "Chihuahua", - "07" => "Coahuila de Zaragoza", - "08" => "Colima", - "09" => "Distrito Federal", - "10" => "Durango", - "11" => "Guanajuato", - "12" => "Guerrero", - "13" => "Hidalgo", - "14" => "Jalisco", - "15" => "Mexico", - "16" => "Michoacan de Ocampo", - "17" => "Morelos", - "18" => "Nayarit", - "19" => "Nuevo Leon", - "20" => "Oaxaca", - "21" => "Puebla", - "22" => "Queretaro de Arteaga", - "23" => "Quintana Roo", - "24" => "San Luis Potosi", - "25" => "Sinaloa", - "26" => "Sonora", - "27" => "Tabasco", - "28" => "Tamaulipas", - "29" => "Tlaxcala", - "30" => "Veracruz-Llave", - "31" => "Yucatan", - "32" => "Zacatecas"), -"MY" => array( - "01" => "Johor", - "02" => "Kedah", - "03" => "Kelantan", - "04" => "Melaka", - "05" => "Negeri Sembilan", - "06" => "Pahang", - "07" => "Perak", - "08" => "Perlis", - "09" => "Pulau Pinang", - "11" => "Sarawak", - "12" => "Selangor", - "13" => "Terengganu", - "14" => "Kuala Lumpur", - "15" => "Labuan", - "16" => "Sabah", - "17" => "Putrajaya"), -"MZ" => array( - "01" => "Cabo Delgado", - "02" => "Gaza", - "03" => "Inhambane", - "04" => "Maputo", - "05" => "Sofala", - "06" => "Nampula", - "07" => "Niassa", - "08" => "Tete", - "09" => "Zambezia", - "10" => "Manica", - "11" => "Maputo"), -"NA" => array( - "01" => "Bethanien", - "02" => "Caprivi Oos", - "03" => "Boesmanland", - "04" => "Gobabis", - "05" => "Grootfontein", - "06" => "Kaokoland", - "07" => "Karibib", - "08" => "Keetmanshoop", - "09" => "Luderitz", - "10" => "Maltahohe", - "11" => "Okahandja", - "12" => "Omaruru", - "13" => "Otjiwarongo", - "14" => "Outjo", - "15" => "Owambo", - "16" => "Rehoboth", - "17" => "Swakopmund", - "18" => "Tsumeb", - "20" => "Karasburg", - "21" => "Windhoek", - "22" => "Damaraland", - "23" => "Hereroland Oos", - "24" => "Hereroland Wes", - "25" => "Kavango", - "26" => "Mariental", - "27" => "Namaland", - "28" => "Caprivi", - "29" => "Erongo", - "30" => "Hardap", - "31" => "Karas", - "32" => "Kunene", - "33" => "Ohangwena", - "34" => "Okavango", - "35" => "Omaheke", - "36" => "Omusati", - "37" => "Oshana", - "38" => "Oshikoto", - "39" => "Otjozondjupa"), -"NE" => array( - "01" => "Agadez", - "02" => "Diffa", - "03" => "Dosso", - "04" => "Maradi", - "05" => "Niamey", - "06" => "Tahoua", - "07" => "Zinder", - "08" => "Niamey"), -"NG" => array( - "05" => "Lagos", - "11" => "Federal Capital Territory", - "16" => "Ogun", - "21" => "Akwa Ibom", - "22" => "Cross River", - "23" => "Kaduna", - "24" => "Katsina", - "25" => "Anambra", - "26" => "Benue", - "27" => "Borno", - "28" => "Imo", - "29" => "Kano", - "30" => "Kwara", - "31" => "Niger", - "32" => "Oyo", - "35" => "Adamawa", - "36" => "Delta", - "37" => "Edo", - "39" => "Jigawa", - "40" => "Kebbi", - "41" => "Kogi", - "42" => "Osun", - "43" => "Taraba", - "44" => "Yobe", - "45" => "Abia", - "46" => "Bauchi", - "47" => "Enugu", - "48" => "Ondo", - "49" => "Plateau", - "50" => "Rivers", - "51" => "Sokoto", - "52" => "Bayelsa", - "53" => "Ebonyi", - "54" => "Ekiti", - "55" => "Gombe", - "56" => "Nassarawa", - "57" => "Zamfara"), -"NI" => array( - "01" => "Boaco", - "02" => "Carazo", - "03" => "Chinandega", - "04" => "Chontales", - "05" => "Esteli", - "06" => "Granada", - "07" => "Jinotega", - "08" => "Leon", - "09" => "Madriz", - "10" => "Managua", - "11" => "Masaya", - "12" => "Matagalpa", - "13" => "Nueva Segovia", - "14" => "Rio San Juan", - "15" => "Rivas", - "16" => "Zelaya", - "17" => "Autonoma Atlantico Norte", - "18" => "Region Autonoma Atlantico Sur"), -"NL" => array( - "01" => "Drenthe", - "02" => "Friesland", - "03" => "Gelderland", - "04" => "Groningen", - "05" => "Limburg", - "06" => "Noord-Brabant", - "07" => "Noord-Holland", - "09" => "Utrecht", - "10" => "Zeeland", - "11" => "Zuid-Holland", - "15" => "Overijssel", - "16" => "Flevoland"), -"NO" => array( - "01" => "Akershus", - "02" => "Aust-Agder", - "04" => "Buskerud", - "05" => "Finnmark", - "06" => "Hedmark", - "07" => "Hordaland", - "08" => "More og Romsdal", - "09" => "Nordland", - "10" => "Nord-Trondelag", - "11" => "Oppland", - "12" => "Oslo", - "13" => "Ostfold", - "14" => "Rogaland", - "15" => "Sogn og Fjordane", - "16" => "Sor-Trondelag", - "17" => "Telemark", - "18" => "Troms", - "19" => "Vest-Agder", - "20" => "Vestfold"), -"NP" => array( - "01" => "Bagmati", - "02" => "Bheri", - "03" => "Dhawalagiri", - "04" => "Gandaki", - "05" => "Janakpur", - "06" => "Karnali", - "07" => "Kosi", - "08" => "Lumbini", - "09" => "Mahakali", - "10" => "Mechi", - "11" => "Narayani", - "12" => "Rapti", - "13" => "Sagarmatha", - "14" => "Seti"), -"NR" => array( - "01" => "Aiwo", - "02" => "Anabar", - "03" => "Anetan", - "04" => "Anibare", - "05" => "Baiti", - "06" => "Boe", - "07" => "Buada", - "08" => "Denigomodu", - "09" => "Ewa", - "10" => "Ijuw", - "11" => "Meneng", - "12" => "Nibok", - "13" => "Uaboe", - "14" => "Yaren"), -"NZ" => array( - "10" => "Chatham Islands", - "E7" => "Auckland", - "E8" => "Bay of Plenty", - "E9" => "Canterbury", - "F1" => "Gisborne", - "F2" => "Hawke's Bay", - "F3" => "Manawatu-Wanganui", - "F4" => "Marlborough", - "F5" => "Nelson", - "F6" => "Northland", - "F7" => "Otago", - "F8" => "Southland", - "F9" => "Taranaki", - "G1" => "Waikato", - "G2" => "Wellington", - "G3" => "West Coast"), -"OM" => array( - "01" => "Ad Dakhiliyah", - "02" => "Al Batinah", - "03" => "Al Wusta", - "04" => "Ash Sharqiyah", - "05" => "Az Zahirah", - "06" => "Masqat", - "07" => "Musandam", - "08" => "Zufar"), -"PA" => array( - "01" => "Bocas del Toro", - "02" => "Chiriqui", - "03" => "Cocle", - "04" => "Colon", - "05" => "Darien", - "06" => "Herrera", - "07" => "Los Santos", - "08" => "Panama", - "09" => "San Blas", - "10" => "Veraguas"), -"PE" => array( - "01" => "Amazonas", - "02" => "Ancash", - "03" => "Apurimac", - "04" => "Arequipa", - "05" => "Ayacucho", - "06" => "Cajamarca", - "07" => "Callao", - "08" => "Cusco", - "09" => "Huancavelica", - "10" => "Huanuco", - "11" => "Ica", - "12" => "Junin", - "13" => "La Libertad", - "14" => "Lambayeque", - "15" => "Lima", - "16" => "Loreto", - "17" => "Madre de Dios", - "18" => "Moquegua", - "19" => "Pasco", - "20" => "Piura", - "21" => "Puno", - "22" => "San Martin", - "23" => "Tacna", - "24" => "Tumbes", - "25" => "Ucayali"), -"PG" => array( - "01" => "Central", - "02" => "Gulf", - "03" => "Milne Bay", - "04" => "Northern", - "05" => "Southern Highlands", - "06" => "Western", - "07" => "North Solomons", - "08" => "Chimbu", - "09" => "Eastern Highlands", - "10" => "East New Britain", - "11" => "East Sepik", - "12" => "Madang", - "13" => "Manus", - "14" => "Morobe", - "15" => "New Ireland", - "16" => "Western Highlands", - "17" => "West New Britain", - "18" => "Sandaun", - "19" => "Enga", - "20" => "National Capital"), -"PH" => array( - "01" => "Abra", - "02" => "Agusan del Norte", - "03" => "Agusan del Sur", - "04" => "Aklan", - "05" => "Albay", - "06" => "Antique", - "07" => "Bataan", - "08" => "Batanes", - "09" => "Batangas", - "10" => "Benguet", - "11" => "Bohol", - "12" => "Bukidnon", - "13" => "Bulacan", - "14" => "Cagayan", - "15" => "Camarines Norte", - "16" => "Camarines Sur", - "17" => "Camiguin", - "18" => "Capiz", - "19" => "Catanduanes", - "20" => "Cavite", - "21" => "Cebu", - "22" => "Basilan", - "23" => "Eastern Samar", - "24" => "Davao", - "25" => "Davao del Sur", - "26" => "Davao Oriental", - "27" => "Ifugao", - "28" => "Ilocos Norte", - "29" => "Ilocos Sur", - "30" => "Iloilo", - "31" => "Isabela", - "32" => "Kalinga-Apayao", - "33" => "Laguna", - "34" => "Lanao del Norte", - "35" => "Lanao del Sur", - "36" => "La Union", - "37" => "Leyte", - "38" => "Marinduque", - "39" => "Masbate", - "40" => "Mindoro Occidental", - "41" => "Mindoro Oriental", - "42" => "Misamis Occidental", - "43" => "Misamis Oriental", - "44" => "Mountain", - "45" => "Negros Occidental", - "46" => "Negros Oriental", - "47" => "Nueva Ecija", - "48" => "Nueva Vizcaya", - "49" => "Palawan", - "50" => "Pampanga", - "51" => "Pangasinan", - "53" => "Rizal", - "54" => "Romblon", - "55" => "Samar", - "56" => "Maguindanao", - "57" => "North Cotabato", - "58" => "Sorsogon", - "59" => "Southern Leyte", - "60" => "Sulu", - "61" => "Surigao del Norte", - "62" => "Surigao del Sur", - "63" => "Tarlac", - "64" => "Zambales", - "65" => "Zamboanga del Norte", - "66" => "Zamboanga del Sur", - "67" => "Northern Samar", - "68" => "Quirino", - "69" => "Siquijor", - "70" => "South Cotabato", - "71" => "Sultan Kudarat", - "72" => "Tawitawi", - "A1" => "Angeles", - "A2" => "Bacolod", - "A3" => "Bago", - "A4" => "Baguio", - "A5" => "Bais", - "A6" => "Basilan City", - "A7" => "Batangas City", - "A8" => "Butuan", - "A9" => "Cabanatuan", - "B1" => "Cadiz", - "B2" => "Cagayan de Oro", - "B3" => "Calbayog", - "B4" => "Caloocan", - "B5" => "Canlaon", - "B6" => "Cavite City", - "B7" => "Cebu City", - "B8" => "Cotabato", - "B9" => "Dagupan", - "C1" => "Danao", - "C2" => "Dapitan", - "C3" => "Davao City", - "C4" => "Dipolog", - "C5" => "Dumaguete", - "C6" => "General Santos", - "C7" => "Gingoog", - "C8" => "Iligan", - "C9" => "Iloilo City", - "D1" => "Iriga", - "D2" => "La Carlota", - "D3" => "Laoag", - "D4" => "Lapu-Lapu", - "D5" => "Legaspi", - "D6" => "Lipa", - "D7" => "Lucena", - "D8" => "Mandaue", - "D9" => "Manila", - "E1" => "Marawi", - "E2" => "Naga", - "E3" => "Olongapo", - "E4" => "Ormoc", - "E5" => "Oroquieta", - "E6" => "Ozamis", - "E7" => "Pagadian", - "E8" => "Palayan", - "E9" => "Pasay", - "F1" => "Puerto Princesa", - "F2" => "Quezon City", - "F3" => "Roxas", - "F4" => "San Carlos", - "F5" => "San Carlos", - "F6" => "San Jose", - "F7" => "San Pablo", - "F8" => "Silay", - "F9" => "Surigao", - "G1" => "Tacloban", - "G2" => "Tagaytay", - "G3" => "Tagbilaran", - "G4" => "Tangub", - "G5" => "Toledo", - "G6" => "Trece Martires", - "G7" => "Zamboanga", - "G8" => "Aurora", - "H2" => "Quezon", - "H3" => "Negros Occidental"), -"PK" => array( - "01" => "Federally Administered Tribal Areas", - "02" => "Balochistan", - "03" => "North-West Frontier", - "04" => "Punjab", - "05" => "Sindh", - "06" => "Azad Kashmir", - "07" => "Northern Areas", - "08" => "Islamabad"), -"PL" => array( - "72" => "Dolnoslaskie", - "73" => "Kujawsko-Pomorskie", - "74" => "Lodzkie", - "75" => "Lubelskie", - "76" => "Lubuskie", - "77" => "Malopolskie", - "78" => "Mazowieckie", - "79" => "Opolskie", - "80" => "Podkarpackie", - "81" => "Podlaskie", - "82" => "Pomorskie", - "83" => "Slaskie", - "84" => "Swietokrzyskie", - "85" => "Warminsko-Mazurskie", - "86" => "Wielkopolskie", - "87" => "Zachodniopomorskie"), -"PS" => array( - "GZ" => "Gaza", - "WE" => "West Bank"), -"PT" => array( - "02" => "Aveiro", - "03" => "Beja", - "04" => "Braga", - "05" => "Braganca", - "06" => "Castelo Branco", - "07" => "Coimbra", - "08" => "Evora", - "09" => "Faro", - "10" => "Madeira", - "11" => "Guarda", - "13" => "Leiria", - "14" => "Lisboa", - "16" => "Portalegre", - "17" => "Porto", - "18" => "Santarem", - "19" => "Setubal", - "20" => "Viana do Castelo", - "21" => "Vila Real", - "22" => "Viseu", - "23" => "Azores"), -"PY" => array( - "01" => "Alto Parana", - "02" => "Amambay", - "03" => "Boqueron", - "04" => "Caaguazu", - "05" => "Caazapa", - "06" => "Central", - "07" => "Concepcion", - "08" => "Cordillera", - "10" => "Guaira", - "11" => "Itapua", - "12" => "Misiones", - "13" => "Neembucu", - "15" => "Paraguari", - "16" => "Presidente Hayes", - "17" => "San Pedro", - "19" => "Canindeyu", - "20" => "Chaco", - "21" => "Nueva Asuncion", - "23" => "Alto Paraguay"), -"QA" => array( - "01" => "Ad Dawhah", - "02" => "Al Ghuwariyah", - "03" => "Al Jumaliyah", - "04" => "Al Khawr", - "05" => "Al Wakrah Municipality", - "06" => "Ar Rayyan", - "08" => "Madinat ach Shamal", - "09" => "Umm Salal", - "10" => "Al Wakrah", - "11" => "Jariyan al Batnah", - "12" => "Umm Sa'id"), -"RO" => array( - "01" => "Alba", - "02" => "Arad", - "03" => "Arges", - "04" => "Bacau", - "05" => "Bihor", - "06" => "Bistrita-Nasaud", - "07" => "Botosani", - "08" => "Braila", - "09" => "Brasov", - "10" => "Bucuresti", - "11" => "Buzau", - "12" => "Caras-Severin", - "13" => "Cluj", - "14" => "Constanta", - "15" => "Covasna", - "16" => "Dambovita", - "17" => "Dolj", - "18" => "Galati", - "19" => "Gorj", - "20" => "Harghita", - "21" => "Hunedoara", - "22" => "Ialomita", - "23" => "Iasi", - "25" => "Maramures", - "26" => "Mehedinti", - "27" => "Mures", - "28" => "Neamt", - "29" => "Olt", - "30" => "Prahova", - "31" => "Salaj", - "32" => "Satu Mare", - "33" => "Sibiu", - "34" => "Suceava", - "35" => "Teleorman", - "36" => "Timis", - "37" => "Tulcea", - "38" => "Vaslui", - "39" => "Valcea", - "40" => "Vrancea", - "41" => "Calarasi", - "42" => "Giurgiu", - "43" => "Ilfov"), -"RS" => array( - "01" => "Kosovo", - "02" => "Vojvodina"), -"RU" => array( - "01" => "Adygeya, Republic of", - "02" => "Aginsky Buryatsky AO", - "03" => "Gorno-Altay", - "04" => "Altaisky krai", - "05" => "Amur", - "06" => "Arkhangel'sk", - "07" => "Astrakhan'", - "08" => "Bashkortostan", - "09" => "Belgorod", - "10" => "Bryansk", - "11" => "Buryat", - "12" => "Chechnya", - "13" => "Chelyabinsk", - "14" => "Chita", - "15" => "Chukot", - "16" => "Chuvashia", - "17" => "Dagestan", - "18" => "Evenk", - "19" => "Ingush", - "20" => "Irkutsk", - "21" => "Ivanovo", - "22" => "Kabardin-Balkar", - "23" => "Kaliningrad", - "24" => "Kalmyk", - "25" => "Kaluga", - "26" => "Kamchatka", - "27" => "Karachay-Cherkess", - "28" => "Karelia", - "29" => "Kemerovo", - "30" => "Khabarovsk", - "31" => "Khakass", - "32" => "Khanty-Mansiy", - "33" => "Kirov", - "34" => "Komi", - "35" => "Komi-Permyak", - "36" => "Koryak", - "37" => "Kostroma", - "38" => "Krasnodar", - "39" => "Krasnoyarsk", - "40" => "Kurgan", - "41" => "Kursk", - "42" => "Leningrad", - "43" => "Lipetsk", - "44" => "Magadan", - "45" => "Mariy-El", - "46" => "Mordovia", - "47" => "Moskva", - "48" => "Moscow City", - "49" => "Murmansk", - "50" => "Nenets", - "51" => "Nizhegorod", - "52" => "Novgorod", - "53" => "Novosibirsk", - "54" => "Omsk", - "55" => "Orenburg", - "56" => "Orel", - "57" => "Penza", - "58" => "Perm'", - "59" => "Primor'ye", - "60" => "Pskov", - "61" => "Rostov", - "62" => "Ryazan'", - "63" => "Sakha", - "64" => "Sakhalin", - "65" => "Samara", - "66" => "Saint Petersburg City", - "67" => "Saratov", - "68" => "North Ossetia", - "69" => "Smolensk", - "70" => "Stavropol'", - "71" => "Sverdlovsk", - "72" => "Tambovskaya oblast", - "73" => "Tatarstan", - "74" => "Taymyr", - "75" => "Tomsk", - "76" => "Tula", - "77" => "Tver'", - "78" => "Tyumen'", - "79" => "Tuva", - "80" => "Udmurt", - "81" => "Ul'yanovsk", - "82" => "Ust-Orda Buryat", - "83" => "Vladimir", - "84" => "Volgograd", - "85" => "Vologda", - "86" => "Voronezh", - "87" => "Yamal-Nenets", - "88" => "Yaroslavl'", - "89" => "Yevrey", - "90" => "Permskiy Kray", - "91" => "Krasnoyarskiy Kray", - "92" => "Kamchatskiy Kray", - "93" => "Zabaykal'skiy Kray"), -"RW" => array( - "01" => "Butare", - "06" => "Gitarama", - "07" => "Kibungo", - "09" => "Kigali", - "11" => "Est", - "12" => "Kigali", - "13" => "Nord", - "14" => "Ouest", - "15" => "Sud"), -"SA" => array( - "02" => "Al Bahah", - "05" => "Al Madinah", - "06" => "Ash Sharqiyah", - "08" => "Al Qasim", - "10" => "Ar Riyad", - "11" => "Asir Province", - "13" => "Ha'il", - "14" => "Makkah", - "15" => "Al Hudud ash Shamaliyah", - "16" => "Najran", - "17" => "Jizan", - "19" => "Tabuk", - "20" => "Al Jawf"), -"SB" => array( - "03" => "Malaita", - "06" => "Guadalcanal", - "07" => "Isabel", - "08" => "Makira", - "09" => "Temotu", - "10" => "Central", - "11" => "Western", - "12" => "Choiseul", - "13" => "Rennell and Bellona"), -"SC" => array( - "01" => "Anse aux Pins", - "02" => "Anse Boileau", - "03" => "Anse Etoile", - "04" => "Anse Louis", - "05" => "Anse Royale", - "06" => "Baie Lazare", - "07" => "Baie Sainte Anne", - "08" => "Beau Vallon", - "09" => "Bel Air", - "10" => "Bel Ombre", - "11" => "Cascade", - "12" => "Glacis", - "13" => "Grand' Anse", - "14" => "Grand' Anse", - "15" => "La Digue", - "16" => "La Riviere Anglaise", - "17" => "Mont Buxton", - "18" => "Mont Fleuri", - "19" => "Plaisance", - "20" => "Pointe La Rue", - "21" => "Port Glaud", - "22" => "Saint Louis", - "23" => "Takamaka"), -"SD" => array( - "27" => "Al Wusta", - "28" => "Al Istiwa'iyah", - "29" => "Al Khartum", - "30" => "Ash Shamaliyah", - "31" => "Ash Sharqiyah", - "32" => "Bahr al Ghazal", - "33" => "Darfur", - "34" => "Kurdufan", - "35" => "Upper Nile", - "40" => "Al Wahadah State", - "44" => "Central Equatoria State"), -"SE" => array( - "02" => "Blekinge Lan", - "03" => "Gavleborgs Lan", - "05" => "Gotlands Lan", - "06" => "Hallands Lan", - "07" => "Jamtlands Lan", - "08" => "Jonkopings Lan", - "09" => "Kalmar Lan", - "10" => "Dalarnas Lan", - "12" => "Kronobergs Lan", - "14" => "Norrbottens Lan", - "15" => "Orebro Lan", - "16" => "Ostergotlands Lan", - "18" => "Sodermanlands Lan", - "21" => "Uppsala Lan", - "22" => "Varmlands Lan", - "23" => "Vasterbottens Lan", - "24" => "Vasternorrlands Lan", - "25" => "Vastmanlands Lan", - "26" => "Stockholms Lan", - "27" => "Skane Lan", - "28" => "Vastra Gotaland"), -"SH" => array( - "01" => "Ascension", - "02" => "Saint Helena", - "03" => "Tristan da Cunha"), -"SI" => array( - "01" => "Ajdovscina", - "02" => "Beltinci", - "03" => "Bled", - "04" => "Bohinj", - "05" => "Borovnica", - "06" => "Bovec", - "07" => "Brda", - "08" => "Brezice", - "09" => "Brezovica", - "11" => "Celje", - "12" => "Cerklje na Gorenjskem", - "13" => "Cerknica", - "14" => "Cerkno", - "15" => "Crensovci", - "16" => "Crna na Koroskem", - "17" => "Crnomelj", - "19" => "Divaca", - "20" => "Dobrepolje", - "22" => "Dol pri Ljubljani", - "24" => "Dornava", - "25" => "Dravograd", - "26" => "Duplek", - "27" => "Gorenja Vas-Poljane", - "28" => "Gorisnica", - "29" => "Gornja Radgona", - "30" => "Gornji Grad", - "31" => "Gornji Petrovci", - "32" => "Grosuplje", - "34" => "Hrastnik", - "35" => "Hrpelje-Kozina", - "36" => "Idrija", - "37" => "Ig", - "38" => "Ilirska Bistrica", - "39" => "Ivancna Gorica", - "40" => "Izola-Isola", - "42" => "Jursinci", - "44" => "Kanal", - "45" => "Kidricevo", - "46" => "Kobarid", - "47" => "Kobilje", - "49" => "Komen", - "50" => "Koper-Capodistria", - "51" => "Kozje", - "52" => "Kranj", - "53" => "Kranjska Gora", - "54" => "Krsko", - "55" => "Kungota", - "57" => "Lasko", - "61" => "Ljubljana", - "62" => "Ljubno", - "64" => "Logatec", - "66" => "Loski Potok", - "68" => "Lukovica", - "71" => "Medvode", - "72" => "Menges", - "73" => "Metlika", - "74" => "Mezica", - "76" => "Mislinja", - "77" => "Moravce", - "78" => "Moravske Toplice", - "79" => "Mozirje", - "80" => "Murska Sobota", - "81" => "Muta", - "82" => "Naklo", - "83" => "Nazarje", - "84" => "Nova Gorica", - "86" => "Odranci", - "87" => "Ormoz", - "88" => "Osilnica", - "89" => "Pesnica", - "91" => "Pivka", - "92" => "Podcetrtek", - "94" => "Postojna", - "97" => "Puconci", - "98" => "Racam", - "99" => "Radece", - "A1" => "Radenci", - "A2" => "Radlje ob Dravi", - "A3" => "Radovljica", - "A6" => "Rogasovci", - "A7" => "Rogaska Slatina", - "A8" => "Rogatec", - "B1" => "Semic", - "B2" => "Sencur", - "B3" => "Sentilj", - "B4" => "Sentjernej", - "B6" => "Sevnica", - "B7" => "Sezana", - "B8" => "Skocjan", - "B9" => "Skofja Loka", - "C1" => "Skofljica", - "C2" => "Slovenj Gradec", - "C4" => "Slovenske Konjice", - "C5" => "Smarje pri Jelsah", - "C6" => "Smartno ob Paki", - "C7" => "Sostanj", - "C8" => "Starse", - "C9" => "Store", - "D1" => "Sveti Jurij", - "D2" => "Tolmin", - "D3" => "Trbovlje", - "D4" => "Trebnje", - "D5" => "Trzic", - "D6" => "Turnisce", - "D7" => "Velenje", - "D8" => "Velike Lasce", - "E1" => "Vipava", - "E2" => "Vitanje", - "E3" => "Vodice", - "E5" => "Vrhnika", - "E6" => "Vuzenica", - "E7" => "Zagorje ob Savi", - "E9" => "Zavrc", - "F1" => "Zelezniki", - "F2" => "Ziri", - "F3" => "Zrece", - "G4" => "Dobrova-Horjul-Polhov Gradec", - "G7" => "Domzale", - "H4" => "Jesenice", - "H6" => "Kamnik", - "H7" => "Kocevje", - "I2" => "Kuzma", - "I3" => "Lenart", - "I5" => "Litija", - "I6" => "Ljutomer", - "I7" => "Loska Dolina", - "I9" => "Luce", - "J1" => "Majsperk", - "J2" => "Maribor", - "J5" => "Miren-Kostanjevica", - "J7" => "Novo Mesto", - "J9" => "Piran", - "K5" => "Preddvor", - "K7" => "Ptuj", - "L1" => "Ribnica", - "L3" => "Ruse", - "L7" => "Sentjur pri Celju", - "L8" => "Slovenska Bistrica", - "N2" => "Videm", - "N3" => "Vojnik", - "N5" => "Zalec"), -"SK" => array( - "01" => "Banska Bystrica", - "02" => "Bratislava", - "03" => "Kosice", - "04" => "Nitra", - "05" => "Presov", - "06" => "Trencin", - "07" => "Trnava", - "08" => "Zilina"), -"SL" => array( - "01" => "Eastern", - "02" => "Northern", - "03" => "Southern", - "04" => "Western Area"), -"SM" => array( - "01" => "Acquaviva", - "02" => "Chiesanuova", - "03" => "Domagnano", - "04" => "Faetano", - "05" => "Fiorentino", - "06" => "Borgo Maggiore", - "07" => "San Marino", - "08" => "Monte Giardino", - "09" => "Serravalle"), -"SN" => array( - "01" => "Dakar", - "03" => "Diourbel", - "05" => "Tambacounda", - "07" => "Thies", - "09" => "Fatick", - "10" => "Kaolack", - "11" => "Kolda", - "12" => "Ziguinchor", - "13" => "Louga", - "14" => "Saint-Louis", - "15" => "Matam"), -"SO" => array( - "01" => "Bakool", - "02" => "Banaadir", - "03" => "Bari", - "04" => "Bay", - "05" => "Galguduud", - "06" => "Gedo", - "07" => "Hiiraan", - "08" => "Jubbada Dhexe", - "09" => "Jubbada Hoose", - "10" => "Mudug", - "11" => "Nugaal", - "12" => "Sanaag", - "13" => "Shabeellaha Dhexe", - "14" => "Shabeellaha Hoose", - "16" => "Woqooyi Galbeed", - "18" => "Nugaal", - "19" => "Togdheer", - "20" => "Woqooyi Galbeed", - "21" => "Awdal", - "22" => "Sool"), -"SR" => array( - "10" => "Brokopondo", - "11" => "Commewijne", - "12" => "Coronie", - "13" => "Marowijne", - "14" => "Nickerie", - "15" => "Para", - "16" => "Paramaribo", - "17" => "Saramacca", - "18" => "Sipaliwini", - "19" => "Wanica"), -"ST" => array( - "01" => "Principe", - "02" => "Sao Tome"), -"SV" => array( - "01" => "Ahuachapan", - "02" => "Cabanas", - "03" => "Chalatenango", - "04" => "Cuscatlan", - "05" => "La Libertad", - "06" => "La Paz", - "07" => "La Union", - "08" => "Morazan", - "09" => "San Miguel", - "10" => "San Salvador", - "11" => "Santa Ana", - "12" => "San Vicente", - "13" => "Sonsonate", - "14" => "Usulutan"), -"SY" => array( - "01" => "Al Hasakah", - "02" => "Al Ladhiqiyah", - "03" => "Al Qunaytirah", - "04" => "Ar Raqqah", - "05" => "As Suwayda'", - "06" => "Dar", - "07" => "Dayr az Zawr", - "08" => "Rif Dimashq", - "09" => "Halab", - "10" => "Hamah", - "11" => "Hims", - "12" => "Idlib", - "13" => "Dimashq", - "14" => "Tartus"), -"SZ" => array( - "01" => "Hhohho", - "02" => "Lubombo", - "03" => "Manzini", - "04" => "Shiselweni", - "05" => "Praslin"), -"TD" => array( - "01" => "Batha", - "02" => "Biltine", - "03" => "Borkou-Ennedi-Tibesti", - "04" => "Chari-Baguirmi", - "05" => "Guera", - "06" => "Kanem", - "07" => "Lac", - "08" => "Logone Occidental", - "09" => "Logone Oriental", - "10" => "Mayo-Kebbi", - "11" => "Moyen-Chari", - "12" => "Ouaddai", - "13" => "Salamat", - "14" => "Tandjile"), -"TG" => array( - "22" => "Centrale", - "23" => "Kara", - "24" => "Maritime", - "25" => "Plateaux", - "26" => "Savanes"), -"TH" => array( - "01" => "Mae Hong Son", - "02" => "Chiang Mai", - "03" => "Chiang Rai", - "04" => "Nan", - "05" => "Lamphun", - "06" => "Lampang", - "07" => "Phrae", - "08" => "Tak", - "09" => "Sukhothai", - "10" => "Uttaradit", - "11" => "Kamphaeng Phet", - "12" => "Phitsanulok", - "13" => "Phichit", - "14" => "Phetchabun", - "15" => "Uthai Thani", - "16" => "Nakhon Sawan", - "17" => "Nong Khai", - "18" => "Loei", - "20" => "Sakon Nakhon", - "21" => "Nakhon Phanom", - "22" => "Khon Kaen", - "23" => "Kalasin", - "24" => "Maha Sarakham", - "25" => "Roi Et", - "26" => "Chaiyaphum", - "27" => "Nakhon Ratchasima", - "28" => "Buriram", - "29" => "Surin", - "30" => "Sisaket", - "31" => "Narathiwat", - "32" => "Chai Nat", - "33" => "Sing Buri", - "34" => "Lop Buri", - "35" => "Ang Thong", - "36" => "Phra Nakhon Si Ayutthaya", - "37" => "Saraburi", - "38" => "Nonthaburi", - "39" => "Pathum Thani", - "40" => "Krung Thep", - "41" => "Phayao", - "42" => "Samut Prakan", - "43" => "Nakhon Nayok", - "44" => "Chachoengsao", - "45" => "Prachin Buri", - "46" => "Chon Buri", - "47" => "Rayong", - "48" => "Chanthaburi", - "49" => "Trat", - "50" => "Kanchanaburi", - "51" => "Suphan Buri", - "52" => "Ratchaburi", - "53" => "Nakhon Pathom", - "54" => "Samut Songkhram", - "55" => "Samut Sakhon", - "56" => "Phetchaburi", - "57" => "Prachuap Khiri Khan", - "58" => "Chumphon", - "59" => "Ranong", - "60" => "Surat Thani", - "61" => "Phangnga", - "62" => "Phuket", - "63" => "Krabi", - "64" => "Nakhon Si Thammarat", - "65" => "Trang", - "66" => "Phatthalung", - "67" => "Satun", - "68" => "Songkhla", - "69" => "Pattani", - "70" => "Yala", - "71" => "Ubon Ratchathani", - "72" => "Yasothon", - "73" => "Nakhon Phanom", - "75" => "Ubon Ratchathani", - "76" => "Udon Thani", - "77" => "Amnat Charoen", - "78" => "Mukdahan", - "79" => "Nong Bua Lamphu", - "80" => "Sa Kaeo"), -"TJ" => array( - "01" => "Kuhistoni Badakhshon", - "02" => "Khatlon", - "03" => "Sughd"), -"TM" => array( - "01" => "Ahal", - "02" => "Balkan", - "03" => "Dashoguz", - "04" => "Lebap", - "05" => "Mary"), -"TN" => array( - "02" => "Kasserine", - "03" => "Kairouan", - "06" => "Jendouba", - "10" => "Qafsah", - "14" => "El Kef", - "15" => "Al Mahdia", - "16" => "Al Munastir", - "17" => "Bajah", - "18" => "Bizerte", - "19" => "Nabeul", - "22" => "Siliana", - "23" => "Sousse", - "27" => "Ben Arous", - "28" => "Madanin", - "29" => "Gabes", - "31" => "Kebili", - "32" => "Sfax", - "33" => "Sidi Bou Zid", - "34" => "Tataouine", - "35" => "Tozeur", - "36" => "Tunis", - "37" => "Zaghouan", - "38" => "Aiana", - "39" => "Manouba"), -"TO" => array( - "01" => "Ha", - "02" => "Tongatapu", - "03" => "Vava"), -"TR" => array( - "02" => "Adiyaman", - "03" => "Afyonkarahisar", - "04" => "Agri", - "05" => "Amasya", - "07" => "Antalya", - "08" => "Artvin", - "09" => "Aydin", - "10" => "Balikesir", - "11" => "Bilecik", - "12" => "Bingol", - "13" => "Bitlis", - "14" => "Bolu", - "15" => "Burdur", - "16" => "Bursa", - "17" => "Canakkale", - "19" => "Corum", - "20" => "Denizli", - "21" => "Diyarbakir", - "22" => "Edirne", - "23" => "Elazig", - "24" => "Erzincan", - "25" => "Erzurum", - "26" => "Eskisehir", - "28" => "Giresun", - "31" => "Hatay", - "32" => "Mersin", - "33" => "Isparta", - "34" => "Istanbul", - "35" => "Izmir", - "37" => "Kastamonu", - "38" => "Kayseri", - "39" => "Kirklareli", - "40" => "Kirsehir", - "41" => "Kocaeli", - "43" => "Kutahya", - "44" => "Malatya", - "45" => "Manisa", - "46" => "Kahramanmaras", - "48" => "Mugla", - "49" => "Mus", - "50" => "Nevsehir", - "52" => "Ordu", - "53" => "Rize", - "54" => "Sakarya", - "55" => "Samsun", - "57" => "Sinop", - "58" => "Sivas", - "59" => "Tekirdag", - "60" => "Tokat", - "61" => "Trabzon", - "62" => "Tunceli", - "63" => "Sanliurfa", - "64" => "Usak", - "65" => "Van", - "66" => "Yozgat", - "68" => "Ankara", - "69" => "Gumushane", - "70" => "Hakkari", - "71" => "Konya", - "72" => "Mardin", - "73" => "Nigde", - "74" => "Siirt", - "75" => "Aksaray", - "76" => "Batman", - "77" => "Bayburt", - "78" => "Karaman", - "79" => "Kirikkale", - "80" => "Sirnak", - "81" => "Adana", - "82" => "Cankiri", - "83" => "Gaziantep", - "84" => "Kars", - "85" => "Zonguldak", - "86" => "Ardahan", - "87" => "Bartin", - "88" => "Igdir", - "89" => "Karabuk", - "90" => "Kilis", - "91" => "Osmaniye", - "92" => "Yalova", - "93" => "Duzce"), -"TT" => array( - "01" => "Arima", - "02" => "Caroni", - "03" => "Mayaro", - "04" => "Nariva", - "05" => "Port-of-Spain", - "06" => "Saint Andrew", - "07" => "Saint David", - "08" => "Saint George", - "09" => "Saint Patrick", - "10" => "San Fernando", - "11" => "Tobago", - "12" => "Victoria"), -"TW" => array( - "01" => "Fu-chien", - "02" => "Kao-hsiung", - "03" => "T'ai-pei", - "04" => "T'ai-wan"), -"TZ" => array( - "02" => "Pwani", - "03" => "Dodoma", - "04" => "Iringa", - "05" => "Kigoma", - "06" => "Kilimanjaro", - "07" => "Lindi", - "08" => "Mara", - "09" => "Mbeya", - "10" => "Morogoro", - "11" => "Mtwara", - "12" => "Mwanza", - "13" => "Pemba North", - "14" => "Ruvuma", - "15" => "Shinyanga", - "16" => "Singida", - "17" => "Tabora", - "18" => "Tanga", - "19" => "Kagera", - "20" => "Pemba South", - "21" => "Zanzibar Central", - "22" => "Zanzibar North", - "23" => "Dar es Salaam", - "24" => "Rukwa", - "25" => "Zanzibar Urban", - "26" => "Arusha", - "27" => "Manyara"), -"UA" => array( - "01" => "Cherkas'ka Oblast'", - "02" => "Chernihivs'ka Oblast'", - "03" => "Chernivets'ka Oblast'", - "04" => "Dnipropetrovs'ka Oblast'", - "05" => "Donets'ka Oblast'", - "06" => "Ivano-Frankivs'ka Oblast'", - "07" => "Kharkivs'ka Oblast'", - "08" => "Khersons'ka Oblast'", - "09" => "Khmel'nyts'ka Oblast'", - "10" => "Kirovohrads'ka Oblast'", - "11" => "Krym", - "12" => "Kyyiv", - "13" => "Kyyivs'ka Oblast'", - "14" => "Luhans'ka Oblast'", - "15" => "L'vivs'ka Oblast'", - "16" => "Mykolayivs'ka Oblast'", - "17" => "Odes'ka Oblast'", - "18" => "Poltavs'ka Oblast'", - "19" => "Rivnens'ka Oblast'", - "20" => "Sevastopol'", - "21" => "Sums'ka Oblast'", - "22" => "Ternopil's'ka Oblast'", - "23" => "Vinnyts'ka Oblast'", - "24" => "Volyns'ka Oblast'", - "25" => "Zakarpats'ka Oblast'", - "26" => "Zaporiz'ka Oblast'", - "27" => "Zhytomyrs'ka Oblast'"), -"UG" => array( - "26" => "Apac", - "28" => "Bundibugyo", - "29" => "Bushenyi", - "30" => "Gulu", - "31" => "Hoima", - "33" => "Jinja", - "36" => "Kalangala", - "37" => "Kampala", - "38" => "Kamuli", - "39" => "Kapchorwa", - "40" => "Kasese", - "41" => "Kibale", - "42" => "Kiboga", - "43" => "Kisoro", - "45" => "Kotido", - "46" => "Kumi", - "47" => "Lira", - "50" => "Masindi", - "52" => "Mbarara", - "56" => "Mubende", - "58" => "Nebbi", - "59" => "Ntungamo", - "60" => "Pallisa", - "61" => "Rakai", - "65" => "Adjumani", - "66" => "Bugiri", - "67" => "Busia", - "69" => "Katakwi", - "70" => "Luwero", - "71" => "Masaka", - "72" => "Moyo", - "73" => "Nakasongola", - "74" => "Sembabule", - "76" => "Tororo", - "77" => "Arua", - "78" => "Iganga", - "79" => "Kabarole", - "80" => "Kaberamaido", - "81" => "Kamwenge", - "82" => "Kanungu", - "83" => "Kayunga", - "84" => "Kitgum", - "85" => "Kyenjojo", - "86" => "Mayuge", - "87" => "Mbale", - "88" => "Moroto", - "89" => "Mpigi", - "90" => "Mukono", - "91" => "Nakapiripirit", - "92" => "Pader", - "93" => "Rukungiri", - "94" => "Sironko", - "95" => "Soroti", - "96" => "Wakiso", - "97" => "Yumbe"), -"US" => array( - "AA" => "Armed Forces Americas", - "AE" => "Armed Forces Europe, Middle East, & Canada", - "AK" => "Alaska", - "AL" => "Alabama", - "AP" => "Armed Forces Pacific", - "AR" => "Arkansas", - "AS" => "American Samoa", - "AZ" => "Arizona", - "CA" => "California", - "CO" => "Colorado", - "CT" => "Connecticut", - "DC" => "District of Columbia", - "DE" => "Delaware", - "FL" => "Florida", - "FM" => "Federated States of Micronesia", - "GA" => "Georgia", - "GU" => "Guam", - "HI" => "Hawaii", - "IA" => "Iowa", - "ID" => "Idaho", - "IL" => "Illinois", - "IN" => "Indiana", - "KS" => "Kansas", - "KY" => "Kentucky", - "LA" => "Louisiana", - "MA" => "Massachusetts", - "MD" => "Maryland", - "ME" => "Maine", - "MH" => "Marshall Islands", - "MI" => "Michigan", - "MN" => "Minnesota", - "MO" => "Missouri", - "MP" => "Northern Mariana Islands", - "MS" => "Mississippi", - "MT" => "Montana", - "NC" => "North Carolina", - "ND" => "North Dakota", - "NE" => "Nebraska", - "NH" => "New Hampshire", - "NJ" => "New Jersey", - "NM" => "New Mexico", - "NV" => "Nevada", - "NY" => "New York", - "OH" => "Ohio", - "OK" => "Oklahoma", - "OR" => "Oregon", - "PA" => "Pennsylvania", - "PR" => "Puerto Rico", - "PW" => "Palau", - "RI" => "Rhode Island", - "SC" => "South Carolina", - "SD" => "South Dakota", - "TN" => "Tennessee", - "TX" => "Texas", - "UT" => "Utah", - "VA" => "Virginia", - "VI" => "Virgin Islands", - "VT" => "Vermont", - "WA" => "Washington", - "WI" => "Wisconsin", - "WV" => "West Virginia", - "WY" => "Wyoming"), -"UY" => array( - "01" => "Artigas", - "02" => "Canelones", - "03" => "Cerro Largo", - "04" => "Colonia", - "05" => "Durazno", - "06" => "Flores", - "07" => "Florida", - "08" => "Lavalleja", - "09" => "Maldonado", - "10" => "Montevideo", - "11" => "Paysandu", - "12" => "Rio Negro", - "13" => "Rivera", - "14" => "Rocha", - "15" => "Salto", - "16" => "San Jose", - "17" => "Soriano", - "18" => "Tacuarembo", - "19" => "Treinta y Tres"), -"UZ" => array( - "01" => "Andijon", - "02" => "Bukhoro", - "03" => "Farghona", - "04" => "Jizzakh", - "05" => "Khorazm", - "06" => "Namangan", - "07" => "Nawoiy", - "08" => "Qashqadaryo", - "09" => "Qoraqalpoghiston", - "10" => "Samarqand", - "11" => "Sirdaryo", - "12" => "Surkhondaryo", - "13" => "Toshkent", - "14" => "Toshkent"), -"VC" => array( - "01" => "Charlotte", - "02" => "Saint Andrew", - "03" => "Saint David", - "04" => "Saint George", - "05" => "Saint Patrick", - "06" => "Grenadines"), -"VE" => array( - "01" => "Amazonas", - "02" => "Anzoategui", - "03" => "Apure", - "04" => "Aragua", - "05" => "Barinas", - "06" => "Bolivar", - "07" => "Carabobo", - "08" => "Cojedes", - "09" => "Delta Amacuro", - "11" => "Falcon", - "12" => "Guarico", - "13" => "Lara", - "14" => "Merida", - "15" => "Miranda", - "16" => "Monagas", - "17" => "Nueva Esparta", - "18" => "Portuguesa", - "19" => "Sucre", - "20" => "Tachira", - "21" => "Trujillo", - "22" => "Yaracuy", - "23" => "Zulia", - "24" => "Dependencias Federales", - "25" => "Distrito Federal", - "26" => "Vargas"), -"VN" => array( - "01" => "An Giang", - "03" => "Ben Tre", - "05" => "Cao Bang", - "09" => "Dong Thap", - "13" => "Hai Phong", - "20" => "Ho Chi Minh", - "21" => "Kien Giang", - "23" => "Lam Dong", - "24" => "Long An", - "30" => "Quang Ninh", - "32" => "Son La", - "33" => "Tay Ninh", - "34" => "Thanh Hoa", - "35" => "Thai Binh", - "37" => "Tien Giang", - "39" => "Lang Son", - "43" => "An Giang", - "44" => "Dac Lac", - "45" => "Dong Nai", - "46" => "Dong Thap", - "47" => "Kien Giang", - "49" => "Song Be", - "50" => "Vinh Phu", - "51" => "Ha Noi", - "52" => "Ho Chi Minh", - "53" => "Ba Ria-Vung Tau", - "54" => "Binh Dinh", - "55" => "Binh Thuan", - "58" => "Ha Giang", - "59" => "Ha Tay", - "60" => "Ha Tinh", - "61" => "Hoa Binh", - "62" => "Khanh Hoa", - "63" => "Kon Tum", - "64" => "Quang Tri", - "65" => "Nam Ha", - "66" => "Nghe An", - "67" => "Ninh Binh", - "68" => "Ninh Thuan", - "69" => "Phu Yen", - "70" => "Quang Binh", - "71" => "Quang Ngai", - "72" => "Quang Tri", - "73" => "Soc Trang", - "74" => "Thua Thien", - "75" => "Tra Vinh", - "76" => "Tuyen Quang", - "77" => "Vinh Long", - "78" => "Da Nang", - "79" => "Hai Duong", - "80" => "Ha Nam", - "81" => "Hung Yen", - "82" => "Nam Dinh", - "83" => "Phu Tho", - "84" => "Quang Nam", - "85" => "Thai Nguyen", - "86" => "Vinh Puc Province", - "87" => "Can Tho", - "88" => "Dak Lak", - "89" => "Lai Chau", - "90" => "Lao Cai", - "91" => "Dak Nong", - "92" => "Dien Bien", - "93" => "Hau Giang"), -"VU" => array( - "05" => "Ambrym", - "06" => "Aoba", - "07" => "Torba", - "08" => "Efate", - "09" => "Epi", - "10" => "Malakula", - "11" => "Paama", - "12" => "Pentecote", - "13" => "Sanma", - "14" => "Shepherd", - "15" => "Tafea", - "16" => "Malampa", - "17" => "Penama", - "18" => "Shefa"), -"WS" => array( - "02" => "Aiga-i-le-Tai", - "03" => "Atua", - "04" => "Fa", - "05" => "Gaga", - "06" => "Va", - "07" => "Gagaifomauga", - "08" => "Palauli", - "09" => "Satupa", - "10" => "Tuamasaga", - "11" => "Vaisigano"), -"YE" => array( - "01" => "Abyan", - "02" => "Adan", - "03" => "Al Mahrah", - "04" => "Hadramawt", - "05" => "Shabwah", - "06" => "Lahij", - "07" => "Al Bayda'", - "08" => "Al Hudaydah", - "09" => "Al Jawf", - "10" => "Al Mahwit", - "11" => "Dhamar", - "12" => "Hajjah", - "13" => "Ibb", - "14" => "Ma'rib", - "15" => "Sa'dah", - "16" => "San'a'", - "17" => "Taizz", - "18" => "Ad Dali", - "19" => "Amran", - "20" => "Al Bayda'", - "21" => "Al Jawf", - "22" => "Hajjah", - "23" => "Ibb", - "24" => "Lahij", - "25" => "Taizz"), -"ZA" => array( - "01" => "North-Western Province", - "02" => "KwaZulu-Natal", - "03" => "Free State", - "05" => "Eastern Cape", - "06" => "Gauteng", - "07" => "Mpumalanga", - "08" => "Northern Cape", - "09" => "Limpopo", - "10" => "North-West", - "11" => "Western Cape"), -"ZM" => array( - "01" => "Western", - "02" => "Central", - "03" => "Eastern", - "04" => "Luapula", - "05" => "Northern", - "06" => "North-Western", - "07" => "Southern", - "08" => "Copperbelt", - "09" => "Lusaka"), -"ZW" => array( - "01" => "Manicaland", - "02" => "Midlands", - "03" => "Mashonaland Central", - "04" => "Mashonaland East", - "05" => "Mashonaland West", - "06" => "Matabeleland North", - "07" => "Matabeleland South", - "08" => "Masvingo", - "09" => "Bulawayo", - "10" => "Harare") + "AD" => array( + "02" => "Canillo", + "03" => "Encamp", + "04" => "La Massana", + "05" => "Ordino", + "06" => "Sant Julia de Loria", + "07" => "Andorra la Vella", + "08" => "Escaldes-Engordany" + ), + "AE" => array( + "01" => "Abu Dhabi", + "02" => "Ajman", + "03" => "Dubai", + "04" => "Fujairah", + "05" => "Ras Al Khaimah", + "06" => "Sharjah", + "07" => "Umm Al Quwain" + ), + "AF" => array( + "01" => "Badakhshan", + "02" => "Badghis", + "03" => "Baghlan", + "05" => "Bamian", + "06" => "Farah", + "07" => "Faryab", + "08" => "Ghazni", + "09" => "Ghowr", + "10" => "Helmand", + "11" => "Herat", + "13" => "Kabol", + "14" => "Kapisa", + "17" => "Lowgar", + "18" => "Nangarhar", + "19" => "Nimruz", + "23" => "Kandahar", + "24" => "Kondoz", + "26" => "Takhar", + "27" => "Vardak", + "28" => "Zabol", + "29" => "Paktika", + "30" => "Balkh", + "31" => "Jowzjan", + "32" => "Samangan", + "33" => "Sar-e Pol", + "34" => "Konar", + "35" => "Laghman", + "36" => "Paktia", + "37" => "Khowst", + "38" => "Nurestan", + "39" => "Oruzgan", + "40" => "Parvan", + "41" => "Daykondi", + "42" => "Panjshir" + ), + "AG" => array( + "01" => "Barbuda", + "03" => "Saint George", + "04" => "Saint John", + "05" => "Saint Mary", + "06" => "Saint Paul", + "07" => "Saint Peter", + "08" => "Saint Philip", + "09" => "Redonda" + ), + "AL" => array( + "40" => "Berat", + "41" => "Diber", + "42" => "Durres", + "43" => "Elbasan", + "44" => "Fier", + "45" => "Gjirokaster", + "46" => "Korce", + "47" => "Kukes", + "48" => "Lezhe", + "49" => "Shkoder", + "50" => "Tirane", + "51" => "Vlore" + ), + "AM" => array( + "01" => "Aragatsotn", + "02" => "Ararat", + "03" => "Armavir", + "04" => "Geghark'unik'", + "05" => "Kotayk'", + "06" => "Lorri", + "07" => "Shirak", + "08" => "Syunik'", + "09" => "Tavush", + "10" => "Vayots' Dzor", + "11" => "Yerevan" + ), + "AO" => array( + "01" => "Benguela", + "02" => "Bie", + "03" => "Cabinda", + "04" => "Cuando Cubango", + "05" => "Cuanza Norte", + "06" => "Cuanza Sul", + "07" => "Cunene", + "08" => "Huambo", + "09" => "Huila", + "12" => "Malanje", + "13" => "Namibe", + "14" => "Moxico", + "15" => "Uige", + "16" => "Zaire", + "17" => "Lunda Norte", + "18" => "Lunda Sul", + "19" => "Bengo", + "20" => "Luanda" + ), + "AR" => array( + "01" => "Buenos Aires", + "02" => "Catamarca", + "03" => "Chaco", + "04" => "Chubut", + "05" => "Cordoba", + "06" => "Corrientes", + "07" => "Distrito Federal", + "08" => "Entre Rios", + "09" => "Formosa", + "10" => "Jujuy", + "11" => "La Pampa", + "12" => "La Rioja", + "13" => "Mendoza", + "14" => "Misiones", + "15" => "Neuquen", + "16" => "Rio Negro", + "17" => "Salta", + "18" => "San Juan", + "19" => "San Luis", + "20" => "Santa Cruz", + "21" => "Santa Fe", + "22" => "Santiago del Estero", + "23" => "Tierra del Fuego", + "24" => "Tucuman" + ), + "AT" => array( + "01" => "Burgenland", + "02" => "Karnten", + "03" => "Niederosterreich", + "04" => "Oberosterreich", + "05" => "Salzburg", + "06" => "Steiermark", + "07" => "Tirol", + "08" => "Vorarlberg", + "09" => "Wien" + ), + "AU" => array( + "01" => "Australian Capital Territory", + "02" => "New South Wales", + "03" => "Northern Territory", + "04" => "Queensland", + "05" => "South Australia", + "06" => "Tasmania", + "07" => "Victoria", + "08" => "Western Australia" + ), + "AZ" => array( + "01" => "Abseron", + "02" => "Agcabadi", + "03" => "Agdam", + "04" => "Agdas", + "05" => "Agstafa", + "06" => "Agsu", + "07" => "Ali Bayramli", + "08" => "Astara", + "09" => "Baki", + "10" => "Balakan", + "11" => "Barda", + "12" => "Beylaqan", + "13" => "Bilasuvar", + "14" => "Cabrayil", + "15" => "Calilabad", + "16" => "Daskasan", + "17" => "Davaci", + "18" => "Fuzuli", + "19" => "Gadabay", + "20" => "Ganca", + "21" => "Goranboy", + "22" => "Goycay", + "23" => "Haciqabul", + "24" => "Imisli", + "25" => "Ismayilli", + "26" => "Kalbacar", + "27" => "Kurdamir", + "28" => "Lacin", + "29" => "Lankaran", + "30" => "Lankaran", + "31" => "Lerik", + "32" => "Masalli", + "33" => "Mingacevir", + "34" => "Naftalan", + "35" => "Naxcivan", + "36" => "Neftcala", + "37" => "Oguz", + "38" => "Qabala", + "39" => "Qax", + "40" => "Qazax", + "41" => "Qobustan", + "42" => "Quba", + "43" => "Qubadli", + "44" => "Qusar", + "45" => "Saatli", + "46" => "Sabirabad", + "47" => "Saki", + "48" => "Saki", + "49" => "Salyan", + "50" => "Samaxi", + "51" => "Samkir", + "52" => "Samux", + "53" => "Siyazan", + "54" => "Sumqayit", + "55" => "Susa", + "56" => "Susa", + "57" => "Tartar", + "58" => "Tovuz", + "59" => "Ucar", + "60" => "Xacmaz", + "61" => "Xankandi", + "62" => "Xanlar", + "63" => "Xizi", + "64" => "Xocali", + "65" => "Xocavand", + "66" => "Yardimli", + "67" => "Yevlax", + "68" => "Yevlax", + "69" => "Zangilan", + "70" => "Zaqatala", + "71" => "Zardab" + ), + "BA" => array( + "01" => "Federation of Bosnia and Herzegovina", + "02" => "Republika Srpska" + ), + "BB" => array( + "01" => "Christ Church", + "02" => "Saint Andrew", + "03" => "Saint George", + "04" => "Saint James", + "05" => "Saint John", + "06" => "Saint Joseph", + "07" => "Saint Lucy", + "08" => "Saint Michael", + "09" => "Saint Peter", + "10" => "Saint Philip", + "11" => "Saint Thomas" + ), + "BD" => array( + "81" => "Dhaka", + "82" => "Khulna", + "83" => "Rajshahi", + "84" => "Chittagong", + "85" => "Barisal", + "86" => "Sylhet" + ), + "BE" => array( + "01" => "Antwerpen", + "03" => "Hainaut", + "04" => "Liege", + "05" => "Limburg", + "06" => "Luxembourg", + "07" => "Namur", + "08" => "Oost-Vlaanderen", + "09" => "West-Vlaanderen", + "10" => "Brabant Wallon", + "11" => "Brussels Hoofdstedelijk Gewest", + "12" => "Vlaams-Brabant", + "13" => "Flanders", + "14" => "Wallonia" + ), + "BF" => array( + "15" => "Bam", + "19" => "Boulkiemde", + "20" => "Ganzourgou", + "21" => "Gnagna", + "28" => "Kouritenga", + "33" => "Oudalan", + "34" => "Passore", + "36" => "Sanguie", + "40" => "Soum", + "42" => "Tapoa", + "44" => "Zoundweogo", + "45" => "Bale", + "46" => "Banwa", + "47" => "Bazega", + "48" => "Bougouriba", + "49" => "Boulgou", + "50" => "Gourma", + "51" => "Houet", + "52" => "Ioba", + "53" => "Kadiogo", + "54" => "Kenedougou", + "55" => "Komoe", + "56" => "Komondjari", + "57" => "Kompienga", + "58" => "Kossi", + "59" => "Koulpelogo", + "60" => "Kourweogo", + "61" => "Leraba", + "62" => "Loroum", + "63" => "Mouhoun", + "64" => "Namentenga", + "65" => "Naouri", + "66" => "Nayala", + "67" => "Noumbiel", + "68" => "Oubritenga", + "69" => "Poni", + "70" => "Sanmatenga", + "71" => "Seno", + "72" => "Sissili", + "73" => "Sourou", + "74" => "Tuy", + "75" => "Yagha", + "76" => "Yatenga", + "77" => "Ziro", + "78" => "Zondoma" + ), + "BG" => array( + "33" => "Mikhaylovgrad", + "38" => "Blagoevgrad", + "39" => "Burgas", + "40" => "Dobrich", + "41" => "Gabrovo", + "42" => "Grad Sofiya", + "43" => "Khaskovo", + "44" => "Kurdzhali", + "45" => "Kyustendil", + "46" => "Lovech", + "47" => "Montana", + "48" => "Pazardzhik", + "49" => "Pernik", + "50" => "Pleven", + "51" => "Plovdiv", + "52" => "Razgrad", + "53" => "Ruse", + "54" => "Shumen", + "55" => "Silistra", + "56" => "Sliven", + "57" => "Smolyan", + "58" => "Sofiya", + "59" => "Stara Zagora", + "60" => "Turgovishte", + "61" => "Varna", + "62" => "Veliko Turnovo", + "63" => "Vidin", + "64" => "Vratsa", + "65" => "Yambol" + ), + "BH" => array( + "01" => "Al Hadd", + "02" => "Al Manamah", + "05" => "Jidd Hafs", + "06" => "Sitrah", + "08" => "Al Mintaqah al Gharbiyah", + "09" => "Mintaqat Juzur Hawar", + "10" => "Al Mintaqah ash Shamaliyah", + "11" => "Al Mintaqah al Wusta", + "12" => "Madinat", + "13" => "Ar Rifa", + "14" => "Madinat Hamad", + "15" => "Al Muharraq", + "16" => "Al Asimah", + "17" => "Al Janubiyah", + "18" => "Ash Shamaliyah", + "19" => "Al Wusta" + ), + "BI" => array( + "02" => "Bujumbura", + "09" => "Bubanza", + "10" => "Bururi", + "11" => "Cankuzo", + "12" => "Cibitoke", + "13" => "Gitega", + "14" => "Karuzi", + "15" => "Kayanza", + "16" => "Kirundo", + "17" => "Makamba", + "18" => "Muyinga", + "19" => "Ngozi", + "20" => "Rutana", + "21" => "Ruyigi", + "22" => "Muramvya", + "23" => "Mwaro" + ), + "BJ" => array( + "07" => "Alibori", + "08" => "Atakora", + "09" => "Atlanyique", + "10" => "Borgou", + "11" => "Collines", + "12" => "Kouffo", + "13" => "Donga", + "14" => "Littoral", + "15" => "Mono", + "16" => "Oueme", + "17" => "Plateau", + "18" => "Zou" + ), + "BM" => array( + "01" => "Devonshire", + "02" => "Hamilton", + "03" => "Hamilton", + "04" => "Paget", + "05" => "Pembroke", + "06" => "Saint George", + "07" => "Saint George's", + "08" => "Sandys", + "09" => "Smiths", + "10" => "Southampton", + "11" => "Warwick" + ), + "BN" => array( + "07" => "Alibori", + "08" => "Belait", + "09" => "Brunei and Muara", + "10" => "Temburong", + "11" => "Collines", + "12" => "Kouffo", + "13" => "Donga", + "14" => "Littoral", + "15" => "Tutong", + "16" => "Oueme", + "17" => "Plateau", + "18" => "Zou" + ), + "BO" => array( + "01" => "Chuquisaca", + "02" => "Cochabamba", + "03" => "El Beni", + "04" => "La Paz", + "05" => "Oruro", + "06" => "Pando", + "07" => "Potosi", + "08" => "Santa Cruz", + "09" => "Tarija" + ), + "BR" => array( + "01" => "Acre", + "02" => "Alagoas", + "03" => "Amapa", + "04" => "Amazonas", + "05" => "Bahia", + "06" => "Ceara", + "07" => "Distrito Federal", + "08" => "Espirito Santo", + "11" => "Mato Grosso do Sul", + "13" => "Maranhao", + "14" => "Mato Grosso", + "15" => "Minas Gerais", + "16" => "Para", + "17" => "Paraiba", + "18" => "Parana", + "20" => "Piaui", + "21" => "Rio de Janeiro", + "22" => "Rio Grande do Norte", + "23" => "Rio Grande do Sul", + "24" => "Rondonia", + "25" => "Roraima", + "26" => "Santa Catarina", + "27" => "Sao Paulo", + "28" => "Sergipe", + "29" => "Goias", + "30" => "Pernambuco", + "31" => "Tocantins" + ), + "BS" => array( + "05" => "Bimini", + "06" => "Cat Island", + "10" => "Exuma", + "13" => "Inagua", + "15" => "Long Island", + "16" => "Mayaguana", + "18" => "Ragged Island", + "22" => "Harbour Island", + "23" => "New Providence", + "24" => "Acklins and Crooked Islands", + "25" => "Freeport", + "26" => "Fresh Creek", + "27" => "Governor's Harbour", + "28" => "Green Turtle Cay", + "29" => "High Rock", + "30" => "Kemps Bay", + "31" => "Marsh Harbour", + "32" => "Nichollstown and Berry Islands", + "33" => "Rock Sound", + "34" => "Sandy Point", + "35" => "San Salvador and Rum Cay" + ), + "BT" => array( + "05" => "Bumthang", + "06" => "Chhukha", + "07" => "Chirang", + "08" => "Daga", + "09" => "Geylegphug", + "10" => "Ha", + "11" => "Lhuntshi", + "12" => "Mongar", + "13" => "Paro", + "14" => "Pemagatsel", + "15" => "Punakha", + "16" => "Samchi", + "17" => "Samdrup", + "18" => "Shemgang", + "19" => "Tashigang", + "20" => "Thimphu", + "21" => "Tongsa", + "22" => "Wangdi Phodrang" + ), + "BW" => array( + "01" => "Central", + "03" => "Ghanzi", + "04" => "Kgalagadi", + "05" => "Kgatleng", + "06" => "Kweneng", + "08" => "North-East", + "09" => "South-East", + "10" => "Southern", + "11" => "North-West" + ), + "BY" => array( + "01" => "Brestskaya Voblasts'", + "02" => "Homyel'skaya Voblasts'", + "03" => "Hrodzyenskaya Voblasts'", + "04" => "Minsk", + "05" => "Minskaya Voblasts'", + "06" => "Mahilyowskaya Voblasts'", + "07" => "Vitsyebskaya Voblasts'" + ), + "BZ" => array( + "01" => "Belize", + "02" => "Cayo", + "03" => "Corozal", + "04" => "Orange Walk", + "05" => "Stann Creek", + "06" => "Toledo" + ), + "CA" => array( + "AB" => "Alberta", + "BC" => "British Columbia", + "MB" => "Manitoba", + "NB" => "New Brunswick", + "NL" => "Newfoundland", + "NS" => "Nova Scotia", + "NT" => "Northwest Territories", + "NU" => "Nunavut", + "ON" => "Ontario", + "PE" => "Prince Edward Island", + "QC" => "Quebec", + "SK" => "Saskatchewan", + "YT" => "Yukon Territory" + ), + "CD" => array( + "01" => "Bandundu", + "02" => "Equateur", + "04" => "Kasai-Oriental", + "05" => "Katanga", + "06" => "Kinshasa", + "08" => "Bas-Congo", + "09" => "Orientale", + "10" => "Maniema", + "11" => "Nord-Kivu", + "12" => "Sud-Kivu" + ), + "CF" => array( + "01" => "Bamingui-Bangoran", + "02" => "Basse-Kotto", + "03" => "Haute-Kotto", + "04" => "Mambere-Kadei", + "05" => "Haut-Mbomou", + "06" => "Kemo", + "07" => "Lobaye", + "08" => "Mbomou", + "09" => "Nana-Mambere", + "11" => "Ouaka", + "12" => "Ouham", + "13" => "Ouham-Pende", + "14" => "Cuvette-Ouest", + "15" => "Nana-Grebizi", + "16" => "Sangha-Mbaere", + "17" => "Ombella-Mpoko", + "18" => "Bangui" + ), + "CG" => array( + "01" => "Bouenza", + "04" => "Kouilou", + "05" => "Lekoumou", + "06" => "Likouala", + "07" => "Niari", + "08" => "Plateaux", + "10" => "Sangha", + "11" => "Pool", + "12" => "Brazzaville", + "13" => "Cuvette", + "14" => "Cuvette-Ouest" + ), + "CH" => array( + "01" => "Aargau", + "02" => "Ausser-Rhoden", + "03" => "Basel-Landschaft", + "04" => "Basel-Stadt", + "05" => "Bern", + "06" => "Fribourg", + "07" => "Geneve", + "08" => "Glarus", + "09" => "Graubunden", + "10" => "Inner-Rhoden", + "11" => "Luzern", + "12" => "Neuchatel", + "13" => "Nidwalden", + "14" => "Obwalden", + "15" => "Sankt Gallen", + "16" => "Schaffhausen", + "17" => "Schwyz", + "18" => "Solothurn", + "19" => "Thurgau", + "20" => "Ticino", + "21" => "Uri", + "22" => "Valais", + "23" => "Vaud", + "24" => "Zug", + "25" => "Zurich", + "26" => "Jura" + ), + "CI" => array( + "74" => "Agneby", + "75" => "Bafing", + "76" => "Bas-Sassandra", + "77" => "Denguele", + "78" => "Dix-Huit Montagnes", + "79" => "Fromager", + "80" => "Haut-Sassandra", + "81" => "Lacs", + "82" => "Lagunes", + "83" => "Marahoue", + "84" => "Moyen-Cavally", + "85" => "Moyen-Comoe", + "86" => "N'zi-Comoe", + "87" => "Savanes", + "88" => "Sud-Bandama", + "89" => "Sud-Comoe", + "90" => "Vallee du Bandama", + "91" => "Worodougou", + "92" => "Zanzan" + ), + "CL" => array( + "01" => "Valparaiso", + "02" => "Aisen del General Carlos Ibanez del Campo", + "03" => "Antofagasta", + "04" => "Araucania", + "05" => "Atacama", + "06" => "Bio-Bio", + "07" => "Coquimbo", + "08" => "Libertador General Bernardo O'Higgins", + "09" => "Los Lagos", + "10" => "Magallanes y de la Antartica Chilena", + "11" => "Maule", + "12" => "Region Metropolitana", + "13" => "Tarapaca", + "14" => "Los Lagos", + "15" => "Tarapaca", + "16" => "Arica y Parinacota", + "17" => "Los Rios" + ), + "CM" => array( + "04" => "Est", + "05" => "Littoral", + "07" => "Nord-Ouest", + "08" => "Ouest", + "09" => "Sud-Ouest", + "10" => "Adamaoua", + "11" => "Centre", + "12" => "Extreme-Nord", + "13" => "Nord", + "14" => "Sud" + ), + "CN" => array( + "01" => "Anhui", + "02" => "Zhejiang", + "03" => "Jiangxi", + "04" => "Jiangsu", + "05" => "Jilin", + "06" => "Qinghai", + "07" => "Fujian", + "08" => "Heilongjiang", + "09" => "Henan", + "10" => "Hebei", + "11" => "Hunan", + "12" => "Hubei", + "13" => "Xinjiang", + "14" => "Xizang", + "15" => "Gansu", + "16" => "Guangxi", + "18" => "Guizhou", + "19" => "Liaoning", + "20" => "Nei Mongol", + "21" => "Ningxia", + "22" => "Beijing", + "23" => "Shanghai", + "24" => "Shanxi", + "25" => "Shandong", + "26" => "Shaanxi", + "28" => "Tianjin", + "29" => "Yunnan", + "30" => "Guangdong", + "31" => "Hainan", + "32" => "Sichuan", + "33" => "Chongqing" + ), + "CO" => array( + "01" => "Amazonas", + "02" => "Antioquia", + "03" => "Arauca", + "04" => "Atlantico", + "08" => "Caqueta", + "09" => "Cauca", + "10" => "Cesar", + "11" => "Choco", + "12" => "Cordoba", + "14" => "Guaviare", + "15" => "Guainia", + "16" => "Huila", + "17" => "La Guajira", + "19" => "Meta", + "20" => "Narino", + "21" => "Norte de Santander", + "22" => "Putumayo", + "23" => "Quindio", + "24" => "Risaralda", + "25" => "San Andres y Providencia", + "26" => "Santander", + "27" => "Sucre", + "28" => "Tolima", + "29" => "Valle del Cauca", + "30" => "Vaupes", + "31" => "Vichada", + "32" => "Casanare", + "33" => "Cundinamarca", + "34" => "Distrito Especial", + "35" => "Bolivar", + "36" => "Boyaca", + "37" => "Caldas", + "38" => "Magdalena" + ), + "CR" => array( + "01" => "Alajuela", + "02" => "Cartago", + "03" => "Guanacaste", + "04" => "Heredia", + "06" => "Limon", + "07" => "Puntarenas", + "08" => "San Jose" + ), + "CU" => array( + "01" => "Pinar del Rio", + "02" => "Ciudad de la Habana", + "03" => "Matanzas", + "04" => "Isla de la Juventud", + "05" => "Camaguey", + "07" => "Ciego de Avila", + "08" => "Cienfuegos", + "09" => "Granma", + "10" => "Guantanamo", + "11" => "La Habana", + "12" => "Holguin", + "13" => "Las Tunas", + "14" => "Sancti Spiritus", + "15" => "Santiago de Cuba", + "16" => "Villa Clara" + ), + "CV" => array( + "01" => "Boa Vista", + "02" => "Brava", + "04" => "Maio", + "05" => "Paul", + "07" => "Ribeira Grande", + "08" => "Sal", + "10" => "Sao Nicolau", + "11" => "Sao Vicente", + "13" => "Mosteiros", + "14" => "Praia", + "15" => "Santa Catarina", + "16" => "Santa Cruz", + "17" => "Sao Domingos", + "18" => "Sao Filipe", + "19" => "Sao Miguel", + "20" => "Tarrafal" + ), + "CY" => array( + "01" => "Famagusta", + "02" => "Kyrenia", + "03" => "Larnaca", + "04" => "Nicosia", + "05" => "Limassol", + "06" => "Paphos" + ), + "CZ" => array( + "52" => "Hlavni mesto Praha", + "78" => "Jihomoravsky kraj", + "79" => "Jihocesky kraj", + "80" => "Vysocina", + "81" => "Karlovarsky kraj", + "82" => "Kralovehradecky kraj", + "83" => "Liberecky kraj", + "84" => "Olomoucky kraj", + "85" => "Moravskoslezsky kraj", + "86" => "Pardubicky kraj", + "87" => "Plzensky kraj", + "88" => "Stredocesky kraj", + "89" => "Ustecky kraj", + "90" => "Zlinsky kraj" + ), + "DE" => array( + "01" => "Baden-Wurttemberg", + "02" => "Bayern", + "03" => "Bremen", + "04" => "Hamburg", + "05" => "Hessen", + "06" => "Niedersachsen", + "07" => "Nordrhein-Westfalen", + "08" => "Rheinland-Pfalz", + "09" => "Saarland", + "10" => "Schleswig-Holstein", + "11" => "Brandenburg", + "12" => "Mecklenburg-Vorpommern", + "13" => "Sachsen", + "14" => "Sachsen-Anhalt", + "15" => "Thuringen", + "16" => "Berlin" + ), + "DJ" => array( + "01" => "Ali Sabieh", + "04" => "Obock", + "05" => "Tadjoura", + "06" => "Dikhil", + "07" => "Djibouti", + "08" => "Arta" + ), + "DK" => array( + "17" => "Hovedstaden", + "18" => "Midtjylland", + "19" => "Nordjylland", + "20" => "Sjelland", + "21" => "Syddanmark" + ), + "DM" => array( + "02" => "Saint Andrew", + "03" => "Saint David", + "04" => "Saint George", + "05" => "Saint John", + "06" => "Saint Joseph", + "07" => "Saint Luke", + "08" => "Saint Mark", + "09" => "Saint Patrick", + "10" => "Saint Paul", + "11" => "Saint Peter" + ), + "DO" => array( + "01" => "Azua", + "02" => "Baoruco", + "03" => "Barahona", + "04" => "Dajabon", + "05" => "Distrito Nacional", + "06" => "Duarte", + "08" => "Espaillat", + "09" => "Independencia", + "10" => "La Altagracia", + "11" => "Elias Pina", + "12" => "La Romana", + "14" => "Maria Trinidad Sanchez", + "15" => "Monte Cristi", + "16" => "Pedernales", + "17" => "Peravia", + "18" => "Puerto Plata", + "19" => "Salcedo", + "20" => "Samana", + "21" => "Sanchez Ramirez", + "23" => "San Juan", + "24" => "San Pedro De Macoris", + "25" => "Santiago", + "26" => "Santiago Rodriguez", + "27" => "Valverde", + "28" => "El Seibo", + "29" => "Hato Mayor", + "30" => "La Vega", + "31" => "Monsenor Nouel", + "32" => "Monte Plata", + "33" => "San Cristobal", + "34" => "Distrito Nacional", + "35" => "Peravia", + "36" => "San Jose de Ocoa", + "37" => "Santo Domingo" + ), + "DZ" => array( + "01" => "Alger", + "03" => "Batna", + "04" => "Constantine", + "06" => "Medea", + "07" => "Mostaganem", + "09" => "Oran", + "10" => "Saida", + "12" => "Setif", + "13" => "Tiaret", + "14" => "Tizi Ouzou", + "15" => "Tlemcen", + "18" => "Bejaia", + "19" => "Biskra", + "20" => "Blida", + "21" => "Bouira", + "22" => "Djelfa", + "23" => "Guelma", + "24" => "Jijel", + "25" => "Laghouat", + "26" => "Mascara", + "27" => "M'sila", + "29" => "Oum el Bouaghi", + "30" => "Sidi Bel Abbes", + "31" => "Skikda", + "33" => "Tebessa", + "34" => "Adrar", + "35" => "Ain Defla", + "36" => "Ain Temouchent", + "37" => "Annaba", + "38" => "Bechar", + "39" => "Bordj Bou Arreridj", + "40" => "Boumerdes", + "41" => "Chlef", + "42" => "El Bayadh", + "43" => "El Oued", + "44" => "El Tarf", + "45" => "Ghardaia", + "46" => "Illizi", + "47" => "Khenchela", + "48" => "Mila", + "49" => "Naama", + "50" => "Ouargla", + "51" => "Relizane", + "52" => "Souk Ahras", + "53" => "Tamanghasset", + "54" => "Tindouf", + "55" => "Tipaza", + "56" => "Tissemsilt" + ), + "EC" => array( + "01" => "Galapagos", + "02" => "Azuay", + "03" => "Bolivar", + "04" => "Canar", + "05" => "Carchi", + "06" => "Chimborazo", + "07" => "Cotopaxi", + "08" => "El Oro", + "09" => "Esmeraldas", + "10" => "Guayas", + "11" => "Imbabura", + "12" => "Loja", + "13" => "Los Rios", + "14" => "Manabi", + "15" => "Morona-Santiago", + "17" => "Pastaza", + "18" => "Pichincha", + "19" => "Tungurahua", + "20" => "Zamora-Chinchipe", + "22" => "Sucumbios", + "23" => "Napo", + "24" => "Orellana" + ), + "EE" => array( + "01" => "Harjumaa", + "02" => "Hiiumaa", + "03" => "Ida-Virumaa", + "04" => "Jarvamaa", + "05" => "Jogevamaa", + "06" => "Kohtla-Jarve", + "07" => "Laanemaa", + "08" => "Laane-Virumaa", + "09" => "Narva", + "10" => "Parnu", + "11" => "Parnumaa", + "12" => "Polvamaa", + "13" => "Raplamaa", + "14" => "Saaremaa", + "15" => "Sillamae", + "16" => "Tallinn", + "17" => "Tartu", + "18" => "Tartumaa", + "19" => "Valgamaa", + "20" => "Viljandimaa", + "21" => "Vorumaa" + ), + "EG" => array( + "01" => "Ad Daqahliyah", + "02" => "Al Bahr al Ahmar", + "03" => "Al Buhayrah", + "04" => "Al Fayyum", + "05" => "Al Gharbiyah", + "06" => "Al Iskandariyah", + "07" => "Al Isma'iliyah", + "08" => "Al Jizah", + "09" => "Al Minufiyah", + "10" => "Al Minya", + "11" => "Al Qahirah", + "12" => "Al Qalyubiyah", + "13" => "Al Wadi al Jadid", + "14" => "Ash Sharqiyah", + "15" => "As Suways", + "16" => "Aswan", + "17" => "Asyut", + "18" => "Bani Suwayf", + "19" => "Bur Sa'id", + "20" => "Dumyat", + "21" => "Kafr ash Shaykh", + "22" => "Matruh", + "23" => "Qina", + "24" => "Suhaj", + "26" => "Janub Sina'", + "27" => "Shamal Sina'" + ), + "ER" => array( + "01" => "Anseba", + "02" => "Debub", + "03" => "Debubawi K'eyih Bahri", + "04" => "Gash Barka", + "05" => "Ma'akel", + "06" => "Semenawi K'eyih Bahri" + ), + "ES" => array( + "07" => "Islas Baleares", + "27" => "La Rioja", + "29" => "Madrid", + "31" => "Murcia", + "32" => "Navarra", + "34" => "Asturias", + "39" => "Cantabria", + "51" => "Andalucia", + "52" => "Aragon", + "53" => "Canarias", + "54" => "Castilla-La Mancha", + "55" => "Castilla y Leon", + "56" => "Catalonia", + "57" => "Extremadura", + "58" => "Galicia", + "59" => "Pais Vasco", + "60" => "Comunidad Valenciana" + ), + "ET" => array( + "44" => "Adis Abeba", + "45" => "Afar", + "46" => "Amara", + "47" => "Binshangul Gumuz", + "48" => "Dire Dawa", + "49" => "Gambela Hizboch", + "50" => "Hareri Hizb", + "51" => "Oromiya", + "52" => "Sumale", + "53" => "Tigray", + "54" => "YeDebub Biheroch Bihereseboch na Hizboch" + ), + "FI" => array( + "01" => "Aland", + "06" => "Lapland", + "08" => "Oulu", + "13" => "Southern Finland", + "14" => "Eastern Finland", + "15" => "Western Finland" + ), + "FJ" => array( + "01" => "Central", + "02" => "Eastern", + "03" => "Northern", + "04" => "Rotuma", + "05" => "Western" + ), + "FM" => array( + "01" => "Kosrae", + "02" => "Pohnpei", + "03" => "Chuuk", + "04" => "Yap" + ), + "FR" => array( + "97" => "Aquitaine", + "98" => "Auvergne", + "99" => "Basse-Normandie", + "A1" => "Bourgogne", + "A2" => "Bretagne", + "A3" => "Centre", + "A4" => "Champagne-Ardenne", + "A5" => "Corse", + "A6" => "Franche-Comte", + "A7" => "Haute-Normandie", + "A8" => "Ile-de-France", + "A9" => "Languedoc-Roussillon", + "B1" => "Limousin", + "B2" => "Lorraine", + "B3" => "Midi-Pyrenees", + "B4" => "Nord-Pas-de-Calais", + "B5" => "Pays de la Loire", + "B6" => "Picardie", + "B7" => "Poitou-Charentes", + "B8" => "Provence-Alpes-Cote d'Azur", + "B9" => "Rhone-Alpes", + "C1" => "Alsace" + ), + "GA" => array( + "01" => "Estuaire", + "02" => "Haut-Ogooue", + "03" => "Moyen-Ogooue", + "04" => "Ngounie", + "05" => "Nyanga", + "06" => "Ogooue-Ivindo", + "07" => "Ogooue-Lolo", + "08" => "Ogooue-Maritime", + "09" => "Woleu-Ntem" + ), + "GB" => array( + "A1" => "Barking and Dagenham", + "A2" => "Barnet", + "A3" => "Barnsley", + "A4" => "Bath and North East Somerset", + "A5" => "Bedfordshire", + "A6" => "Bexley", + "A7" => "Birmingham", + "A8" => "Blackburn with Darwen", + "A9" => "Blackpool", + "B1" => "Bolton", + "B2" => "Bournemouth", + "B3" => "Bracknell Forest", + "B4" => "Bradford", + "B5" => "Brent", + "B6" => "Brighton and Hove", + "B7" => "Bristol, City of", + "B8" => "Bromley", + "B9" => "Buckinghamshire", + "C1" => "Bury", + "C2" => "Calderdale", + "C3" => "Cambridgeshire", + "C4" => "Camden", + "C5" => "Cheshire", + "C6" => "Cornwall", + "C7" => "Coventry", + "C8" => "Croydon", + "C9" => "Cumbria", + "D1" => "Darlington", + "D2" => "Derby", + "D3" => "Derbyshire", + "D4" => "Devon", + "D5" => "Doncaster", + "D6" => "Dorset", + "D7" => "Dudley", + "D8" => "Durham", + "D9" => "Ealing", + "E1" => "East Riding of Yorkshire", + "E2" => "East Sussex", + "E3" => "Enfield", + "E4" => "Essex", + "E5" => "Gateshead", + "E6" => "Gloucestershire", + "E7" => "Greenwich", + "E8" => "Hackney", + "E9" => "Halton", + "F1" => "Hammersmith and Fulham", + "F2" => "Hampshire", + "F3" => "Haringey", + "F4" => "Harrow", + "F5" => "Hartlepool", + "F6" => "Havering", + "F7" => "Herefordshire", + "F8" => "Hertford", + "F9" => "Hillingdon", + "G1" => "Hounslow", + "G2" => "Isle of Wight", + "G3" => "Islington", + "G4" => "Kensington and Chelsea", + "G5" => "Kent", + "G6" => "Kingston upon Hull, City of", + "G7" => "Kingston upon Thames", + "G8" => "Kirklees", + "G9" => "Knowsley", + "H1" => "Lambeth", + "H2" => "Lancashire", + "H3" => "Leeds", + "H4" => "Leicester", + "H5" => "Leicestershire", + "H6" => "Lewisham", + "H7" => "Lincolnshire", + "H8" => "Liverpool", + "H9" => "London, City of", + "I1" => "Luton", + "I2" => "Manchester", + "I3" => "Medway", + "I4" => "Merton", + "I5" => "Middlesbrough", + "I6" => "Milton Keynes", + "I7" => "Newcastle upon Tyne", + "I8" => "Newham", + "I9" => "Norfolk", + "J1" => "Northamptonshire", + "J2" => "North East Lincolnshire", + "J3" => "North Lincolnshire", + "J4" => "North Somerset", + "J5" => "North Tyneside", + "J6" => "Northumberland", + "J7" => "North Yorkshire", + "J8" => "Nottingham", + "J9" => "Nottinghamshire", + "K1" => "Oldham", + "K2" => "Oxfordshire", + "K3" => "Peterborough", + "K4" => "Plymouth", + "K5" => "Poole", + "K6" => "Portsmouth", + "K7" => "Reading", + "K8" => "Redbridge", + "K9" => "Redcar and Cleveland", + "L1" => "Richmond upon Thames", + "L2" => "Rochdale", + "L3" => "Rotherham", + "L4" => "Rutland", + "L5" => "Salford", + "L6" => "Shropshire", + "L7" => "Sandwell", + "L8" => "Sefton", + "L9" => "Sheffield", + "M1" => "Slough", + "M2" => "Solihull", + "M3" => "Somerset", + "M4" => "Southampton", + "M5" => "Southend-on-Sea", + "M6" => "South Gloucestershire", + "M7" => "South Tyneside", + "M8" => "Southwark", + "M9" => "Staffordshire", + "N1" => "St. Helens", + "N2" => "Stockport", + "N3" => "Stockton-on-Tees", + "N4" => "Stoke-on-Trent", + "N5" => "Suffolk", + "N6" => "Sunderland", + "N7" => "Surrey", + "N8" => "Sutton", + "N9" => "Swindon", + "O1" => "Tameside", + "O2" => "Telford and Wrekin", + "O3" => "Thurrock", + "O4" => "Torbay", + "O5" => "Tower Hamlets", + "O6" => "Trafford", + "O7" => "Wakefield", + "O8" => "Walsall", + "O9" => "Waltham Forest", + "P1" => "Wandsworth", + "P2" => "Warrington", + "P3" => "Warwickshire", + "P4" => "West Berkshire", + "P5" => "Westminster", + "P6" => "West Sussex", + "P7" => "Wigan", + "P8" => "Wiltshire", + "P9" => "Windsor and Maidenhead", + "Q1" => "Wirral", + "Q2" => "Wokingham", + "Q3" => "Wolverhampton", + "Q4" => "Worcestershire", + "Q5" => "York", + "Q6" => "Antrim", + "Q7" => "Ards", + "Q8" => "Armagh", + "Q9" => "Ballymena", + "R1" => "Ballymoney", + "R2" => "Banbridge", + "R3" => "Belfast", + "R4" => "Carrickfergus", + "R5" => "Castlereagh", + "R6" => "Coleraine", + "R7" => "Cookstown", + "R8" => "Craigavon", + "R9" => "Down", + "S1" => "Dungannon", + "S2" => "Fermanagh", + "S3" => "Larne", + "S4" => "Limavady", + "S5" => "Lisburn", + "S6" => "Derry", + "S7" => "Magherafelt", + "S8" => "Moyle", + "S9" => "Newry and Mourne", + "T1" => "Newtownabbey", + "T2" => "North Down", + "T3" => "Omagh", + "T4" => "Strabane", + "T5" => "Aberdeen City", + "T6" => "Aberdeenshire", + "T7" => "Angus", + "T8" => "Argyll and Bute", + "T9" => "Scottish Borders, The", + "U1" => "Clackmannanshire", + "U2" => "Dumfries and Galloway", + "U3" => "Dundee City", + "U4" => "East Ayrshire", + "U5" => "East Dunbartonshire", + "U6" => "East Lothian", + "U7" => "East Renfrewshire", + "U8" => "Edinburgh, City of", + "U9" => "Falkirk", + "V1" => "Fife", + "V2" => "Glasgow City", + "V3" => "Highland", + "V4" => "Inverclyde", + "V5" => "Midlothian", + "V6" => "Moray", + "V7" => "North Ayrshire", + "V8" => "North Lanarkshire", + "V9" => "Orkney", + "W1" => "Perth and Kinross", + "W2" => "Renfrewshire", + "W3" => "Shetland Islands", + "W4" => "South Ayrshire", + "W5" => "South Lanarkshire", + "W6" => "Stirling", + "W7" => "West Dunbartonshire", + "W8" => "Eilean Siar", + "W9" => "West Lothian", + "X1" => "Isle of Anglesey", + "X2" => "Blaenau Gwent", + "X3" => "Bridgend", + "X4" => "Caerphilly", + "X5" => "Cardiff", + "X6" => "Ceredigion", + "X7" => "Carmarthenshire", + "X8" => "Conwy", + "X9" => "Denbighshire", + "Y1" => "Flintshire", + "Y2" => "Gwynedd", + "Y3" => "Merthyr Tydfil", + "Y4" => "Monmouthshire", + "Y5" => "Neath Port Talbot", + "Y6" => "Newport", + "Y7" => "Pembrokeshire", + "Y8" => "Powys", + "Y9" => "Rhondda Cynon Taff", + "Z1" => "Swansea", + "Z2" => "Torfaen", + "Z3" => "Vale of Glamorgan, The", + "Z4" => "Wrexham", + "Z5" => "Bedfordshire", + "Z6" => "Central Bedfordshire", + "Z7" => "Cheshire East", + "Z8" => "Cheshire West and Chester", + "Z9" => "Isles of Scilly" + ), + "GD" => array( + "01" => "Saint Andrew", + "02" => "Saint David", + "03" => "Saint George", + "04" => "Saint John", + "05" => "Saint Mark", + "06" => "Saint Patrick" + ), + "GE" => array( + "01" => "Abashis Raioni", + "02" => "Abkhazia", + "03" => "Adigenis Raioni", + "04" => "Ajaria", + "05" => "Akhalgoris Raioni", + "06" => "Akhalk'alak'is Raioni", + "07" => "Akhalts'ikhis Raioni", + "08" => "Akhmetis Raioni", + "09" => "Ambrolauris Raioni", + "10" => "Aspindzis Raioni", + "11" => "Baghdat'is Raioni", + "12" => "Bolnisis Raioni", + "13" => "Borjomis Raioni", + "14" => "Chiat'ura", + "15" => "Ch'khorotsqus Raioni", + "16" => "Ch'okhatauris Raioni", + "17" => "Dedop'listsqaros Raioni", + "18" => "Dmanisis Raioni", + "19" => "Dushet'is Raioni", + "20" => "Gardabanis Raioni", + "21" => "Gori", + "22" => "Goris Raioni", + "23" => "Gurjaanis Raioni", + "24" => "Javis Raioni", + "25" => "K'arelis Raioni", + "26" => "Kaspis Raioni", + "27" => "Kharagaulis Raioni", + "28" => "Khashuris Raioni", + "29" => "Khobis Raioni", + "30" => "Khonis Raioni", + "31" => "K'ut'aisi", + "32" => "Lagodekhis Raioni", + "33" => "Lanch'khut'is Raioni", + "34" => "Lentekhis Raioni", + "35" => "Marneulis Raioni", + "36" => "Martvilis Raioni", + "37" => "Mestiis Raioni", + "38" => "Mts'khet'is Raioni", + "39" => "Ninotsmindis Raioni", + "40" => "Onis Raioni", + "41" => "Ozurget'is Raioni", + "42" => "P'ot'i", + "43" => "Qazbegis Raioni", + "44" => "Qvarlis Raioni", + "45" => "Rust'avi", + "46" => "Sach'kheris Raioni", + "47" => "Sagarejos Raioni", + "48" => "Samtrediis Raioni", + "49" => "Senakis Raioni", + "50" => "Sighnaghis Raioni", + "51" => "T'bilisi", + "52" => "T'elavis Raioni", + "53" => "T'erjolis Raioni", + "54" => "T'et'ritsqaros Raioni", + "55" => "T'ianet'is Raioni", + "56" => "Tqibuli", + "57" => "Ts'ageris Raioni", + "58" => "Tsalenjikhis Raioni", + "59" => "Tsalkis Raioni", + "60" => "Tsqaltubo", + "61" => "Vanis Raioni", + "62" => "Zestap'onis Raioni", + "63" => "Zugdidi", + "64" => "Zugdidis Raioni" + ), + "GH" => array( + "01" => "Greater Accra", + "02" => "Ashanti", + "03" => "Brong-Ahafo", + "04" => "Central", + "05" => "Eastern", + "06" => "Northern", + "08" => "Volta", + "09" => "Western", + "10" => "Upper East", + "11" => "Upper West" + ), + "GL" => array( + "01" => "Nordgronland", + "02" => "Ostgronland", + "03" => "Vestgronland" + ), + "GM" => array( + "01" => "Banjul", + "02" => "Lower River", + "03" => "Central River", + "04" => "Upper River", + "05" => "Western", + "07" => "North Bank" + ), + "GN" => array( + "01" => "Beyla", + "02" => "Boffa", + "03" => "Boke", + "04" => "Conakry", + "05" => "Dabola", + "06" => "Dalaba", + "07" => "Dinguiraye", + "09" => "Faranah", + "10" => "Forecariah", + "11" => "Fria", + "12" => "Gaoual", + "13" => "Gueckedou", + "15" => "Kerouane", + "16" => "Kindia", + "17" => "Kissidougou", + "18" => "Koundara", + "19" => "Kouroussa", + "21" => "Macenta", + "22" => "Mali", + "23" => "Mamou", + "25" => "Pita", + "27" => "Telimele", + "28" => "Tougue", + "29" => "Yomou", + "30" => "Coyah", + "31" => "Dubreka", + "32" => "Kankan", + "33" => "Koubia", + "34" => "Labe", + "35" => "Lelouma", + "36" => "Lola", + "37" => "Mandiana", + "38" => "Nzerekore", + "39" => "Siguiri" + ), + "GQ" => array( + "03" => "Annobon", + "04" => "Bioko Norte", + "05" => "Bioko Sur", + "06" => "Centro Sur", + "07" => "Kie-Ntem", + "08" => "Litoral", + "09" => "Wele-Nzas" + ), + "GR" => array( + "01" => "Evros", + "02" => "Rodhopi", + "03" => "Xanthi", + "04" => "Drama", + "05" => "Serrai", + "06" => "Kilkis", + "07" => "Pella", + "08" => "Florina", + "09" => "Kastoria", + "10" => "Grevena", + "11" => "Kozani", + "12" => "Imathia", + "13" => "Thessaloniki", + "14" => "Kavala", + "15" => "Khalkidhiki", + "16" => "Pieria", + "17" => "Ioannina", + "18" => "Thesprotia", + "19" => "Preveza", + "20" => "Arta", + "21" => "Larisa", + "22" => "Trikala", + "23" => "Kardhitsa", + "24" => "Magnisia", + "25" => "Kerkira", + "26" => "Levkas", + "27" => "Kefallinia", + "28" => "Zakinthos", + "29" => "Fthiotis", + "30" => "Evritania", + "31" => "Aitolia kai Akarnania", + "32" => "Fokis", + "33" => "Voiotia", + "34" => "Evvoia", + "35" => "Attiki", + "36" => "Argolis", + "37" => "Korinthia", + "38" => "Akhaia", + "39" => "Ilia", + "40" => "Messinia", + "41" => "Arkadhia", + "42" => "Lakonia", + "43" => "Khania", + "44" => "Rethimni", + "45" => "Iraklion", + "46" => "Lasithi", + "47" => "Dhodhekanisos", + "48" => "Samos", + "49" => "Kikladhes", + "50" => "Khios", + "51" => "Lesvos" + ), + "GT" => array( + "01" => "Alta Verapaz", + "02" => "Baja Verapaz", + "03" => "Chimaltenango", + "04" => "Chiquimula", + "05" => "El Progreso", + "06" => "Escuintla", + "07" => "Guatemala", + "08" => "Huehuetenango", + "09" => "Izabal", + "10" => "Jalapa", + "11" => "Jutiapa", + "12" => "Peten", + "13" => "Quetzaltenango", + "14" => "Quiche", + "15" => "Retalhuleu", + "16" => "Sacatepequez", + "17" => "San Marcos", + "18" => "Santa Rosa", + "19" => "Solola", + "20" => "Suchitepequez", + "21" => "Totonicapan", + "22" => "Zacapa" + ), + "GW" => array( + "01" => "Bafata", + "02" => "Quinara", + "04" => "Oio", + "05" => "Bolama", + "06" => "Cacheu", + "07" => "Tombali", + "10" => "Gabu", + "11" => "Bissau", + "12" => "Biombo" + ), + "GY" => array( + "10" => "Barima-Waini", + "11" => "Cuyuni-Mazaruni", + "12" => "Demerara-Mahaica", + "13" => "East Berbice-Corentyne", + "14" => "Essequibo Islands-West Demerara", + "15" => "Mahaica-Berbice", + "16" => "Pomeroon-Supenaam", + "17" => "Potaro-Siparuni", + "18" => "Upper Demerara-Berbice", + "19" => "Upper Takutu-Upper Essequibo" + ), + "HN" => array( + "01" => "Atlantida", + "02" => "Choluteca", + "03" => "Colon", + "04" => "Comayagua", + "05" => "Copan", + "06" => "Cortes", + "07" => "El Paraiso", + "08" => "Francisco Morazan", + "09" => "Gracias a Dios", + "10" => "Intibuca", + "11" => "Islas de la Bahia", + "12" => "La Paz", + "13" => "Lempira", + "14" => "Ocotepeque", + "15" => "Olancho", + "16" => "Santa Barbara", + "17" => "Valle", + "18" => "Yoro" + ), + "HR" => array( + "01" => "Bjelovarsko-Bilogorska", + "02" => "Brodsko-Posavska", + "03" => "Dubrovacko-Neretvanska", + "04" => "Istarska", + "05" => "Karlovacka", + "06" => "Koprivnicko-Krizevacka", + "07" => "Krapinsko-Zagorska", + "08" => "Licko-Senjska", + "09" => "Medimurska", + "10" => "Osjecko-Baranjska", + "11" => "Pozesko-Slavonska", + "12" => "Primorsko-Goranska", + "13" => "Sibensko-Kninska", + "14" => "Sisacko-Moslavacka", + "15" => "Splitsko-Dalmatinska", + "16" => "Varazdinska", + "17" => "Viroviticko-Podravska", + "18" => "Vukovarsko-Srijemska", + "19" => "Zadarska", + "20" => "Zagrebacka", + "21" => "Grad Zagreb" + ), + "HT" => array( + "03" => "Nord-Ouest", + "06" => "Artibonite", + "07" => "Centre", + "09" => "Nord", + "10" => "Nord-Est", + "11" => "Ouest", + "12" => "Sud", + "13" => "Sud-Est", + "14" => "Grand' Anse", + "15" => "Nippes" + ), + "HU" => array( + "01" => "Bacs-Kiskun", + "02" => "Baranya", + "03" => "Bekes", + "04" => "Borsod-Abauj-Zemplen", + "05" => "Budapest", + "06" => "Csongrad", + "07" => "Debrecen", + "08" => "Fejer", + "09" => "Gyor-Moson-Sopron", + "10" => "Hajdu-Bihar", + "11" => "Heves", + "12" => "Komarom-Esztergom", + "13" => "Miskolc", + "14" => "Nograd", + "15" => "Pecs", + "16" => "Pest", + "17" => "Somogy", + "18" => "Szabolcs-Szatmar-Bereg", + "19" => "Szeged", + "20" => "Jasz-Nagykun-Szolnok", + "21" => "Tolna", + "22" => "Vas", + "23" => "Veszprem", + "24" => "Zala", + "25" => "Gyor", + "26" => "Bekescsaba", + "27" => "Dunaujvaros", + "28" => "Eger", + "29" => "Hodmezovasarhely", + "30" => "Kaposvar", + "31" => "Kecskemet", + "32" => "Nagykanizsa", + "33" => "Nyiregyhaza", + "34" => "Sopron", + "35" => "Szekesfehervar", + "36" => "Szolnok", + "37" => "Szombathely", + "38" => "Tatabanya", + "39" => "Veszprem", + "40" => "Zalaegerszeg", + "41" => "Salgotarjan", + "42" => "Szekszard", + "43" => "Erd" + ), + "ID" => array( + "01" => "Aceh", + "02" => "Bali", + "03" => "Bengkulu", + "04" => "Jakarta Raya", + "05" => "Jambi", + "07" => "Jawa Tengah", + "08" => "Jawa Timur", + "10" => "Yogyakarta", + "11" => "Kalimantan Barat", + "12" => "Kalimantan Selatan", + "13" => "Kalimantan Tengah", + "14" => "Kalimantan Timur", + "15" => "Lampung", + "17" => "Nusa Tenggara Barat", + "18" => "Nusa Tenggara Timur", + "21" => "Sulawesi Tengah", + "22" => "Sulawesi Tenggara", + "24" => "Sumatera Barat", + "26" => "Sumatera Utara", + "28" => "Maluku", + "29" => "Maluku Utara", + "30" => "Jawa Barat", + "31" => "Sulawesi Utara", + "32" => "Sumatera Selatan", + "33" => "Banten", + "34" => "Gorontalo", + "35" => "Kepulauan Bangka Belitung", + "36" => "Papua", + "37" => "Riau", + "38" => "Sulawesi Selatan", + "39" => "Irian Jaya Barat", + "40" => "Kepulauan Riau", + "41" => "Sulawesi Barat" + ), + "IE" => array( + "01" => "Carlow", + "02" => "Cavan", + "03" => "Clare", + "04" => "Cork", + "06" => "Donegal", + "07" => "Dublin", + "10" => "Galway", + "11" => "Kerry", + "12" => "Kildare", + "13" => "Kilkenny", + "14" => "Leitrim", + "15" => "Laois", + "16" => "Limerick", + "18" => "Longford", + "19" => "Louth", + "20" => "Mayo", + "21" => "Meath", + "22" => "Monaghan", + "23" => "Offaly", + "24" => "Roscommon", + "25" => "Sligo", + "26" => "Tipperary", + "27" => "Waterford", + "29" => "Westmeath", + "30" => "Wexford", + "31" => "Wicklow" + ), + "IL" => array( + "01" => "HaDarom", + "02" => "HaMerkaz", + "03" => "HaZafon", + "04" => "Hefa", + "05" => "Tel Aviv", + "06" => "Yerushalayim" + ), + "IN" => array( + "01" => "Andaman and Nicobar Islands", + "02" => "Andhra Pradesh", + "03" => "Assam", + "05" => "Chandigarh", + "06" => "Dadra and Nagar Haveli", + "07" => "Delhi", + "09" => "Gujarat", + "10" => "Haryana", + "11" => "Himachal Pradesh", + "12" => "Jammu and Kashmir", + "13" => "Kerala", + "14" => "Lakshadweep", + "16" => "Maharashtra", + "17" => "Manipur", + "18" => "Meghalaya", + "19" => "Karnataka", + "20" => "Nagaland", + "21" => "Orissa", + "22" => "Puducherry", + "23" => "Punjab", + "24" => "Rajasthan", + "25" => "Tamil Nadu", + "26" => "Tripura", + "28" => "West Bengal", + "29" => "Sikkim", + "30" => "Arunachal Pradesh", + "31" => "Mizoram", + "32" => "Daman and Diu", + "33" => "Goa", + "34" => "Bihar", + "35" => "Madhya Pradesh", + "36" => "Uttar Pradesh", + "37" => "Chhattisgarh", + "38" => "Jharkhand", + "39" => "Uttarakhand" + ), + "IQ" => array( + "01" => "Al Anbar", + "02" => "Al Basrah", + "03" => "Al Muthanna", + "04" => "Al Qadisiyah", + "05" => "As Sulaymaniyah", + "06" => "Babil", + "07" => "Baghdad", + "08" => "Dahuk", + "09" => "Dhi Qar", + "10" => "Diyala", + "11" => "Arbil", + "12" => "Karbala'", + "13" => "At Ta'mim", + "14" => "Maysan", + "15" => "Ninawa", + "16" => "Wasit", + "17" => "An Najaf", + "18" => "Salah ad Din" + ), + "IR" => array( + "01" => "Azarbayjan-e Bakhtari", + "03" => "Chahar Mahall va Bakhtiari", + "04" => "Sistan va Baluchestan", + "05" => "Kohkiluyeh va Buyer Ahmadi", + "07" => "Fars", + "08" => "Gilan", + "09" => "Hamadan", + "10" => "Ilam", + "11" => "Hormozgan", + "12" => "Kerman", + "13" => "Bakhtaran", + "15" => "Khuzestan", + "16" => "Kordestan", + "17" => "Mazandaran", + "18" => "Semnan Province", + "19" => "Markazi", + "21" => "Zanjan", + "22" => "Bushehr", + "23" => "Lorestan", + "24" => "Markazi", + "25" => "Semnan", + "26" => "Tehran", + "27" => "Zanjan", + "28" => "Esfahan", + "29" => "Kerman", + "30" => "Khorasan", + "31" => "Yazd", + "32" => "Ardabil", + "33" => "East Azarbaijan", + "34" => "Markazi", + "35" => "Mazandaran", + "36" => "Zanjan", + "37" => "Golestan", + "38" => "Qazvin", + "39" => "Qom", + "40" => "Yazd", + "41" => "Khorasan-e Janubi", + "42" => "Khorasan-e Razavi", + "43" => "Khorasan-e Shemali", + "44" => "Alborz" + ), + "IS" => array( + "03" => "Arnessysla", + "05" => "Austur-Hunavatnssysla", + "06" => "Austur-Skaftafellssysla", + "07" => "Borgarfjardarsysla", + "09" => "Eyjafjardarsysla", + "10" => "Gullbringusysla", + "15" => "Kjosarsysla", + "17" => "Myrasysla", + "20" => "Nordur-Mulasysla", + "21" => "Nordur-Tingeyjarsysla", + "23" => "Rangarvallasysla", + "28" => "Skagafjardarsysla", + "29" => "Snafellsnes- og Hnappadalssysla", + "30" => "Strandasysla", + "31" => "Sudur-Mulasysla", + "32" => "Sudur-Tingeyjarsysla", + "34" => "Vestur-Bardastrandarsysla", + "35" => "Vestur-Hunavatnssysla", + "36" => "Vestur-Isafjardarsysla", + "37" => "Vestur-Skaftafellssysla", + "38" => "Austurland", + "39" => "Hofuoborgarsvaoio", + "40" => "Norourland Eystra", + "41" => "Norourland Vestra", + "42" => "Suourland", + "43" => "Suournes", + "44" => "Vestfiroir", + "45" => "Vesturland" + ), + "IT" => array( + "01" => "Abruzzi", + "02" => "Basilicata", + "03" => "Calabria", + "04" => "Campania", + "05" => "Emilia-Romagna", + "06" => "Friuli-Venezia Giulia", + "07" => "Lazio", + "08" => "Liguria", + "09" => "Lombardia", + "10" => "Marche", + "11" => "Molise", + "12" => "Piemonte", + "13" => "Puglia", + "14" => "Sardegna", + "15" => "Sicilia", + "16" => "Toscana", + "17" => "Trentino-Alto Adige", + "18" => "Umbria", + "19" => "Valle d'Aosta", + "20" => "Veneto" + ), + "JM" => array( + "01" => "Clarendon", + "02" => "Hanover", + "04" => "Manchester", + "07" => "Portland", + "08" => "Saint Andrew", + "09" => "Saint Ann", + "10" => "Saint Catherine", + "11" => "Saint Elizabeth", + "12" => "Saint James", + "13" => "Saint Mary", + "14" => "Saint Thomas", + "15" => "Trelawny", + "16" => "Westmoreland", + "17" => "Kingston" + ), + "JO" => array( + "02" => "Al Balqa'", + "09" => "Al Karak", + "12" => "At Tafilah", + "15" => "Al Mafraq", + "16" => "Amman", + "17" => "Az Zaraqa", + "18" => "Irbid", + "19" => "Ma'an", + "20" => "Ajlun", + "21" => "Al Aqabah", + "22" => "Jarash", + "23" => "Madaba" + ), + "JP" => array( + "01" => "Aichi", + "02" => "Akita", + "03" => "Aomori", + "04" => "Chiba", + "05" => "Ehime", + "06" => "Fukui", + "07" => "Fukuoka", + "08" => "Fukushima", + "09" => "Gifu", + "10" => "Gumma", + "11" => "Hiroshima", + "12" => "Hokkaido", + "13" => "Hyogo", + "14" => "Ibaraki", + "15" => "Ishikawa", + "16" => "Iwate", + "17" => "Kagawa", + "18" => "Kagoshima", + "19" => "Kanagawa", + "20" => "Kochi", + "21" => "Kumamoto", + "22" => "Kyoto", + "23" => "Mie", + "24" => "Miyagi", + "25" => "Miyazaki", + "26" => "Nagano", + "27" => "Nagasaki", + "28" => "Nara", + "29" => "Niigata", + "30" => "Oita", + "31" => "Okayama", + "32" => "Osaka", + "33" => "Saga", + "34" => "Saitama", + "35" => "Shiga", + "36" => "Shimane", + "37" => "Shizuoka", + "38" => "Tochigi", + "39" => "Tokushima", + "40" => "Tokyo", + "41" => "Tottori", + "42" => "Toyama", + "43" => "Wakayama", + "44" => "Yamagata", + "45" => "Yamaguchi", + "46" => "Yamanashi", + "47" => "Okinawa" + ), + "KE" => array( + "01" => "Central", + "02" => "Coast", + "03" => "Eastern", + "05" => "Nairobi Area", + "06" => "North-Eastern", + "07" => "Nyanza", + "08" => "Rift Valley", + "09" => "Western" + ), + "KG" => array( + "01" => "Bishkek", + "02" => "Chuy", + "03" => "Jalal-Abad", + "04" => "Naryn", + "05" => "Osh", + "06" => "Talas", + "07" => "Ysyk-Kol", + "08" => "Osh", + "09" => "Batken" + ), + "KH" => array( + "01" => "Batdambang", + "02" => "Kampong Cham", + "03" => "Kampong Chhnang", + "04" => "Kampong Speu", + "05" => "Kampong Thum", + "06" => "Kampot", + "07" => "Kandal", + "08" => "Koh Kong", + "09" => "Kracheh", + "10" => "Mondulkiri", + "11" => "Phnum Penh", + "12" => "Pursat", + "13" => "Preah Vihear", + "14" => "Prey Veng", + "15" => "Ratanakiri Kiri", + "16" => "Siem Reap", + "17" => "Stung Treng", + "18" => "Svay Rieng", + "19" => "Takeo", + "25" => "Banteay Meanchey", + "29" => "Batdambang", + "30" => "Pailin" + ), + "KI" => array( + "01" => "Gilbert Islands", + "02" => "Line Islands", + "03" => "Phoenix Islands" + ), + "KM" => array( + "01" => "Anjouan", + "02" => "Grande Comore", + "03" => "Moheli" + ), + "KN" => array( + "01" => "Christ Church Nichola Town", + "02" => "Saint Anne Sandy Point", + "03" => "Saint George Basseterre", + "04" => "Saint George Gingerland", + "05" => "Saint James Windward", + "06" => "Saint John Capisterre", + "07" => "Saint John Figtree", + "08" => "Saint Mary Cayon", + "09" => "Saint Paul Capisterre", + "10" => "Saint Paul Charlestown", + "11" => "Saint Peter Basseterre", + "12" => "Saint Thomas Lowland", + "13" => "Saint Thomas Middle Island", + "15" => "Trinity Palmetto Point" + ), + "KP" => array( + "01" => "Chagang-do", + "03" => "Hamgyong-namdo", + "06" => "Hwanghae-namdo", + "07" => "Hwanghae-bukto", + "08" => "Kaesong-si", + "09" => "Kangwon-do", + "11" => "P'yongan-bukto", + "12" => "P'yongyang-si", + "13" => "Yanggang-do", + "14" => "Namp'o-si", + "15" => "P'yongan-namdo", + "17" => "Hamgyong-bukto", + "18" => "Najin Sonbong-si" + ), + "KR" => array( + "01" => "Cheju-do", + "03" => "Cholla-bukto", + "05" => "Ch'ungch'ong-bukto", + "06" => "Kangwon-do", + "10" => "Pusan-jikhalsi", + "11" => "Seoul-t'ukpyolsi", + "12" => "Inch'on-jikhalsi", + "13" => "Kyonggi-do", + "14" => "Kyongsang-bukto", + "15" => "Taegu-jikhalsi", + "16" => "Cholla-namdo", + "17" => "Ch'ungch'ong-namdo", + "18" => "Kwangju-jikhalsi", + "19" => "Taejon-jikhalsi", + "20" => "Kyongsang-namdo", + "21" => "Ulsan-gwangyoksi" + ), + "KW" => array( + "01" => "Al Ahmadi", + "02" => "Al Kuwayt", + "05" => "Al Jahra", + "07" => "Al Farwaniyah", + "08" => "Hawalli", + "09" => "Mubarak al Kabir" + ), + "KY" => array( + "01" => "Creek", + "02" => "Eastern", + "03" => "Midland", + "04" => "South Town", + "05" => "Spot Bay", + "06" => "Stake Bay", + "07" => "West End", + "08" => "Western" + ), + "KZ" => array( + "01" => "Almaty", + "02" => "Almaty City", + "03" => "Aqmola", + "04" => "Aqtobe", + "05" => "Astana", + "06" => "Atyrau", + "07" => "West Kazakhstan", + "08" => "Bayqonyr", + "09" => "Mangghystau", + "10" => "South Kazakhstan", + "11" => "Pavlodar", + "12" => "Qaraghandy", + "13" => "Qostanay", + "14" => "Qyzylorda", + "15" => "East Kazakhstan", + "16" => "North Kazakhstan", + "17" => "Zhambyl" + ), + "LA" => array( + "01" => "Attapu", + "02" => "Champasak", + "03" => "Houaphan", + "04" => "Khammouan", + "05" => "Louang Namtha", + "07" => "Oudomxai", + "08" => "Phongsali", + "09" => "Saravan", + "10" => "Savannakhet", + "11" => "Vientiane", + "13" => "Xaignabouri", + "14" => "Xiangkhoang", + "17" => "Louangphrabang" + ), + "LB" => array( + "01" => "Beqaa", + "02" => "Al Janub", + "03" => "Liban-Nord", + "04" => "Beyrouth", + "05" => "Mont-Liban", + "06" => "Liban-Sud", + "07" => "Nabatiye", + "08" => "Beqaa", + "09" => "Liban-Nord", + "10" => "Aakk,r", + "11" => "Baalbek-Hermel" + ), + "LC" => array( + "01" => "Anse-la-Raye", + "02" => "Dauphin", + "03" => "Castries", + "04" => "Choiseul", + "05" => "Dennery", + "06" => "Gros-Islet", + "07" => "Laborie", + "08" => "Micoud", + "09" => "Soufriere", + "10" => "Vieux-Fort", + "11" => "Praslin" + ), + "LI" => array( + "01" => "Balzers", + "02" => "Eschen", + "03" => "Gamprin", + "04" => "Mauren", + "05" => "Planken", + "06" => "Ruggell", + "07" => "Schaan", + "08" => "Schellenberg", + "09" => "Triesen", + "10" => "Triesenberg", + "11" => "Vaduz", + "21" => "Gbarpolu", + "22" => "River Gee" + ), + "LK" => array( + "29" => "Central", + "30" => "North Central", + "32" => "North Western", + "33" => "Sabaragamuwa", + "34" => "Southern", + "35" => "Uva", + "36" => "Western", + "37" => "Eastern", + "38" => "Northern" + ), + "LR" => array( + "01" => "Bong", + "04" => "Grand Cape Mount", + "05" => "Lofa", + "06" => "Maryland", + "07" => "Monrovia", + "09" => "Nimba", + "10" => "Sino", + "11" => "Grand Bassa", + "12" => "Grand Cape Mount", + "13" => "Maryland", + "14" => "Montserrado", + "17" => "Margibi", + "18" => "River Cess", + "19" => "Grand Gedeh", + "20" => "Lofa", + "21" => "Gbarpolu", + "22" => "River Gee" + ), + "LS" => array( + "10" => "Berea", + "11" => "Butha-Buthe", + "12" => "Leribe", + "13" => "Mafeteng", + "14" => "Maseru", + "15" => "Mohales Hoek", + "16" => "Mokhotlong", + "17" => "Qachas Nek", + "18" => "Quthing", + "19" => "Thaba-Tseka" + ), + "LT" => array( + "56" => "Alytaus Apskritis", + "57" => "Kauno Apskritis", + "58" => "Klaipedos Apskritis", + "59" => "Marijampoles Apskritis", + "60" => "Panevezio Apskritis", + "61" => "Siauliu Apskritis", + "62" => "Taurages Apskritis", + "63" => "Telsiu Apskritis", + "64" => "Utenos Apskritis", + "65" => "Vilniaus Apskritis" + ), + "LU" => array( + "01" => "Diekirch", + "02" => "Grevenmacher", + "03" => "Luxembourg" + ), + "LV" => array( + "01" => "Aizkraukles", + "02" => "Aluksnes", + "03" => "Balvu", + "04" => "Bauskas", + "05" => "Cesu", + "06" => "Daugavpils", + "07" => "Daugavpils", + "08" => "Dobeles", + "09" => "Gulbenes", + "10" => "Jekabpils", + "11" => "Jelgava", + "12" => "Jelgavas", + "13" => "Jurmala", + "14" => "Kraslavas", + "15" => "Kuldigas", + "16" => "Liepaja", + "17" => "Liepajas", + "18" => "Limbazu", + "19" => "Ludzas", + "20" => "Madonas", + "21" => "Ogres", + "22" => "Preilu", + "23" => "Rezekne", + "24" => "Rezeknes", + "25" => "Riga", + "26" => "Rigas", + "27" => "Saldus", + "28" => "Talsu", + "29" => "Tukuma", + "30" => "Valkas", + "31" => "Valmieras", + "32" => "Ventspils", + "33" => "Ventspils" + ), + "LY" => array( + "03" => "Al Aziziyah", + "05" => "Al Jufrah", + "08" => "Al Kufrah", + "13" => "Ash Shati'", + "30" => "Murzuq", + "34" => "Sabha", + "41" => "Tarhunah", + "42" => "Tubruq", + "45" => "Zlitan", + "47" => "Ajdabiya", + "48" => "Al Fatih", + "49" => "Al Jabal al Akhdar", + "50" => "Al Khums", + "51" => "An Nuqat al Khams", + "52" => "Awbari", + "53" => "Az Zawiyah", + "54" => "Banghazi", + "55" => "Darnah", + "56" => "Ghadamis", + "57" => "Gharyan", + "58" => "Misratah", + "59" => "Sawfajjin", + "60" => "Surt", + "61" => "Tarabulus", + "62" => "Yafran" + ), + "MA" => array( + "45" => "Grand Casablanca", + "46" => "Fes-Boulemane", + "47" => "Marrakech-Tensift-Al Haouz", + "48" => "Meknes-Tafilalet", + "49" => "Rabat-Sale-Zemmour-Zaer", + "50" => "Chaouia-Ouardigha", + "51" => "Doukkala-Abda", + "52" => "Gharb-Chrarda-Beni Hssen", + "53" => "Guelmim-Es Smara", + "54" => "Oriental", + "55" => "Souss-Massa-Dr,a", + "56" => "Tadla-Azilal", + "57" => "Tanger-Tetouan", + "58" => "Taza-Al Hoceima-Taounate", + "59" => "La,youne-Boujdour-Sakia El Hamra" + ), + "MC" => array( + "01" => "La Condamine", + "02" => "Monaco", + "03" => "Monte-Carlo" + ), + "MD" => array( + "51" => "Gagauzia", + "57" => "Chisinau", + "58" => "Stinga Nistrului", + "59" => "Anenii Noi", + "60" => "Balti", + "61" => "Basarabeasca", + "62" => "Bender", + "63" => "Briceni", + "64" => "Cahul", + "65" => "Cantemir", + "66" => "Calarasi", + "67" => "Causeni", + "68" => "Cimislia", + "69" => "Criuleni", + "70" => "Donduseni", + "71" => "Drochia", + "72" => "Dubasari", + "73" => "Edinet", + "74" => "Falesti", + "75" => "Floresti", + "76" => "Glodeni", + "77" => "Hincesti", + "78" => "Ialoveni", + "79" => "Leova", + "80" => "Nisporeni", + "81" => "Ocnita", + "82" => "Orhei", + "83" => "Rezina", + "84" => "Riscani", + "85" => "Singerei", + "86" => "Soldanesti", + "87" => "Soroca", + "88" => "Stefan-Voda", + "89" => "Straseni", + "90" => "Taraclia", + "91" => "Telenesti", + "92" => "Ungheni" + ), + "MG" => array( + "01" => "Antsiranana", + "02" => "Fianarantsoa", + "03" => "Mahajanga", + "04" => "Toamasina", + "05" => "Antananarivo", + "06" => "Toliara" + ), + "MK" => array( + "01" => "Aracinovo", + "02" => "Bac", + "03" => "Belcista", + "04" => "Berovo", + "05" => "Bistrica", + "06" => "Bitola", + "07" => "Blatec", + "08" => "Bogdanci", + "09" => "Bogomila", + "10" => "Bogovinje", + "11" => "Bosilovo", + "12" => "Brvenica", + "13" => "Cair", + "14" => "Capari", + "15" => "Caska", + "16" => "Cegrane", + "17" => "Centar", + "18" => "Centar Zupa", + "19" => "Cesinovo", + "20" => "Cucer-Sandevo", + "21" => "Debar", + "22" => "Delcevo", + "23" => "Delogozdi", + "24" => "Demir Hisar", + "25" => "Demir Kapija", + "26" => "Dobrusevo", + "27" => "Dolna Banjica", + "28" => "Dolneni", + "29" => "Dorce Petrov", + "30" => "Drugovo", + "31" => "Dzepciste", + "32" => "Gazi Baba", + "33" => "Gevgelija", + "34" => "Gostivar", + "35" => "Gradsko", + "36" => "Ilinden", + "37" => "Izvor", + "38" => "Jegunovce", + "39" => "Kamenjane", + "40" => "Karbinci", + "41" => "Karpos", + "42" => "Kavadarci", + "43" => "Kicevo", + "44" => "Kisela Voda", + "45" => "Klecevce", + "46" => "Kocani", + "47" => "Konce", + "48" => "Kondovo", + "49" => "Konopiste", + "50" => "Kosel", + "51" => "Kratovo", + "52" => "Kriva Palanka", + "53" => "Krivogastani", + "54" => "Krusevo", + "55" => "Kuklis", + "56" => "Kukurecani", + "57" => "Kumanovo", + "58" => "Labunista", + "59" => "Lipkovo", + "60" => "Lozovo", + "61" => "Lukovo", + "62" => "Makedonska Kamenica", + "63" => "Makedonski Brod", + "64" => "Mavrovi Anovi", + "65" => "Meseista", + "66" => "Miravci", + "67" => "Mogila", + "68" => "Murtino", + "69" => "Negotino", + "70" => "Negotino-Polosko", + "71" => "Novaci", + "72" => "Novo Selo", + "73" => "Oblesevo", + "74" => "Ohrid", + "75" => "Orasac", + "76" => "Orizari", + "77" => "Oslomej", + "78" => "Pehcevo", + "79" => "Petrovec", + "80" => "Plasnica", + "81" => "Podares", + "82" => "Prilep", + "83" => "Probistip", + "84" => "Radovis", + "85" => "Rankovce", + "86" => "Resen", + "87" => "Rosoman", + "88" => "Rostusa", + "89" => "Samokov", + "90" => "Saraj", + "91" => "Sipkovica", + "92" => "Sopiste", + "93" => "Sopotnica", + "94" => "Srbinovo", + "95" => "Staravina", + "96" => "Star Dojran", + "97" => "Staro Nagoricane", + "98" => "Stip", + "99" => "Struga", + "A1" => "Strumica", + "A2" => "Studenicani", + "A3" => "Suto Orizari", + "A4" => "Sveti Nikole", + "A5" => "Tearce", + "A6" => "Tetovo", + "A7" => "Topolcani", + "A8" => "Valandovo", + "A9" => "Vasilevo", + "B1" => "Veles", + "B2" => "Velesta", + "B3" => "Vevcani", + "B4" => "Vinica", + "B5" => "Vitoliste", + "B6" => "Vranestica", + "B7" => "Vrapciste", + "B8" => "Vratnica", + "B9" => "Vrutok", + "C1" => "Zajas", + "C2" => "Zelenikovo", + "C3" => "Zelino", + "C4" => "Zitose", + "C5" => "Zletovo", + "C6" => "Zrnovci" + ), + "ML" => array( + "01" => "Bamako", + "03" => "Kayes", + "04" => "Mopti", + "05" => "Segou", + "06" => "Sikasso", + "07" => "Koulikoro", + "08" => "Tombouctou", + "09" => "Gao", + "10" => "Kidal" + ), + "MM" => array( + "01" => "Rakhine State", + "02" => "Chin State", + "03" => "Irrawaddy", + "04" => "Kachin State", + "05" => "Karan State", + "06" => "Kayah State", + "07" => "Magwe", + "08" => "Mandalay", + "09" => "Pegu", + "10" => "Sagaing", + "11" => "Shan State", + "12" => "Tenasserim", + "13" => "Mon State", + "14" => "Rangoon", + "17" => "Yangon" + ), + "MN" => array( + "01" => "Arhangay", + "02" => "Bayanhongor", + "03" => "Bayan-Olgiy", + "05" => "Darhan", + "06" => "Dornod", + "07" => "Dornogovi", + "08" => "Dundgovi", + "09" => "Dzavhan", + "10" => "Govi-Altay", + "11" => "Hentiy", + "12" => "Hovd", + "13" => "Hovsgol", + "14" => "Omnogovi", + "15" => "Ovorhangay", + "16" => "Selenge", + "17" => "Suhbaatar", + "18" => "Tov", + "19" => "Uvs", + "20" => "Ulaanbaatar", + "21" => "Bulgan", + "22" => "Erdenet", + "23" => "Darhan-Uul", + "24" => "Govisumber", + "25" => "Orhon" + ), + "MO" => array( + "01" => "Ilhas", + "02" => "Macau" + ), + "MR" => array( + "01" => "Hodh Ech Chargui", + "02" => "Hodh El Gharbi", + "03" => "Assaba", + "04" => "Gorgol", + "05" => "Brakna", + "06" => "Trarza", + "07" => "Adrar", + "08" => "Dakhlet Nouadhibou", + "09" => "Tagant", + "10" => "Guidimaka", + "11" => "Tiris Zemmour", + "12" => "Inchiri" + ), + "MS" => array( + "01" => "Saint Anthony", + "02" => "Saint Georges", + "03" => "Saint Peter" + ), + "MU" => array( + "12" => "Black River", + "13" => "Flacq", + "14" => "Grand Port", + "15" => "Moka", + "16" => "Pamplemousses", + "17" => "Plaines Wilhems", + "18" => "Port Louis", + "19" => "Riviere du Rempart", + "20" => "Savanne", + "21" => "Agalega Islands", + "22" => "Cargados Carajos", + "23" => "Rodrigues" + ), + "MV" => array( + "01" => "Seenu", + "05" => "Laamu", + "30" => "Alifu", + "31" => "Baa", + "32" => "Dhaalu", + "33" => "Faafu ", + "34" => "Gaafu Alifu", + "35" => "Gaafu Dhaalu", + "36" => "Haa Alifu", + "37" => "Haa Dhaalu", + "38" => "Kaafu", + "39" => "Lhaviyani", + "40" => "Maale", + "41" => "Meemu", + "42" => "Gnaviyani", + "43" => "Noonu", + "44" => "Raa", + "45" => "Shaviyani", + "46" => "Thaa", + "47" => "Vaavu" + ), + "MW" => array( + "02" => "Chikwawa", + "03" => "Chiradzulu", + "04" => "Chitipa", + "05" => "Thyolo", + "06" => "Dedza", + "07" => "Dowa", + "08" => "Karonga", + "09" => "Kasungu", + "11" => "Lilongwe", + "12" => "Mangochi", + "13" => "Mchinji", + "15" => "Mzimba", + "16" => "Ntcheu", + "17" => "Nkhata Bay", + "18" => "Nkhotakota", + "19" => "Nsanje", + "20" => "Ntchisi", + "21" => "Rumphi", + "22" => "Salima", + "23" => "Zomba", + "24" => "Blantyre", + "25" => "Mwanza", + "26" => "Balaka", + "27" => "Likoma", + "28" => "Machinga", + "29" => "Mulanje", + "30" => "Phalombe" + ), + "MX" => array( + "01" => "Aguascalientes", + "02" => "Baja California", + "03" => "Baja California Sur", + "04" => "Campeche", + "05" => "Chiapas", + "06" => "Chihuahua", + "07" => "Coahuila de Zaragoza", + "08" => "Colima", + "09" => "Distrito Federal", + "10" => "Durango", + "11" => "Guanajuato", + "12" => "Guerrero", + "13" => "Hidalgo", + "14" => "Jalisco", + "15" => "Mexico", + "16" => "Michoacan de Ocampo", + "17" => "Morelos", + "18" => "Nayarit", + "19" => "Nuevo Leon", + "20" => "Oaxaca", + "21" => "Puebla", + "22" => "Queretaro de Arteaga", + "23" => "Quintana Roo", + "24" => "San Luis Potosi", + "25" => "Sinaloa", + "26" => "Sonora", + "27" => "Tabasco", + "28" => "Tamaulipas", + "29" => "Tlaxcala", + "30" => "Veracruz-Llave", + "31" => "Yucatan", + "32" => "Zacatecas" + ), + "MY" => array( + "01" => "Johor", + "02" => "Kedah", + "03" => "Kelantan", + "04" => "Melaka", + "05" => "Negeri Sembilan", + "06" => "Pahang", + "07" => "Perak", + "08" => "Perlis", + "09" => "Pulau Pinang", + "11" => "Sarawak", + "12" => "Selangor", + "13" => "Terengganu", + "14" => "Kuala Lumpur", + "15" => "Labuan", + "16" => "Sabah", + "17" => "Putrajaya" + ), + "MZ" => array( + "01" => "Cabo Delgado", + "02" => "Gaza", + "03" => "Inhambane", + "04" => "Maputo", + "05" => "Sofala", + "06" => "Nampula", + "07" => "Niassa", + "08" => "Tete", + "09" => "Zambezia", + "10" => "Manica", + "11" => "Maputo" + ), + "NA" => array( + "01" => "Bethanien", + "02" => "Caprivi Oos", + "03" => "Boesmanland", + "04" => "Gobabis", + "05" => "Grootfontein", + "06" => "Kaokoland", + "07" => "Karibib", + "08" => "Keetmanshoop", + "09" => "Luderitz", + "10" => "Maltahohe", + "11" => "Okahandja", + "12" => "Omaruru", + "13" => "Otjiwarongo", + "14" => "Outjo", + "15" => "Owambo", + "16" => "Rehoboth", + "17" => "Swakopmund", + "18" => "Tsumeb", + "20" => "Karasburg", + "21" => "Windhoek", + "22" => "Damaraland", + "23" => "Hereroland Oos", + "24" => "Hereroland Wes", + "25" => "Kavango", + "26" => "Mariental", + "27" => "Namaland", + "28" => "Caprivi", + "29" => "Erongo", + "30" => "Hardap", + "31" => "Karas", + "32" => "Kunene", + "33" => "Ohangwena", + "34" => "Okavango", + "35" => "Omaheke", + "36" => "Omusati", + "37" => "Oshana", + "38" => "Oshikoto", + "39" => "Otjozondjupa" + ), + "NE" => array( + "01" => "Agadez", + "02" => "Diffa", + "03" => "Dosso", + "04" => "Maradi", + "05" => "Niamey", + "06" => "Tahoua", + "07" => "Zinder", + "08" => "Niamey" + ), + "NG" => array( + "05" => "Lagos", + "11" => "Federal Capital Territory", + "16" => "Ogun", + "21" => "Akwa Ibom", + "22" => "Cross River", + "23" => "Kaduna", + "24" => "Katsina", + "25" => "Anambra", + "26" => "Benue", + "27" => "Borno", + "28" => "Imo", + "29" => "Kano", + "30" => "Kwara", + "31" => "Niger", + "32" => "Oyo", + "35" => "Adamawa", + "36" => "Delta", + "37" => "Edo", + "39" => "Jigawa", + "40" => "Kebbi", + "41" => "Kogi", + "42" => "Osun", + "43" => "Taraba", + "44" => "Yobe", + "45" => "Abia", + "46" => "Bauchi", + "47" => "Enugu", + "48" => "Ondo", + "49" => "Plateau", + "50" => "Rivers", + "51" => "Sokoto", + "52" => "Bayelsa", + "53" => "Ebonyi", + "54" => "Ekiti", + "55" => "Gombe", + "56" => "Nassarawa", + "57" => "Zamfara" + ), + "NI" => array( + "01" => "Boaco", + "02" => "Carazo", + "03" => "Chinandega", + "04" => "Chontales", + "05" => "Esteli", + "06" => "Granada", + "07" => "Jinotega", + "08" => "Leon", + "09" => "Madriz", + "10" => "Managua", + "11" => "Masaya", + "12" => "Matagalpa", + "13" => "Nueva Segovia", + "14" => "Rio San Juan", + "15" => "Rivas", + "16" => "Zelaya", + "17" => "Autonoma Atlantico Norte", + "18" => "Region Autonoma Atlantico Sur" + ), + "NL" => array( + "01" => "Drenthe", + "02" => "Friesland", + "03" => "Gelderland", + "04" => "Groningen", + "05" => "Limburg", + "06" => "Noord-Brabant", + "07" => "Noord-Holland", + "09" => "Utrecht", + "10" => "Zeeland", + "11" => "Zuid-Holland", + "15" => "Overijssel", + "16" => "Flevoland" + ), + "NO" => array( + "01" => "Akershus", + "02" => "Aust-Agder", + "04" => "Buskerud", + "05" => "Finnmark", + "06" => "Hedmark", + "07" => "Hordaland", + "08" => "More og Romsdal", + "09" => "Nordland", + "10" => "Nord-Trondelag", + "11" => "Oppland", + "12" => "Oslo", + "13" => "Ostfold", + "14" => "Rogaland", + "15" => "Sogn og Fjordane", + "16" => "Sor-Trondelag", + "17" => "Telemark", + "18" => "Troms", + "19" => "Vest-Agder", + "20" => "Vestfold" + ), + "NP" => array( + "01" => "Bagmati", + "02" => "Bheri", + "03" => "Dhawalagiri", + "04" => "Gandaki", + "05" => "Janakpur", + "06" => "Karnali", + "07" => "Kosi", + "08" => "Lumbini", + "09" => "Mahakali", + "10" => "Mechi", + "11" => "Narayani", + "12" => "Rapti", + "13" => "Sagarmatha", + "14" => "Seti" + ), + "NR" => array( + "01" => "Aiwo", + "02" => "Anabar", + "03" => "Anetan", + "04" => "Anibare", + "05" => "Baiti", + "06" => "Boe", + "07" => "Buada", + "08" => "Denigomodu", + "09" => "Ewa", + "10" => "Ijuw", + "11" => "Meneng", + "12" => "Nibok", + "13" => "Uaboe", + "14" => "Yaren" + ), + "NZ" => array( + "10" => "Chatham Islands", + "E7" => "Auckland", + "E8" => "Bay of Plenty", + "E9" => "Canterbury", + "F1" => "Gisborne", + "F2" => "Hawke's Bay", + "F3" => "Manawatu-Wanganui", + "F4" => "Marlborough", + "F5" => "Nelson", + "F6" => "Northland", + "F7" => "Otago", + "F8" => "Southland", + "F9" => "Taranaki", + "G1" => "Waikato", + "G2" => "Wellington", + "G3" => "West Coast" + ), + "OM" => array( + "01" => "Ad Dakhiliyah", + "02" => "Al Batinah", + "03" => "Al Wusta", + "04" => "Ash Sharqiyah", + "05" => "Az Zahirah", + "06" => "Masqat", + "07" => "Musandam", + "08" => "Zufar" + ), + "PA" => array( + "01" => "Bocas del Toro", + "02" => "Chiriqui", + "03" => "Cocle", + "04" => "Colon", + "05" => "Darien", + "06" => "Herrera", + "07" => "Los Santos", + "08" => "Panama", + "09" => "San Blas", + "10" => "Veraguas" + ), + "PE" => array( + "01" => "Amazonas", + "02" => "Ancash", + "03" => "Apurimac", + "04" => "Arequipa", + "05" => "Ayacucho", + "06" => "Cajamarca", + "07" => "Callao", + "08" => "Cusco", + "09" => "Huancavelica", + "10" => "Huanuco", + "11" => "Ica", + "12" => "Junin", + "13" => "La Libertad", + "14" => "Lambayeque", + "15" => "Lima", + "16" => "Loreto", + "17" => "Madre de Dios", + "18" => "Moquegua", + "19" => "Pasco", + "20" => "Piura", + "21" => "Puno", + "22" => "San Martin", + "23" => "Tacna", + "24" => "Tumbes", + "25" => "Ucayali" + ), + "PG" => array( + "01" => "Central", + "02" => "Gulf", + "03" => "Milne Bay", + "04" => "Northern", + "05" => "Southern Highlands", + "06" => "Western", + "07" => "North Solomons", + "08" => "Chimbu", + "09" => "Eastern Highlands", + "10" => "East New Britain", + "11" => "East Sepik", + "12" => "Madang", + "13" => "Manus", + "14" => "Morobe", + "15" => "New Ireland", + "16" => "Western Highlands", + "17" => "West New Britain", + "18" => "Sandaun", + "19" => "Enga", + "20" => "National Capital" + ), + "PH" => array( + "01" => "Abra", + "02" => "Agusan del Norte", + "03" => "Agusan del Sur", + "04" => "Aklan", + "05" => "Albay", + "06" => "Antique", + "07" => "Bataan", + "08" => "Batanes", + "09" => "Batangas", + "10" => "Benguet", + "11" => "Bohol", + "12" => "Bukidnon", + "13" => "Bulacan", + "14" => "Cagayan", + "15" => "Camarines Norte", + "16" => "Camarines Sur", + "17" => "Camiguin", + "18" => "Capiz", + "19" => "Catanduanes", + "20" => "Cavite", + "21" => "Cebu", + "22" => "Basilan", + "23" => "Eastern Samar", + "24" => "Davao", + "25" => "Davao del Sur", + "26" => "Davao Oriental", + "27" => "Ifugao", + "28" => "Ilocos Norte", + "29" => "Ilocos Sur", + "30" => "Iloilo", + "31" => "Isabela", + "32" => "Kalinga-Apayao", + "33" => "Laguna", + "34" => "Lanao del Norte", + "35" => "Lanao del Sur", + "36" => "La Union", + "37" => "Leyte", + "38" => "Marinduque", + "39" => "Masbate", + "40" => "Mindoro Occidental", + "41" => "Mindoro Oriental", + "42" => "Misamis Occidental", + "43" => "Misamis Oriental", + "44" => "Mountain", + "45" => "Negros Occidental", + "46" => "Negros Oriental", + "47" => "Nueva Ecija", + "48" => "Nueva Vizcaya", + "49" => "Palawan", + "50" => "Pampanga", + "51" => "Pangasinan", + "53" => "Rizal", + "54" => "Romblon", + "55" => "Samar", + "56" => "Maguindanao", + "57" => "North Cotabato", + "58" => "Sorsogon", + "59" => "Southern Leyte", + "60" => "Sulu", + "61" => "Surigao del Norte", + "62" => "Surigao del Sur", + "63" => "Tarlac", + "64" => "Zambales", + "65" => "Zamboanga del Norte", + "66" => "Zamboanga del Sur", + "67" => "Northern Samar", + "68" => "Quirino", + "69" => "Siquijor", + "70" => "South Cotabato", + "71" => "Sultan Kudarat", + "72" => "Tawitawi", + "A1" => "Angeles", + "A2" => "Bacolod", + "A3" => "Bago", + "A4" => "Baguio", + "A5" => "Bais", + "A6" => "Basilan City", + "A7" => "Batangas City", + "A8" => "Butuan", + "A9" => "Cabanatuan", + "B1" => "Cadiz", + "B2" => "Cagayan de Oro", + "B3" => "Calbayog", + "B4" => "Caloocan", + "B5" => "Canlaon", + "B6" => "Cavite City", + "B7" => "Cebu City", + "B8" => "Cotabato", + "B9" => "Dagupan", + "C1" => "Danao", + "C2" => "Dapitan", + "C3" => "Davao City", + "C4" => "Dipolog", + "C5" => "Dumaguete", + "C6" => "General Santos", + "C7" => "Gingoog", + "C8" => "Iligan", + "C9" => "Iloilo City", + "D1" => "Iriga", + "D2" => "La Carlota", + "D3" => "Laoag", + "D4" => "Lapu-Lapu", + "D5" => "Legaspi", + "D6" => "Lipa", + "D7" => "Lucena", + "D8" => "Mandaue", + "D9" => "Manila", + "E1" => "Marawi", + "E2" => "Naga", + "E3" => "Olongapo", + "E4" => "Ormoc", + "E5" => "Oroquieta", + "E6" => "Ozamis", + "E7" => "Pagadian", + "E8" => "Palayan", + "E9" => "Pasay", + "F1" => "Puerto Princesa", + "F2" => "Quezon City", + "F3" => "Roxas", + "F4" => "San Carlos", + "F5" => "San Carlos", + "F6" => "San Jose", + "F7" => "San Pablo", + "F8" => "Silay", + "F9" => "Surigao", + "G1" => "Tacloban", + "G2" => "Tagaytay", + "G3" => "Tagbilaran", + "G4" => "Tangub", + "G5" => "Toledo", + "G6" => "Trece Martires", + "G7" => "Zamboanga", + "G8" => "Aurora", + "H2" => "Quezon", + "H3" => "Negros Occidental", + "I6" => "Compostela Valley", + "I7" => "Davao del Norte", + "J7" => "Kalinga", + "K6" => "Malaybalay", + "M5" => "San Jose del Monte", + "M6" => "San Juan", + "M8" => "Santiago", + "M9" => "Sarangani", + "N1" => "Sipalay", + "N3" => "Surigao del Norte", + "P1" => "Zambales", + "P2" => "Zamboanga" + ), + "PK" => array( + "01" => "Federally Administered Tribal Areas", + "02" => "Balochistan", + "03" => "North-West Frontier", + "04" => "Punjab", + "05" => "Sindh", + "06" => "Azad Kashmir", + "07" => "Northern Areas", + "08" => "Islamabad" + ), + "PL" => array( + "72" => "Dolnoslaskie", + "73" => "Kujawsko-Pomorskie", + "74" => "Lodzkie", + "75" => "Lubelskie", + "76" => "Lubuskie", + "77" => "Malopolskie", + "78" => "Mazowieckie", + "79" => "Opolskie", + "80" => "Podkarpackie", + "81" => "Podlaskie", + "82" => "Pomorskie", + "83" => "Slaskie", + "84" => "Swietokrzyskie", + "85" => "Warminsko-Mazurskie", + "86" => "Wielkopolskie", + "87" => "Zachodniopomorskie" + ), + "PS" => array( + "GZ" => "Gaza", + "WE" => "West Bank" + ), + "PT" => array( + "02" => "Aveiro", + "03" => "Beja", + "04" => "Braga", + "05" => "Braganca", + "06" => "Castelo Branco", + "07" => "Coimbra", + "08" => "Evora", + "09" => "Faro", + "10" => "Madeira", + "11" => "Guarda", + "13" => "Leiria", + "14" => "Lisboa", + "16" => "Portalegre", + "17" => "Porto", + "18" => "Santarem", + "19" => "Setubal", + "20" => "Viana do Castelo", + "21" => "Vila Real", + "22" => "Viseu", + "23" => "Azores" + ), + "PY" => array( + "01" => "Alto Parana", + "02" => "Amambay", + "03" => "Boqueron", + "04" => "Caaguazu", + "05" => "Caazapa", + "06" => "Central", + "07" => "Concepcion", + "08" => "Cordillera", + "10" => "Guaira", + "11" => "Itapua", + "12" => "Misiones", + "13" => "Neembucu", + "15" => "Paraguari", + "16" => "Presidente Hayes", + "17" => "San Pedro", + "19" => "Canindeyu", + "20" => "Chaco", + "21" => "Nueva Asuncion", + "23" => "Alto Paraguay" + ), + "QA" => array( + "01" => "Ad Dawhah", + "02" => "Al Ghuwariyah", + "03" => "Al Jumaliyah", + "04" => "Al Khawr", + "05" => "Al Wakrah Municipality", + "06" => "Ar Rayyan", + "08" => "Madinat ach Shamal", + "09" => "Umm Salal", + "10" => "Al Wakrah", + "11" => "Jariyan al Batnah", + "12" => "Umm Sa'id" + ), + "RO" => array( + "01" => "Alba", + "02" => "Arad", + "03" => "Arges", + "04" => "Bacau", + "05" => "Bihor", + "06" => "Bistrita-Nasaud", + "07" => "Botosani", + "08" => "Braila", + "09" => "Brasov", + "10" => "Bucuresti", + "11" => "Buzau", + "12" => "Caras-Severin", + "13" => "Cluj", + "14" => "Constanta", + "15" => "Covasna", + "16" => "Dambovita", + "17" => "Dolj", + "18" => "Galati", + "19" => "Gorj", + "20" => "Harghita", + "21" => "Hunedoara", + "22" => "Ialomita", + "23" => "Iasi", + "25" => "Maramures", + "26" => "Mehedinti", + "27" => "Mures", + "28" => "Neamt", + "29" => "Olt", + "30" => "Prahova", + "31" => "Salaj", + "32" => "Satu Mare", + "33" => "Sibiu", + "34" => "Suceava", + "35" => "Teleorman", + "36" => "Timis", + "37" => "Tulcea", + "38" => "Vaslui", + "39" => "Valcea", + "40" => "Vrancea", + "41" => "Calarasi", + "42" => "Giurgiu", + "43" => "Ilfov" + ), + "RS" => array( + "01" => "Kosovo", + "02" => "Vojvodina" + ), + "RU" => array( + "01" => "Adygeya, Republic of", + "02" => "Aginsky Buryatsky AO", + "03" => "Gorno-Altay", + "04" => "Altaisky krai", + "05" => "Amur", + "06" => "Arkhangel'sk", + "07" => "Astrakhan'", + "08" => "Bashkortostan", + "09" => "Belgorod", + "10" => "Bryansk", + "11" => "Buryat", + "12" => "Chechnya", + "13" => "Chelyabinsk", + "14" => "Chita", + "15" => "Chukot", + "16" => "Chuvashia", + "17" => "Dagestan", + "18" => "Evenk", + "19" => "Ingush", + "20" => "Irkutsk", + "21" => "Ivanovo", + "22" => "Kabardin-Balkar", + "23" => "Kaliningrad", + "24" => "Kalmyk", + "25" => "Kaluga", + "26" => "Kamchatka", + "27" => "Karachay-Cherkess", + "28" => "Karelia", + "29" => "Kemerovo", + "30" => "Khabarovsk", + "31" => "Khakass", + "32" => "Khanty-Mansiy", + "33" => "Kirov", + "34" => "Komi", + "35" => "Komi-Permyak", + "36" => "Koryak", + "37" => "Kostroma", + "38" => "Krasnodar", + "39" => "Krasnoyarsk", + "40" => "Kurgan", + "41" => "Kursk", + "42" => "Leningrad", + "43" => "Lipetsk", + "44" => "Magadan", + "45" => "Mariy-El", + "46" => "Mordovia", + "47" => "Moskva", + "48" => "Moscow City", + "49" => "Murmansk", + "50" => "Nenets", + "51" => "Nizhegorod", + "52" => "Novgorod", + "53" => "Novosibirsk", + "54" => "Omsk", + "55" => "Orenburg", + "56" => "Orel", + "57" => "Penza", + "58" => "Perm'", + "59" => "Primor'ye", + "60" => "Pskov", + "61" => "Rostov", + "62" => "Ryazan'", + "63" => "Sakha", + "64" => "Sakhalin", + "65" => "Samara", + "66" => "Saint Petersburg City", + "67" => "Saratov", + "68" => "North Ossetia", + "69" => "Smolensk", + "70" => "Stavropol'", + "71" => "Sverdlovsk", + "72" => "Tambovskaya oblast", + "73" => "Tatarstan", + "74" => "Taymyr", + "75" => "Tomsk", + "76" => "Tula", + "77" => "Tver'", + "78" => "Tyumen'", + "79" => "Tuva", + "80" => "Udmurt", + "81" => "Ul'yanovsk", + "82" => "Ust-Orda Buryat", + "83" => "Vladimir", + "84" => "Volgograd", + "85" => "Vologda", + "86" => "Voronezh", + "87" => "Yamal-Nenets", + "88" => "Yaroslavl'", + "89" => "Yevrey", + "90" => "Permskiy Kray", + "91" => "Krasnoyarskiy Kray", + "92" => "Kamchatskiy Kray", + "93" => "Zabaykal'skiy Kray" + ), + "RW" => array( + "01" => "Butare", + "06" => "Gitarama", + "07" => "Kibungo", + "09" => "Kigali", + "11" => "Est", + "12" => "Kigali", + "13" => "Nord", + "14" => "Ouest", + "15" => "Sud" + ), + "SA" => array( + "02" => "Al Bahah", + "05" => "Al Madinah", + "06" => "Ash Sharqiyah", + "08" => "Al Qasim", + "10" => "Ar Riyad", + "11" => "Asir Province", + "13" => "Ha'il", + "14" => "Makkah", + "15" => "Al Hudud ash Shamaliyah", + "16" => "Najran", + "17" => "Jizan", + "19" => "Tabuk", + "20" => "Al Jawf" + ), + "SB" => array( + "03" => "Malaita", + "06" => "Guadalcanal", + "07" => "Isabel", + "08" => "Makira", + "09" => "Temotu", + "10" => "Central", + "11" => "Western", + "12" => "Choiseul", + "13" => "Rennell and Bellona" + ), + "SC" => array( + "01" => "Anse aux Pins", + "02" => "Anse Boileau", + "03" => "Anse Etoile", + "04" => "Anse Louis", + "05" => "Anse Royale", + "06" => "Baie Lazare", + "07" => "Baie Sainte Anne", + "08" => "Beau Vallon", + "09" => "Bel Air", + "10" => "Bel Ombre", + "11" => "Cascade", + "12" => "Glacis", + "13" => "Grand' Anse", + "14" => "Grand' Anse", + "15" => "La Digue", + "16" => "La Riviere Anglaise", + "17" => "Mont Buxton", + "18" => "Mont Fleuri", + "19" => "Plaisance", + "20" => "Pointe La Rue", + "21" => "Port Glaud", + "22" => "Saint Louis", + "23" => "Takamaka" + ), + "SD" => array( + "27" => "Al Wusta", + "28" => "Al Istiwa'iyah", + "29" => "Al Khartum", + "30" => "Ash Shamaliyah", + "31" => "Ash Sharqiyah", + "32" => "Bahr al Ghazal", + "33" => "Darfur", + "34" => "Kurdufan", + "35" => "Upper Nile", + "40" => "Al Wahadah State", + "44" => "Central Equatoria State" + ), + "SE" => array( + "02" => "Blekinge Lan", + "03" => "Gavleborgs Lan", + "05" => "Gotlands Lan", + "06" => "Hallands Lan", + "07" => "Jamtlands Lan", + "08" => "Jonkopings Lan", + "09" => "Kalmar Lan", + "10" => "Dalarnas Lan", + "12" => "Kronobergs Lan", + "14" => "Norrbottens Lan", + "15" => "Orebro Lan", + "16" => "Ostergotlands Lan", + "18" => "Sodermanlands Lan", + "21" => "Uppsala Lan", + "22" => "Varmlands Lan", + "23" => "Vasterbottens Lan", + "24" => "Vasternorrlands Lan", + "25" => "Vastmanlands Lan", + "26" => "Stockholms Lan", + "27" => "Skane Lan", + "28" => "Vastra Gotaland" + ), + "SH" => array( + "01" => "Ascension", + "02" => "Saint Helena", + "03" => "Tristan da Cunha" + ), + "SI" => array( + "01" => "Ajdovscina Commune", + "02" => "Beltinci Commune", + "03" => "Bled Commune", + "04" => "Bohinj Commune", + "05" => "Borovnica Commune", + "06" => "Bovec Commune", + "07" => "Brda Commune", + "08" => "Brezice Commune", + "09" => "Brezovica Commune", + "11" => "Celje Commune", + "12" => "Cerklje na Gorenjskem Commune", + "13" => "Cerknica Commune", + "14" => "Cerkno Commune", + "15" => "Crensovci Commune", + "16" => "Crna na Koroskem Commune", + "17" => "Crnomelj Commune", + "19" => "Divaca Commune", + "20" => "Dobrepolje Commune", + "22" => "Dol pri Ljubljani Commune", + "24" => "Dornava Commune", + "25" => "Dravograd Commune", + "26" => "Duplek Commune", + "27" => "Gorenja vas-Poljane Commune", + "28" => "Gorisnica Commune", + "29" => "Gornja Radgona Commune", + "30" => "Gornji Grad Commune", + "31" => "Gornji Petrovci Commune", + "32" => "Grosuplje Commune", + "34" => "Hrastnik Commune", + "35" => "Hrpelje-Kozina Commune", + "36" => "Idrija Commune", + "37" => "Ig Commune", + "38" => "Ilirska Bistrica Commune", + "39" => "Ivancna Gorica Commune", + "40" => "Izola-Isola Commune", + "42" => "Jursinci Commune", + "44" => "Kanal Commune", + "45" => "Kidricevo Commune", + "46" => "Kobarid Commune", + "47" => "Kobilje Commune", + "49" => "Komen Commune", + "50" => "Koper-Capodistria Urban Commune", + "51" => "Kozje Commune", + "52" => "Kranj Commune", + "53" => "Kranjska Gora Commune", + "54" => "Krsko Commune", + "55" => "Kungota Commune", + "57" => "Lasko Commune", + "61" => "Ljubljana Urban Commune", + "62" => "Ljubno Commune", + "64" => "Logatec Commune", + "66" => "Loski Potok Commune", + "68" => "Lukovica Commune", + "71" => "Medvode Commune", + "72" => "Menges Commune", + "73" => "Metlika Commune", + "74" => "Mezica Commune", + "76" => "Mislinja Commune", + "77" => "Moravce Commune", + "78" => "Moravske Toplice Commune", + "79" => "Mozirje Commune", + "80" => "Murska Sobota Urban Commune", + "81" => "Muta Commune", + "82" => "Naklo Commune", + "83" => "Nazarje Commune", + "84" => "Nova Gorica Urban Commune", + "86" => "Odranci Commune", + "87" => "Ormoz Commune", + "88" => "Osilnica Commune", + "89" => "Pesnica Commune", + "91" => "Pivka Commune", + "92" => "Podcetrtek Commune", + "94" => "Postojna Commune", + "97" => "Puconci Commune", + "98" => "Race-Fram Commune", + "99" => "Radece Commune", + "A1" => "Radenci Commune", + "A2" => "Radlje ob Dravi Commune", + "A3" => "Radovljica Commune", + "A6" => "Rogasovci Commune", + "A7" => "Rogaska Slatina Commune", + "A8" => "Rogatec Commune", + "B1" => "Semic Commune", + "B2" => "Sencur Commune", + "B3" => "Sentilj Commune", + "B4" => "Sentjernej Commune", + "B6" => "Sevnica Commune", + "B7" => "Sezana Commune", + "B8" => "Skocjan Commune", + "B9" => "Skofja Loka Commune", + "C1" => "Skofljica Commune", + "C2" => "Slovenj Gradec Urban Commune", + "C4" => "Slovenske Konjice Commune", + "C5" => "Smarje pri Jelsah Commune", + "C6" => "Smartno ob Paki Commune", + "C7" => "Sostanj Commune", + "C8" => "Starse Commune", + "C9" => "Store Commune", + "D1" => "Sveti Jurij Commune", + "D2" => "Tolmin Commune", + "D3" => "Trbovlje Commune", + "D4" => "Trebnje Commune", + "D5" => "Trzic Commune", + "D6" => "Turnisce Commune", + "D7" => "Velenje Urban Commune", + "D8" => "Velike Lasce Commune", + "E1" => "Vipava Commune", + "E2" => "Vitanje Commune", + "E3" => "Vodice Commune", + "E5" => "Vrhnika Commune", + "E6" => "Vuzenica Commune", + "E7" => "Zagorje ob Savi Commune", + "E9" => "Zavrc Commune", + "F1" => "Zelezniki Commune", + "F2" => "Ziri Commune", + "F3" => "Zrece Commune", + "F4" => "Benedikt Commune", + "F5" => "Bistrica ob Sotli Commune", + "F6" => "Bloke Commune", + "F7" => "Braslovce Commune", + "F8" => "Cankova Commune", + "F9" => "Cerkvenjak Commune", + "G1" => "Destrnik Commune", + "G2" => "Dobje Commune", + "G3" => "Dobrna Commune", + "G4" => "Dobrova-Horjul-Polhov Gradec Commune", + "G5" => "Dobrovnik-Dobronak Commune", + "G6" => "Dolenjske Toplice Commune", + "G7" => "Domzale Commune", + "G8" => "Grad Commune", + "G9" => "Hajdina Commune", + "H1" => "Hoce-Slivnica Commune", + "H2" => "Hodos-Hodos Commune", + "H3" => "Horjul Commune", + "H4" => "Jesenice Commune", + "H5" => "Jezersko Commune", + "H6" => "Kamnik Commune", + "H7" => "Kocevje Commune", + "H8" => "Komenda Commune", + "H9" => "Kostel Commune", + "I1" => "Krizevci Commune", + "I2" => "Kuzma Commune", + "I3" => "Lenart Commune", + "I4" => "Lendava-Lendva Commune", + "I5" => "Litija Commune", + "I6" => "Ljutomer Commune", + "I7" => "Loska Dolina Commune", + "I8" => "Lovrenc na Pohorju Commune", + "I9" => "Luce Commune", + "J1" => "Majsperk Commune", + "J2" => "Maribor Commune", + "J3" => "Markovci Commune", + "J4" => "Miklavz na Dravskem polju Commune", + "J5" => "Miren-Kostanjevica Commune", + "J6" => "Mirna Pec Commune", + "J7" => "Novo mesto Urban Commune", + "J8" => "Oplotnica Commune", + "J9" => "Piran-Pirano Commune", + "K1" => "Podlehnik Commune", + "K2" => "Podvelka Commune", + "K3" => "Polzela Commune", + "K4" => "Prebold Commune", + "K5" => "Preddvor Commune", + "K6" => "Prevalje Commune", + "K7" => "Ptuj Urban Commune", + "K8" => "Ravne na Koroskem Commune", + "K9" => "Razkrizje Commune", + "L1" => "Ribnica Commune", + "L2" => "Ribnica na Pohorju Commune", + "L3" => "Ruse Commune", + "L4" => "Salovci Commune", + "L5" => "Selnica ob Dravi Commune", + "L6" => "Sempeter-Vrtojba Commune", + "L7" => "Sentjur pri Celju Commune", + "L8" => "Slovenska Bistrica Commune", + "L9" => "Smartno pri Litiji Commune", + "M1" => "Sodrazica Commune", + "M2" => "Solcava Commune", + "M3" => "Sveta Ana Commune", + "M4" => "Sveti Andraz v Slovenskih goricah Commune", + "M5" => "Tabor Commune", + "M6" => "Tisina Commune", + "M7" => "Trnovska vas Commune", + "M8" => "Trzin Commune", + "M9" => "Velika Polana Commune", + "N1" => "Verzej Commune", + "N2" => "Videm Commune", + "N3" => "Vojnik Commune", + "N4" => "Vransko Commune", + "N5" => "Zalec Commune", + "N6" => "Zetale Commune", + "N7" => "Zirovnica Commune", + "N8" => "Zuzemberk Commune", + "N9" => "Apace Commune", + "O1" => "Cirkulane Commune" + ), + "SK" => array( + "01" => "Banska Bystrica", + "02" => "Bratislava", + "03" => "Kosice", + "04" => "Nitra", + "05" => "Presov", + "06" => "Trencin", + "07" => "Trnava", + "08" => "Zilina" + ), + "SL" => array( + "01" => "Eastern", + "02" => "Northern", + "03" => "Southern", + "04" => "Western Area" + ), + "SM" => array( + "01" => "Acquaviva", + "02" => "Chiesanuova", + "03" => "Domagnano", + "04" => "Faetano", + "05" => "Fiorentino", + "06" => "Borgo Maggiore", + "07" => "San Marino", + "08" => "Monte Giardino", + "09" => "Serravalle" + ), + "SN" => array( + "01" => "Dakar", + "03" => "Diourbel", + "05" => "Tambacounda", + "07" => "Thies", + "09" => "Fatick", + "10" => "Kaolack", + "11" => "Kolda", + "12" => "Ziguinchor", + "13" => "Louga", + "14" => "Saint-Louis", + "15" => "Matam" + ), + "SO" => array( + "01" => "Bakool", + "02" => "Banaadir", + "03" => "Bari", + "04" => "Bay", + "05" => "Galguduud", + "06" => "Gedo", + "07" => "Hiiraan", + "08" => "Jubbada Dhexe", + "09" => "Jubbada Hoose", + "10" => "Mudug", + "11" => "Nugaal", + "12" => "Sanaag", + "13" => "Shabeellaha Dhexe", + "14" => "Shabeellaha Hoose", + "16" => "Woqooyi Galbeed", + "18" => "Nugaal", + "19" => "Togdheer", + "20" => "Woqooyi Galbeed", + "21" => "Awdal", + "22" => "Sool" + ), + "SR" => array( + "10" => "Brokopondo", + "11" => "Commewijne", + "12" => "Coronie", + "13" => "Marowijne", + "14" => "Nickerie", + "15" => "Para", + "16" => "Paramaribo", + "17" => "Saramacca", + "18" => "Sipaliwini", + "19" => "Wanica" + ), + "SS" => array( + "01" => "Central Equatoria", + "02" => "Eastern Equatoria", + "03" => "Jonglei", + "04" => "Lakes", + "05" => "Northern Bahr el Ghazal", + "06" => "Unity", + "07" => "Upper Nile", + "08" => "Warrap", + "09" => "Western Bahr el Ghazal", + "10" => "Western Equatoria" + ), + "ST" => array( + "01" => "Principe", + "02" => "Sao Tome" + ), + "SV" => array( + "01" => "Ahuachapan", + "02" => "Cabanas", + "03" => "Chalatenango", + "04" => "Cuscatlan", + "05" => "La Libertad", + "06" => "La Paz", + "07" => "La Union", + "08" => "Morazan", + "09" => "San Miguel", + "10" => "San Salvador", + "11" => "Santa Ana", + "12" => "San Vicente", + "13" => "Sonsonate", + "14" => "Usulutan" + ), + "SY" => array( + "01" => "Al Hasakah", + "02" => "Al Ladhiqiyah", + "03" => "Al Qunaytirah", + "04" => "Ar Raqqah", + "05" => "As Suwayda'", + "06" => "Dar", + "07" => "Dayr az Zawr", + "08" => "Rif Dimashq", + "09" => "Halab", + "10" => "Hamah", + "11" => "Hims", + "12" => "Idlib", + "13" => "Dimashq", + "14" => "Tartus" + ), + "SZ" => array( + "01" => "Hhohho", + "02" => "Lubombo", + "03" => "Manzini", + "04" => "Shiselweni", + "05" => "Praslin" + ), + "TD" => array( + "01" => "Batha", + "02" => "Biltine", + "03" => "Borkou-Ennedi-Tibesti", + "04" => "Chari-Baguirmi", + "05" => "Guera", + "06" => "Kanem", + "07" => "Lac", + "08" => "Logone Occidental", + "09" => "Logone Oriental", + "10" => "Mayo-Kebbi", + "11" => "Moyen-Chari", + "12" => "Ouaddai", + "13" => "Salamat", + "14" => "Tandjile" + ), + "TG" => array( + "22" => "Centrale", + "23" => "Kara", + "24" => "Maritime", + "25" => "Plateaux", + "26" => "Savanes" + ), + "TH" => array( + "01" => "Mae Hong Son", + "02" => "Chiang Mai", + "03" => "Chiang Rai", + "04" => "Nan", + "05" => "Lamphun", + "06" => "Lampang", + "07" => "Phrae", + "08" => "Tak", + "09" => "Sukhothai", + "10" => "Uttaradit", + "11" => "Kamphaeng Phet", + "12" => "Phitsanulok", + "13" => "Phichit", + "14" => "Phetchabun", + "15" => "Uthai Thani", + "16" => "Nakhon Sawan", + "17" => "Nong Khai", + "18" => "Loei", + "20" => "Sakon Nakhon", + "21" => "Nakhon Phanom", + "22" => "Khon Kaen", + "23" => "Kalasin", + "24" => "Maha Sarakham", + "25" => "Roi Et", + "26" => "Chaiyaphum", + "27" => "Nakhon Ratchasima", + "28" => "Buriram", + "29" => "Surin", + "30" => "Sisaket", + "31" => "Narathiwat", + "32" => "Chai Nat", + "33" => "Sing Buri", + "34" => "Lop Buri", + "35" => "Ang Thong", + "36" => "Phra Nakhon Si Ayutthaya", + "37" => "Saraburi", + "38" => "Nonthaburi", + "39" => "Pathum Thani", + "40" => "Krung Thep", + "41" => "Phayao", + "42" => "Samut Prakan", + "43" => "Nakhon Nayok", + "44" => "Chachoengsao", + "45" => "Prachin Buri", + "46" => "Chon Buri", + "47" => "Rayong", + "48" => "Chanthaburi", + "49" => "Trat", + "50" => "Kanchanaburi", + "51" => "Suphan Buri", + "52" => "Ratchaburi", + "53" => "Nakhon Pathom", + "54" => "Samut Songkhram", + "55" => "Samut Sakhon", + "56" => "Phetchaburi", + "57" => "Prachuap Khiri Khan", + "58" => "Chumphon", + "59" => "Ranong", + "60" => "Surat Thani", + "61" => "Phangnga", + "62" => "Phuket", + "63" => "Krabi", + "64" => "Nakhon Si Thammarat", + "65" => "Trang", + "66" => "Phatthalung", + "67" => "Satun", + "68" => "Songkhla", + "69" => "Pattani", + "70" => "Yala", + "71" => "Ubon Ratchathani", + "72" => "Yasothon", + "73" => "Nakhon Phanom", + "74" => "Prachin Buri", + "75" => "Ubon Ratchathani", + "76" => "Udon Thani", + "77" => "Amnat Charoen", + "78" => "Mukdahan", + "79" => "Nong Bua Lamphu", + "80" => "Sa Kaeo" + ), + "TJ" => array( + "01" => "Kuhistoni Badakhshon", + "02" => "Khatlon", + "03" => "Sughd" + ), + "TM" => array( + "01" => "Ahal", + "02" => "Balkan", + "03" => "Dashoguz", + "04" => "Lebap", + "05" => "Mary" + ), + "TN" => array( + "02" => "Kasserine", + "03" => "Kairouan", + "06" => "Jendouba", + "10" => "Qafsah", + "14" => "El Kef", + "15" => "Al Mahdia", + "16" => "Al Munastir", + "17" => "Bajah", + "18" => "Bizerte", + "19" => "Nabeul", + "22" => "Siliana", + "23" => "Sousse", + "27" => "Ben Arous", + "28" => "Madanin", + "29" => "Gabes", + "31" => "Kebili", + "32" => "Sfax", + "33" => "Sidi Bou Zid", + "34" => "Tataouine", + "35" => "Tozeur", + "36" => "Tunis", + "37" => "Zaghouan", + "38" => "Aiana", + "39" => "Manouba" + ), + "TO" => array( + "01" => "Ha", + "02" => "Tongatapu", + "03" => "Vava" + ), + "TR" => array( + "02" => "Adiyaman", + "03" => "Afyonkarahisar", + "04" => "Agri", + "05" => "Amasya", + "07" => "Antalya", + "08" => "Artvin", + "09" => "Aydin", + "10" => "Balikesir", + "11" => "Bilecik", + "12" => "Bingol", + "13" => "Bitlis", + "14" => "Bolu", + "15" => "Burdur", + "16" => "Bursa", + "17" => "Canakkale", + "19" => "Corum", + "20" => "Denizli", + "21" => "Diyarbakir", + "22" => "Edirne", + "23" => "Elazig", + "24" => "Erzincan", + "25" => "Erzurum", + "26" => "Eskisehir", + "28" => "Giresun", + "31" => "Hatay", + "32" => "Mersin", + "33" => "Isparta", + "34" => "Istanbul", + "35" => "Izmir", + "37" => "Kastamonu", + "38" => "Kayseri", + "39" => "Kirklareli", + "40" => "Kirsehir", + "41" => "Kocaeli", + "43" => "Kutahya", + "44" => "Malatya", + "45" => "Manisa", + "46" => "Kahramanmaras", + "48" => "Mugla", + "49" => "Mus", + "50" => "Nevsehir", + "52" => "Ordu", + "53" => "Rize", + "54" => "Sakarya", + "55" => "Samsun", + "57" => "Sinop", + "58" => "Sivas", + "59" => "Tekirdag", + "60" => "Tokat", + "61" => "Trabzon", + "62" => "Tunceli", + "63" => "Sanliurfa", + "64" => "Usak", + "65" => "Van", + "66" => "Yozgat", + "68" => "Ankara", + "69" => "Gumushane", + "70" => "Hakkari", + "71" => "Konya", + "72" => "Mardin", + "73" => "Nigde", + "74" => "Siirt", + "75" => "Aksaray", + "76" => "Batman", + "77" => "Bayburt", + "78" => "Karaman", + "79" => "Kirikkale", + "80" => "Sirnak", + "81" => "Adana", + "82" => "Cankiri", + "83" => "Gaziantep", + "84" => "Kars", + "85" => "Zonguldak", + "86" => "Ardahan", + "87" => "Bartin", + "88" => "Igdir", + "89" => "Karabuk", + "90" => "Kilis", + "91" => "Osmaniye", + "92" => "Yalova", + "93" => "Duzce" + ), + "TT" => array( + "01" => "Arima", + "02" => "Caroni", + "03" => "Mayaro", + "04" => "Nariva", + "05" => "Port-of-Spain", + "06" => "Saint Andrew", + "07" => "Saint David", + "08" => "Saint George", + "09" => "Saint Patrick", + "10" => "San Fernando", + "11" => "Tobago", + "12" => "Victoria" + ), + "TW" => array( + "01" => "Fu-chien", + "02" => "Kao-hsiung", + "03" => "T'ai-pei", + "04" => "T'ai-wan" + ), + "TZ" => array( + "02" => "Pwani", + "03" => "Dodoma", + "04" => "Iringa", + "05" => "Kigoma", + "06" => "Kilimanjaro", + "07" => "Lindi", + "08" => "Mara", + "09" => "Mbeya", + "10" => "Morogoro", + "11" => "Mtwara", + "12" => "Mwanza", + "13" => "Pemba North", + "14" => "Ruvuma", + "15" => "Shinyanga", + "16" => "Singida", + "17" => "Tabora", + "18" => "Tanga", + "19" => "Kagera", + "20" => "Pemba South", + "21" => "Zanzibar Central", + "22" => "Zanzibar North", + "23" => "Dar es Salaam", + "24" => "Rukwa", + "25" => "Zanzibar Urban", + "26" => "Arusha", + "27" => "Manyara" + ), + "UA" => array( + "01" => "Cherkas'ka Oblast'", + "02" => "Chernihivs'ka Oblast'", + "03" => "Chernivets'ka Oblast'", + "04" => "Dnipropetrovs'ka Oblast'", + "05" => "Donets'ka Oblast'", + "06" => "Ivano-Frankivs'ka Oblast'", + "07" => "Kharkivs'ka Oblast'", + "08" => "Khersons'ka Oblast'", + "09" => "Khmel'nyts'ka Oblast'", + "10" => "Kirovohrads'ka Oblast'", + "11" => "Krym", + "12" => "Kyyiv", + "13" => "Kyyivs'ka Oblast'", + "14" => "Luhans'ka Oblast'", + "15" => "L'vivs'ka Oblast'", + "16" => "Mykolayivs'ka Oblast'", + "17" => "Odes'ka Oblast'", + "18" => "Poltavs'ka Oblast'", + "19" => "Rivnens'ka Oblast'", + "20" => "Sevastopol'", + "21" => "Sums'ka Oblast'", + "22" => "Ternopil's'ka Oblast'", + "23" => "Vinnyts'ka Oblast'", + "24" => "Volyns'ka Oblast'", + "25" => "Zakarpats'ka Oblast'", + "26" => "Zaporiz'ka Oblast'", + "27" => "Zhytomyrs'ka Oblast'" + ), + "UG" => array( + "26" => "Apac", + "28" => "Bundibugyo", + "29" => "Bushenyi", + "30" => "Gulu", + "31" => "Hoima", + "33" => "Jinja", + "36" => "Kalangala", + "37" => "Kampala", + "38" => "Kamuli", + "39" => "Kapchorwa", + "40" => "Kasese", + "41" => "Kibale", + "42" => "Kiboga", + "43" => "Kisoro", + "45" => "Kotido", + "46" => "Kumi", + "47" => "Lira", + "50" => "Masindi", + "52" => "Mbarara", + "56" => "Mubende", + "58" => "Nebbi", + "59" => "Ntungamo", + "60" => "Pallisa", + "61" => "Rakai", + "65" => "Adjumani", + "66" => "Bugiri", + "67" => "Busia", + "69" => "Katakwi", + "70" => "Luwero", + "71" => "Masaka", + "72" => "Moyo", + "73" => "Nakasongola", + "74" => "Sembabule", + "76" => "Tororo", + "77" => "Arua", + "78" => "Iganga", + "79" => "Kabarole", + "80" => "Kaberamaido", + "81" => "Kamwenge", + "82" => "Kanungu", + "83" => "Kayunga", + "84" => "Kitgum", + "85" => "Kyenjojo", + "86" => "Mayuge", + "87" => "Mbale", + "88" => "Moroto", + "89" => "Mpigi", + "90" => "Mukono", + "91" => "Nakapiripirit", + "92" => "Pader", + "93" => "Rukungiri", + "94" => "Sironko", + "95" => "Soroti", + "96" => "Wakiso", + "97" => "Yumbe" + ), + "US" => array( + "AA" => "Armed Forces Americas", + "AE" => "Armed Forces Europe, Middle East, & Canada", + "AK" => "Alaska", + "AL" => "Alabama", + "AP" => "Armed Forces Pacific", + "AR" => "Arkansas", + "AS" => "American Samoa", + "AZ" => "Arizona", + "CA" => "California", + "CO" => "Colorado", + "CT" => "Connecticut", + "DC" => "District of Columbia", + "DE" => "Delaware", + "FL" => "Florida", + "FM" => "Federated States of Micronesia", + "GA" => "Georgia", + "GU" => "Guam", + "HI" => "Hawaii", + "IA" => "Iowa", + "ID" => "Idaho", + "IL" => "Illinois", + "IN" => "Indiana", + "KS" => "Kansas", + "KY" => "Kentucky", + "LA" => "Louisiana", + "MA" => "Massachusetts", + "MD" => "Maryland", + "ME" => "Maine", + "MH" => "Marshall Islands", + "MI" => "Michigan", + "MN" => "Minnesota", + "MO" => "Missouri", + "MP" => "Northern Mariana Islands", + "MS" => "Mississippi", + "MT" => "Montana", + "NC" => "North Carolina", + "ND" => "North Dakota", + "NE" => "Nebraska", + "NH" => "New Hampshire", + "NJ" => "New Jersey", + "NM" => "New Mexico", + "NV" => "Nevada", + "NY" => "New York", + "OH" => "Ohio", + "OK" => "Oklahoma", + "OR" => "Oregon", + "PA" => "Pennsylvania", + "PR" => "Puerto Rico", + "PW" => "Palau", + "RI" => "Rhode Island", + "SC" => "South Carolina", + "SD" => "South Dakota", + "TN" => "Tennessee", + "TX" => "Texas", + "UT" => "Utah", + "VA" => "Virginia", + "VI" => "Virgin Islands", + "VT" => "Vermont", + "WA" => "Washington", + "WI" => "Wisconsin", + "WV" => "West Virginia", + "WY" => "Wyoming" + ), + "UY" => array( + "01" => "Artigas", + "02" => "Canelones", + "03" => "Cerro Largo", + "04" => "Colonia", + "05" => "Durazno", + "06" => "Flores", + "07" => "Florida", + "08" => "Lavalleja", + "09" => "Maldonado", + "10" => "Montevideo", + "11" => "Paysandu", + "12" => "Rio Negro", + "13" => "Rivera", + "14" => "Rocha", + "15" => "Salto", + "16" => "San Jose", + "17" => "Soriano", + "18" => "Tacuarembo", + "19" => "Treinta y Tres" + ), + "UZ" => array( + "01" => "Andijon", + "02" => "Bukhoro", + "03" => "Farghona", + "04" => "Jizzakh", + "05" => "Khorazm", + "06" => "Namangan", + "07" => "Nawoiy", + "08" => "Qashqadaryo", + "09" => "Qoraqalpoghiston", + "10" => "Samarqand", + "11" => "Sirdaryo", + "12" => "Surkhondaryo", + "13" => "Toshkent", + "14" => "Toshkent" + ), + "VC" => array( + "01" => "Charlotte", + "02" => "Saint Andrew", + "03" => "Saint David", + "04" => "Saint George", + "05" => "Saint Patrick", + "06" => "Grenadines" + ), + "VE" => array( + "01" => "Amazonas", + "02" => "Anzoategui", + "03" => "Apure", + "04" => "Aragua", + "05" => "Barinas", + "06" => "Bolivar", + "07" => "Carabobo", + "08" => "Cojedes", + "09" => "Delta Amacuro", + "11" => "Falcon", + "12" => "Guarico", + "13" => "Lara", + "14" => "Merida", + "15" => "Miranda", + "16" => "Monagas", + "17" => "Nueva Esparta", + "18" => "Portuguesa", + "19" => "Sucre", + "20" => "Tachira", + "21" => "Trujillo", + "22" => "Yaracuy", + "23" => "Zulia", + "24" => "Dependencias Federales", + "25" => "Distrito Federal", + "26" => "Vargas" + ), + "VN" => array( + "01" => "An Giang", + "03" => "Ben Tre", + "05" => "Cao Bang", + "09" => "Dong Thap", + "13" => "Hai Phong", + "20" => "Ho Chi Minh", + "21" => "Kien Giang", + "23" => "Lam Dong", + "24" => "Long An", + "30" => "Quang Ninh", + "32" => "Son La", + "33" => "Tay Ninh", + "34" => "Thanh Hoa", + "35" => "Thai Binh", + "37" => "Tien Giang", + "39" => "Lang Son", + "43" => "Dong Nai", + "44" => "Ha Noi", + "45" => "Ba Ria-Vung Tau", + "46" => "Binh Dinh", + "47" => "Binh Thuan", + "49" => "Gia Lai", + "50" => "Ha Giang", + "52" => "Ha Tinh", + "53" => "Hoa Binh", + "54" => "Khanh Hoa", + "55" => "Kon Tum", + "58" => "Nghe An", + "59" => "Ninh Binh", + "60" => "Ninh Thuan", + "61" => "Phu Yen", + "62" => "Quang Binh", + "63" => "Quang Ngai", + "64" => "Quang Tri", + "65" => "Soc Trang", + "66" => "Thua Thien-Hue", + "67" => "Tra Vinh", + "68" => "Tuyen Quang", + "69" => "Vinh Long", + "70" => "Yen Bai", + "71" => "Bac Giang", + "72" => "Bac Kan", + "73" => "Bac Lieu", + "74" => "Bac Ninh", + "75" => "Binh Duong", + "76" => "Binh Phuoc", + "77" => "Ca Mau", + "78" => "Da Nang", + "79" => "Hai Duong", + "80" => "Ha Nam", + "81" => "Hung Yen", + "82" => "Nam Dinh", + "83" => "Phu Tho", + "84" => "Quang Nam", + "85" => "Thai Nguyen", + "86" => "Vinh Phuc", + "87" => "Can Tho", + "88" => "Dac Lak", + "89" => "Lai Chau", + "90" => "Lao Cai", + "91" => "Dak Nong", + "92" => "Dien Bien", + "93" => "Hau Giang" + ), + "VU" => array( + "05" => "Ambrym", + "06" => "Aoba", + "07" => "Torba", + "08" => "Efate", + "09" => "Epi", + "10" => "Malakula", + "11" => "Paama", + "12" => "Pentecote", + "13" => "Sanma", + "14" => "Shepherd", + "15" => "Tafea", + "16" => "Malampa", + "17" => "Penama", + "18" => "Shefa" + ), + "WS" => array( + "02" => "Aiga-i-le-Tai", + "03" => "Atua", + "04" => "Fa", + "05" => "Gaga", + "06" => "Va", + "07" => "Gagaifomauga", + "08" => "Palauli", + "09" => "Satupa", + "10" => "Tuamasaga", + "11" => "Vaisigano" + ), + "YE" => array( + "01" => "Abyan", + "02" => "Adan", + "03" => "Al Mahrah", + "04" => "Hadramawt", + "05" => "Shabwah", + "06" => "Lahij", + "07" => "Al Bayda'", + "08" => "Al Hudaydah", + "09" => "Al Jawf", + "10" => "Al Mahwit", + "11" => "Dhamar", + "12" => "Hajjah", + "13" => "Ibb", + "14" => "Ma'rib", + "15" => "Sa'dah", + "16" => "San'a'", + "17" => "Taizz", + "18" => "Ad Dali", + "19" => "Amran", + "20" => "Al Bayda'", + "21" => "Al Jawf", + "22" => "Hajjah", + "23" => "Ibb", + "24" => "Lahij", + "25" => "Taizz" + ), + "ZA" => array( + "01" => "North-Western Province", + "02" => "KwaZulu-Natal", + "03" => "Free State", + "05" => "Eastern Cape", + "06" => "Gauteng", + "07" => "Mpumalanga", + "08" => "Northern Cape", + "09" => "Limpopo", + "10" => "North-West", + "11" => "Western Cape" + ), + "ZM" => array( + "01" => "Western", + "02" => "Central", + "03" => "Eastern", + "04" => "Luapula", + "05" => "Northern", + "06" => "North-Western", + "07" => "Southern", + "08" => "Copperbelt", + "09" => "Lusaka" + ), + "ZW" => array( + "01" => "Manicaland", + "02" => "Midlands", + "03" => "Mashonaland Central", + "04" => "Mashonaland East", + "05" => "Mashonaland West", + "06" => "Matabeleland North", + "07" => "Matabeleland South", + "08" => "Masvingo", + "09" => "Bulawayo", + "10" => "Harare" + ) ); -?> diff --git a/plugins/UserCountry/LocationProvider.php b/plugins/UserCountry/LocationProvider.php index a5a656c42f2..2c431565e5f 100755 --- a/plugins/UserCountry/LocationProvider.php +++ b/plugins/UserCountry/LocationProvider.php @@ -444,8 +444,7 @@ public static function prettyFormatLocation($locationInfo, $newline = "\n", $inc /** * Returns an IP address from an array that was passed into getLocation. This - * will return an IPv4 address or null if the address is IPv6 (IPv6 is not - * supported yet). + * will return an IPv4 address or IPv6 address. * * @param array $info Must have 'ip' key. * @return string|null @@ -454,7 +453,11 @@ protected function getIpFromInfo($info) { $ip = \Piwik\Network\IP::fromStringIP($info['ip']); - return $ip->toIPv4String(); + if ($ip instanceof \Piwik\Network\IPv6 && $ip->isMappedIPv4()) { + return $ip->toIPv4String(); + } else { + return $ip->toString(); + } } } diff --git a/plugins/UserCountry/LocationProvider/GeoIp/Php.php b/plugins/UserCountry/LocationProvider/GeoIp/Php.php index abaa88139d5..ce7cec87411 100755 --- a/plugins/UserCountry/LocationProvider/GeoIp/Php.php +++ b/plugins/UserCountry/LocationProvider/GeoIp/Php.php @@ -95,6 +95,7 @@ public function __destruct() public function getLocation($info) { $ip = $this->getIpFromInfo($info); + $isIPv6 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); $result = array(); @@ -104,7 +105,11 @@ public function getLocation($info) case GEOIP_CITY_EDITION_REV0: // city database type case GEOIP_CITY_EDITION_REV1: case GEOIP_CITYCOMBINED_EDITION: - $location = geoip_record_by_addr($locationGeoIp, $ip); + if ($isIPv6) { + $location = geoip_record_by_addr_v6($locationGeoIp, $ip); + } else { + $location = geoip_record_by_addr($locationGeoIp, $ip); + } if (!empty($location)) { $result[self::COUNTRY_CODE_KEY] = $location->country_code; $result[self::REGION_CODE_KEY] = $location->region; @@ -117,28 +122,46 @@ public function getLocation($info) break; case GEOIP_REGION_EDITION_REV0: // region database type case GEOIP_REGION_EDITION_REV1: - $location = geoip_region_by_addr($locationGeoIp, $ip); + if ($isIPv6) { + // NOTE: geoip_region_by_addr_v6 does not exist (yet?), so we + // return the country code and an empty region code + $location = array(geoip_country_code_by_addr_v6($locationGeoIp, $ip), ''); + } else { + $location = geoip_region_by_addr($locationGeoIp, $ip); + } if (!empty($location)) { $result[self::COUNTRY_CODE_KEY] = $location[0]; $result[self::REGION_CODE_KEY] = $location[1]; } break; case GEOIP_COUNTRY_EDITION: // country database type - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); + if ($isIPv6) { + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr_v6($locationGeoIp, $ip); + } else { + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); + } break; default: // unknown database type, log warning and fallback to country edition Log::warning("Found unrecognized database type: %s", $locationGeoIp->databaseType); - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); + if ($isIPv6) { + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr_v6($locationGeoIp, $ip); + } else { + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); + } break; } } - // NOTE: ISP & ORG require commercial dbs to test. this code has been tested manually, + // NOTE: ISP & ORG require commercial dbs to test. The code has been tested manually, // but not by system tests. $ispGeoIp = $this->getGeoIpInstance($key = 'isp'); if ($ispGeoIp) { - $isp = geoip_org_by_addr($ispGeoIp, $ip); + if ($isIPv6) { + $isp = geoip_name_by_addr_v6($ispGeoIp, $ip); + } else { + $isp = geoip_org_by_addr($ispGeoIp, $ip); + } if (!empty($isp)) { $result[self::ISP_KEY] = utf8_encode($isp); } @@ -146,7 +169,11 @@ public function getLocation($info) $orgGeoIp = $this->getGeoIpInstance($key = 'org'); if ($orgGeoIp) { - $org = geoip_org_by_addr($orgGeoIp, $ip); + if ($isIPv6) { + $org = geoip_name_by_addr_v6($orgGeoIp, $ip); + } else { + $org = geoip_org_by_addr($orgGeoIp, $ip); + } if (!empty($org)) { $result[self::ORG_KEY] = utf8_encode($org); } diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php index b499959f782..3abb1ee414a 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php @@ -33,7 +33,7 @@ class ManyVisitsWithGeoIP extends Fixture '::ffff:137.82.130.49', // in British Columbia (mapped ipv4) '137.82.130.0', // anonymization tests '137.82.0.0', - '2001:db8:85a3:0:0:8a2e:370:7334', // ipv6 (geoip lookup not supported) + '2001:db8:85a3:0:0:8a2e:370:7334', // ipv6 '113.62.1.1', // in Lhasa, Tibet '151.100.101.92', // in Rome, Italy (using country DB, so only Italy will show) '103.29.196.229', // in Indonesia (Bali), (only Indonesia will show up) @@ -257,4 +257,4 @@ public static function unsetLocationProvider() // ignore error } } -} \ No newline at end of file +} diff --git a/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php b/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php index 8910c8568e6..50b113d820f 100755 --- a/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php +++ b/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php @@ -102,6 +102,17 @@ public function getApiForTesting() 'periods' => array('month'), 'otherRequestParameters' => array('ip' => '194.57.91.215') )), + + array(array('UserCountry.getLocationFromIP'), array( + 'otherRequestParameters' => array('ip' => '194.57.91.215') + )), + + array(array('UserCountry.getLocationFromIP'), array( + 'testSuffix' => '_IPv6', + 'otherRequestParameters' => array( + 'ip' => '2001:db8:85a3:0:0:8a2e:370:7334', + ) + )), ); // Randomly fails on 5.3 @@ -160,4 +171,4 @@ public function getApiForTesting() } } -ManyVisitorsOneWebsiteTest::$fixture = new ManyVisitsWithGeoIP(); \ No newline at end of file +ManyVisitorsOneWebsiteTest::$fixture = new ManyVisitsWithGeoIP(); diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml index a7be13ef56b..58c15349b31 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml @@ -2277,17 +2277,17 @@ UNK 1 - Unknown - unk - Unknown - xx - plugins/UserCountry/images/flags/xx.png + North America + amn + United States + us + plugins/UserCountry/images/flags/us.png - Unknown - - + United States + 38 + -97 12:34:06 12 10 @@ -2519,17 +2519,17 @@ UNK 0 - Unknown - unk - Unknown - xx - plugins/UserCountry/images/flags/xx.png + North America + amn + United States + us + plugins/UserCountry/images/flags/us.png - Unknown - - + United States + 38 + -97 12:34:06 12 11 diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml index 949a6486de8..84baa921c6d 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml @@ -2,12 +2,12 @@ gb ca - xx ru + us it - id fr + id ti mk - us + xx \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml index d48ae323327..8cc367528e4 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml @@ -3,7 +3,8 @@ 49.25 123.456 47.249 - 124.456 + 38 29.65 + 124.456 1 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml index 34b2e9333da..43e5a510a31 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml @@ -3,7 +3,8 @@ -123.133 21.321 6.018 - 22.231 + -97 91.1 + 22.231 2 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_IPv6__UserCountry.getLocationFromIP.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_IPv6__UserCountry.getLocationFromIP.xml new file mode 100644 index 00000000000..3d25ea74717 --- /dev/null +++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_IPv6__UserCountry.getLocationFromIP.xml @@ -0,0 +1,16 @@ + + + + US + + + 0 + 38 + -97 + + amn + North America + United States + 2001:db8:85a3:0:0:8a2e:370:7334 + + diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml index 9572d1df13a..a608b58f48a 100644 --- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml +++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml @@ -27,34 +27,34 @@ - 7 - 11 + 9 + 15 3 - 3783 - 4 + 5044 + 5 - 7 - 7 - 35 + 9 + 9 + 45 - 3 - 3 - 15 + 4 + 4 + 20 - 10 - 50 - 4 + 13 + 65 + 5 1 North America - + 4 - 8 - 3 + 6 + 2 2522 2 @@ -73,31 +73,31 @@ 30 2 0 - Unknown + Asia - - 4 - 6 - 2 - 2522 - 2 + + 2 + 4 + 3 + 1261 + 1 - 4 - 4 - 20 - - 2 2 10 + + 1 + 1 + 5 + - 6 - 30 - 2 + 3 + 15 + 1 0 - Asia + Unknown \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml index c37c6d773bb..c56807d7717 100644 --- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml +++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml @@ -85,30 +85,30 @@ 11 - - 4 - 8 + + 3 + 5 3 - 2522 + 1261 2 - 4 - 4 - 20 + 3 + 3 + 15 - 2 - 2 - 10 + 1 + 1 + 5 - 6 - 30 + 4 + 20 2 - 0 - xx - plugins/UserCountry/images/flags/xx.png + 1 + us + plugins/UserCountry/images/flags/us.png 16 11 @@ -253,25 +253,30 @@ 11 - - 1 - 1 - 1 - 0 + + 2 + 4 + 3 + 1261 1 + 2 + 2 + 10 + + 1 1 5 - 1 - 5 + 3 + 15 1 - 1 - us - plugins/UserCountry/images/flags/us.png + 0 + xx + plugins/UserCountry/images/flags/xx.png 16 11