NexusLeads Webshell
NexusLeads


Server : LiteSpeed
System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : alsaif ( 1057)
PHP Version : 7.4.33
Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/alsaif/public_html/libraries/regularlabs/fields/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/alsaif/public_html/libraries/regularlabs/fields/geo.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.9.3039
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper as JHtml;
use Joomla\Registry\Registry;
use RegularLabs\Library\Field;
use RegularLabs\Library\Form as RL_Form;
use RegularLabs\Library\RegEx as RL_RegEx;

if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
    return;
}

require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';

class JFormFieldRL_Geo extends Field
{
    public $continents       = [
        'AF' => 'Africa',
        'AS' => 'Asia',
        'EU' => 'Europe',
        'NA' => 'North America',
        'SA' => 'South America',
        'OC' => 'Oceania',
        'AN' => 'Antarctica',
    ];
    public $countries        = [
        'AF' => "Afghanistan",
        'AX' => "Aland Islands",
        'AL' => "Albania",
        'DZ' => "Algeria",
        'AS' => "American Samoa",
        'AD' => "Andorra",
        'AO' => "Angola",
        'AI' => "Anguilla",
        'AQ' => "Antarctica",
        'AG' => "Antigua and Barbuda",
        'AR' => "Argentina",
        'AM' => "Armenia",
        'AW' => "Aruba",
        'AU' => "Australia",
        'AT' => "Austria",
        'AZ' => "Azerbaijan",
        'BS' => "Bahamas",
        'BH' => "Bahrain",
        'BD' => "Bangladesh",
        'BB' => "Barbados",
        'BY' => "Belarus",
        'BE' => "Belgium",
        'BZ' => "Belize",
        'BJ' => "Benin",
        'BM' => "Bermuda",
        'BT' => "Bhutan",
        'BO' => "Bolivia",
        'BA' => "Bosnia and Herzegovina",
        'BW' => "Botswana",
        'BV' => "Bouvet Island",
        'BR' => "Brazil",
        'IO' => "British Indian Ocean Territory",
        'BN' => "Brunei Darussalam",
        'BG' => "Bulgaria",
        'BF' => "Burkina Faso",
        'BI' => "Burundi",
        'KH' => "Cambodia",
        'CM' => "Cameroon",
        'CA' => "Canada",
        'CV' => "Cape Verde",
        'KY' => "Cayman Islands",
        'CF' => "Central African Republic",
        'TD' => "Chad",
        'CL' => "Chile",
        'CN' => "China",
        'CX' => "Christmas Island",
        'CC' => "Cocos (Keeling) Islands",
        'CO' => "Colombia",
        'KM' => "Comoros",
        'CG' => "Congo",
        'CD' => "Congo, The Democratic Republic of the",
        'CK' => "Cook Islands",
        'CR' => "Costa Rica",
        'CI' => "Cote d'Ivoire",
        'HR' => "Croatia",
        'CU' => "Cuba",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'DJ' => "Djibouti",
        'DM' => "Dominica",
        'DO' => "Dominican Republic",
        'EC' => "Ecuador",
        'EG' => "Egypt",
        'SV' => "El Salvador",
        'GQ' => "Equatorial Guinea",
        'ER' => "Eritrea",
        'EE' => "Estonia",
        'ET' => "Ethiopia",
        'FK' => "Falkland Islands (Malvinas)",
        'FO' => "Faroe Islands",
        'FJ' => "Fiji",
        'FI' => "Finland",
        'FR' => "France",
        'GF' => "French Guiana",
        'PF' => "French Polynesia",
        'TF' => "French Southern Territories",
        'GA' => "Gabon",
        'GM' => "Gambia",
        'GE' => "Georgia",
        'DE' => "Germany",
        'GH' => "Ghana",
        'GI' => "Gibraltar",
        'GR' => "Greece",
        'GL' => "Greenland",
        'GD' => "Grenada",
        'GP' => "Guadeloupe",
        'GU' => "Guam",
        'GT' => "Guatemala",
        'GG' => "Guernsey",
        'GN' => "Guinea",
        'GW' => "Guinea-Bissau",
        'GY' => "Guyana",
        'HT' => "Haiti",
        'HM' => "Heard Island and McDonald Islands",
        'VA' => "Holy See (Vatican City State)",
        'HN' => "Honduras",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IR' => "Iran, Islamic Republic of",
        'IQ' => "Iraq",
        'IE' => "Ireland",
        'IM' => "Isle of Man",
        'IL' => "Israel",
        'IT' => "Italy",
        'JM' => "Jamaica",
        'JP' => "Japan",
        'JE' => "Jersey",
        'JO' => "Jordan",
        'KZ' => "Kazakhstan",
        'KE' => "Kenya",
        'KI' => "Kiribati",
        'KP' => "Korea, Democratic People's Republic of",
        'KR' => "Korea, Republic of",
        'KW' => "Kuwait",
        'KG' => "Kyrgyzstan",
        'LA' => "Lao People's Democratic Republic",
        'LV' => "Latvia",
        'LB' => "Lebanon",
        'LS' => "Lesotho",
        'LR' => "Liberia",
        'LY' => "Libyan Arab Jamahiriya",
        'LI' => "Liechtenstein",
        'LT' => "Lithuania",
        'LU' => "Luxembourg",
        'MO' => "Macao",
        'MK' => "Macedonia",
        'MG' => "Madagascar",
        'MW' => "Malawi",
        'MY' => "Malaysia",
        'MV' => "Maldives",
        'ML' => "Mali",
        'MT' => "Malta",
        'MH' => "Marshall Islands",
        'MQ' => "Martinique",
        'MR' => "Mauritania",
        'MU' => "Mauritius",
        'YT' => "Mayotte",
        'MX' => "Mexico",
        'FM' => "Micronesia, Federated States of",
        'MD' => "Moldova, Republic of",
        'MC' => "Monaco",
        'MN' => "Mongolia",
        'ME' => "Montenegro",
        'MS' => "Montserrat",
        'MA' => "Morocco",
        'MZ' => "Mozambique",
        'MM' => "Myanmar",
        'NA' => "Namibia",
        'NR' => "Nauru",
        'NP' => "Nepal",
        'NL' => "Netherlands",
        'AN' => "Netherlands Antilles",
        'NC' => "New Caledonia",
        'NZ' => "New Zealand",
        'NI' => "Nicaragua",
        'NE' => "Niger",
        'NG' => "Nigeria",
        'NU' => "Niue",
        'NF' => "Norfolk Island",
        'MP' => "Northern Mariana Islands",
        'NO' => "Norway",
        'OM' => "Oman",
        'PK' => "Pakistan",
        'PW' => "Palau",
        'PS' => "Palestinian Territory",
        'PA' => "Panama",
        'PG' => "Papua New Guinea",
        'PY' => "Paraguay",
        'PE' => "Peru",
        'PH' => "Philippines",
        'PN' => "Pitcairn",
        'PL' => "Poland",
        'PT' => "Portugal",
        'PR' => "Puerto Rico",
        'QA' => "Qatar",
        'RE' => "Reunion",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'RW' => "Rwanda",
        'SH' => "Saint Helena",
        'KN' => "Saint Kitts and Nevis",
        'LC' => "Saint Lucia",
        'PM' => "Saint Pierre and Miquelon",
        'VC' => "Saint Vincent and the Grenadines",
        'WS' => "Samoa",
        'SM' => "San Marino",
        'ST' => "Sao Tome and Principe",
        'SA' => "Saudi Arabia",
        'SN' => "Senegal",
        'RS' => "Serbia",
        'SC' => "Seychelles",
        'SL' => "Sierra Leone",
        'SG' => "Singapore",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'SB' => "Solomon Islands",
        'SO' => "Somalia",
        'ZA' => "South Africa",
        'GS' => "South Georgia and the South Sandwich Islands",
        'ES' => "Spain",
        'LK' => "Sri Lanka",
        'SD' => "Sudan",
        'SR' => "Suriname",
        'SJ' => "Svalbard and Jan Mayen",
        'SZ' => "Swaziland",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'SY' => "Syrian Arab Republic",
        'TW' => "Taiwan",
        'TJ' => "Tajikistan",
        'TZ' => "Tanzania, United Republic of",
        'TH' => "Thailand",
        'TL' => "Timor-Leste",
        'TG' => "Togo",
        'TK' => "Tokelau",
        'TO' => "Tonga",
        'TT' => "Trinidad and Tobago",
        'TN' => "Tunisia",
        'TR' => "Turkey",
        'TM' => "Turkmenistan",
        'TC' => "Turks and Caicos Islands",
        'TV' => "Tuvalu",
        'UG' => "Uganda",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'UM' => "United States Minor Outlying Islands",
        'UY' => "Uruguay",
        'UZ' => "Uzbekistan",
        'VU' => "Vanuatu",
        'VE' => "Venezuela",
        'VN' => "Vietnam",
        'VG' => "Virgin Islands, British",
        'VI' => "Virgin Islands, U.S.",
        'WF' => "Wallis and Futuna",
        'EH' => "Western Sahara",
        'YE' => "Yemen",
        'ZM' => "Zambia",
        'ZW' => "Zimbabwe",
    ];
    public $region_countries = [
        'AU' => "Australia",
        'BE' => "Belgium",
        'BR' => "Brazil",
        'BG' => "Bulgaria",
        'CA' => "Canada",
        'CN' => "China",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'EG' => "Egypt",
        'FR' => "France",
        'DE' => "Germany",
        'GR' => "Greece",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IE' => "Ireland",
        'IL' => "Israel",
        'IT' => "Italy",
        'JP' => "Japan",
        'MX' => "Mexico",
        'MA' => "Morocco",
        'NL' => "Netherlands",
        'NG' => "Nigeria",
        'NO' => "Norway",
        'PH' => "Philippines",
        'PL' => "Poland",
        'PT' => "Portugal",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'ZA' => "South Africa",
        'ES' => "Spain",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'TW' => "Taiwan",
        'TH' => "Thailand",
        'TR' => "Turkey",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'VN' => "Vietnam",
    ];
    public $regions          = [
        '-AU'    => "Australia",
        'AU-ACT' => "Australia: Australian Capital Territory",
        'AU-NSW' => "Australia: New South Wales",
        'AU-NT'  => "Australia: Northern Territory",
        'AU-QLD' => "Australia: Queensland",
        'AU-SA'  => "Australia: South Australia",
        'AU-TAS' => "Australia: Tasmania",
        'AU-VIC' => "Australia: Victoria",
        'AU-WA'  => "Australia: Western Australia",

        '--BE'   => "", '-BE' => "Belgium",
        'BE-VAN' => "Belgium: Antwerpen",
        'BE-WBR' => "Belgium: Brabant Wallon",
        'BE-BRU' => "Belgium: Brussels-Capital Region",
        'BE-WHT' => "Belgium: Hainaut",
        'BE-WLG' => "Belgium: Liege",
        'BE-VLI' => "Belgium: Limburg",
        'BE-WLX' => "Belgium: Luxembourg, Luxemburg",
        'BE-WNA' => "Belgium: Namur",
        'BE-VOV' => "Belgium: Oost-Vlaanderen",
        'BE-VBR' => "Belgium: Vlaams-Brabant",
        'BE-VWV' => "Belgium: West-Vlaanderen",

        '--BR'  => "", '-BR' => "Brazil",
        'BR-AC' => "Brazil: Acre",
        'BR-AL' => "Brazil: Alagoas",
        'BR-AP' => "Brazil: Amapá",
        'BR-AM' => "Brazil: Amazonas",
        'BR-BA' => "Brazil: Bahia",
        'BR-CE' => "Brazil: Ceará",
        'BR-DF' => "Brazil: Distrito Federal",
        'BR-ES' => "Brazil: Espírito Santo",
        'BR-FN' => "Brazil: Fernando de Noronha",
        'BR-GO' => "Brazil: Goiás",
        'BR-MA' => "Brazil: Maranhão",
        'BR-MT' => "Brazil: Mato Grosso",
        'BR-MS' => "Brazil: Mato Grosso do Sul",
        'BR-MG' => "Brazil: Minas Gerais",
        'BR-PR' => "Brazil: Paraná",
        'BR-PB' => "Brazil: Paraíba",
        'BR-PA' => "Brazil: Pará",
        'BR-PE' => "Brazil: Pernambuco",
        'BR-PI' => "Brazil: Piauí",
        'BR-RN' => "Brazil: Rio Grande do Norte",
        'BR-RS' => "Brazil: Rio Grande do Sul",
        'BR-RJ' => "Brazil: Rio de Janeiro",
        'BR-RO' => "Brazil: Rondônia",
        'BR-RR' => "Brazil: Roraima",
        'BR-SC' => "Brazil: Santa Catarina",
        'BR-SE' => "Brazil: Sergipe",
        'BR-SP' => "Brazil: São Paulo",
        'BR-TO' => "Brazil: Tocantins",

        '--BG'  => "", '-BG' => "Bulgaria",
        'BG-01' => "Bulgaria: Blagoevgrad",
        'BG-02' => "Bulgaria: Burgas",
        'BG-08' => "Bulgaria: Dobrich",
        'BG-07' => "Bulgaria: Gabrovo",
        'BG-26' => "Bulgaria: Haskovo",
        'BG-09' => "Bulgaria: Kardzhali",
        'BG-10' => "Bulgaria: Kyustendil",
        'BG-11' => "Bulgaria: Lovech",
        'BG-12' => "Bulgaria: Montana",
        'BG-13' => "Bulgaria: Pazardzhik",
        'BG-14' => "Bulgaria: Pernik",
        'BG-15' => "Bulgaria: Pleven",
        'BG-16' => "Bulgaria: Plovdiv",
        'BG-17' => "Bulgaria: Razgrad",
        'BG-18' => "Bulgaria: Ruse",
        'BG-27' => "Bulgaria: Shumen",
        'BG-19' => "Bulgaria: Silistra",
        'BG-20' => "Bulgaria: Sliven",
        'BG-21' => "Bulgaria: Smolyan",
        'BG-23' => "Bulgaria: Sofia",
        'BG-22' => "Bulgaria: Sofia-Grad",
        'BG-24' => "Bulgaria: Stara Zagora",
        'BG-25' => "Bulgaria: Targovishte",
        'BG-03' => "Bulgaria: Varna",
        'BG-04' => "Bulgaria: Veliko Tarnovo",
        'BG-05' => "Bulgaria: Vidin",
        'BG-06' => "Bulgaria: Vratsa",
        'BG-28' => "Bulgaria: Yambol",

        '--CA'  => "", '-CA' => "Canada",
        'CA-AB' => "Canada: Alberta",
        'CA-BC' => "Canada: British Columbia",
        'CA-MB' => "Canada: Manitoba",
        'CA-NB' => "Canada: New Brunswick",
        'CA-NL' => "Canada: Newfoundland and Labrador",
        'CA-NT' => "Canada: Northwest Territories",
        'CA-NS' => "Canada: Nova Scotia",
        'CA-NU' => "Canada: Nunavut",
        'CA-ON' => "Canada: Ontario",
        'CA-PE' => "Canada: Prince Edward Island",
        'CA-QC' => "Canada: Quebec",
        'CA-SK' => "Canada: Saskatchewan",
        'CA-YT' => "Canada: Yukon Territory",

        '--CN'  => "", '-CN' => "China",
        'CN-34' => "China: Anhui",
        'CN-92' => "China: Aomen (Macau)",
        'CN-11' => "China: Beijing",
        'CN-50' => "China: Chongqing",
        'CN-35' => "China: Fujian",
        'CN-62' => "China: Gansu",
        'CN-44' => "China: Guangdong",
        'CN-45' => "China: Guangxi",
        'CN-52' => "China: Guizhou",
        'CN-46' => "China: Hainan",
        'CN-13' => "China: Hebei",
        'CN-23' => "China: Heilongjiang",
        'CN-41' => "China: Henan",
        'CN-42' => "China: Hubei",
        'CN-43' => "China: Hunan",
        'CN-32' => "China: Jiangsu",
        'CN-36' => "China: Jiangxi",
        'CN-22' => "China: Jilin",
        'CN-21' => "China: Liaoning",
        'CN-15' => "China: Nei Mongol",
        'CN-64' => "China: Ningxia",
        'CN-63' => "China: Qinghai",
        'CN-61' => "China: Shaanxi",
        'CN-37' => "China: Shandong",
        'CN-31' => "China: Shanghai",
        'CN-14' => "China: Shanxi",
        'CN-51' => "China: Sichuan",
        'CN-71' => "China: Taiwan",
        'CN-12' => "China: Tianjin",
        'CN-91' => "China: Xianggang (Hong-Kong)",
        'CN-65' => "China: Xinjiang",
        'CN-54' => "China: Xizang",
        'CN-53' => "China: Yunnan",
        'CN-33' => "China: Zhejiang",

        '--CY'  => "", '-CY' => "Cyprus",
        'CY-04' => "Cyprus: Ammóchostos",
        'CY-06' => "Cyprus: Kerýneia",
        'CY-01' => "Cyprus: Lefkosía",
        'CY-02' => "Cyprus: Lemesós",
        'CY-03' => "Cyprus: Lárnaka",
        'CY-05' => "Cyprus: Páfos",

        '--CZ'   => "", '-CZ' => "Czech Republic",
        'CZ-201' => "Czech Republic: Benešov",
        'CZ-202' => "Czech Republic: Beroun",
        'CZ-621' => "Czech Republic: Blansko",
        'CZ-622' => "Czech Republic: Brno-město",
        'CZ-623' => "Czech Republic: Brno-venkov",
        'CZ-801' => "Czech Republic: Bruntál",
        'CZ-624' => "Czech Republic: Břeclav",
        'CZ-411' => "Czech Republic: Cheb",
        'CZ-422' => "Czech Republic: Chomutov",
        'CZ-531' => "Czech Republic: Chrudim",
        'CZ-321' => "Czech Republic: Domažlice",
        'CZ-421' => "Czech Republic: Děčín",
        'CZ-802' => "Czech Republic: Frýdek Místek",
        'CZ-611' => "Czech Republic: Havlíčkův Brod",
        'CZ-625' => "Czech Republic: Hodonín",
        'CZ-521' => "Czech Republic: Hradec Králové",
        'CZ-512' => "Czech Republic: Jablonec nad Nisou",
        'CZ-711' => "Czech Republic: Jeseník",
        'CZ-612' => "Czech Republic: Jihlava",
        'CZ-JM'  => "Czech Republic: Jihomoravský kraj",
        'CZ-JC'  => "Czech Republic: Jihočeský kraj",
        'CZ-313' => "Czech Republic: Jindřichův Hradec",
        'CZ-522' => "Czech Republic: Jičín",
        'CZ-KA'  => "Czech Republic: Karlovarský kraj",
        'CZ-412' => "Czech Republic: Karlovy Vary",
        'CZ-803' => "Czech Republic: Karviná",
        'CZ-203' => "Czech Republic: Kladno",
        'CZ-322' => "Czech Republic: Klatovy",
        'CZ-204' => "Czech Republic: Kolín",
        'CZ-721' => "Czech Republic: Kromĕříž",
        'CZ-KR'  => "Czech Republic: Královéhradecký kraj",
        'CZ-205' => "Czech Republic: Kutná Hora",
        'CZ-513' => "Czech Republic: Liberec",
        'CZ-LI'  => "Czech Republic: Liberecký kraj",
        'CZ-423' => "Czech Republic: Litoměřice",
        'CZ-424' => "Czech Republic: Louny",
        'CZ-207' => "Czech Republic: Mladá Boleslav",
        'CZ-MO'  => "Czech Republic: Moravskoslezský kraj",
        'CZ-425' => "Czech Republic: Most",
        'CZ-206' => "Czech Republic: Mělník",
        'CZ-804' => "Czech Republic: Nový Jičín",
        'CZ-208' => "Czech Republic: Nymburk",
        'CZ-523' => "Czech Republic: Náchod",
        'CZ-712' => "Czech Republic: Olomouc",
        'CZ-OL'  => "Czech Republic: Olomoucký kraj",
        'CZ-805' => "Czech Republic: Opava",
        'CZ-806' => "Czech Republic: Ostrava město",
        'CZ-532' => "Czech Republic: Pardubice",
        'CZ-PA'  => "Czech Republic: Pardubický kraj",
        'CZ-613' => "Czech Republic: Pelhřimov",
        'CZ-324' => "Czech Republic: Plzeň jih",
        'CZ-323' => "Czech Republic: Plzeň město",
        'CZ-325' => "Czech Republic: Plzeň sever",
        'CZ-PL'  => "Czech Republic: Plzeňský kraj",
        'CZ-315' => "Czech Republic: Prachatice",
        'CZ-101' => "Czech Republic: Praha 1",
        'CZ-10A' => "Czech Republic: Praha 10",
        'CZ-10B' => "Czech Republic: Praha 11",
        'CZ-10C' => "Czech Republic: Praha 12",
        'CZ-10D' => "Czech Republic: Praha 13",
        'CZ-10E' => "Czech Republic: Praha 14",
        'CZ-10F' => "Czech Republic: Praha 15",
        'CZ-102' => "Czech Republic: Praha 2",
        'CZ-103' => "Czech Republic: Praha 3",
        'CZ-104' => "Czech Republic: Praha 4",
        'CZ-105' => "Czech Republic: Praha 5",
        'CZ-106' => "Czech Republic: Praha 6",
        'CZ-107' => "Czech Republic: Praha 7",
        'CZ-108' => "Czech Republic: Praha 8",
        'CZ-109' => "Czech Republic: Praha 9",
        'CZ-209' => "Czech Republic: Praha východ",
        'CZ-20A' => "Czech Republic: Praha západ",
        'CZ-PR'  => "Czech Republic: Praha, hlavní město",
        'CZ-713' => "Czech Republic: Prostĕjov",
        'CZ-314' => "Czech Republic: Písek",
        'CZ-714' => "Czech Republic: Přerov",
        'CZ-20B' => "Czech Republic: Příbram",
        'CZ-20C' => "Czech Republic: Rakovník",
        'CZ-326' => "Czech Republic: Rokycany",
        'CZ-524' => "Czech Republic: Rychnov nad Kněžnou",
        'CZ-514' => "Czech Republic: Semily",
        'CZ-413' => "Czech Republic: Sokolov",
        'CZ-316' => "Czech Republic: Strakonice",
        'CZ-ST'  => "Czech Republic: Středočeský kraj",
        'CZ-533' => "Czech Republic: Svitavy",
        'CZ-327' => "Czech Republic: Tachov",
        'CZ-426' => "Czech Republic: Teplice",
        'CZ-525' => "Czech Republic: Trutnov",
        'CZ-317' => "Czech Republic: Tábor",
        'CZ-614' => "Czech Republic: Třebíč",
        'CZ-722' => "Czech Republic: Uherské Hradištĕ",
        'CZ-723' => "Czech Republic: Vsetín",
        'CZ-VY'  => "Czech Republic: Vysočina",
        'CZ-626' => "Czech Republic: Vyškov",
        'CZ-724' => "Czech Republic: Zlín",
        'CZ-ZL'  => "Czech Republic: Zlínský kraj",
        'CZ-627' => "Czech Republic: Znojmo",
        'CZ-US'  => "Czech Republic: Ústecký kraj",
        'CZ-427' => "Czech Republic: Ústí nad Labem",
        'CZ-534' => "Czech Republic: Ústí nad Orlicí",
        'CZ-511' => "Czech Republic: Česká Lípa",
        'CZ-311' => "Czech Republic: České Budějovice",
        'CZ-312' => "Czech Republic: Český Krumlov",
        'CZ-715' => "Czech Republic: Šumperk",
        'CZ-615' => "Czech Republic: Žd’ár nad Sázavou",

        '--DK'  => "", '-DK' => "Denmark",
        'DK-84' => "Denmark: Hovedstaden",
        'DK-82' => "Denmark: Midtjylland",
        'DK-81' => "Denmark: Nordjylland",
        'DK-85' => "Denmark: Sjælland",
        'DK-83' => "Denmark: Syddanmark",

        '--EG'   => "", '-EG' => "Egypt",
        'EG-DK'  => "Egypt: Ad Daqahlīyah",
        'EG-BA'  => "Egypt: Al Bahr al Ahmar",
        'EG-BH'  => "Egypt: Al Buhayrah",
        'EG-FYM' => "Egypt: Al Fayyūm",
        'EG-GH'  => "Egypt: Al Gharbīyah",
        'EG-ALX' => "Egypt: Al Iskandarīyah",
        'EG-IS'  => "Egypt: Al Ismā`īlīyah",
        'EG-GZ'  => "Egypt: Al Jīzah",
        'EG-MN'  => "Egypt: Al Minyā",
        'EG-MNF' => "Egypt: Al Minūfīyah",
        'EG-KB'  => "Egypt: Al Qalyūbīyah",
        'EG-C'   => "Egypt: Al Qāhirah",
        'EG-WAD' => "Egypt: Al Wādī al Jadīd",
        'EG-SUZ' => "Egypt: As Suways",
        'EG-SU'  => "Egypt: As Sādis min Uktūbar",
        'EG-SHR' => "Egypt: Ash Sharqīyah",
        'EG-ASN' => "Egypt: Aswān",
        'EG-AST' => "Egypt: Asyūt",
        'EG-BNS' => "Egypt: Banī Suwayf",
        'EG-PTS' => "Egypt: Būr Sa`īd",
        'EG-DT'  => "Egypt: Dumyāt",
        'EG-JS'  => "Egypt: Janūb Sīnā'",
        'EG-KFS' => "Egypt: Kafr ash Shaykh",
        'EG-MT'  => "Egypt: Matrūh",
        'EG-KN'  => "Egypt: Qinā",
        'EG-SIN' => "Egypt: Shamal Sīnā'",
        'EG-SHG' => "Egypt: Sūhāj",
        'EG-HU'  => "Egypt: Ḩulwān",

        '--FR'  => "", '-FR' => "France",
        'FR-01' => "France: Ain",
        'FR-02' => "France: Aisne",
        'FR-03' => "France: Allier",
        'FR-06' => "France: Alpes-Maritimes",
        'FR-04' => "France: Alpes-de-Haute-Provence",
        'FR-A'  => "France: Alsace",
        'FR-B'  => "France: Aquitaine",
        'FR-08' => "France: Ardennes",
        'FR-07' => "France: Ardèche",
        'FR-09' => "France: Ariège",
        'FR-10' => "France: Aube",
        'FR-11' => "France: Aude",
        'FR-C'  => "France: Auvergne",
        'FR-12' => "France: Aveyron",
        'FR-67' => "France: Bas-Rhin",
        'FR-P'  => "France: Basse-Normandie",
        'FR-13' => "France: Bouches-du-Rhône",
        'FR-D'  => "France: Bourgogne",
        'FR-E'  => "France: Bretagne",
        'FR-14' => "France: Calvados",
        'FR-15' => "France: Cantal",
        'FR-F'  => "France: Centre",
        'FR-G'  => "France: Champagne-Ardenne",
        'FR-16' => "France: Charente",
        'FR-17' => "France: Charente-Maritime",
        'FR-18' => "France: Cher",
        'FR-CP' => "France: Clipperton",
        'FR-19' => "France: Corrèze",
        'FR-H'  => "France: Corse",
        'FR-2A' => "France: Corse-du-Sud",
        'FR-23' => "France: Creuse",
        'FR-21' => "France: Côte-d'Or",
        'FR-22' => "France: Côtes-d'Armor",
        'FR-79' => "France: Deux-Sèvres",
        'FR-24' => "France: Dordogne",
        'FR-25' => "France: Doubs",
        'FR-26' => "France: Drôme",
        'FR-91' => "France: Essonne",
        'FR-27' => "France: Eure",
        'FR-28' => "France: Eure-et-Loir",
        'FR-29' => "France: Finistère",
        'FR-I'  => "France: Franche-Comté",
        'FR-30' => "France: Gard",
        'FR-32' => "France: Gers",
        'FR-33' => "France: Gironde",
        'FR-GP' => "France: Guadeloupe",
        'FR-GF' => "France: Guyane",
        'FR-68' => "France: Haut-Rhin",
        'FR-2B' => "France: Haute-Corse",
        'FR-31' => "France: Haute-Garonne",
        'FR-43' => "France: Haute-Loire",
        'FR-52' => "France: Haute-Marne",
        'FR-Q'  => "France: Haute-Normandie",
        'FR-74' => "France: Haute-Savoie",
        'FR-70' => "France: Haute-Saône",
        'FR-87' => "France: Haute-Vienne",
        'FR-05' => "France: Hautes-Alpes",
        'FR-65' => "France: Hautes-Pyrénées",
        'FR-92' => "France: Hauts-de-Seine",
        'FR-34' => "France: Hérault",
        'FR-35' => "France: Ille-et-Vilaine",
        'FR-36' => "France: Indre",
        'FR-37' => "France: Indre-et-Loire",
        'FR-38' => "France: Isère",
        'FR-39' => "France: Jura",
        'FR-40' => "France: Landes",
        'FR-K'  => "France: Languedoc-Roussillon",
        'FR-L'  => "France: Limousin",
        'FR-41' => "France: Loir-et-Cher",
        'FR-42' => "France: Loire",
        'FR-44' => "France: Loire-Atlantique",
        'FR-45' => "France: Loiret",
        'FR-M'  => "France: Lorraine",
        'FR-46' => "France: Lot",
        'FR-47' => "France: Lot-et-Garonne",
        'FR-48' => "France: Lozère",
        'FR-49' => "France: Maine-et-Loire",
        'FR-50' => "France: Manche",
        'FR-51' => "France: Marne",
        'FR-MQ' => "France: Martinique",
        'FR-53' => "France: Mayenne",
        'FR-YT' => "France: Mayotte",
        'FR-54' => "France: Meurthe-et-Moselle",
        'FR-55' => "France: Meuse",
        'FR-N'  => "France: Midi-Pyrénées",
        'FR-56' => "France: Morbihan",
        'FR-57' => "France: Moselle",
        'FR-58' => "France: Nièvre",
        'FR-59' => "France: Nord",
        'FR-O'  => "France: Nord - Pas-de-Calais",
        'FR-NC' => "France: Nouvelle-Calédonie",
        'FR-60' => "France: Oise",
        'FR-61' => "France: Orne",
        'FR-75' => "France: Paris",
        'FR-62' => "France: Pas-de-Calais",
        'FR-R'  => "France: Pays de la Loire",
        'FR-S'  => "France: Picardie",
        'FR-T'  => "France: Poitou-Charentes",
        'FR-PF' => "France: Polynésie française",
        'FR-U'  => "France: Provence-Alpes-Côte d'Azur",
        'FR-63' => "France: Puy-de-Dôme",
        'FR-64' => "France: Pyrénées-Atlantiques",
        'FR-66' => "France: Pyrénées-Orientales",
        'FR-69' => "France: Rhône",
        'FR-V'  => "France: Rhône-Alpes",
        'FR-RE' => "France: Réunion",
        'FR-BL' => "France: Saint-Barthélemy",
        'FR-MF' => "France: Saint-Martin",
        'FR-PM' => "France: Saint-Pierre-et-Miquelon",
        'FR-72' => "France: Sarthe",
        'FR-73' => "France: Savoie",
        'FR-71' => "France: Saône-et-Loire",
        'FR-76' => "France: Seine-Maritime",
        'FR-93' => "France: Seine-Saint-Denis",
        'FR-77' => "France: Seine-et-Marne",
        'FR-80' => "France: Somme",
        'FR-81' => "France: Tarn",
        'FR-82' => "France: Tarn-et-Garonne",
        'FR-TF' => "France: Terres australes françaises",
        'FR-90' => "France: Territoire de Belfort",
        'FR-95' => "France: Val d'Oise",
        'FR-94' => "France: Val-de-Marne",
        'FR-83' => "France: Var",
        'FR-84' => "France: Vaucluse",
        'FR-85' => "France: Vendée",
        'FR-86' => "France: Vienne",
        'FR-88' => "France: Vosges",
        'FR-WF' => "France: Wallis-et-Futuna",
        'FR-89' => "France: Yonne",
        'FR-78' => "France: Yvelines",
        'FR-J'  => "France: Île-de-France",

        '--DE'  => "", '-DE' => "Germany",
        'DE-BW' => "Germany: Baden-Württemberg",
        'DE-BY' => "Germany: Bayern",
        'DE-BE' => "Germany: Berlin",
        'DE-BB' => "Germany: Brandenburg",
        'DE-HB' => "Germany: Bremen",
        'DE-HH' => "Germany: Hamburg",
        'DE-HE' => "Germany: Hessen",
        'DE-MV' => "Germany: Mecklenburg-Vorpommern",
        'DE-NI' => "Germany: Niedersachsen",
        'DE-NW' => "Germany: Nordrhein-Westfalen",
        'DE-RP' => "Germany: Rheinland-Pfalz",
        'DE-SL' => "Germany: Saarland",
        'DE-SN' => "Germany: Sachsen",
        'DE-ST' => "Germany: Sachsen-Anhalt",
        'DE-SH' => "Germany: Schleswig-Holstein",
        'DE-TH' => "Germany: Thüringen",

        '--GR'  => "", '-GR' => "Greece",
        'GR-13' => "Greece: Achaïa",
        'GR-69' => "Greece: Agio Oros",
        'GR-01' => "Greece: Aitolia kai Akarnania",
        'GR-A'  => "Greece: Anatoliki Makedonia kai Thraki",
        'GR-11' => "Greece: Argolida",
        'GR-12' => "Greece: Arkadia",
        'GR-31' => "Greece: Arta",
        'GR-A1' => "Greece: Attiki",
        'GR-64' => "Greece: Chalkidiki",
        'GR-94' => "Greece: Chania",
        'GR-85' => "Greece: Chios",
        'GR-81' => "Greece: Dodekanisos",
        'GR-52' => "Greece: Drama",
        'GR-G'  => "Greece: Dytiki Ellada",
        'GR-C'  => "Greece: Dytiki Makedonia",
        'GR-71' => "Greece: Evros",
        'GR-05' => "Greece: Evrytania",
        'GR-04' => "Greece: Evvoias",
        'GR-63' => "Greece: Florina",
        'GR-07' => "Greece: Fokida",
        'GR-06' => "Greece: Fthiotida",
        'GR-51' => "Greece: Grevena",
        'GR-14' => "Greece: Ileia",
        'GR-53' => "Greece: Imathia",
        'GR-33' => "Greece: Ioannina",
        'GR-F'  => "Greece: Ionia Nisia",
        'GR-D'  => "Greece: Ipeiros",
        'GR-91' => "Greece: Irakleio",
        'GR-41' => "Greece: Karditsa",
        'GR-56' => "Greece: Kastoria",
        'GR-55' => "Greece: Kavala",
        'GR-23' => "Greece: Kefallonia",
        'GR-B'  => "Greece: Kentriki Makedonia",
        'GR-22' => "Greece: Kerkyra",
        'GR-57' => "Greece: Kilkis",
        'GR-15' => "Greece: Korinthia",
        'GR-58' => "Greece: Kozani",
        'GR-M'  => "Greece: Kriti",
        'GR-82' => "Greece: Kyklades",
        'GR-16' => "Greece: Lakonia",
        'GR-42' => "Greece: Larisa",
        'GR-92' => "Greece: Lasithi",
        'GR-24' => "Greece: Lefkada",
        'GR-83' => "Greece: Lesvos",
        'GR-43' => "Greece: Magnisia",
        'GR-17' => "Greece: Messinia",
        'GR-L'  => "Greece: Notio Aigaio",
        'GR-59' => "Greece: Pella",
        'GR-J'  => "Greece: Peloponnisos",
        'GR-61' => "Greece: Pieria",
        'GR-34' => "Greece: Preveza",
        'GR-93' => "Greece: Rethymno",
        'GR-73' => "Greece: Rodopi",
        'GR-84' => "Greece: Samos",
        'GR-62' => "Greece: Serres",
        'GR-H'  => "Greece: Sterea Ellada",
        'GR-32' => "Greece: Thesprotia",
        'GR-E'  => "Greece: Thessalia",
        'GR-54' => "Greece: Thessaloniki",
        'GR-44' => "Greece: Trikala",
        'GR-03' => "Greece: Voiotia",
        'GR-K'  => "Greece: Voreio Aigaio",
        'GR-72' => "Greece: Xanthi",
        'GR-21' => "Greece: Zakynthos",

        '--HU'  => "", '-HU' => "Hungary",
        'HU-BA' => "Hungary: Baranya",
        'HU-BZ' => "Hungary: Borsod-Abaúj-Zemplén",
        'HU-BU' => "Hungary: Budapest",
        'HU-BK' => "Hungary: Bács-Kiskun",
        'HU-BE' => "Hungary: Békés",
        'HU-BC' => "Hungary: Békéscsaba",
        'HU-CS' => "Hungary: Csongrád",
        'HU-DE' => "Hungary: Debrecen",
        'HU-DU' => "Hungary: Dunaújváros",
        'HU-EG' => "Hungary: Eger",
        'HU-FE' => "Hungary: Fejér",
        'HU-GY' => "Hungary: Győr",
        'HU-GS' => "Hungary: Győr-Moson-Sopron",
        'HU-HB' => "Hungary: Hajdú-Bihar",
        'HU-HE' => "Hungary: Heves",
        'HU-HV' => "Hungary: Hódmezővásárhely",
        'HU-JN' => "Hungary: Jász-Nagykun-Szolnok",
        'HU-KV' => "Hungary: Kaposvár",
        'HU-KM' => "Hungary: Kecskemét",
        'HU-KE' => "Hungary: Komárom-Esztergom",
        'HU-MI' => "Hungary: Miskolc",
        'HU-NK' => "Hungary: Nagykanizsa",
        'HU-NY' => "Hungary: Nyíregyháza",
        'HU-NO' => "Hungary: Nógrád",
        'HU-PE' => "Hungary: Pest",
        'HU-PS' => "Hungary: Pécs",
        'HU-ST' => "Hungary: Salgótarján",
        'HU-SO' => "Hungary: Somogy",
        'HU-SN' => "Hungary: Sopron",
        'HU-SZ' => "Hungary: Szabolcs-Szatmár-Bereg",
        'HU-SD' => "Hungary: Szeged",
        'HU-SS' => "Hungary: Szekszárd",
        'HU-SK' => "Hungary: Szolnok",
        'HU-SH' => "Hungary: Szombathely",
        'HU-SF' => "Hungary: Székesfehérvár",
        'HU-TB' => "Hungary: Tatabánya",
        'HU-TO' => "Hungary: Tolna",
        'HU-VA' => "Hungary: Vas",
        'HU-VM' => "Hungary: Veszprém",
        'HU-VE' => "Hungary: Veszprém (county)",
        'HU-ZA' => "Hungary: Zala",
        'HU-ZE' => "Hungary: Zalaegerszeg",
        'HU-ER' => "Hungary: Érd",

        '--IS' => "", '-IS' => "Iceland",
        'IS-7' => "Iceland: Austurland",
        'IS-1' => "Iceland: Höfuðborgarsvæðið",
        'IS-6' => "Iceland: Norðurland eystra",
        'IS-5' => "Iceland: Norðurland vestra",
        'IS-0' => "Iceland: Reykjavík",
        'IS-8' => "Iceland: Suðurland",
        'IS-2' => "Iceland: Suðurnes",
        'IS-4' => "Iceland: Vestfirðir",
        'IS-3' => "Iceland: Vesturland",

        '--IN'  => "", '-IN' => "India",
        'IN-AN' => "India: Andaman and Nicobar Islands",
        'IN-AP' => "India: Andhra Pradesh",
        'IN-AR' => "India: Arunāchal Pradesh",
        'IN-AS' => "India: Assam",
        'IN-BR' => "India: Bihār",
        'IN-CH' => "India: Chandīgarh",
        'IN-CT' => "India: Chhattīsgarh",
        'IN-DD' => "India: Damān and Diu",
        'IN-DL' => "India: Delhi",
        'IN-DN' => "India: Dādra and Nagar Haveli",
        'IN-GA' => "India: Goa",
        'IN-GJ' => "India: Gujarāt",
        'IN-HR' => "India: Haryāna",
        'IN-HP' => "India: Himāchal Pradesh",
        'IN-JK' => "India: Jammu and Kashmīr",
        'IN-JH' => "India: Jharkhand",
        'IN-KA' => "India: Karnātaka",
        'IN-KL' => "India: Kerala",
        'IN-LD' => "India: Lakshadweep",
        'IN-MP' => "India: Madhya Pradesh",
        'IN-MH' => "India: Mahārāshtra",
        'IN-MN' => "India: Manipur",
        'IN-ML' => "India: Meghālaya",
        'IN-MZ' => "India: Mizoram",
        'IN-NL' => "India: Nāgāland",
        'IN-OR' => "India: Orissa",
        'IN-PY' => "India: Pondicherry",
        'IN-PB' => "India: Punjab",
        'IN-RJ' => "India: Rājasthān",
        'IN-SK' => "India: Sikkim",
        'IN-TN' => "India: Tamil Nādu",
        'IN-TR' => "India: Tripura",
        'IN-UP' => "India: Uttar Pradesh",
        'IN-UL' => "India: Uttaranchal",
        'IN-WB' => "India: West Bengal",

        '--ID'  => "", '-ID' => "Indonesia",
        'ID-AC' => "Indonesia: Aceh",
        'ID-BA' => "Indonesia: Bali",
        'ID-BB' => "Indonesia: Bangka Belitung",
        'ID-BT' => "Indonesia: Banten",
        'ID-BE' => "Indonesia: Bengkulu",
        'ID-GO' => "Indonesia: Gorontalo",
        'ID-JK' => "Indonesia: Jakarta Raya",
        'ID-JA' => "Indonesia: Jambi",
        'ID-JW' => "Indonesia: Jawa",
        'ID-JB' => "Indonesia: Jawa Barat",
        'ID-JT' => "Indonesia: Jawa Tengah",
        'ID-JI' => "Indonesia: Jawa Timur",
        'ID-KA' => "Indonesia: Kalimantan",
        'ID-KB' => "Indonesia: Kalimantan Barat",
        'ID-KS' => "Indonesia: Kalimantan Selatan",
        'ID-KT' => "Indonesia: Kalimantan Tengah",
        'ID-KI' => "Indonesia: Kalimantan Timur",
        'ID-KR' => "Indonesia: Kepulauan Riau",
        'ID-LA' => "Indonesia: Lampung",
        'ID-MA' => "Indonesia: Maluku",
        'ID-MU' => "Indonesia: Maluku Utara",
        'ID-NU' => "Indonesia: Nusa Tenggara",
        'ID-NB' => "Indonesia: Nusa Tenggara Barat",
        'ID-NT' => "Indonesia: Nusa Tenggara Timur",
        'ID-PA' => "Indonesia: Papua",
        'ID-PB' => "Indonesia: Papua Barat",
        'ID-RI' => "Indonesia: Riau",
        'ID-SL' => "Indonesia: Sulawesi",
        'ID-SR' => "Indonesia: Sulawesi Barat",
        'ID-SN' => "Indonesia: Sulawesi Selatan",
        'ID-ST' => "Indonesia: Sulawesi Tengah",
        'ID-SG' => "Indonesia: Sulawesi Tenggara",
        'ID-SA' => "Indonesia: Sulawesi Utara",
        'ID-SM' => "Indonesia: Sumatera",
        'ID-SU' => "Indonesia: Sumatera Utara",
        'ID-SB' => "Indonesia: Sumatra Barat",
        'ID-SS' => "Indonesia: Sumatra Selatan",
        'ID-YO' => "Indonesia: Yogyakarta",

        '--IE'  => "", '-IE' => "Ireland",
        'IE-CW' => "Ireland: Carlow",
        'IE-CN' => "Ireland: Cavan",
        'IE-CE' => "Ireland: Clare",
        'IE-C'  => "Ireland: Connacht",
        'IE-CO' => "Ireland: Cork",
        'IE-DL' => "Ireland: Donegal",
        'IE-D'  => "Ireland: Dublin",
        'IE-G'  => "Ireland: Galway",
        'IE-KY' => "Ireland: Kerry",
        'IE-KE' => "Ireland: Kildare",
        'IE-KK' => "Ireland: Kilkenny",
        'IE-LS' => "Ireland: Laois",
        'IE-L'  => "Ireland: Leinster",
        'IE-LM' => "Ireland: Leitrim",
        'IE-LK' => "Ireland: Limerick",
        'IE-LD' => "Ireland: Longford",
        'IE-LH' => "Ireland: Louth",
        'IE-MO' => "Ireland: Mayo",
        'IE-MH' => "Ireland: Meath",
        'IE-MN' => "Ireland: Monaghan",
        'IE-M'  => "Ireland: Munster",
        'IE-OY' => "Ireland: Offaly",
        'IE-RN' => "Ireland: Roscommon",
        'IE-SO' => "Ireland: Sligo",
        'IE-TA' => "Ireland: Tipperary",
        'IE-U'  => "Ireland: Ulster",
        'IE-WD' => "Ireland: Waterford",
        'IE-WH' => "Ireland: Westmeath",
        'IE-WX' => "Ireland: Wexford",
        'IE-WW' => "Ireland: Wicklow",

        '--IL'  => "", '-IL' => "Israel",
        'IL-D'  => "Israel: HaDarom",
        'IL-M'  => "Israel: HaMerkaz",
        'IL-Z'  => "Israel: HaZafon",
        'IL-HA' => "Israel: Hefa",
        'IL-TA' => "Israel: Tel-Aviv",
        'IL-JM' => "Israel: Yerushalayim Al Quds",

        '--IT'  => "", '-IT' => "Italy",
        'IT-65' => "Italy: Abruzzo",
        'IT-AG' => "Italy: Agrigento",
        'IT-AL' => "Italy: Alessandria",
        'IT-AN' => "Italy: Ancona",
        'IT-AO' => "Italy: Aosta",
        'IT-AR' => "Italy: Arezzo",
        'IT-AP' => "Italy: Ascoli Piceno",
        'IT-AT' => "Italy: Asti",
        'IT-AV' => "Italy: Avellino",
        'IT-BA' => "Italy: Bari",
        'IT-BT' => "Italy: Barletta-Andria-Trani",
        'IT-77' => "Italy: Basilicata",
        'IT-BL' => "Italy: Belluno",
        'IT-BN' => "Italy: Benevento",
        'IT-BG' => "Italy: Bergamo",
        'IT-BI' => "Italy: Biella",
        'IT-BO' => "Italy: Bologna",
        'IT-BZ' => "Italy: Bolzano",
        'IT-BS' => "Italy: Brescia",
        'IT-BR' => "Italy: Brindisi",
        'IT-CA' => "Italy: Cagliari",
        'IT-78' => "Italy: Calabria",
        'IT-CL' => "Italy: Caltanissetta",
        'IT-72' => "Italy: Campania",
        'IT-CB' => "Italy: Campobasso",
        'IT-CI' => "Italy: Carbonia-Iglesias",
        'IT-CE' => "Italy: Caserta",
        'IT-CT' => "Italy: Catania",
        'IT-CZ' => "Italy: Catanzaro",
        'IT-CH' => "Italy: Chieti",
        'IT-CO' => "Italy: Como",
        'IT-CS' => "Italy: Cosenza",
        'IT-CR' => "Italy: Cremona",
        'IT-KR' => "Italy: Crotone",
        'IT-CN' => "Italy: Cuneo",
        'IT-45' => "Italy: Emilia-Romagna",
        'IT-EN' => "Italy: Enna",
        'IT-FM' => "Italy: Fermo",
        'IT-FE' => "Italy: Ferrara",
        'IT-FI' => "Italy: Firenze",
        'IT-FG' => "Italy: Foggia",
        'IT-FC' => "Italy: Forlì-Cesena",
        'IT-36' => "Italy: Friuli-Venezia Giulia",
        'IT-FR' => "Italy: Frosinone",
        'IT-GE' => "Italy: Genova",
        'IT-GO' => "Italy: Gorizia",
        'IT-GR' => "Italy: Grosseto",
        'IT-IM' => "Italy: Imperia",
        'IT-IS' => "Italy: Isernia",
        'IT-AQ' => "Italy: L'Aquila",
        'IT-SP' => "Italy: La Spezia",
        'IT-LT' => "Italy: Latina",
        'IT-62' => "Italy: Lazio",
        'IT-LE' => "Italy: Lecce",
        'IT-LC' => "Italy: Lecco",
        'IT-42' => "Italy: Liguria",
        'IT-LI' => "Italy: Livorno",
        'IT-LO' => "Italy: Lodi",
        'IT-25' => "Italy: Lombardia",
        'IT-LU' => "Italy: Lucca",
        'IT-MC' => "Italy: Macerata",
        'IT-MN' => "Italy: Mantova",
        'IT-57' => "Italy: Marche",
        'IT-MS' => "Italy: Massa-Carrara",
        'IT-MT' => "Italy: Matera",
        'IT-VS' => "Italy: Medio Campidano",
        'IT-ME' => "Italy: Messina",
        'IT-MI' => "Italy: Milano",
        'IT-MO' => "Italy: Modena",
        'IT-67' => "Italy: Molise",
        'IT-MB' => "Italy: Monza e Brianza",
        'IT-NA' => "Italy: Napoli",
        'IT-NO' => "Italy: Novara",
        'IT-NU' => "Italy: Nuoro",
        'IT-OG' => "Italy: Ogliastra",
        'IT-OT' => "Italy: Olbia-Tempio",
        'IT-OR' => "Italy: Oristano",
        'IT-PD' => "Italy: Padova",
        'IT-PA' => "Italy: Palermo",
        'IT-PR' => "Italy: Parma",
        'IT-PV' => "Italy: Pavia",
        'IT-PG' => "Italy: Perugia",
        'IT-PU' => "Italy: Pesaro e Urbino",
        'IT-PE' => "Italy: Pescara",
        'IT-PC' => "Italy: Piacenza",
        'IT-21' => "Italy: Piemonte",
        'IT-PI' => "Italy: Pisa",
        'IT-PT' => "Italy: Pistoia",
        'IT-PN' => "Italy: Pordenone",
        'IT-PZ' => "Italy: Potenza",
        'IT-PO' => "Italy: Prato",
        'IT-75' => "Italy: Puglia",
        'IT-RG' => "Italy: Ragusa",
        'IT-RA' => "Italy: Ravenna",
        'IT-RC' => "Italy: Reggio Calabria",
        'IT-RE' => "Italy: Reggio Emilia",
        'IT-RI' => "Italy: Rieti",
        'IT-RN' => "Italy: Rimini",
        'IT-RM' => "Italy: Roma",
        'IT-RO' => "Italy: Rovigo",
        'IT-SA' => "Italy: Salerno",
        'IT-88' => "Italy: Sardegna",
        'IT-SS' => "Italy: Sassari",
        'IT-SV' => "Italy: Savona",
        'IT-82' => "Italy: Sicilia",
        'IT-SI' => "Italy: Siena",
        'IT-SR' => "Italy: Siracusa",
        'IT-SO' => "Italy: Sondrio",
        'IT-TA' => "Italy: Taranto",
        'IT-TE' => "Italy: Teramo",
        'IT-TR' => "Italy: Terni",
        'IT-TO' => "Italy: Torino",
        'IT-52' => "Italy: Toscana",
        'IT-TP' => "Italy: Trapani",
        'IT-32' => "Italy: Trentino-Alto Adige",
        'IT-TN' => "Italy: Trento",
        'IT-TV' => "Italy: Treviso",
        'IT-TS' => "Italy: Trieste",
        'IT-UD' => "Italy: Udine",
        'IT-55' => "Italy: Umbria",
        'IT-23' => "Italy: Valle d'Aosta",
        'IT-VA' => "Italy: Varese",
        'IT-34' => "Italy: Veneto",
        'IT-VE' => "Italy: Venezia",
        'IT-VB' => "Italy: Verbano-Cusio-Ossola",
        'IT-VC' => "Italy: Vercelli",
        'IT-VR' => "Italy: Verona",
        'IT-VV' => "Italy: Vibo Valentia",
        'IT-VI' => "Italy: Vicenza",
        'IT-VT' => "Italy: Viterbo",

        '--JP'  => "", '-JP' => "Japan",
        'JP-23' => "Japan: Aichi",
        'JP-05' => "Japan: Akita",
        'JP-02' => "Japan: Aomori",
        'JP-12' => "Japan: Chiba",
        'JP-38' => "Japan: Ehime",
        'JP-18' => "Japan: Fukui",
        'JP-40' => "Japan: Fukuoka",
        'JP-07' => "Japan: Fukushima",
        'JP-21' => "Japan: Gifu",
        'JP-10' => "Japan: Gunma",
        'JP-34' => "Japan: Hiroshima",
        'JP-01' => "Japan: Hokkaido",
        'JP-28' => "Japan: Hyogo",
        'JP-08' => "Japan: Ibaraki",
        'JP-17' => "Japan: Ishikawa",
        'JP-03' => "Japan: Iwate",
        'JP-37' => "Japan: Kagawa",
        'JP-46' => "Japan: Kagoshima",
        'JP-14' => "Japan: Kanagawa",
        'JP-39' => "Japan: Kochi",
        'JP-43' => "Japan: Kumamoto",
        'JP-26' => "Japan: Kyoto",
        'JP-24' => "Japan: Mie",
        'JP-04' => "Japan: Miyagi",
        'JP-45' => "Japan: Miyazaki",
        'JP-20' => "Japan: Nagano",
        'JP-42' => "Japan: Nagasaki",
        'JP-29' => "Japan: Nara",
        'JP-15' => "Japan: Niigata",
        'JP-44' => "Japan: Oita",
        'JP-33' => "Japan: Okayama",
        'JP-47' => "Japan: Okinawa",
        'JP-27' => "Japan: Osaka",
        'JP-41' => "Japan: Saga",
        'JP-11' => "Japan: Saitama",
        'JP-25' => "Japan: Shiga",
        'JP-32' => "Japan: Shimane",
        'JP-22' => "Japan: Shizuoka",
        'JP-09' => "Japan: Tochigi",
        'JP-36' => "Japan: Tokushima",
        'JP-13' => "Japan: Tokyo",
        'JP-31' => "Japan: Tottori",
        'JP-16' => "Japan: Toyama",
        'JP-30' => "Japan: Wakayama",
        'JP-06' => "Japan: Yamagata",
        'JP-35' => "Japan: Yamaguchi",
        'JP-19' => "Japan: Yamanashi",

        '--MX'   => "", '-MX' => "Mexico",
        'MX-AGU' => "Mexico: Aguascalientes",
        'MX-BCN' => "Mexico: Baja California",
        'MX-BCS' => "Mexico: Baja California Sur",
        'MX-CAM' => "Mexico: Campeche",
        'MX-CHP' => "Mexico: Chiapas",
        'MX-CHH' => "Mexico: Chihuahua",
        'MX-COA' => "Mexico: Coahuila",
        'MX-COL' => "Mexico: Colima",
        'MX-DIF' => "Mexico: Distrito Federal (Mexico City)",
        'MX-DUR' => "Mexico: Durango",
        'MX-GUA' => "Mexico: Guanajuato",
        'MX-GRO' => "Mexico: Guerrero",
        'MX-HID' => "Mexico: Hidalgo",
        'MX-JAL' => "Mexico: Jalisco",
        'MX-MIC' => "Mexico: Michoacán",
        'MX-MOR' => "Mexico: Morelos",
        'MX-MEX' => "Mexico: México",
        'MX-NAY' => "Mexico: Nayarit",
        'MX-NLE' => "Mexico: Nuevo León",
        'MX-OAX' => "Mexico: Oaxaca",
        'MX-PUE' => "Mexico: Puebla",
        'MX-QUE' => "Mexico: Querétaro",
        'MX-ROO' => "Mexico: Quintana Roo",
        'MX-SLP' => "Mexico: San Luis Potosí",
        'MX-SIN' => "Mexico: Sinaloa",
        'MX-SON' => "Mexico: Sonora",
        'MX-TAB' => "Mexico: Tabasco",
        'MX-TAM' => "Mexico: Tamaulipas",
        'MX-TLA' => "Mexico: Tlaxcala",
        'MX-VER' => "Mexico: Veracruz",
        'MX-YUC' => "Mexico: Yucatán",
        'MX-ZAC' => "Mexico: Zacatecas",

        '--MA'   => "", '-MA' => "Morocco",
        'MA-AGD' => "Morocco: Agadir-Ida-Outanane",
        'MA-HAO' => "Morocco: Al Haouz",
        'MA-HOC' => "Morocco: Al Hoceïma",
        'MA-AOU' => "Morocco: Aousserd",
        'MA-ASZ' => "Morocco: Assa-Zag",
        'MA-AZI' => "Morocco: Azilal",
        'MA-BES' => "Morocco: Ben Slimane",
        'MA-BEM' => "Morocco: Beni Mellal",
        'MA-BER' => "Morocco: Berkane",
        'MA-BOD' => "Morocco: Boujdour (EH)",
        'MA-BOM' => "Morocco: Boulemane",
        'MA-CAS' => "Morocco: Casablanca [Dar el Beïda]",
        'MA-09'  => "Morocco: Chaouia-Ouardigha",
        'MA-CHE' => "Morocco: Chefchaouen",
        'MA-CHI' => "Morocco: Chichaoua",
        'MA-CHT' => "Morocco: Chtouka-Ait Baha",
        'MA-10'  => "Morocco: Doukhala-Abda",
        'MA-HAJ' => "Morocco: El Hajeb",
        'MA-JDI' => "Morocco: El Jadida",
        'MA-ERR' => "Morocco: Errachidia",
        'MA-ESM' => "Morocco: Es Smara (EH)",
        'MA-ESI' => "Morocco: Essaouira",
        'MA-FAH' => "Morocco: Fahs-Beni Makada",
        'MA-FIG' => "Morocco: Figuig",
        'MA-05'  => "Morocco: Fès-Boulemane",
        'MA-FES' => "Morocco: Fès-Dar-Dbibegh",
        'MA-02'  => "Morocco: Gharb-Chrarda-Beni Hssen",
        'MA-08'  => "Morocco: Grand Casablanca",
        'MA-GUE' => "Morocco: Guelmim",
        'MA-14'  => "Morocco: Guelmim-Es Smara",
        'MA-IFR' => "Morocco: Ifrane",
        'MA-INE' => "Morocco: Inezgane-Ait Melloul",
        'MA-JRA' => "Morocco: Jrada",
        'MA-KES' => "Morocco: Kelaat es Sraghna",
        'MA-KHE' => "Morocco: Khemisaet",
        'MA-KHN' => "Morocco: Khenifra",
        'MA-KHO' => "Morocco: Khouribga",
        'MA-KEN' => "Morocco: Kénitra",
        'MA-04'  => "Morocco: L'Oriental",
        'MA-LAR' => "Morocco: Larache",
        'MA-LAA' => "Morocco: Laâyoune (EH)",
        'MA-15'  => "Morocco: Laâyoune-Boujdour-Sakia el Hamra",
        'MA-MMD' => "Morocco: Marrakech-Medina",
        'MA-MMN' => "Morocco: Marrakech-Menara",
        'MA-11'  => "Morocco: Marrakech-Tensift-Al Haouz",
        'MA-MEK' => "Morocco: Meknès",
        'MA-06'  => "Morocco: Meknès-Tafilalet",
        'MA-MOH' => "Morocco: Mohammadia",
        'MA-MOU' => "Morocco: Moulay Yacoub",
        'MA-MED' => "Morocco: Médiouna",
        'MA-NAD' => "Morocco: Nador",
        'MA-NOU' => "Morocco: Nouaceur",
        'MA-OUA' => "Morocco: Ouarzazate",
        'MA-OUD' => "Morocco: Oued ed Dahab (EH)",
        'MA-16'  => "Morocco: Oued ed Dahab-Lagouira",
        'MA-OUJ' => "Morocco: Oujda-Angad",
        'MA-RAB' => "Morocco: Rabat",
        'MA-07'  => "Morocco: Rabat-Salé-Zemmour-Zaer",
        'MA-SAF' => "Morocco: Safi",
        'MA-SAL' => "Morocco: Salé",
        'MA-SEF' => "Morocco: Sefrou",
        'MA-SET' => "Morocco: Settat",
        'MA-SYB' => "Morocco: Sidi Youssef Ben Ali",
        'MA-SIK' => "Morocco: Sidl Kacem",
        'MA-SKH' => "Morocco: Skhirate-Témara",
        'MA-13'  => "Morocco: Sous-Massa-Draa",
        'MA-12'  => "Morocco: Tadla-Azilal",
        'MA-TNT' => "Morocco: Tan-Tan",
        'MA-TNG' => "Morocco: Tanger-Assilah",
        'MA-01'  => "Morocco: Tanger-Tétouan",
        'MA-TAO' => "Morocco: Taounate",
        'MA-TAI' => "Morocco: Taourirt",
        'MA-TAR' => "Morocco: Taroudant",
        'MA-TAT' => "Morocco: Tata",
        'MA-TAZ' => "Morocco: Taza",
        'MA-03'  => "Morocco: Taza-Al Hoceima-Taounate",
        'MA-TIZ' => "Morocco: Tiznit",
        'MA-TET' => "Morocco: Tétouan",
        'MA-ZAG' => "Morocco: Zagora",

        '--NL'  => "", '-NL' => "Netherlands",
        'NL-DR' => "Netherlands: Drenthe",
        'NL-FL' => "Netherlands: Flevoland",
        'NL-FR' => "Netherlands: Friesland",
        'NL-GE' => "Netherlands: Gelderland",
        'NL-GR' => "Netherlands: Groningen",
        'NL-LI' => "Netherlands: Limburg",
        'NL-NB' => "Netherlands: Noord-Brabant",
        'NL-NH' => "Netherlands: Noord-Holland",
        'NL-OV' => "Netherlands: Overijssel",
        'NL-UT' => "Netherlands: Utrecht",
        'NL-ZE' => "Netherlands: Zeeland",
        'NL-ZH' => "Netherlands: Zuid-Holland",

        '--NG'  => "", '-NG' => "Nigeria",
        'NG-AB' => "Nigeria: Abia",
        'NG-FC' => "Nigeria: Abuja Capital Territory",
        'NG-AD' => "Nigeria: Adamawa",
        'NG-AK' => "Nigeria: Akwa Ibom",
        'NG-AN' => "Nigeria: Anambra",
        'NG-BA' => "Nigeria: Bauchi",
        'NG-BY' => "Nigeria: Bayelsa",
        'NG-BE' => "Nigeria: Benue",
        'NG-BO' => "Nigeria: Borno",
        'NG-CR' => "Nigeria: Cross River",
        'NG-DE' => "Nigeria: Delta",
        'NG-EB' => "Nigeria: Ebonyi",
        'NG-ED' => "Nigeria: Edo",
        'NG-EK' => "Nigeria: Ekiti",
        'NG-EN' => "Nigeria: Enugu",
        'NG-GO' => "Nigeria: Gombe",
        'NG-IM' => "Nigeria: Imo",
        'NG-JI' => "Nigeria: Jigawa",
        'NG-KD' => "Nigeria: Kaduna",
        'NG-KN' => "Nigeria: Kano",
        'NG-KT' => "Nigeria: Katsina",
        'NG-KE' => "Nigeria: Kebbi",
        'NG-KO' => "Nigeria: Kogi",
        'NG-KW' => "Nigeria: Kwara",
        'NG-LA' => "Nigeria: Lagos",
        'NG-NA' => "Nigeria: Nassarawa",
        'NG-NI' => "Nigeria: Niger, Níger",
        'NG-OG' => "Nigeria: Ogun",
        'NG-ON' => "Nigeria: Ondo",
        'NG-OS' => "Nigeria: Osun",
        'NG-OY' => "Nigeria: Oyo",
        'NG-PL' => "Nigeria: Plateau",
        'NG-RI' => "Nigeria: Rivers",
        'NG-SO' => "Nigeria: Sokoto",
        'NG-TA' => "Nigeria: Taraba",
        'NG-YO' => "Nigeria: Yobe",
        'NG-ZA' => "Nigeria: Zamfara",

        '--NO'  => "", '-NO' => "Norway",
        'NO-02' => "Norway: Akershus",
        'NO-09' => "Norway: Aust-Agder",
        'NO-06' => "Norway: Buskerud",
        'NO-20' => "Norway: Finnmark",
        'NO-04' => "Norway: Hedmark",
        'NO-12' => "Norway: Hordaland",
        'NO-22' => "Norway: Jan Mayen",
        'NO-15' => "Norway: Møre og Romsdal",
        'NO-17' => "Norway: Nord-Trøndelag",
        'NO-18' => "Norway: Nordland",
        'NO-05' => "Norway: Oppland",
        'NO-03' => "Norway: Oslo",
        'NO-11' => "Norway: Rogaland",
        'NO-14' => "Norway: Sogn og Fjordane",
        'NO-21' => "Norway: Svalbard",
        'NO-16' => "Norway: Sør-Trøndelag",
        'NO-08' => "Norway: Telemark",
        'NO-19' => "Norway: Troms",
        'NO-10' => "Norway: Vest-Agder",
        'NO-07' => "Norway: Vestfold",
        'NO-01' => "Norway: Østfold",

        '--PH'   => "", '-PH' => "Philippines",
        'PH-ABR' => "Philippines: Abra",
        'PH-AGN' => "Philippines: Agusan del Norte",
        'PH-AGS' => "Philippines: Agusan del Sur",
        'PH-AKL' => "Philippines: Aklan",
        'PH-ALB' => "Philippines: Albay",
        'PH-ANT' => "Philippines: Antique",
        'PH-APA' => "Philippines: Apayao",
        'PH-AUR' => "Philippines: Aurora",
        'PH-14'  => "Philippines: Autonomous Region in Muslim Mindanao (ARMM)",
        'PH-BAS' => "Philippines: Basilan",
        'PH-BTN' => "Philippines: Batanes",
        'PH-BTG' => "Philippines: Batangas",
        'PH-BAN' => "Philippines: Batasn",
        'PH-BEN' => "Philippines: Benguet",
        'PH-05'  => "Philippines: Bicol (Region V)",
        'PH-BIL' => "Philippines: Biliran",
        'PH-BOH' => "Philippines: Bohol",
        'PH-BUK' => "Philippines: Bukidnon",
        'PH-BUL' => "Philippines: Bulacan",
        'PH-40'  => "Philippines: CALABARZON (Region IV-A)",
        'PH-CAG' => "Philippines: Cagayan",
        'PH-02'  => "Philippines: Cagayan Valley (Region II)",
        'PH-CAN' => "Philippines: Camarines Norte",
        'PH-CAS' => "Philippines: Camarines Sur",
        'PH-CAM' => "Philippines: Camiguin",
        'PH-CAP' => "Philippines: Capiz",
        'PH-13'  => "Philippines: Caraga (Region XIII)",
        'PH-CAT' => "Philippines: Catanduanes",
        'PH-CAV' => "Philippines: Cavite",
        'PH-CEB' => "Philippines: Cebu",
        'PH-03'  => "Philippines: Central Luzon (Region III)",
        'PH-07'  => "Philippines: Central Visayas (Region VII)",
        'PH-COM' => "Philippines: Compostela Valley",
        'PH-15'  => "Philippines: Cordillera Administrative Region (CAR)",
        'PH-11'  => "Philippines: Davao (Region XI)",
        'PH-DAO' => "Philippines: Davao Oriental",
        'PH-DAV' => "Philippines: Davao del Norte",
        'PH-DAS' => "Philippines: Davao del Sur",
        'PH-DIN' => "Philippines: Dinagat Islands",
        'PH-EAS' => "Philippines: Eastern Samar",
        'PH-08'  => "Philippines: Eastern Visayas (Region VIII)",
        'PH-GUI' => "Philippines: Guimaras",
        'PH-IFU' => "Philippines: Ifugao",
        'PH-01'  => "Philippines: Ilocos (Region I)",
        'PH-ILN' => "Philippines: Ilocos Norte",
        'PH-ILS' => "Philippines: Ilocos Sur",
        'PH-ILI' => "Philippines: Iloilo",
        'PH-ISA' => "Philippines: Isabela",
        'PH-KAL' => "Philippines: Kalinga-Apayso",
        'PH-LUN' => "Philippines: La Union",
        'PH-LAG' => "Philippines: Laguna",
        'PH-LAN' => "Philippines: Lanao del Norte",
        'PH-LAS' => "Philippines: Lanao del Sur",
        'PH-LEY' => "Philippines: Leyte",
        'PH-41'  => "Philippines: MIMAROPA (Region IV-B)",
        'PH-MAG' => "Philippines: Maguindanao",
        'PH-MAD' => "Philippines: Marinduque",
        'PH-MAS' => "Philippines: Masbate",
        'PH-MDC' => "Philippines: Mindoro Occidental",
        'PH-MDR' => "Philippines: Mindoro Oriental",
        'PH-MSC' => "Philippines: Misamis Occidental",
        'PH-MSR' => "Philippines: Misamis Oriental",
        'PH-MOU' => "Philippines: Mountain Province",
        'PH-00'  => "Philippines: National Capital Region",
        'PH-NEC' => "Philippines: Negroe Occidental",
        'PH-NER' => "Philippines: Negros Oriental",
        'PH-NCO' => "Philippines: North Cotabato",
        'PH-10'  => "Philippines: Northern Mindanao (Region X)",
        'PH-NSA' => "Philippines: Northern Samar",
        'PH-NUE' => "Philippines: Nueva Ecija",
        'PH-NUV' => "Philippines: Nueva Vizcaya",
        'PH-PLW' => "Philippines: Palawan",
        'PH-PAM' => "Philippines: Pampanga",
        'PH-PAN' => "Philippines: Pangasinan",
        'PH-QUE' => "Philippines: Quezon",
        'PH-QUI' => "Philippines: Quirino",
        'PH-RIZ' => "Philippines: Rizal",
        'PH-ROM' => "Philippines: Romblon",
        'PH-SAR' => "Philippines: Sarangani",
        'PH-SIG' => "Philippines: Siquijor",
        'PH-12'  => "Philippines: Soccsksargen (Region XII)",
        'PH-SOR' => "Philippines: Sorsogon",
        'PH-SCO' => "Philippines: South Cotabato",
        'PH-SLE' => "Philippines: Southern Leyte",
        'PH-SUK' => "Philippines: Sultan Kudarat",
        'PH-SLU' => "Philippines: Sulu",
        'PH-SUN' => "Philippines: Surigao del Norte",
        'PH-SUR' => "Philippines: Surigao del Sur",
        'PH-TAR' => "Philippines: Tarlac",
        'PH-TAW' => "Philippines: Tawi-Tawi",
        'PH-WSA' => "Philippines: Western Samar",
        'PH-06'  => "Philippines: Western Visayas (Region VI)",
        'PH-ZMB' => "Philippines: Zambales",
        'PH-09'  => "Philippines: Zamboanga Peninsula (Region IX)",
        'PH-ZSI' => "Philippines: Zamboanga Sibugay",
        'PH-ZAN' => "Philippines: Zamboanga del Norte",
        'PH-ZAS' => "Philippines: Zamboanga del Sur",

        '--PL'  => "", '-PL' => "Poland",
        'PL-DS' => "Poland: Dolnośląskie",
        'PL-KP' => "Poland: Kujawsko-pomorskie",
        'PL-LU' => "Poland: Lubelskie",
        'PL-LB' => "Poland: Lubuskie",
        'PL-MZ' => "Poland: Mazowieckie",
        'PL-MA' => "Poland: Małopolskie",
        'PL-OP' => "Poland: Opolskie",
        'PL-PK' => "Poland: Podkarpackie",
        'PL-PD' => "Poland: Podlaskie",
        'PL-PM' => "Poland: Pomorskie",
        'PL-WN' => "Poland: Warmińsko-mazurskie",
        'PL-WP' => "Poland: Wielkopolskie",
        'PL-ZP' => "Poland: Zachodniopomorskie",
        'PL-LD' => "Poland: Łódzkie",
        'PL-SL' => "Poland: Śląskie",
        'PL-SK' => "Poland: Świętokrzyskie",

        '--PT'  => "", '-PT' => "Portugal",
        'PT-01' => "Portugal: Aveiro",
        'PT-02' => "Portugal: Beja",
        'PT-03' => "Portugal: Braga",
        'PT-04' => "Portugal: Bragança",
        'PT-05' => "Portugal: Castelo Branco",
        'PT-06' => "Portugal: Coimbra",
        'PT-08' => "Portugal: Faro",
        'PT-09' => "Portugal: Guarda",
        'PT-10' => "Portugal: Leiria",
        'PT-11' => "Portugal: Lisboa",
        'PT-12' => "Portugal: Portalegre",
        'PT-13' => "Portugal: Porto",
        'PT-30' => "Portugal: Região Autónoma da Madeira",
        'PT-20' => "Portugal: Região Autónoma dos Açores",
        'PT-14' => "Portugal: Santarém",
        'PT-15' => "Portugal: Setúbal",
        'PT-16' => "Portugal: Viana do Castelo",
        'PT-17' => "Portugal: Vila Real",
        'PT-18' => "Portugal: Viseu",
        'PT-07' => "Portugal: Évora",

        '--RO'  => "", '-RO' => "Romania",
        'RO-AB' => "Romania: Alba",
        'RO-AR' => "Romania: Arad",
        'RO-AG' => "Romania: Argeș",
        'RO-BC' => "Romania: Bacău",
        'RO-BH' => "Romania: Bihor",
        'RO-BN' => "Romania: Bistrița-Năsăud",
        'RO-BT' => "Romania: Botoșani",
        'RO-BV' => "Romania: Brașov",
        'RO-BR' => "Romania: Brăila",
        'RO-B'  => "Romania: București",
        'RO-BZ' => "Romania: Buzău",
        'RO-CS' => "Romania: Caraș-Severin",
        'RO-CJ' => "Romania: Cluj",
        'RO-CT' => "Romania: Constanța",
        'RO-CV' => "Romania: Covasna",
        'RO-CL' => "Romania: Călărași",
        'RO-DJ' => "Romania: Dolj",
        'RO-DB' => "Romania: Dâmbovița",
        'RO-GL' => "Romania: Galați",
        'RO-GR' => "Romania: Giurgiu",
        'RO-GJ' => "Romania: Gorj",
        'RO-HR' => "Romania: Harghita",
        'RO-HD' => "Romania: Hunedoara",
        'RO-IL' => "Romania: Ialomița",
        'RO-IS' => "Romania: Iași",
        'RO-IF' => "Romania: Ilfov",
        'RO-MM' => "Romania: Maramureș",
        'RO-MH' => "Romania: Mehedinți",
        'RO-MS' => "Romania: Mureș",
        'RO-NT' => "Romania: Neamț",
        'RO-OT' => "Romania: Olt",
        'RO-PH' => "Romania: Prahova",
        'RO-SM' => "Romania: Satu Mare",
        'RO-SB' => "Romania: Sibiu",
        'RO-SV' => "Romania: Suceava",
        'RO-SJ' => "Romania: Sălaj",
        'RO-TR' => "Romania: Teleorman",
        'RO-TM' => "Romania: Timiș",
        'RO-TL' => "Romania: Tulcea",
        'RO-VS' => "Romania: Vaslui",
        'RO-VN' => "Romania: Vrancea",
        'RO-VL' => "Romania: Vâlcea",

        '--RU'   => "", '-RU' => "Russian Federation",
        'RU-AD'  => "Russian Federation: Adygeya, Respublika",
        'RU-AL'  => "Russian Federation: Altay, Respublika",
        'RU-ALT' => "Russian Federation: Altayskiy kray",
        'RU-AMU' => "Russian Federation: Amurskaya oblast'",
        'RU-ARK' => "Russian Federation: Arkhangel'skaya oblast'",
        'RU-AST' => "Russian Federation: Astrakhanskaya oblast'",
        'RU-BA'  => "Russian Federation: Bashkortostan, Respublika",
        'RU-BEL' => "Russian Federation: Belgorodskaya oblast'",
        'RU-BRY' => "Russian Federation: Bryanskaya oblast'",
        'RU-BU'  => "Russian Federation: Buryatiya, Respublika",
        'RU-CE'  => "Russian Federation: Chechenskaya Respublika",
        'RU-CHE' => "Russian Federation: Chelyabinskaya oblast'",
        'RU-CHU' => "Russian Federation: Chukotskiy avtonomnyy okrug",
        'RU-CU'  => "Russian Federation: Chuvashskaya Respublika",
        'RU-DA'  => "Russian Federation: Dagestan, Respublika",
        'RU-IRK' => "Russian Federation: Irkutiskaya oblast'",
        'RU-IVA' => "Russian Federation: Ivanovskaya oblast'",
        'RU-KB'  => "Russian Federation: Kabardino-Balkarskaya Respublika",
        'RU-KGD' => "Russian Federation: Kaliningradskaya oblast'",
        'RU-KL'  => "Russian Federation: Kalmykiya, Respublika",
        'RU-KLU' => "Russian Federation: Kaluzhskaya oblast'",
        'RU-KAM' => "Russian Federation: Kamchatskiy kray",
        'RU-KC'  => "Russian Federation: Karachayevo-Cherkesskaya Respublika",
        'RU-KR'  => "Russian Federation: Kareliya, Respublika",
        'RU-KEM' => "Russian Federation: Kemerovskaya oblast'",
        'RU-KHA' => "Russian Federation: Khabarovskiy kray",
        'RU-KK'  => "Russian Federation: Khakasiya, Respublika",
        'RU-KHM' => "Russian Federation: Khanty-Mansiysky avtonomnyy okrug-Yugra",
        'RU-KIR' => "Russian Federation: Kirovskaya oblast'",
        'RU-KO'  => "Russian Federation: Komi, Respublika",
        'RU-KOS' => "Russian Federation: Kostromskaya oblast'",
        'RU-KDA' => "Russian Federation: Krasnodarskiy kray",
        'RU-KYA' => "Russian Federation: Krasnoyarskiy kray",
        'RU-KGN' => "Russian Federation: Kurganskaya oblast'",
        'RU-KRS' => "Russian Federation: Kurskaya oblast'",
        'RU-LEN' => "Russian Federation: Leningradskaya oblast'",
        'RU-LIP' => "Russian Federation: Lipetskaya oblast'",
        'RU-MAG' => "Russian Federation: Magadanskaya oblast'",
        'RU-ME'  => "Russian Federation: Mariy El, Respublika",
        'RU-MO'  => "Russian Federation: Mordoviya, Respublika",
        'RU-MOS' => "Russian Federation: Moskovskaya oblast'",
        'RU-MOW' => "Russian Federation: Moskva",
        'RU-MUR' => "Russian Federation: Murmanskaya oblast'",
        'RU-NEN' => "Russian Federation: Nenetskiy avtonomnyy okrug",
        'RU-NIZ' => "Russian Federation: Nizhegorodskaya oblast'",
        'RU-NGR' => "Russian Federation: Novgorodskaya oblast'",
        'RU-NVS' => "Russian Federation: Novosibirskaya oblast'",
        'RU-OMS' => "Russian Federation: Omskaya oblast'",
        'RU-ORE' => "Russian Federation: Orenburgskaya oblast'",
        'RU-ORL' => "Russian Federation: Orlovskaya oblast'",
        'RU-PNZ' => "Russian Federation: Penzenskaya oblast'",
        'RU-PER' => "Russian Federation: Permskiy kray",
        'RU-PRI' => "Russian Federation: Primorskiy kray",
        'RU-PSK' => "Russian Federation: Pskovskaya oblast'",
        'RU-IN'  => "Russian Federation: Respublika Ingushetiya",
        'RU-ROS' => "Russian Federation: Rostovskaya oblast'",
        'RU-RYA' => "Russian Federation: Ryazanskaya oblast'",
        'RU-SA'  => "Russian Federation: Sakha, Respublika [Yakutiya]",
        'RU-SAK' => "Russian Federation: Sakhalinskaya oblast'",
        'RU-SAM' => "Russian Federation: Samaraskaya oblast'",
        'RU-SPE' => "Russian Federation: Sankt-Peterburg",
        'RU-SAR' => "Russian Federation: Saratovskaya oblast'",
        'RU-SE'  => "Russian Federation: Severnaya Osetiya-Alaniya, Respublika",
        'RU-SMO' => "Russian Federation: Smolenskaya oblast'",
        'RU-STA' => "Russian Federation: Stavropol'skiy kray",
        'RU-SVE' => "Russian Federation: Sverdlovskaya oblast'",
        'RU-TAM' => "Russian Federation: Tambovskaya oblast'",
        'RU-TA'  => "Russian Federation: Tatarstan, Respublika",
        'RU-TOM' => "Russian Federation: Tomskaya oblast'",
        'RU-TUL' => "Russian Federation: Tul'skaya oblast'",
        'RU-TVE' => "Russian Federation: Tverskaya oblast'",
        'RU-TYU' => "Russian Federation: Tyumenskaya oblast'",
        'RU-TY'  => "Russian Federation: Tyva, Respublika [Tuva]",
        'RU-UD'  => "Russian Federation: Udmurtskaya Respublika",
        'RU-ULY' => "Russian Federation: Ul'yanovskaya oblast'",
        'RU-VLA' => "Russian Federation: Vladimirskaya oblast'",
        'RU-VGG' => "Russian Federation: Volgogradskaya oblast'",
        'RU-VLG' => "Russian Federation: Vologodskaya oblast'",
        'RU-VOR' => "Russian Federation: Voronezhskaya oblast'",
        'RU-YAN' => "Russian Federation: Yamalo-Nenetskiy avtonomnyy okrug",
        'RU-YAR' => "Russian Federation: Yaroslavskaya oblast'",
        'RU-YEV' => "Russian Federation: Yevreyskaya avtonomnaya oblast'",
        'RU-ZAB' => "Russian Federation: Zabajkal'skij kraj",

        '--SK'  => "", '-SK' => "Slovakia",
        'SK-BC' => "Slovakia: Banskobystrický kraj",
        'SK-BL' => "Slovakia: Bratislavský kraj",
        'SK-KI' => "Slovakia: Košický kraj",
        'SK-NI' => "Slovakia: Nitriansky kraj",
        'SK-PV' => "Slovakia: Prešovský kraj",
        'SK-TC' => "Slovakia: Trenčiansky kraj",
        'SK-TA' => "Slovakia: Trnavský kraj",
        'SK-ZI' => "Slovakia: Žilinský kraj",

        '--SI'   => "", '-SI' => "Slovenia",
        'SI-001' => "Slovenia: Ajdovščina",
        'SI-195' => "Slovenia: Apače",
        'SI-002' => "Slovenia: Beltinci",
        'SI-148' => "Slovenia: Benedikt",
        'SI-149' => "Slovenia: Bistrica ob Sotli",
        'SI-003' => "Slovenia: Bled",
        'SI-150' => "Slovenia: Bloke",
        'SI-004' => "Slovenia: Bohinj",
        'SI-005' => "Slovenia: Borovnica",
        'SI-006' => "Slovenia: Bovec",
        'SI-151' => "Slovenia: Braslovče",
        'SI-007' => "Slovenia: Brda",
        'SI-008' => "Slovenia: Brezovica",
        'SI-009' => "Slovenia: Brežice",
        'SI-152' => "Slovenia: Cankova",
        'SI-011' => "Slovenia: Celje",
        'SI-012' => "Slovenia: Cerklje na Gorenjskem",
        'SI-013' => "Slovenia: Cerknica",
        'SI-014' => "Slovenia: Cerkno",
        'SI-153' => "Slovenia: Cerkvenjak",
        'SI-196' => "Slovenia: Cirkulane",
        'SI-018' => "Slovenia: Destrnik",
        'SI-019' => "Slovenia: Divača",
        'SI-154' => "Slovenia: Dobje",
        'SI-020' => "Slovenia: Dobrepolje",
        'SI-155' => "Slovenia: Dobrna",
        'SI-021' => "Slovenia: Dobrova-Polhov Gradec",
        'SI-156' => "Slovenia: Dobrovnik/Dobronak",
        'SI-022' => "Slovenia: Dol pri Ljubljani",
        'SI-157' => "Slovenia: Dolenjske Toplice",
        'SI-023' => "Slovenia: Domžale",
        'SI-024' => "Slovenia: Dornava",
        'SI-025' => "Slovenia: Dravograd",
        'SI-026' => "Slovenia: Duplek",
        'SI-027' => "Slovenia: Gorenja vas-Poljane",
        'SI-028' => "Slovenia: Gorišnica",
        'SI-207' => "Slovenia: Gorje",
        'SI-029' => "Slovenia: Gornja Radgona",
        'SI-030' => "Slovenia: Gornji Grad",
        'SI-031' => "Slovenia: Gornji Petrovci",
        'SI-158' => "Slovenia: Grad",
        'SI-032' => "Slovenia: Grosuplje",
        'SI-159' => "Slovenia: Hajdina",
        'SI-161' => "Slovenia: Hodoš/Hodos",
        'SI-162' => "Slovenia: Horjul",
        'SI-160' => "Slovenia: Hoče-Slivnica",
        'SI-034' => "Slovenia: Hrastnik",
        'SI-035' => "Slovenia: Hrpelje-Kozina",
        'SI-036' => "Slovenia: Idrija",
        'SI-037' => "Slovenia: Ig",
        'SI-038' => "Slovenia: Ilirska Bistrica",
        'SI-039' => "Slovenia: Ivančna Gorica",
        'SI-040' => "Slovenia: Izola/Isola",
        'SI-041' => "Slovenia: Jesenice",
        'SI-163' => "Slovenia: Jezersko",
        'SI-042' => "Slovenia: Juršinci",
        'SI-043' => "Slovenia: Kamnik",
        'SI-044' => "Slovenia: Kanal",
        'SI-045' => "Slovenia: Kidričevo",
        'SI-046' => "Slovenia: Kobarid",
        'SI-047' => "Slovenia: Kobilje",
        'SI-049' => "Slovenia: Komen",
        'SI-164' => "Slovenia: Komenda",
        'SI-050' => "Slovenia: Koper/Capodistria",
        'SI-197' => "Slovenia: Kosanjevica na Krki",
        'SI-165' => "Slovenia: Kostel",
        'SI-051' => "Slovenia: Kozje",
        'SI-048' => "Slovenia: Kočevje",
        'SI-052' => "Slovenia: Kranj",
        'SI-053' => "Slovenia: Kranjska Gora",
        'SI-166' => "Slovenia: Križevci",
        'SI-054' => "Slovenia: Krško",
        'SI-055' => "Slovenia: Kungota",
        'SI-056' => "Slovenia: Kuzma",
        'SI-057' => "Slovenia: Laško",
        'SI-058' => "Slovenia: Lenart",
        'SI-059' => "Slovenia: Lendava/Lendva",
        'SI-060' => "Slovenia: Litija",
        'SI-061' => "Slovenia: Ljubljana",
        'SI-062' => "Slovenia: Ljubno",
        'SI-063' => "Slovenia: Ljutomer",
        'SI-208' => "Slovenia: Log-Dragomer",
        'SI-064' => "Slovenia: Logatec",
        'SI-167' => "Slovenia: Lovrenc na Pohorju",
        'SI-065' => "Slovenia: Loška dolina",
        'SI-066' => "Slovenia: Loški Potok",
        'SI-068' => "Slovenia: Lukovica",
        'SI-067' => "Slovenia: Luče",
        'SI-069' => "Slovenia: Majšperk",
        'SI-198' => "Slovenia: Makole",
        'SI-070' => "Slovenia: Maribor",
        'SI-168' => "Slovenia: Markovci",
        'SI-071' => "Slovenia: Medvode",
        'SI-072' => "Slovenia: Mengeš",
        'SI-073' => "Slovenia: Metlika",
        'SI-074' => "Slovenia: Mežica",
        'SI-169' => "Slovenia: Miklavž na Dravskem polju",
        'SI-075' => "Slovenia: Miren-Kostanjevica",
        'SI-170' => "Slovenia: Mirna Peč",
        'SI-076' => "Slovenia: Mislinja",
        'SI-199' => "Slovenia: Mokronog-Trebelno",
        'SI-078' => "Slovenia: Moravske Toplice",
        'SI-077' => "Slovenia: Moravče",
        'SI-079' => "Slovenia: Mozirje",
        'SI-080' => "Slovenia: Murska Sobota",
        'SI-081' => "Slovenia: Muta",
        'SI-082' => "Slovenia: Naklo",
        'SI-083' => "Slovenia: Nazarje",
        'SI-084' => "Slovenia: Nova Gorica",
        'SI-085' => "Slovenia: Novo mesto",
        'SI-086' => "Slovenia: Odranci",
        'SI-171' => "Slovenia: Oplotnica",
        'SI-087' => "Slovenia: Ormož",
        'SI-088' => "Slovenia: Osilnica",
        'SI-089' => "Slovenia: Pesnica",
        'SI-090' => "Slovenia: Piran/Pirano",
        'SI-091' => "Slovenia: Pivka",
        'SI-172' => "Slovenia: Podlehnik",
        'SI-093' => "Slovenia: Podvelka",
        'SI-092' => "Slovenia: Podčetrtek",
        'SI-200' => "Slovenia: Poljčane",
        'SI-173' => "Slovenia: Polzela",
        'SI-094' => "Slovenia: Postojna",
        'SI-174' => "Slovenia: Prebold",
        'SI-095' => "Slovenia: Preddvor",
        'SI-175' => "Slovenia: Prevalje",
        'SI-096' => "Slovenia: Ptuj",
        'SI-097' => "Slovenia: Puconci",
        'SI-100' => "Slovenia: Radenci",
        'SI-099' => "Slovenia: Radeče",
        'SI-101' => "Slovenia: Radlje ob Dravi",
        'SI-102' => "Slovenia: Radovljica",
        'SI-103' => "Slovenia: Ravne na Koroškem",
        'SI-176' => "Slovenia: Razkrižje",
        'SI-098' => "Slovenia: Rače-Fram",
        'SI-201' => "Slovenia: Renče-Vogrsko",
        'SI-209' => "Slovenia: Rečica ob Savinji",
        'SI-104' => "Slovenia: Ribnica",
        'SI-177' => "Slovenia: Ribnica na Pohorju",
        'SI-107' => "Slovenia: Rogatec",
        'SI-106' => "Slovenia: Rogaška Slatina",
        'SI-105' => "Slovenia: Rogašovci",
        'SI-108' => "Slovenia: Ruše",
        'SI-178' => "Slovenia: Selnica ob Dravi",
        'SI-109' => "Slovenia: Semič",
        'SI-110' => "Slovenia: Sevnica",
        'SI-111' => "Slovenia: Sežana",
        'SI-112' => "Slovenia: Slovenj Gradec",
        'SI-113' => "Slovenia: Slovenska Bistrica",
        'SI-114' => "Slovenia: Slovenske Konjice",
        'SI-179' => "Slovenia: Sodražica",
        'SI-180' => "Slovenia: Solčava",
        'SI-202' => "Slovenia: Središče ob Dravi",
        'SI-115' => "Slovenia: Starče",
        'SI-203' => "Slovenia: Straža",
        'SI-181' => "Slovenia: Sveta Ana",
        'SI-182' => "Slovenia: Sveta Andraž v Slovenskih Goricah",
        'SI-204' => "Slovenia: Sveta Trojica v Slovenskih Goricah",
        'SI-116' => "Slovenia: Sveti Jurij",
        'SI-210' => "Slovenia: Sveti Jurij v Slovenskih Goricah",
        'SI-205' => "Slovenia: Sveti Tomaž",
        'SI-184' => "Slovenia: Tabor",
        'SI-010' => "Slovenia: Tišina",
        'SI-128' => "Slovenia: Tolmin",
        'SI-129' => "Slovenia: Trbovlje",
        'SI-130' => "Slovenia: Trebnje",
        'SI-185' => "Slovenia: Trnovska vas",
        'SI-186' => "Slovenia: Trzin",
        'SI-131' => "Slovenia: Tržič",
        'SI-132' => "Slovenia: Turnišče",
        'SI-133' => "Slovenia: Velenje",
        'SI-187' => "Slovenia: Velika Polana",
        'SI-134' => "Slovenia: Velike Lašče",
        'SI-188' => "Slovenia: Veržej",
        'SI-135' => "Slovenia: Videm",
        'SI-136' => "Slovenia: Vipava",
        'SI-137' => "Slovenia: Vitanje",
        'SI-138' => "Slovenia: Vodice",
        'SI-139' => "Slovenia: Vojnik",
        'SI-189' => "Slovenia: Vransko",
        'SI-140' => "Slovenia: Vrhnika",
        'SI-141' => "Slovenia: Vuzenica",
        'SI-142' => "Slovenia: Zagorje ob Savi",
        'SI-143' => "Slovenia: Zavrč",
        'SI-144' => "Slovenia: Zreče",
        'SI-015' => "Slovenia: Črenšovci",
        'SI-016' => "Slovenia: Črna na Koroškem",
        'SI-017' => "Slovenia: Črnomelj",
        'SI-033' => "Slovenia: Šalovci",
        'SI-183' => "Slovenia: Šempeter-Vrtojba",
        'SI-118' => "Slovenia: Šentilj",
        'SI-119' => "Slovenia: Šentjernej",
        'SI-120' => "Slovenia: Šentjur",
        'SI-211' => "Slovenia: Šentrupert",
        'SI-117' => "Slovenia: Šenčur",
        'SI-121' => "Slovenia: Škocjan",
        'SI-122' => "Slovenia: Škofja Loka",
        'SI-123' => "Slovenia: Škofljica",
        'SI-124' => "Slovenia: Šmarje pri Jelšah",
        'SI-206' => "Slovenia: Šmarjeske Topliče",
        'SI-125' => "Slovenia: Šmartno ob Paki",
        'SI-194' => "Slovenia: Šmartno pri Litiji",
        'SI-126' => "Slovenia: Šoštanj",
        'SI-127' => "Slovenia: Štore",
        'SI-190' => "Slovenia: Žalec",
        'SI-146' => "Slovenia: Železniki",
        'SI-191' => "Slovenia: Žetale",
        'SI-147' => "Slovenia: Žiri",
        'SI-192' => "Slovenia: Žirovnica",
        'SI-193' => "Slovenia: Žužemberk",

        '--ZA'  => "", '-ZA' => "South Africa",
        'ZA-EC' => "South Africa: Eastern Cape",
        'ZA-FS' => "South Africa: Free State",
        'ZA-GT' => "South Africa: Gauteng",
        'ZA-NL' => "South Africa: Kwazulu-Natal",
        'ZA-LP' => "South Africa: Limpopo",
        'ZA-MP' => "South Africa: Mpumalanga",
        'ZA-NW' => "South Africa: North-West (South Africa)",
        'ZA-NC' => "South Africa: Northern Cape",
        'ZA-WC' => "South Africa: Western Cape",

        '--ES'  => "", '-ES' => "Spain",
        'ES-C'  => "Spain: A Coruña",
        'ES-AB' => "Spain: Albacete",
        'ES-A'  => "Spain: Alicante",
        'ES-AL' => "Spain: Almería",
        'ES-AN' => "Spain: Andalucía",
        'ES-AR' => "Spain: Aragón",
        'ES-O'  => "Spain: Asturias",
        'ES-AS' => "Spain: Asturias, Principado de",
        'ES-BA' => "Spain: Badajoz",
        'ES-PM' => "Spain: Balears",
        'ES-B'  => "Spain: Barcelona",
        'ES-BU' => "Spain: Burgos",
        'ES-CN' => "Spain: Canarias",
        'ES-S'  => "Spain: Cantabria",
        'ES-CS' => "Spain: Castellón",
        'ES-CL' => "Spain: Castilla y León",
        'ES-CM' => "Spain: Castilla-La Mancha",
        'ES-CT' => "Spain: Catalunya",
        'ES-CE' => "Spain: Ceuta",
        'ES-CR' => "Spain: Ciudad Real",
        'ES-CU' => "Spain: Cuenca",
        'ES-CC' => "Spain: Cáceres",
        'ES-CA' => "Spain: Cádiz",
        'ES-CO' => "Spain: Córdoba",
        'ES-EX' => "Spain: Extremadura",
        'ES-GA' => "Spain: Galicia",
        'ES-GI' => "Spain: Girona",
        'ES-GR' => "Spain: Granada",
        'ES-GU' => "Spain: Guadalajara",
        'ES-SS' => "Spain: Guipúzcoa / Gipuzkoa",
        'ES-H'  => "Spain: Huelva",
        'ES-HU' => "Spain: Huesca",
        'ES-IB' => "Spain: Illes Balears",
        'ES-J'  => "Spain: Jaén",
        'ES-LO' => "Spain: La Rioja",
        'ES-GC' => "Spain: Las Palmas",
        'ES-LE' => "Spain: León",
        'ES-L'  => "Spain: Lleida",
        'ES-LU' => "Spain: Lugo",
        'ES-M'  => "Spain: Madrid",
        'ES-MD' => "Spain: Madrid, Comunidad de",
        'ES-ML' => "Spain: Melilla",
        'ES-MU' => "Spain: Murcia",
        'ES-MC' => "Spain: Murcia, Región de",
        'ES-MA' => "Spain: Málaga",
        'ES-NA' => "Spain: Navarra / Nafarroa",
        'ES-NC' => "Spain: Navarra, Comunidad Foral de / Nafarroako Foru Komunitatea",
        'ES-OR' => "Spain: Ourense",
        'ES-P'  => "Spain: Palencia",
        'ES-PV' => "Spain: País Vasco / Euskal Herria",
        'ES-PO' => "Spain: Pontevedra",
        'ES-SA' => "Spain: Salamanca",
        'ES-TF' => "Spain: Santa Cruz de Tenerife",
        'ES-SG' => "Spain: Segovia",
        'ES-SE' => "Spain: Sevilla",
        'ES-SO' => "Spain: Soria",
        'ES-T'  => "Spain: Tarragona",
        'ES-TE' => "Spain: Teruel",
        'ES-TO' => "Spain: Toledo",
        'ES-V'  => "Spain: Valencia / València",
        'ES-VC' => "Spain: Valenciana, Comunidad / Valenciana, Comunitat",
        'ES-VA' => "Spain: Valladolid",
        'ES-BI' => "Spain: Vizcayaa / Bizkaia",
        'ES-ZA' => "Spain: Zamora",
        'ES-Z'  => "Spain: Zaragoza",
        'ES-VI' => "Spain: Álava",
        'ES-AV' => "Spain: Ávila",

        '--SE'  => "", '-SE' => "Sweden",
        'SE-K'  => "Sweden: Blekinge län",
        'SE-W'  => "Sweden: Dalarnas län",
        'SE-I'  => "Sweden: Gotlands län",
        'SE-X'  => "Sweden: Gävleborgs län",
        'SE-N'  => "Sweden: Hallands län",
        'SE-Z'  => "Sweden: Jämtlande län",
        'SE-F'  => "Sweden: Jönköpings län",
        'SE-H'  => "Sweden: Kalmar län",
        'SE-G'  => "Sweden: Kronobergs län",
        'SE-BD' => "Sweden: Norrbottens län",
        'SE-M'  => "Sweden: Skåne län",
        'SE-AB' => "Sweden: Stockholms län",
        'SE-D'  => "Sweden: Södermanlands län",
        'SE-C'  => "Sweden: Uppsala län",
        'SE-S'  => "Sweden: Värmlands län",
        'SE-AC' => "Sweden: Västerbottens län",
        'SE-Y'  => "Sweden: Västernorrlands län",
        'SE-U'  => "Sweden: Västmanlands län",
        'SE-O'  => "Sweden: Västra Götalands län",
        'SE-T'  => "Sweden: Örebro län",
        'SE-E'  => "Sweden: Östergötlands län",

        '--CH'  => "", '-CH' => "Switzerland",
        'CH-AG' => "Switzerland: Aargau",
        'CH-AR' => "Switzerland: Appenzell Ausserrhoden",
        'CH-AI' => "Switzerland: Appenzell Innerrhoden",
        'CH-BL' => "Switzerland: Basel-Landschaft",
        'CH-BS' => "Switzerland: Basel-Stadt",
        'CH-BE' => "Switzerland: Bern",
        'CH-FR' => "Switzerland: Fribourg",
        'CH-GE' => "Switzerland: Genève",
        'CH-GL' => "Switzerland: Glarus",
        'CH-GR' => "Switzerland: Graubünden",
        'CH-JU' => "Switzerland: Jura",
        'CH-LU' => "Switzerland: Luzern",
        'CH-NE' => "Switzerland: Neuchâtel",
        'CH-NW' => "Switzerland: Nidwalden",
        'CH-OW' => "Switzerland: Obwalden",
        'CH-SG' => "Switzerland: Sankt Gallen",
        'CH-SH' => "Switzerland: Schaffhausen",
        'CH-SZ' => "Switzerland: Schwyz",
        'CH-SO' => "Switzerland: Solothurn",
        'CH-TG' => "Switzerland: Thurgau",
        'CH-TI' => "Switzerland: Ticino",
        'CH-UR' => "Switzerland: Uri",
        'CH-VS' => "Switzerland: Valais",
        'CH-VD' => "Switzerland: Vaud",
        'CH-ZG' => "Switzerland: Zug",
        'CH-ZH' => "Switzerland: Zürich",

        '--TW'   => "", '-TW' => "Taiwan",
        'TW-CHA' => "Taiwan: Changhua",
        'TW-CYI' => "Taiwan: Chiay City",
        'TW-CYQ' => "Taiwan: Chiayi",
        'TW-HSQ' => "Taiwan: Hsinchu",
        'TW-HSZ' => "Taiwan: Hsinchui City",
        'TW-HUA' => "Taiwan: Hualien",
        'TW-ILA' => "Taiwan: Ilan",
        'TW-KHQ' => "Taiwan: Kaohsiung",
        'TW-KHH' => "Taiwan: Kaohsiung City",
        'TW-KEE' => "Taiwan: Keelung City",
        'TW-MIA' => "Taiwan: Miaoli",
        'TW-NAN' => "Taiwan: Nantou",
        'TW-PEN' => "Taiwan: Penghu",
        'TW-PIF' => "Taiwan: Pingtung",
        'TW-TXQ' => "Taiwan: Taichung",
        'TW-TXG' => "Taiwan: Taichung City",
        'TW-TNQ' => "Taiwan: Tainan",
        'TW-TNN' => "Taiwan: Tainan City",
        'TW-TPQ' => "Taiwan: Taipei",
        'TW-TPE' => "Taiwan: Taipei City",
        'TW-TTT' => "Taiwan: Taitung",
        'TW-TAO' => "Taiwan: Taoyuan",
        'TW-YUN' => "Taiwan: Yunlin",

        '--TH'  => "", '-TH' => "Thailand",
        'TH-37' => "Thailand: Amnat Charoen",
        'TH-15' => "Thailand: Ang Thong",
        'TH-31' => "Thailand: Buri Ram",
        'TH-24' => "Thailand: Chachoengsao",
        'TH-18' => "Thailand: Chai Nat",
        'TH-36' => "Thailand: Chaiyaphum",
        'TH-22' => "Thailand: Chanthaburi",
        'TH-50' => "Thailand: Chiang Mai",
        'TH-57' => "Thailand: Chiang Rai",
        'TH-20' => "Thailand: Chon Buri",
        'TH-86' => "Thailand: Chumphon",
        'TH-46' => "Thailand: Kalasin",
        'TH-62' => "Thailand: Kamphaeng Phet",
        'TH-71' => "Thailand: Kanchanaburi",
        'TH-40' => "Thailand: Khon Kaen",
        'TH-81' => "Thailand: Krabi",
        'TH-10' => "Thailand: Krung Thep Maha Nakhon Bangkok",
        'TH-52' => "Thailand: Lampang",
        'TH-51' => "Thailand: Lamphun",
        'TH-42' => "Thailand: Loei",
        'TH-16' => "Thailand: Lop Buri",
        'TH-58' => "Thailand: Mae Hong Son",
        'TH-44' => "Thailand: Maha Sarakham",
        'TH-49' => "Thailand: Mukdahan",
        'TH-26' => "Thailand: Nakhon Nayok",
        'TH-73' => "Thailand: Nakhon Pathom",
        'TH-48' => "Thailand: Nakhon Phanom",
        'TH-30' => "Thailand: Nakhon Ratchasima",
        'TH-60' => "Thailand: Nakhon Sawan",
        'TH-80' => "Thailand: Nakhon Si Thammarat",
        'TH-55' => "Thailand: Nan",
        'TH-96' => "Thailand: Narathiwat",
        'TH-39' => "Thailand: Nong Bua Lam Phu",
        'TH-43' => "Thailand: Nong Khai",
        'TH-12' => "Thailand: Nonthaburi",
        'TH-13' => "Thailand: Pathum Thani",
        'TH-94' => "Thailand: Pattani",
        'TH-82' => "Thailand: Phangnga",
        'TH-93' => "Thailand: Phatthalung",
        'TH-S'  => "Thailand: Phatthaya",
        'TH-56' => "Thailand: Phayao",
        'TH-67' => "Thailand: Phetchabun",
        'TH-76' => "Thailand: Phetchaburi",
        'TH-66' => "Thailand: Phichit",
        'TH-65' => "Thailand: Phitsanulok",
        'TH-14' => "Thailand: Phra Nakhon Si Ayutthaya",
        'TH-54' => "Thailand: Phrae",
        'TH-83' => "Thailand: Phuket",
        'TH-25' => "Thailand: Prachin Buri",
        'TH-77' => "Thailand: Prachuap Khiri Khan",
        'TH-85' => "Thailand: Ranong",
        'TH-70' => "Thailand: Ratchaburi",
        'TH-21' => "Thailand: Rayong",
        'TH-45' => "Thailand: Roi Et",
        'TH-27' => "Thailand: Sa Kaeo",
        'TH-47' => "Thailand: Sakon Nakhon",
        'TH-11' => "Thailand: Samut Prakan",
        'TH-74' => "Thailand: Samut Sakhon",
        'TH-75' => "Thailand: Samut Songkhram",
        'TH-19' => "Thailand: Saraburi",
        'TH-91' => "Thailand: Satun",
        'TH-33' => "Thailand: Si Sa Ket",
        'TH-17' => "Thailand: Sing Buri",
        'TH-90' => "Thailand: Songkhla",
        'TH-64' => "Thailand: Sukhothai",
        'TH-72' => "Thailand: Suphan Buri",
        'TH-84' => "Thailand: Surat Thani",
        'TH-32' => "Thailand: Surin",
        'TH-63' => "Thailand: Tak",
        'TH-92' => "Thailand: Trang",
        'TH-23' => "Thailand: Trat",
        'TH-34' => "Thailand: Ubon Ratchathani",
        'TH-41' => "Thailand: Udon Thani",
        'TH-61' => "Thailand: Uthai Thani",
        'TH-53' => "Thailand: Uttaradit",
        'TH-95' => "Thailand: Yala",
        'TH-35' => "Thailand: Yasothon",

        '--TR'  => "", '-TR' => "Turkey",
        'TR-01' => "Turkey: Adana",
        'TR-02' => "Turkey: Adıyaman",
        'TR-03' => "Turkey: Afyon",
        'TR-68' => "Turkey: Aksaray",
        'TR-05' => "Turkey: Amasya",
        'TR-06' => "Turkey: Ankara",
        'TR-07' => "Turkey: Antalya",
        'TR-75' => "Turkey: Ardahan",
        'TR-08' => "Turkey: Artvin",
        'TR-09' => "Turkey: Aydın",
        'TR-04' => "Turkey: Ağrı",
        'TR-10' => "Turkey: Balıkesir",
        'TR-74' => "Turkey: Bartın",
        'TR-72' => "Turkey: Batman",
        'TR-69' => "Turkey: Bayburt",
        'TR-11' => "Turkey: Bilecik",
        'TR-12' => "Turkey: Bingöl",
        'TR-13' => "Turkey: Bitlis",
        'TR-14' => "Turkey: Bolu",
        'TR-15' => "Turkey: Burdur",
        'TR-16' => "Turkey: Bursa",
        'TR-20' => "Turkey: Denizli",
        'TR-21' => "Turkey: Diyarbakır",
        'TR-81' => "Turkey: Düzce",
        'TR-22' => "Turkey: Edirne",
        'TR-23' => "Turkey: Elazığ",
        'TR-24' => "Turkey: Erzincan",
        'TR-25' => "Turkey: Erzurum",
        'TR-26' => "Turkey: Eskişehir",
        'TR-27' => "Turkey: Gaziantep",
        'TR-28' => "Turkey: Giresun",
        'TR-29' => "Turkey: Gümüşhane",
        'TR-30' => "Turkey: Hakkâri",
        'TR-31' => "Turkey: Hatay",
        'TR-32' => "Turkey: Isparta",
        'TR-76' => "Turkey: Iğdır",
        'TR-46' => "Turkey: Kahramanmaraş",
        'TR-78' => "Turkey: Karabük",
        'TR-70' => "Turkey: Karaman",
        'TR-36' => "Turkey: Kars",
        'TR-37' => "Turkey: Kastamonu",
        'TR-38' => "Turkey: Kayseri",
        'TR-79' => "Turkey: Kilis",
        'TR-41' => "Turkey: Kocaeli",
        'TR-42' => "Turkey: Konya",
        'TR-43' => "Turkey: Kütahya",
        'TR-39' => "Turkey: Kırklareli",
        'TR-71' => "Turkey: Kırıkkale",
        'TR-40' => "Turkey: Kırşehir",
        'TR-44' => "Turkey: Malatya",
        'TR-45' => "Turkey: Manisa",
        'TR-47' => "Turkey: Mardin",
        'TR-48' => "Turkey: Muğla",
        'TR-49' => "Turkey: Muş",
        'TR-50' => "Turkey: Nevşehir",
        'TR-51' => "Turkey: Niğde",
        'TR-52' => "Turkey: Ordu",
        'TR-80' => "Turkey: Osmaniye",
        'TR-53' => "Turkey: Rize",
        'TR-54' => "Turkey: Sakarya",
        'TR-55' => "Turkey: Samsun",
        'TR-56' => "Turkey: Siirt",
        'TR-57' => "Turkey: Sinop",
        'TR-58' => "Turkey: Sivas",
        'TR-59' => "Turkey: Tekirdağ",
        'TR-60' => "Turkey: Tokat",
        'TR-61' => "Turkey: Trabzon",
        'TR-62' => "Turkey: Tunceli",
        'TR-64' => "Turkey: Uşak",
        'TR-65' => "Turkey: Van",
        'TR-77' => "Turkey: Yalova",
        'TR-66' => "Turkey: Yozgat",
        'TR-67' => "Turkey: Zonguldak",
        'TR-17' => "Turkey: Çanakkale",
        'TR-18' => "Turkey: Çankırı",
        'TR-19' => "Turkey: Çorum",
        'TR-34' => "Turkey: İstanbul",
        'TR-35' => "Turkey: İzmir",
        'TR-33' => "Turkey: İçel",
        'TR-63' => "Turkey: Şanlıurfa",
        'TR-73' => "Turkey: Şırnak",

        '--UA'  => "", '-UA' => "Ukraine",
        'UA-71' => "Ukraine: Cherkas'ka Oblast'",
        'UA-74' => "Ukraine: Chernihivs'ka Oblast'",
        'UA-77' => "Ukraine: Chernivets'ka Oblast'",
        'UA-12' => "Ukraine: Dnipropetrovs'ka Oblast'",
        'UA-14' => "Ukraine: Donets'ka Oblast'",
        'UA-26' => "Ukraine: Ivano-Frankivs'ka Oblast'",
        'UA-63' => "Ukraine: Kharkivs'ka Oblast'",
        'UA-65' => "Ukraine: Khersons'ka Oblast'",
        'UA-68' => "Ukraine: Khmel'nyts'ka Oblast'",
        'UA-35' => "Ukraine: Kirovohrads'ka Oblast'",
        'UA-32' => "Ukraine: Kyïvs'ka Oblast'",
        'UA-30' => "Ukraine: Kyïvs'ka mis'ka rada",
        'UA-46' => "Ukraine: L'vivs'ka Oblast'",
        'UA-09' => "Ukraine: Luhans'ka Oblast'",
        'UA-48' => "Ukraine: Mykolaïvs'ka Oblast'",
        'UA-51' => "Ukraine: Odes'ka Oblast'",
        'UA-53' => "Ukraine: Poltavs'ka Oblast'",
        'UA-43' => "Ukraine: Respublika Krym",
        'UA-56' => "Ukraine: Rivnens'ka Oblast'",
        'UA-40' => "Ukraine: Sevastopol",
        'UA-59' => "Ukraine: Sums 'ka Oblast'",
        'UA-61' => "Ukraine: Ternopil's'ka Oblast'",
        'UA-05' => "Ukraine: Vinnyts'ka Oblast'",
        'UA-07' => "Ukraine: Volyns'ka Oblast'",
        'UA-21' => "Ukraine: Zakarpats'ka Oblast'",
        'UA-23' => "Ukraine: Zaporiz'ka Oblast'",
        'UA-18' => "Ukraine: Zhytomyrs'ka Oblast'",

        '--AE'  => "", '-AE' => "United Arab Emirates",
        'AE-AJ' => "United Arab Emirates: 'Ajmān",
        'AE-AZ' => "United Arab Emirates: Abū Ȥaby [Abu Dhabi]",
        'AE-FU' => "United Arab Emirates: Al Fujayrah",
        'AE-SH' => "United Arab Emirates: Ash Shāriqah",
        'AE-DU' => "United Arab Emirates: Dubayy",
        'AE-RK' => "United Arab Emirates: Ra’s al Khaymah",
        'AE-UQ' => "United Arab Emirates: Umm al Qaywayn",

        '--GB'   => "", '-GB' => "United Kingdom",
        'GB-ABE' => "United Kingdom: Aberdeen City",
        'GB-ABD' => "United Kingdom: Aberdeenshire",
        'GB-ANS' => "United Kingdom: Angus",
        'GB-ANT' => "United Kingdom: Antrim",
        'GB-ARD' => "United Kingdom: Ards",
        'GB-AGB' => "United Kingdom: Argyll and Bute",
        'GB-ARM' => "United Kingdom: Armagh",
        'GB-BLA' => "United Kingdom: Ballymena",
        'GB-BLY' => "United Kingdom: Ballymoney",
        'GB-BNB' => "United Kingdom: Banbridge",
        'GB-BDG' => "United Kingdom: Barking and Dagenham",
        'GB-BNE' => "United Kingdom: Barnet",
        'GB-BNS' => "United Kingdom: Barnsley",
        'GB-BAS' => "United Kingdom: Bath and North East Somerset",
        'GB-BDF' => "United Kingdom: Bedford",
        'GB-BFS' => "United Kingdom: Belfast",
        'GB-BEX' => "United Kingdom: Bexley",
        'GB-BIR' => "United Kingdom: Birmingham",
        'GB-BBD' => "United Kingdom: Blackburn with Darwen",
        'GB-BPL' => "United Kingdom: Blackpool",
        'GB-BGW' => "United Kingdom: Blaenau Gwent",
        'GB-BOL' => "United Kingdom: Bolton",
        'GB-BMH' => "United Kingdom: Bournemouth",
        'GB-BRC' => "United Kingdom: Bracknell Forest",
        'GB-BRD' => "United Kingdom: Bradford",
        'GB-BEN' => "United Kingdom: Brent",
        'GB-BGE' => "United Kingdom: Bridgend (Pen-y-bont ar Ogwr)",
        'GB-BNH' => "United Kingdom: Brighton and Hove",
        'GB-BST' => "United Kingdom: Bristol, City of",
        'GB-BRY' => "United Kingdom: Bromley",
        'GB-BKM' => "United Kingdom: Buckinghamshire",
        'GB-BUR' => "United Kingdom: Bury",
        'GB-CAY' => "United Kingdom: Caerphilly (Caerffili)",
        'GB-CLD' => "United Kingdom: Calderdale",
        'GB-CAM' => "United Kingdom: Cambridgeshire",
        'GB-CMD' => "United Kingdom: Camden",
        'GB-CRF' => "United Kingdom: Cardiff (Caerdydd)",
        'GB-CMN' => "United Kingdom: Carmarthenshire (Sir Gaerfyrddin)",
        'GB-CKF' => "United Kingdom: Carrickfergus",
        'GB-CSR' => "United Kingdom: Castlereagh",
        'GB-CBF' => "United Kingdom: Central Bedfordshire",
        'GB-CGN' => "United Kingdom: Ceredigion (Sir Ceredigion)",
        'GB-CHE' => "United Kingdom: Cheshire East",
        'GB-CHW' => "United Kingdom: Cheshire West and Chester",
        'GB-CLK' => "United Kingdom: Clackmannanshire",
        'GB-CLR' => "United Kingdom: Coleraine",
        'GB-CWY' => "United Kingdom: Conwy",
        'GB-CKT' => "United Kingdom: Cookstown",
        'GB-CON' => "United Kingdom: Cornwall",
        'GB-COV' => "United Kingdom: Coventry",
        'GB-CGV' => "United Kingdom: Craigavon",
        'GB-CRY' => "United Kingdom: Croydon",
        'GB-CMA' => "United Kingdom: Cumbria",
        'GB-DAL' => "United Kingdom: Darlington",
        'GB-DEN' => "United Kingdom: Denbighshire (Sir Ddinbych)",
        'GB-DER' => "United Kingdom: Derby",
        'GB-DBY' => "United Kingdom: Derbyshire",
        'GB-DRY' => "United Kingdom: Derry",
        'GB-DEV' => "United Kingdom: Devon",
        'GB-DNC' => "United Kingdom: Doncaster",
        'GB-DOR' => "United Kingdom: Dorset",
        'GB-DOW' => "United Kingdom: Down",
        'GB-DUD' => "United Kingdom: Dudley",
        'GB-DGY' => "United Kingdom: Dumfries and Galloway",
        'GB-DND' => "United Kingdom: Dundee City",
        'GB-DGN' => "United Kingdom: Dungannon",
        'GB-DUR' => "United Kingdom: Durham",
        'GB-EAL' => "United Kingdom: Ealing",
        'GB-EAY' => "United Kingdom: East Ayrshire",
        'GB-EDU' => "United Kingdom: East Dunbartonshire",
        'GB-ELN' => "United Kingdom: East Lothian",
        'GB-ERW' => "United Kingdom: East Renfrewshire",
        'GB-ERY' => "United Kingdom: East Riding of Yorkshire",
        'GB-ESX' => "United Kingdom: East Sussex",
        'GB-EDH' => "United Kingdom: Edinburgh, City of",
        'GB-ELS' => "United Kingdom: Eilean Siar",
        'GB-ENF' => "United Kingdom: Enfield",
        'GB-ENG' => "United Kingdom: England",
        'GB-EAW' => "United Kingdom: England and Wales",
        'GB-ESS' => "United Kingdom: Essex",
        'GB-FAL' => "United Kingdom: Falkirk",
        'GB-FER' => "United Kingdom: Fermanagh",
        'GB-FIF' => "United Kingdom: Fife",
        'GB-FLN' => "United Kingdom: Flintshire (Sir y Fflint)",
        'GB-GAT' => "United Kingdom: Gateshead",
        'GB-GLG' => "United Kingdom: Glasgow City",
        'GB-GLS' => "United Kingdom: Gloucestershire",
        'GB-GBN' => "United Kingdom: Great Britain",
        'GB-GRE' => "United Kingdom: Greenwich",
        'GB-GWN' => "United Kingdom: Gwynedd",
        'GB-HCK' => "United Kingdom: Hackney",
        'GB-HAL' => "United Kingdom: Halton",
        'GB-HMF' => "United Kingdom: Hammersmith and Fulham",
        'GB-HAM' => "United Kingdom: Hampshire",
        'GB-HRY' => "United Kingdom: Haringey",
        'GB-HRW' => "United Kingdom: Harrow",
        'GB-HPL' => "United Kingdom: Hartlepool",
        'GB-HAV' => "United Kingdom: Havering",
        'GB-HEF' => "United Kingdom: Herefordshire",
        'GB-HRT' => "United Kingdom: Hertfordshire",
        'GB-HLD' => "United Kingdom: Highland",
        'GB-HIL' => "United Kingdom: Hillingdon",
        'GB-HNS' => "United Kingdom: Hounslow",
        'GB-IVC' => "United Kingdom: Inverclyde",
        'GB-AGY' => "United Kingdom: Isle of Anglesey (Sir Ynys Môn)",
        'GB-IOW' => "United Kingdom: Isle of Wight",
        'GB-ISL' => "United Kingdom: Islington",
        'GB-KEC' => "United Kingdom: Kensington and Chelsea",
        'GB-KEN' => "United Kingdom: Kent",
        'GB-KHL' => "United Kingdom: Kingston upon Hull",
        'GB-KTT' => "United Kingdom: Kingston upon Thames",
        'GB-KIR' => "United Kingdom: Kirklees",
        'GB-KWL' => "United Kingdom: Knowsley",
        'GB-LBH' => "United Kingdom: Lambeth",
        'GB-LAN' => "United Kingdom: Lancashire",
        'GB-LRN' => "United Kingdom: Larne",
        'GB-LDS' => "United Kingdom: Leeds",
        'GB-LCE' => "United Kingdom: Leicester",
        'GB-LEC' => "United Kingdom: Leicestershire",
        'GB-LEW' => "United Kingdom: Lewisham",
        'GB-LMV' => "United Kingdom: Limavady",
        'GB-LIN' => "United Kingdom: Lincolnshire",
        'GB-LSB' => "United Kingdom: Lisburn",
        'GB-LIV' => "United Kingdom: Liverpool",
        'GB-LND' => "United Kingdom: London, City of",
        'GB-LUT' => "United Kingdom: Luton",
        'GB-MFT' => "United Kingdom: Magherafelt",
        'GB-MAN' => "United Kingdom: Manchester",
        'GB-MDW' => "United Kingdom: Medway",
        'GB-MTY' => "United Kingdom: Merthyr Tydfil (Merthyr Tudful)",
        'GB-MRT' => "United Kingdom: Merton",
        'GB-MDB' => "United Kingdom: Middlesbrough",
        'GB-MLN' => "United Kingdom: Midlothian",
        'GB-MIK' => "United Kingdom: Milton Keynes",
        'GB-MON' => "United Kingdom: Monmouthshire (Sir Fynwy)",
        'GB-MRY' => "United Kingdom: Moray",
        'GB-MYL' => "United Kingdom: Moyle",
        'GB-NTL' => "United Kingdom: Neath Port Talbot (Castell-nedd Port Talbot)",
        'GB-NET' => "United Kingdom: Newcastle upon Tyne",
        'GB-NWM' => "United Kingdom: Newham",
        'GB-NWP' => "United Kingdom: Newport (Casnewydd)",
        'GB-NYM' => "United Kingdom: Newry and Mourne",
        'GB-NTA' => "United Kingdom: Newtownabbey",
        'GB-NFK' => "United Kingdom: Norfolk",
        'GB-NAY' => "United Kingdom: North Ayrshire",
        'GB-NDN' => "United Kingdom: North Down",
        'GB-NEL' => "United Kingdom: North East Lincolnshire",
        'GB-NLK' => "United Kingdom: North Lanarkshire",
        'GB-NLN' => "United Kingdom: North Lincolnshire",
        'GB-NSM' => "United Kingdom: North Somerset",
        'GB-NTY' => "United Kingdom: North Tyneside",
        'GB-NYK' => "United Kingdom: North Yorkshire",
        'GB-NTH' => "United Kingdom: Northamptonshire",
        'GB-NIR' => "United Kingdom: Northern Ireland",
        'GB-NBL' => "United Kingdom: Northumberland",
        'GB-NGM' => "United Kingdom: Nottingham",
        'GB-NTT' => "United Kingdom: Nottinghamshire",
        'GB-OLD' => "United Kingdom: Oldham",
        'GB-OMH' => "United Kingdom: Omagh",
        'GB-ORK' => "United Kingdom: Orkney Islands",
        'GB-OXF' => "United Kingdom: Oxfordshire",
        'GB-PEM' => "United Kingdom: Pembrokeshire (Sir Benfro)",
        'GB-PKN' => "United Kingdom: Perth and Kinross",
        'GB-PTE' => "United Kingdom: Peterborough",
        'GB-PLY' => "United Kingdom: Plymouth",
        'GB-POL' => "United Kingdom: Poole",
        'GB-POR' => "United Kingdom: Portsmouth",
        'GB-POW' => "United Kingdom: Powys",
        'GB-RDG' => "United Kingdom: Reading",
        'GB-RDB' => "United Kingdom: Redbridge",
        'GB-RCC' => "United Kingdom: Redcar and Cleveland",
        'GB-RFW' => "United Kingdom: Renfrewshire",
        'GB-RCT' => "United Kingdom: Rhondda, Cynon, Taff (Rhondda, Cynon, Taf)",
        'GB-RIC' => "United Kingdom: Richmond upon Thames",
        'GB-RCH' => "United Kingdom: Rochdale",
        'GB-ROT' => "United Kingdom: Rotherham",
        'GB-RUT' => "United Kingdom: Rutland",
        'GB-SLF' => "United Kingdom: Salford",
        'GB-SAW' => "United Kingdom: Sandwell",
        'GB-SCT' => "United Kingdom: Scotland",
        'GB-SCB' => "United Kingdom: Scottish Borders, The",
        'GB-SFT' => "United Kingdom: Sefton",
        'GB-SHF' => "United Kingdom: Sheffield",
        'GB-ZET' => "United Kingdom: Shetland Islands",
        'GB-SHR' => "United Kingdom: Shropshire",
        'GB-SLG' => "United Kingdom: Slough",
        'GB-SOL' => "United Kingdom: Solihull",
        'GB-SOM' => "United Kingdom: Somerset",
        'GB-SAY' => "United Kingdom: South Ayrshire",
        'GB-SGC' => "United Kingdom: South Gloucestershire",
        'GB-SLK' => "United Kingdom: South Lanarkshire",
        'GB-STY' => "United Kingdom: South Tyneside",
        'GB-STH' => "United Kingdom: Southampton",
        'GB-SOS' => "United Kingdom: Southend-on-Sea",
        'GB-SWK' => "United Kingdom: Southwark",
        'GB-SHN' => "United Kingdom: St. Helens",
        'GB-STS' => "United Kingdom: Staffordshire",
        'GB-STG' => "United Kingdom: Stirling",
        'GB-SKP' => "United Kingdom: Stockport",
        'GB-STT' => "United Kingdom: Stockton-on-Tees",
        'GB-STE' => "United Kingdom: Stoke-on-Trent",
        'GB-STB' => "United Kingdom: Strabane",
        'GB-SFK' => "United Kingdom: Suffolk",
        'GB-SND' => "United Kingdom: Sunderland",
        'GB-SRY' => "United Kingdom: Surrey",
        'GB-STN' => "United Kingdom: Sutton",
        'GB-SWA' => "United Kingdom: Swansea (Abertawe)",
        'GB-SWD' => "United Kingdom: Swindon",
        'GB-TAM' => "United Kingdom: Tameside",
        'GB-TFW' => "United Kingdom: Telford and Wrekin",
        'GB-THR' => "United Kingdom: Thurrock",
        'GB-TOB' => "United Kingdom: Torbay",
        'GB-TOF' => "United Kingdom: Torfaen (Tor-faen)",
        'GB-TWH' => "United Kingdom: Tower Hamlets",
        'GB-TRF' => "United Kingdom: Trafford",
        'GB-UKM' => "United Kingdom: United Kingdom",
        'GB-VGL' => "United Kingdom: Vale of Glamorgan, The (Bro Morgannwg)",
        'GB-WKF' => "United Kingdom: Wakefield",
        'GB-WLS' => "United Kingdom: Wales",
        'GB-WLL' => "United Kingdom: Walsall",
        'GB-WFT' => "United Kingdom: Waltham Forest",
        'GB-WND' => "United Kingdom: Wandsworth",
        'GB-WRT' => "United Kingdom: Warrington",
        'GB-WAR' => "United Kingdom: Warwickshire",
        'GB-WBK' => "United Kingdom: West Berkshire",
        'GB-WDU' => "United Kingdom: West Dunbartonshire",
        'GB-WLN' => "United Kingdom: West Lothian",
        'GB-WSX' => "United Kingdom: West Sussex",
        'GB-WSM' => "United Kingdom: Westminster",
        'GB-WGN' => "United Kingdom: Wigan",
        'GB-WNM' => "United Kingdom: Windsor and Maidenhead",
        'GB-WRL' => "United Kingdom: Wirral",
        'GB-WOK' => "United Kingdom: Wokingham",
        'GB-WLV' => "United Kingdom: Wolverhampton",
        'GB-WOR' => "United Kingdom: Worcestershire",
        'GB-WRX' => "United Kingdom: Wrexham (Wrecsam)",
        'GB-YOR' => "United Kingdom: York",

        '--US'  => "", '-US' => "United States",
        'US-AL' => "United States: Alabama",
        'US-AK' => "United States: Alaska",
        'US-AS' => "United States: American Samoa, Samoa Americana",
        'US-AZ' => "United States: Arizona",
        'US-AR' => "United States: Arkansas",
        'US-CA' => "United States: California",
        'US-CO' => "United States: Colorado",
        'US-CT' => "United States: Connecticut",
        'US-DE' => "United States: Delaware",
        'US-DC' => "United States: District of Columbia, Disricte de Columbia",
        'US-FL' => "United States: Florida",
        'US-GA' => "United States: Georgia, Geòrgia",
        'US-GU' => "United States: Guam",
        'US-HI' => "United States: Hawaii",
        'US-ID' => "United States: Idaho",
        'US-IL' => "United States: Illinois",
        'US-IN' => "United States: Indiana",
        'US-IA' => "United States: Iowa",
        'US-KS' => "United States: Kansas",
        'US-KY' => "United States: Kentucky",
        'US-LA' => "United States: Louisiana",
        'US-ME' => "United States: Maine",
        'US-MD' => "United States: Maryland",
        'US-MA' => "United States: Massachusetts",
        'US-MI' => "United States: Michigan",
        'US-MN' => "United States: Minnesota",
        'US-MS' => "United States: Mississippi",
        'US-MO' => "United States: Missouri",
        'US-MT' => "United States: Montana",
        'US-NE' => "United States: Nebraska",
        'US-NV' => "United States: Nevada",
        'US-NH' => "United States: New Hampshire",
        'US-NJ' => "United States: New Jersey",
        'US-NM' => "United States: New Mexico",
        'US-NY' => "United States: New York",
        'US-NC' => "United States: North Carolina",
        'US-ND' => "United States: North Dakota",
        'US-MP' => "United States: Northern Mariana Islands, Illes Marianes del Nord",
        'US-OH' => "United States: Ohio",
        'US-OK' => "United States: Oklahoma",
        'US-OR' => "United States: Oregon",
        'US-PA' => "United States: Pennsylvania",
        'US-PR' => "United States: Puerto Rico",
        'US-RI' => "United States: Rhode Island",
        'US-SC' => "United States: South Carolina",
        'US-SD' => "United States: South Dakota",
        'US-TN' => "United States: Tennessee",
        'US-TX' => "United States: Texas",
        'US-UM' => "United States: United States Minor Outlying Islands, Illes Perifèriques Menors dels EUA",
        'US-UT' => "United States: Utah",
        'US-VT' => "United States: Vermont",
        'US-VI' => "United States: Virgin Islands, Illes Verge",
        'US-VA' => "United States: Virginia",
        'US-WA' => "United States: Washington",
        'US-WV' => "United States: West Virginia",
        'US-WI' => "United States: Wisconsin",
        'US-WY' => "United States: Wyoming",

        '--VN'  => "", '-VN' => "Vietnam",
        'VN-44' => "Vietnam: An Giang",
        'VN-43' => "Vietnam: Bà Rịa - Vũng Tàu",
        'VN-57' => "Vietnam: Bình Dương",
        'VN-58' => "Vietnam: Bình Phước",
        'VN-40' => "Vietnam: Bình Thuận",
        'VN-31' => "Vietnam: Bình Định",
        'VN-55' => "Vietnam: Bạc Liêu",
        'VN-54' => "Vietnam: Bắc Giang",
        'VN-53' => "Vietnam: Bắc Kạn",
        'VN-56' => "Vietnam: Bắc Ninh",
        'VN-50' => "Vietnam: Bến Tre",
        'VN-04' => "Vietnam: Cao Bằng",
        'VN-59' => "Vietnam: Cà Mau",
        'VN-48' => "Vietnam: Cần Thơ",
        'VN-30' => "Vietnam: Gia Lai",
        'VN-14' => "Vietnam: Hoà Bình",
        'VN-03' => "Vietnam: Hà Giang",
        'VN-63' => "Vietnam: Hà Nam",
        'VN-64' => "Vietnam: Hà Nội, thủ đô",
        'VN-15' => "Vietnam: Hà Tây",
        'VN-23' => "Vietnam: Hà Tỉnh",
        'VN-66' => "Vietnam: Hưng Yên",
        'VN-61' => "Vietnam: Hải Duong",
        'VN-62' => "Vietnam: Hải Phòng, thành phố",
        'VN-73' => "Vietnam: Hậu Giang",
        'VN-65' => "Vietnam: Hồ Chí Minh, thành phố [Sài Gòn]",
        'VN-34' => "Vietnam: Khánh Hòa",
        'VN-47' => "Vietnam: Kiên Giang",
        'VN-28' => "Vietnam: Kon Tum",
        'VN-01' => "Vietnam: Lai Châu",
        'VN-41' => "Vietnam: Long An",
        'VN-02' => "Vietnam: Lào Cai",
        'VN-35' => "Vietnam: Lâm Đồng",
        'VN-09' => "Vietnam: Lạng Sơn",
        'VN-67' => "Vietnam: Nam Định",
        'VN-22' => "Vietnam: Nghệ An",
        'VN-18' => "Vietnam: Ninh Bình",
        'VN-36' => "Vietnam: Ninh Thuận",
        'VN-68' => "Vietnam: Phú Thọ",
        'VN-32' => "Vietnam: Phú Yên",
        'VN-24' => "Vietnam: Quảng Bình",
        'VN-27' => "Vietnam: Quảng Nam",
        'VN-29' => "Vietnam: Quảng Ngãi",
        'VN-13' => "Vietnam: Quảng Ninh",
        'VN-25' => "Vietnam: Quảng Trị",
        'VN-52' => "Vietnam: Sóc Trăng",
        'VN-05' => "Vietnam: Sơn La",
        'VN-21' => "Vietnam: Thanh Hóa",
        'VN-20' => "Vietnam: Thái Bình",
        'VN-69' => "Vietnam: Thái Nguyên",
        'VN-26' => "Vietnam: Thừa Thiên-Huế",
        'VN-46' => "Vietnam: Tiền Giang",
        'VN-51' => "Vietnam: Trà Vinh",
        'VN-07' => "Vietnam: Tuyên Quang",
        'VN-37' => "Vietnam: Tây Ninh",
        'VN-49' => "Vietnam: Vĩnh Long",
        'VN-70' => "Vietnam: Vĩnh Phúc",
        'VN-06' => "Vietnam: Yên Bái",
        'VN-71' => "Vietnam: Điện Biên",
        'VN-60' => "Vietnam: Đà Nẵng, thành phố",
        'VN-33' => "Vietnam: Đắc Lắk",
        'VN-72' => "Vietnam: Đắk Nông",
        'VN-39' => "Vietnam: Đồng Nai",
        'VN-45' => "Vietnam: Đồng Tháp",
    ];
    public $type             = 'Geo';

