/*
 * Copyright 2014 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA:
//  cldrVersion=25
//  date=$Date: 2014-03-01 06:57:43 +0100 (Sat, 01 Mar 2014) $
//  number=$Revision: 9852 $
//  type=sq

/**
 * Localized names for the "sq" locale.
 */
public class LocalizedNamesImpl_sq extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AF",
        "ZA",
        "DZ",
        "AD",
        "AO",
        "AI",
        "AQ",
        "AG",
        "SA",
        "AR",
        "AM",
        "AW",
        "AU",
        "AT",
        "AZ",
        "BS",
        "BH",
        "BD",
        "BB",
        "EU",
        "BE",
        "BZ",
        "BJ",
        "BM",
        "BY",
        "BO",
        "BA",
        "BW",
        "BR",
        "CI",
        "BN",
        "BG",
        "BF",
        "BI",
        "BT",
        "TD",
        "DK",
        "DG",
        "DM",
        "EG",
        "EC",
        "SV",
        "AE",
        "ER",
        "EE",
        "ET",
        "PH",
        "FI",
        "FJ",
        "FR",
        "GA",
        "GM",
        "GH",
        "GE",
        "DE",
        "GI",
        "GD",
        "GL",
        "GR",
        "GP",
        "GF",
        "GY",
        "GU",
        "GT",
        "GG",
        "GN",
        "GW",
        "GQ",
        "HT",
        "NL",
        "HN",
        "HU",
        "IN",
        "ID",
        "IQ",
        "IR",
        "IE",
        "AX",
        "BV",
        "MP",
        "VI",
        "VG",
        "FO",
        "FK",
        "KY",
        "IC",
        "CC",
        "CK",
        "MH",
        "NF",
        "UM",
        "PN",
        "SB",
        "TC",
        "AC",
        "HM",
        "CX",
        "IM",
        "MQ",
        "MS",
        "CP",
        "IS",
        "IT",
        "IL",
        "JP",
        "YE",
        "JO",
        "NC",
        "KH",
        "CM",
        "CA",
        "BQ",
        "QA",
        "KZ",
        "KE",
        "CV",
        "CL",
        "CN",
        "KG",
        "CO",
        "KM",
        "CG",
        "CD",
        "KR",
        "KP",
        "XK",
        "CR",
        "HR",
        "CU",
        "CW",
        "KW",
        "LA",
        "LS",
        "LV",
        "LB",
        "LR",
        "LY",
        "LI",
        "LT",
        "LU",
        "MG",
        "YT",
        "MY",
        "MW",
        "MV",
        "ML",
        "ME",
        "MT",
        "MK",
        "MA",
        "MR",
        "MU",
        "GB",
        "MX",
        "MM",
        "FM",
        "MD",
        "MC",
        "MN",
        "MZ",
        "NA",
        "NR",
        "NP",
        "NE",
        "NG",
        "NI",
        "NU",
        "NO",
        "OM",
        "QO",
        "PK",
        "PW",
        "PA",
        "PG",
        "PY",
        "PE",
        "PF",
        "PL",
        "PR",
        "PT",
        "CY",
        "KI",
        "CF",
        "CZ",
        "DO",
        "RE",
        "RW",
        "RO",
        "RU",
        "HK",
        "MO",
        "EH",
        "WS",
        "AS",
        "SM",
        "ST",
        "SN",
        "RS",
        "BL",
        "SH",
        "KN",
        "LC",
        "MF",
        "SX",
        "PM",
        "VC",
        "AL",
        "US",
        "SL",
        "SG",
        "SY",
        "SC",
        "SK",
        "SI",
        "SO",
        "ES",
        "LK",
        "SD",
        "SS",
        "SE",
        "SR",
        "SJ",
        "SZ",
        "TH",
        "TW",
        "TZ",
        "TJ",
        "TF",
        "PS",
        "IO",
        "EA",
        "TL",
        "TG",
        "TK",
        "TO",
        "TT",
        "TA",
        "TN",
        "TM",
        "TR",
        "TV",
        "UG",
        "UA",
        "WF",
        "UY",
        "UZ",
        "VU",
        "VA",
        "VE",
        "VN",
        "JM",
        "JE",
        "DJ",
        "GS",
        "ZM",
        "NZ",
        "ZW",
        "CH",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Botë");
    namesMap.put("002", "Afrikë");
    namesMap.put("003", "Amerika e Veriut");
    namesMap.put("005", "Amerika e Jugut");
    namesMap.put("009", "Oqeani");
    namesMap.put("011", "Afrika Perëndimore");
    namesMap.put("013", "Amerika Qendrore");
    namesMap.put("014", "Afrika Lindore");
    namesMap.put("015", "Afrika Veriore");
    namesMap.put("017", "Afrika e Mesme");
    namesMap.put("018", "Afrika Jugore");
    namesMap.put("019", "Amerikë");
    namesMap.put("021", "Amerika Veriore");
    namesMap.put("029", "Karaibe");
    namesMap.put("030", "Azia Lindore");
    namesMap.put("034", "Azia Jugore");
    namesMap.put("035", "Azia Jug-Lindore");
    namesMap.put("039", "Europa Jugore");
    namesMap.put("053", "Australazia");
    namesMap.put("054", "Melanezia");
    namesMap.put("057", "Rajoni Mikronezian");
    namesMap.put("061", "Polinezia");
    namesMap.put("142", "Azi");
    namesMap.put("143", "Azia Qendrore");
    namesMap.put("145", "Azia Perëndimore");
    namesMap.put("150", "Europë");
    namesMap.put("151", "Europa Lindore");
    namesMap.put("154", "Europa Veriore");
    namesMap.put("155", "Europa Perëndimore");
    namesMap.put("419", "Amerika Latine");
    namesMap.put("AC", "Ishulli Asenshion");
    namesMap.put("AD", "Andorrë");
    namesMap.put("AE", "Emiratet e Bashkuara Arabe");
    namesMap.put("AF", "Afganistan");
    namesMap.put("AG", "Antigua e Barbuda");
    namesMap.put("AI", "Anguilë");
    namesMap.put("AL", "Shqipëri");
    namesMap.put("AM", "Armeni");
    namesMap.put("AO", "Angolë");
    namesMap.put("AQ", "Antarktikë");
    namesMap.put("AR", "Argjentinë");
    namesMap.put("AS", "Samoa Amerikane");
    namesMap.put("AT", "Austri");
    namesMap.put("AU", "Australi");
    namesMap.put("AW", "Arubë");
    namesMap.put("AX", "Ishujt Aland");
    namesMap.put("AZ", "Azerbajxhan");
    namesMap.put("BA", "Bosnjë e Hercegovinë");
    namesMap.put("BE", "Belgjikë");
    namesMap.put("BG", "Bullgari");
    namesMap.put("BH", "Bahrein");
    namesMap.put("BI", "Burund");
    namesMap.put("BL", "Shën Bartolemeo");
    namesMap.put("BM", "Bermudë");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolivi");
    namesMap.put("BQ", "Karaibet Holandeze");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Ishujt Bove");
    namesMap.put("BW", "Botsvanë");
    namesMap.put("BY", "Bjellorusi");
    namesMap.put("BZ", "Beliz");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Ishujt Kokos");
    namesMap.put("CD", "Kongo-Kinshasa");
    namesMap.put("CF", "Republika Afrikano-Qendrore");
    namesMap.put("CG", "Kongo-Brazavilë");
    namesMap.put("CH", "Zvicër");
    namesMap.put("CI", "Bregu i Fildishtë");
    namesMap.put("CK", "Ishujt Kuk");
    namesMap.put("CL", "Kili");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kinë");
    namesMap.put("CO", "Kolumbi");
    namesMap.put("CP", "Ishulli Klipërton");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kubë");
    namesMap.put("CV", "Kepi i Gjelbër");
    namesMap.put("CW", "Kuraçao");
    namesMap.put("CX", "Ishulli i Krishtlindjes");
    namesMap.put("CY", "Qipro");
    namesMap.put("CZ", "Republika Çeke");
    namesMap.put("DE", "Gjermani");
    namesMap.put("DG", "Diego Garsia");
    namesMap.put("DJ", "Xhibut");
    namesMap.put("DK", "Danimarkë");
    namesMap.put("DM", "Dominikë");
    namesMap.put("DO", "Republika Dominikane");
    namesMap.put("DZ", "Algjeri");
    namesMap.put("EA", "Theuta e Melila");
    namesMap.put("EC", "Ekuador");
    namesMap.put("EE", "Estoni");
    namesMap.put("EG", "Egjipt");
    namesMap.put("EH", "Saharaja Perëndimore");
    namesMap.put("ER", "Eritre");
    namesMap.put("ES", "Spanjë");
    namesMap.put("ET", "Etiopi");
    namesMap.put("EU", "Bashkimi Europian");
    namesMap.put("FI", "Finlandë");
    namesMap.put("FJ", "Fixhi");
    namesMap.put("FK", "Ishujt Folkland");
    namesMap.put("FM", "Mikronezi");
    namesMap.put("FO", "Ishujt Faroe");
    namesMap.put("FR", "Francë");
    namesMap.put("GB", "Mbretëria e Bashkuar");
    namesMap.put("GD", "Grenadë");
    namesMap.put("GE", "Gjeorgji");
    namesMap.put("GF", "Guajana Franceze");
    namesMap.put("GG", "Guernsej");
    namesMap.put("GH", "Ganë");
    namesMap.put("GI", "Gjibraltar");
    namesMap.put("GL", "Grenlandë");
    namesMap.put("GM", "Gambi");
    namesMap.put("GN", "Guine");
    namesMap.put("GP", "Guadalupe");
    namesMap.put("GQ", "Guineja Ekuatoriale");
    namesMap.put("GR", "Greqi");
    namesMap.put("GS", "Xhorxha Jugore dhe Ishujt Senduiç të Jugut");
    namesMap.put("GT", "Guatemalë");
    namesMap.put("GW", "Guine-Bisau");
    namesMap.put("GY", "Guajanë");
    namesMap.put("HK", "RVAK i Hong Kongut");
    namesMap.put("HM", "Ishulli Hërd dhe Ishujt Mekdonald");
    namesMap.put("HR", "Kroaci");
    namesMap.put("HU", "Hungari");
    namesMap.put("IC", "Ishujt Kanarie");
    namesMap.put("ID", "Indonezi");
    namesMap.put("IE", "Irlandë");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Ishulli i Manit");
    namesMap.put("IN", "Indi");
    namesMap.put("IO", "Territori Britanik i Oqeanit Indian");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islandë");
    namesMap.put("IT", "Itali");
    namesMap.put("JE", "Xhersej");
    namesMap.put("JM", "Xhamajkë");
    namesMap.put("JO", "Jordani");
    namesMap.put("JP", "Japoni");
    namesMap.put("KE", "Kenia");
    namesMap.put("KG", "Kirgistan");
    namesMap.put("KH", "Kamboxhia");
    namesMap.put("KI", "Qiribati");
    namesMap.put("KM", "Komore");
    namesMap.put("KN", "Shën Kits e Nevis");
    namesMap.put("KP", "Koreja e Veriut");
    namesMap.put("KR", "Koreja e Jugut");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Ishujt Kajman");
    namesMap.put("KZ", "Kazakistan");
    namesMap.put("LB", "Liban");
    namesMap.put("LC", "Shën Luçia");
    namesMap.put("LI", "Lihtënshtajn");
    namesMap.put("LK", "Sri Lankë");
    namesMap.put("LR", "Liberi");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Lituani");
    namesMap.put("LU", "Luksemburg");
    namesMap.put("LV", "Letoni");
    namesMap.put("LY", "Libi");
    namesMap.put("MA", "Marok");
    namesMap.put("MC", "Monako");
    namesMap.put("MD", "Moldavi");
    namesMap.put("ME", "Mali i Zi");
    namesMap.put("MF", "Shën Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Ishujt Marshall");
    namesMap.put("MK", "Maqedoni");
    namesMap.put("MM", "Mianmar (Burma)");
    namesMap.put("MN", "Mongoli");
    namesMap.put("MO", "RVAK i Makaos");
    namesMap.put("MP", "Ishujt e Marianës Veriore");
    namesMap.put("MQ", "Ishulli i Martinikut");
    namesMap.put("MR", "Mauritani");
    namesMap.put("MS", "Ishulli i Montseratit");
    namesMap.put("MT", "Maltë");
    namesMap.put("MV", "Maldive");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Meksikë");
    namesMap.put("MY", "Malajzi");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibi");
    namesMap.put("NC", "Kaledonia e Re");
    namesMap.put("NF", "Ishujt Norfolk");
    namesMap.put("NG", "Nigeri");
    namesMap.put("NI", "Nikaragua");
    namesMap.put("NL", "Holandë");
    namesMap.put("NO", "Norvegji");
    namesMap.put("NZ", "Zelanda e Re");
    namesMap.put("PF", "Polinezia Franceze");
    namesMap.put("PG", "Papua Guineja e Re");
    namesMap.put("PH", "Filipine");
    namesMap.put("PL", "Poloni");
    namesMap.put("PM", "Shën Peir dhe Mikuelon");
    namesMap.put("PN", "Ishujt Pitkern");
    namesMap.put("PR", "Porto Riko");
    namesMap.put("PS", "Territoret palestineze");
    namesMap.put("PT", "Portugali");
    namesMap.put("PY", "Paraguai");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Oqeania e Largët (Lindja e Largët)");
    namesMap.put("RE", "Reunion");
    namesMap.put("RO", "Rumani");
    namesMap.put("RS", "Serbi");
    namesMap.put("RU", "Rusi");
    namesMap.put("RW", "Ruandë");
    namesMap.put("SA", "Arabi Saudite");
    namesMap.put("SB", "Ishujt Solomon");
    namesMap.put("SC", "Sishel");
    namesMap.put("SE", "Suedi");
    namesMap.put("SG", "Singapor");
    namesMap.put("SH", "Shën Helena");
    namesMap.put("SI", "Slloveni");
    namesMap.put("SJ", "Svalbard e Zhan Majen");
    namesMap.put("SK", "Sllovaki");
    namesMap.put("SL", "Siera Leone");
    namesMap.put("SN", "Senegali");
    namesMap.put("SO", "Somali");
    namesMap.put("SR", "Surinami");
    namesMap.put("SS", "Sudani i Jugut");
    namesMap.put("ST", "Sao Tome e Prinsipe");
    namesMap.put("SX", "Shën Martin (Sint Maarten-pjesa e Mbretërisë së Holandës)");
    namesMap.put("SY", "Siri");
    namesMap.put("SZ", "Svazilandë");
    namesMap.put("TA", "Tristan da Kuna");
    namesMap.put("TC", "Ishujt Turke dhe Kaike");
    namesMap.put("TD", "Çad");
    namesMap.put("TF", "Territoret Australiane Franceze");
    namesMap.put("TH", "Tajlandë");
    namesMap.put("TJ", "Taxhikistan");
    namesMap.put("TL", "Timori Lindor");
    namesMap.put("TN", "Tunizi");
    namesMap.put("TR", "Turqi");
    namesMap.put("TT", "Trinidad e Tobago");
    namesMap.put("TW", "Tajvan");
    namesMap.put("TZ", "Tanzani");
    namesMap.put("UA", "Ukrainë");
    namesMap.put("UG", "Ugandë");
    namesMap.put("UM", "Ishujt periferikë të SHBA-së");
    namesMap.put("US", "Shtetet e Bashkuara të Amerikës");
    namesMap.put("UY", "Uruguai");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Shën Vinsent dhe Grenadinet");
    namesMap.put("VE", "Venezuelë");
    namesMap.put("VG", "Ishujt e Virgjër Britanikë");
    namesMap.put("VI", "Ishujt e Virgjër Amerikanë");
    namesMap.put("WF", "Uollis e Futina");
    namesMap.put("XK", "Kosovë");
    namesMap.put("YE", "Jemen");
    namesMap.put("YT", "Majotë");
    namesMap.put("ZA", "Afrika e Jugut");
    namesMap.put("ZM", "Zambi");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "Rajon i panjohur");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Botë",
        "002": "Afrikë",
        "003": "Amerika e Veriut",
        "005": "Amerika e Jugut",
        "009": "Oqeani",
        "011": "Afrika Perëndimore",
        "013": "Amerika Qendrore",
        "014": "Afrika Lindore",
        "015": "Afrika Veriore",
        "017": "Afrika e Mesme",
        "018": "Afrika Jugore",
        "019": "Amerikë",
        "021": "Amerika Veriore",
        "029": "Karaibe",
        "030": "Azia Lindore",
        "034": "Azia Jugore",
        "035": "Azia Jug-Lindore",
        "039": "Europa Jugore",
        "053": "Australazia",
        "054": "Melanezia",
        "057": "Rajoni Mikronezian",
        "061": "Polinezia",
        "142": "Azi",
        "143": "Azia Qendrore",
        "145": "Azia Perëndimore",
        "150": "Europë",
        "151": "Europa Lindore",
        "154": "Europa Veriore",
        "155": "Europa Perëndimore",
        "419": "Amerika Latine",
        "AC": "Ishulli Asenshion",
        "AD": "Andorrë",
        "AE": "Emiratet e Bashkuara Arabe",
        "AF": "Afganistan",
        "AG": "Antigua e Barbuda",
        "AI": "Anguilë",
        "AL": "Shqipëri",
        "AM": "Armeni",
        "AO": "Angolë",
        "AQ": "Antarktikë",
        "AR": "Argjentinë",
        "AS": "Samoa Amerikane",
        "AT": "Austri",
        "AU": "Australi",
        "AW": "Arubë",
        "AX": "Ishujt Aland",
        "AZ": "Azerbajxhan",
        "BA": "Bosnjë e Hercegovinë",
        "BE": "Belgjikë",
        "BG": "Bullgari",
        "BH": "Bahrein",
        "BI": "Burund",
        "BL": "Shën Bartolemeo",
        "BM": "Bermudë",
        "BN": "Brunej",
        "BO": "Bolivi",
        "BQ": "Karaibet Holandeze",
        "BT": "Butan",
        "BV": "Ishujt Bove",
        "BW": "Botsvanë",
        "BY": "Bjellorusi",
        "BZ": "Beliz",
        "CA": "Kanada",
        "CC": "Ishujt Kokos",
        "CD": "Kongo-Kinshasa",
        "CF": "Republika Afrikano-Qendrore",
        "CG": "Kongo-Brazavilë",
        "CH": "Zvicër",
        "CI": "Bregu i Fildishtë",
        "CK": "Ishujt Kuk",
        "CL": "Kili",
        "CM": "Kamerun",
        "CN": "Kinë",
        "CO": "Kolumbi",
        "CP": "Ishulli Klipërton",
        "CR": "Kosta Rika",
        "CU": "Kubë",
        "CV": "Kepi i Gjelbër",
        "CW": "Kuraçao",
        "CX": "Ishulli i Krishtlindjes",
        "CY": "Qipro",
        "CZ": "Republika Çeke",
        "DE": "Gjermani",
        "DG": "Diego Garsia",
        "DJ": "Xhibut",
        "DK": "Danimarkë",
        "DM": "Dominikë",
        "DO": "Republika Dominikane",
        "DZ": "Algjeri",
        "EA": "Theuta e Melila",
        "EC": "Ekuador",
        "EE": "Estoni",
        "EG": "Egjipt",
        "EH": "Saharaja Perëndimore",
        "ER": "Eritre",
        "ES": "Spanjë",
        "ET": "Etiopi",
        "EU": "Bashkimi Europian",
        "FI": "Finlandë",
        "FJ": "Fixhi",
        "FK": "Ishujt Folkland",
        "FM": "Mikronezi",
        "FO": "Ishujt Faroe",
        "FR": "Francë",
        "GB": "Mbretëria e Bashkuar",
        "GD": "Grenadë",
        "GE": "Gjeorgji",
        "GF": "Guajana Franceze",
        "GG": "Guernsej",
        "GH": "Ganë",
        "GI": "Gjibraltar",
        "GL": "Grenlandë",
        "GM": "Gambi",
        "GN": "Guine",
        "GP": "Guadalupe",
        "GQ": "Guineja Ekuatoriale",
        "GR": "Greqi",
        "GS": "Xhorxha Jugore dhe Ishujt Senduiç të Jugut",
        "GT": "Guatemalë",
        "GW": "Guine-Bisau",
        "GY": "Guajanë",
        "HK": "RVAK i Hong Kongut",
        "HM": "Ishulli Hërd dhe Ishujt Mekdonald",
        "HR": "Kroaci",
        "HU": "Hungari",
        "IC": "Ishujt Kanarie",
        "ID": "Indonezi",
        "IE": "Irlandë",
        "IL": "Izrael",
        "IM": "Ishulli i Manit",
        "IN": "Indi",
        "IO": "Territori Britanik i Oqeanit Indian",
        "IQ": "Irak",
        "IS": "Islandë",
        "IT": "Itali",
        "JE": "Xhersej",
        "JM": "Xhamajkë",
        "JO": "Jordani",
        "JP": "Japoni",
        "KE": "Kenia",
        "KG": "Kirgistan",
        "KH": "Kamboxhia",
        "KI": "Qiribati",
        "KM": "Komore",
        "KN": "Shën Kits e Nevis",
        "KP": "Koreja e Veriut",
        "KR": "Koreja e Jugut",
        "KW": "Kuvajt",
        "KY": "Ishujt Kajman",
        "KZ": "Kazakistan",
        "LB": "Liban",
        "LC": "Shën Luçia",
        "LI": "Lihtënshtajn",
        "LK": "Sri Lankë",
        "LR": "Liberi",
        "LS": "Lesoto",
        "LT": "Lituani",
        "LU": "Luksemburg",
        "LV": "Letoni",
        "LY": "Libi",
        "MA": "Marok",
        "MC": "Monako",
        "MD": "Moldavi",
        "ME": "Mali i Zi",
        "MF": "Shën Martin",
        "MG": "Madagaskar",
        "MH": "Ishujt Marshall",
        "MK": "Maqedoni",
        "MM": "Mianmar (Burma)",
        "MN": "Mongoli",
        "MO": "RVAK i Makaos",
        "MP": "Ishujt e Marianës Veriore",
        "MQ": "Ishulli i Martinikut",
        "MR": "Mauritani",
        "MS": "Ishulli i Montseratit",
        "MT": "Maltë",
        "MV": "Maldive",
        "MW": "Malavi",
        "MX": "Meksikë",
        "MY": "Malajzi",
        "MZ": "Mozambik",
        "NA": "Namibi",
        "NC": "Kaledonia e Re",
        "NF": "Ishujt Norfolk",
        "NG": "Nigeri",
        "NI": "Nikaragua",
        "NL": "Holandë",
        "NO": "Norvegji",
        "NZ": "Zelanda e Re",
        "PF": "Polinezia Franceze",
        "PG": "Papua Guineja e Re",
        "PH": "Filipine",
        "PL": "Poloni",
        "PM": "Shën Peir dhe Mikuelon",
        "PN": "Ishujt Pitkern",
        "PR": "Porto Riko",
        "PS": "Territoret palestineze",
        "PT": "Portugali",
        "PY": "Paraguai",
        "QA": "Katar",
        "QO": "Oqeania e Largët (Lindja e Largët)",
        "RE": "Reunion",
        "RO": "Rumani",
        "RS": "Serbi",
        "RU": "Rusi",
        "RW": "Ruandë",
        "SA": "Arabi Saudite",
        "SB": "Ishujt Solomon",
        "SC": "Sishel",
        "SE": "Suedi",
        "SG": "Singapor",
        "SH": "Shën Helena",
        "SI": "Slloveni",
        "SJ": "Svalbard e Zhan Majen",
        "SK": "Sllovaki",
        "SL": "Siera Leone",
        "SN": "Senegali",
        "SO": "Somali",
        "SR": "Surinami",
        "SS": "Sudani i Jugut",
        "ST": "Sao Tome e Prinsipe",
        "SX": "Shën Martin (Sint Maarten-pjesa e Mbretërisë së Holandës)",
        "SY": "Siri",
        "SZ": "Svazilandë",
        "TA": "Tristan da Kuna",
        "TC": "Ishujt Turke dhe Kaike",
        "TD": "Çad",
        "TF": "Territoret Australiane Franceze",
        "TH": "Tajlandë",
        "TJ": "Taxhikistan",
        "TL": "Timori Lindor",
        "TN": "Tunizi",
        "TR": "Turqi",
        "TT": "Trinidad e Tobago",
        "TW": "Tajvan",
        "TZ": "Tanzani",
        "UA": "Ukrainë",
        "UG": "Ugandë",
        "UM": "Ishujt periferikë të SHBA-së",
        "US": "Shtetet e Bashkuara të Amerikës",
        "UY": "Uruguai",
        "VA": "Vatikan",
        "VC": "Shën Vinsent dhe Grenadinet",
        "VE": "Venezuelë",
        "VG": "Ishujt e Virgjër Britanikë",
        "VI": "Ishujt e Virgjër Amerikanë",
        "WF": "Uollis e Futina",
        "XK": "Kosovë",
        "YE": "Jemen",
        "YT": "Majotë",
        "ZA": "Afrika e Jugut",
        "ZM": "Zambi",
        "ZW": "Zimbabve",
        "ZZ": "Rajon i panjohur"
    };
  }-*/;
}