    public function cleanRegions($regions)
    {
        $regions = str_replace('"', '', $regions);

        $regions = htmlspecialchars($regions);

        // LR,MY, name for US-MD,Maryland,Maryland
        // >>
        // LR,MY,Maryland,Maryland
        // US,MD,Maryland,Maryland
        $regex = '(\n[^,]*),([^\n]*), name for ([^-]*)-([^,]*),([^\n]*\n)';
        RL_RegEx::match($regex, $regions, $match);

        while ($match)
        {
            $regions = RL_RegEx::replace($regex, '\1,\2,\5\3,\4,\5', $regions);

            RL_RegEx::match($regex, $regions, $match);
        }

        // LR,MY,Maryland,Maryland
        // >>
        // LR,MY,Maryland
        $regions = RL_RegEx::replace('(\n[^,]*,[^,]*),([^,]*),\2', '\1,\2', $regions);

        // LR,MY,District of Columbia,Disricte de Columbia
        // >>
        // LR, MY, District of Columbia, Disricte de Columbia
        $regions = str_replace(',', ', ', $regions);

        // GB, WRX, Wrexham;Wrecsam
        // >>
        // GB, WRX, Wrexham (Wrecsam)
        $regions = RL_RegEx::replace('(\n[^,]*,[^,]*,[^;]*);([^\n]*)', '\1 (\2)', $regions);

        $regions = trim(RL_RegEx::replace('  +', ' ', $regions));

        return explode("\n", $regions);
    }

    public function getAjaxRaw(Registry $attributes)
    {
        $name  = $attributes->get('name', $this->type);
        $id    = $attributes->get('id', strtolower($name));
        $value = $attributes->get('value', []);
        $size  = $attributes->get('size');

        $options = $this->getOptions(
            $attributes->get('group', 'countries'),
            (bool) $attributes->get('use_names', false)
        );

        return $this->selectListSimple($options, $name, $value, $id, $size, true);
    }

    public function getOptions($group = 'countries', $use_names = '')
    {
        $options = [];

        foreach ($this->{$group} as $key => $val)
        {
            if ( ! $val)
            {
                $options[] = JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
                continue;
            }

            if ($key[0] == '-')
            {
                $options[] = JHtml::_('select.option', '-', $val, 'value', 'text', true);
                continue;
            }

            $val       = RL_Form::prepareSelectItem($val);
            $options[] = JHtml::_('select.option', $use_names ? $val : $key, $val);
        }

        return $options;
    }

    protected function getInput()
    {

        if ( ! is_array($this->value))
        {
            $this->value = explode(',', $this->value);
        }

        $size      = (int) $this->get('size');
        $multiple  = $this->get('multiple');
        $group     = $this->get('group', 'countries');
        $use_names = $this->get('use_names', false);

        return $this->selectListSimpleAjax(
            $this->type, $this->name, $this->value, $this->id,
            compact('size', 'multiple', 'group', 'use_names')
        );
    }

    private function getRegionArray()
    {
    }

    private function getRegionArrayByFile()
    {
    }

    private function getRegionName($country, $region)
    {
    }
}

NexusLeads