/*
 * Copyright 2012 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

/**
 * Localized names for the "sr_Latn" locale.
 */
public class LocalizedNamesImpl_sr_Latn extends LocalizedNamesImpl_sr {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "svet");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Severnoamerički kontinent");
    namesMap.put("005", "Južna Amerika");
    namesMap.put("009", "Okeanija");
    namesMap.put("011", "Zapadna Afrika");
    namesMap.put("013", "Centralna Amerika");
    namesMap.put("014", "Istočna Afrika");
    namesMap.put("015", "Severna Afrika");
    namesMap.put("017", "Centralna Afrika");
    namesMap.put("018", "Južna Afrika");
    namesMap.put("019", "Severna i Južna Amerika");
    namesMap.put("021", "Severna Amerika");
    namesMap.put("029", "Karibi");
    namesMap.put("030", "Istočna Azija");
    namesMap.put("034", "Južna Azija");
    namesMap.put("035", "Jugoistočna Azija");
    namesMap.put("039", "Južna Evropa");
    namesMap.put("053", "Australija i Novi Zeland");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "Mikronezijski region");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Centralna Azija");
    namesMap.put("145", "Zapadna Azija");
    namesMap.put("150", "Evropa");
    namesMap.put("151", "Istočna Evropa");
    namesMap.put("154", "Severna Evropa");
    namesMap.put("155", "Zapadna Evropa");
    namesMap.put("419", "Latinska Amerika");
    namesMap.put("AC", "Ostrvo Asension");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Ujedinjeni Arapski Emirati");
    namesMap.put("AF", "Avganistan");
    namesMap.put("AG", "Antigva i Barbuda");
    namesMap.put("AI", "Angvila");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Jermenija");
    namesMap.put("AO", "Angola");
    namesMap.put("AQ", "Antarktik");
    namesMap.put("AR", "Argentina");
    namesMap.put("AS", "Američka Samoa");
    namesMap.put("AT", "Austrija");
    namesMap.put("AU", "Australija");
    namesMap.put("AW", "Aruba");
    namesMap.put("AX", "Olandska Ostrva");
    namesMap.put("AZ", "Azerbejdžan");
    namesMap.put("BA", "Bosna i Hercegovina");
    namesMap.put("BB", "Barbados");
    namesMap.put("BD", "Bangladeš");
    namesMap.put("BE", "Belgija");
    namesMap.put("BF", "Burkina Faso");
    namesMap.put("BG", "Bugarska");
    namesMap.put("BH", "Bahrein");
    namesMap.put("BI", "Burundi");
    namesMap.put("BJ", "Benin");
    namesMap.put("BL", "Sveti Bartolomej");
    namesMap.put("BM", "Bermuda");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Karipska Holandija");
    namesMap.put("BR", "Brazil");
    namesMap.put("BS", "Bahami");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Ostrvo Buve");
    namesMap.put("BW", "Bocvana");
    namesMap.put("BY", "Belorusija");
    namesMap.put("BZ", "Belize");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosova (Kilingova) Ostrva");
    namesMap.put("CD", "Kongo - Kinšasa");
    namesMap.put("CF", "Centralnoafrička Republika");
    namesMap.put("CG", "Kongo - Brazavil");
    namesMap.put("CH", "Švajcarska");
    namesMap.put("CI", "Obala Slonovače (Kot d’Ivoar)");
    namesMap.put("CK", "Kukova Ostrva");
    namesMap.put("CL", "Čile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kina");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Ostrvo Kliperton");
    namesMap.put("CR", "Kostarika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Zelenortska Ostrva");
    namesMap.put("CW", "Kurasao");
    namesMap.put("CX", "Božićno Ostrvo");
    namesMap.put("CY", "Kipar");
    namesMap.put("CZ", "Češka");
    namesMap.put("DE", "Nemačka");
    namesMap.put("DG", "Dijego Garsija");
    namesMap.put("DJ", "Džibuti");
    namesMap.put("DK", "Danska");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikanska Republika");
    namesMap.put("DZ", "Alžir");
    namesMap.put("EA", "Seuta i Melilja");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estonija");
    namesMap.put("EG", "Egipat");
    namesMap.put("EH", "Zapadna Sahara");
    namesMap.put("ER", "Eritreja");
    namesMap.put("ES", "Španija");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Evropska Unija");
    namesMap.put("EZ", "Evrozona");
    namesMap.put("FI", "Finska");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Foklandska Ostrva");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Farska Ostrva");
    namesMap.put("FR", "Francuska");
    namesMap.put("GA", "Gabon");
    namesMap.put("GB", "Ujedinjeno Kraljevstvo");
    namesMap.put("GD", "Grenada");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Francuska Gvajana");
    namesMap.put("GG", "Gernzi");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Gibraltar");
    namesMap.put("GL", "Grenland");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvineja");
    namesMap.put("GP", "Gvadelup");
    namesMap.put("GQ", "Ekvatorijalna Gvineja");
    namesMap.put("GR", "Grčka");
    namesMap.put("GS", "Južna Džordžija i Južna Sendvička Ostrva");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GU", "Guam");
    namesMap.put("GW", "Gvineja-Bisao");
    namesMap.put("GY", "Gvajana");
    namesMap.put("HK", "SAR Hongkong (Kina)");
    namesMap.put("HM", "Ostrvo Herd i Mekdonaldova ostrva");
    namesMap.put("HN", "Honduras");
    namesMap.put("HR", "Hrvatska");
    namesMap.put("HT", "Haiti");
    namesMap.put("HU", "Mađarska");
    namesMap.put("IC", "Kanarska Ostrva");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Irska");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Ostrvo Man");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Britanska teritorija Indijskog okeana");
    namesMap.put("IQ", "Irak");
    namesMap.put("IR", "Iran");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Italija");
    namesMap.put("JE", "Džerzi");
    namesMap.put("JM", "Jamajka");
    namesMap.put("JO", "Jordan");
    namesMap.put("JP", "Japan");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgistan");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KI", "Kiribati");
    namesMap.put("KM", "Komorska Ostrva");
    namesMap.put("KN", "Sent Kits i Nevis");
    namesMap.put("KP", "Severna Koreja");
    namesMap.put("KR", "Južna Koreja");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Kajmanska Ostrva");
    namesMap.put("KZ", "Kazahstan");
    namesMap.put("LA", "Laos");
    namesMap.put("LB", "Liban");
    namesMap.put("LC", "Sveta Lucija");
    namesMap.put("LI", "Lihtenštajn");
    namesMap.put("LK", "Šri Lanka");
    namesMap.put("LR", "Liberija");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Litvanija");
    namesMap.put("LU", "Luksemburg");
    namesMap.put("LV", "Letonija");
    namesMap.put("LY", "Libija");
    namesMap.put("MA", "Maroko");
    namesMap.put("MC", "Monako");
    namesMap.put("MD", "Moldavija");
    namesMap.put("ME", "Crna Gora");
    namesMap.put("MF", "Sveti Martin (Francuska)");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Maršalska Ostrva");
    namesMap.put("MK", "Makedonija");
    namesMap.put("ML", "Mali");
    namesMap.put("MM", "Mijanmar (Burma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "SAR Makao (Kina)");
    namesMap.put("MP", "Severna Marijanska Ostrva");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Mauritanija");
    namesMap.put("MS", "Monserat");
    namesMap.put("MT", "Malta");
    namesMap.put("MU", "Mauricijus");
    namesMap.put("MV", "Maldivi");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Meksiko");
    namesMap.put("MY", "Malezija");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Nova Kaledonija");
    namesMap.put("NE", "Niger");
    namesMap.put("NF", "Ostrvo Norfok");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Holandija");
    namesMap.put("NO", "Norveška");
    namesMap.put("NP", "Nepal");
    namesMap.put("NR", "Nauru");
    namesMap.put("NU", "Niue");
    namesMap.put("NZ", "Novi Zeland");
    namesMap.put("OM", "Oman");
    namesMap.put("PA", "Panama");
    namesMap.put("PE", "Peru");
    namesMap.put("PF", "Francuska Polinezija");
    namesMap.put("PG", "Papua Nova Gvineja");
    namesMap.put("PH", "Filipini");
    namesMap.put("PK", "Pakistan");
    namesMap.put("PL", "Poljska");
    namesMap.put("PM", "Sen Pjer i Mikelon");
    namesMap.put("PN", "Pitkern");
    namesMap.put("PR", "Portoriko");
    namesMap.put("PS", "Palestinske teritorije");
    namesMap.put("PT", "Portugalija");
    namesMap.put("PW", "Palau");
    namesMap.put("PY", "Paragvaj");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Okeanija (udaljena ostrva)");
    namesMap.put("RE", "Reinion");
    namesMap.put("RO", "Rumunija");
    namesMap.put("RS", "Srbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudijska Arabija");
    namesMap.put("SB", "Solomonska Ostrva");
    namesMap.put("SC", "Sejšeli");
    namesMap.put("SD", "Sudan");
    namesMap.put("SE", "Švedska");
    namesMap.put("SG", "Singapur");
    namesMap.put("SH", "Sveta Jelena");
    namesMap.put("SI", "Slovenija");
    namesMap.put("SJ", "Svalbard i Jan Majen");
    namesMap.put("SK", "Slovačka");
    namesMap.put("SL", "Sijera Leone");
    namesMap.put("SM", "San Marino");
    namesMap.put("SN", "Senegal");
    namesMap.put("SO", "Somalija");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Južni Sudan");
    namesMap.put("ST", "Sao Tome i Principe");
    namesMap.put("SV", "Salvador");
    namesMap.put("SX", "Sveti Martin (Holandija)");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazilend");
    namesMap.put("TA", "Tristan da Kunja");
    namesMap.put("TC", "Ostrva Turks i Kaikos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francuske Južne Teritorije");
    namesMap.put("TG", "Togo");
    namesMap.put("TH", "Tajland");
    namesMap.put("TJ", "Tadžikistan");
    namesMap.put("TK", "Tokelau");
    namesMap.put("TL", "Timor-Leste (Istočni Timor)");
    namesMap.put("TM", "Turkmenistan");
    namesMap.put("TN", "Tunis");
    namesMap.put("TO", "Tonga");
    namesMap.put("TR", "Turska");
    namesMap.put("TT", "Trinidad i Tobago");
    namesMap.put("TV", "Tuvalu");
    namesMap.put("TW", "Tajvan");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukrajina");
    namesMap.put("UG", "Uganda");
    namesMap.put("UM", "Udaljena ostrva SAD");
    namesMap.put("UN", "Ujedinjene nacije");
    namesMap.put("US", "Sjedinjene Države");
    namesMap.put("UY", "Urugvaj");
    namesMap.put("UZ", "Uzbekistan");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Sent Vinsent i Grenadini");
    namesMap.put("VE", "Venecuela");
    namesMap.put("VG", "Britanska Devičanska Ostrva");
    namesMap.put("VI", "Američka Devičanska Ostrva");
    namesMap.put("VN", "Vijetnam");
    namesMap.put("VU", "Vanuatu");
    namesMap.put("WF", "Valis i Futuna");
    namesMap.put("WS", "Samoa");
    namesMap.put("XK", "Kosovo");
    namesMap.put("YE", "Jemen");
    namesMap.put("YT", "Majot");
    namesMap.put("ZA", "Južnoafrička Republika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "Nepoznat region");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "svet",
        "002": "Afrika",
        "003": "Severnoamerički kontinent",
        "005": "Južna Amerika",
        "009": "Okeanija",
        "011": "Zapadna Afrika",
        "013": "Centralna Amerika",
        "014": "Istočna Afrika",
        "015": "Severna Afrika",
        "017": "Centralna Afrika",
        "018": "Južna Afrika",
        "019": "Severna i Južna Amerika",
        "021": "Severna Amerika",
        "029": "Karibi",
        "030": "Istočna Azija",
        "034": "Južna Azija",
        "035": "Jugoistočna Azija",
        "039": "Južna Evropa",
        "053": "Australija i Novi Zeland",
        "054": "Melanezija",
        "057": "Mikronezijski region",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Centralna Azija",
        "145": "Zapadna Azija",
        "150": "Evropa",
        "151": "Istočna Evropa",
        "154": "Severna Evropa",
        "155": "Zapadna Evropa",
        "419": "Latinska Amerika",
        "AC": "Ostrvo Asension",
        "AD": "Andora",
        "AE": "Ujedinjeni Arapski Emirati",
        "AF": "Avganistan",
        "AG": "Antigva i Barbuda",
        "AI": "Angvila",
        "AL": "Albanija",
        "AM": "Jermenija",
        "AO": "Angola",
        "AQ": "Antarktik",
        "AR": "Argentina",
        "AS": "Američka Samoa",
        "AT": "Austrija",
        "AU": "Australija",
        "AW": "Aruba",
        "AX": "Olandska Ostrva",
        "AZ": "Azerbejdžan",
        "BA": "Bosna i Hercegovina",
        "BB": "Barbados",
        "BD": "Bangladeš",
        "BE": "Belgija",
        "BF": "Burkina Faso",
        "BG": "Bugarska",
        "BH": "Bahrein",
        "BI": "Burundi",
        "BJ": "Benin",
        "BL": "Sveti Bartolomej",
        "BM": "Bermuda",
        "BN": "Brunej",
        "BO": "Bolivija",
        "BQ": "Karipska Holandija",
        "BR": "Brazil",
        "BS": "Bahami",
        "BT": "Butan",
        "BV": "Ostrvo Buve",
        "BW": "Bocvana",
        "BY": "Belorusija",
        "BZ": "Belize",
        "CA": "Kanada",
        "CC": "Kokosova (Kilingova) Ostrva",
        "CD": "Kongo - Kinšasa",
        "CF": "Centralnoafrička Republika",
        "CG": "Kongo - Brazavil",
        "CH": "Švajcarska",
        "CI": "Obala Slonovače (Kot d’Ivoar)",
        "CK": "Kukova Ostrva",
        "CL": "Čile",
        "CM": "Kamerun",
        "CN": "Kina",
        "CO": "Kolumbija",
        "CP": "Ostrvo Kliperton",
        "CR": "Kostarika",
        "CU": "Kuba",
        "CV": "Zelenortska Ostrva",
        "CW": "Kurasao",
        "CX": "Božićno Ostrvo",
        "CY": "Kipar",
        "CZ": "Češka",
        "DE": "Nemačka",
        "DG": "Dijego Garsija",
        "DJ": "Džibuti",
        "DK": "Danska",
        "DM": "Dominika",
        "DO": "Dominikanska Republika",
        "DZ": "Alžir",
        "EA": "Seuta i Melilja",
        "EC": "Ekvador",
        "EE": "Estonija",
        "EG": "Egipat",
        "EH": "Zapadna Sahara",
        "ER": "Eritreja",
        "ES": "Španija",
        "ET": "Etiopija",
        "EU": "Evropska Unija",
        "EZ": "Evrozona",
        "FI": "Finska",
        "FJ": "Fidži",
        "FK": "Foklandska Ostrva",
        "FM": "Mikronezija",
        "FO": "Farska Ostrva",
        "FR": "Francuska",
        "GA": "Gabon",
        "GB": "Ujedinjeno Kraljevstvo",
        "GD": "Grenada",
        "GE": "Gruzija",
        "GF": "Francuska Gvajana",
        "GG": "Gernzi",
        "GH": "Gana",
        "GI": "Gibraltar",
        "GL": "Grenland",
        "GM": "Gambija",
        "GN": "Gvineja",
        "GP": "Gvadelup",
        "GQ": "Ekvatorijalna Gvineja",
        "GR": "Grčka",
        "GS": "Južna Džordžija i Južna Sendvička Ostrva",
        "GT": "Gvatemala",
        "GU": "Guam",
        "GW": "Gvineja-Bisao",
        "GY": "Gvajana",
        "HK": "SAR Hongkong (Kina)",
        "HM": "Ostrvo Herd i Mekdonaldova ostrva",
        "HN": "Honduras",
        "HR": "Hrvatska",
        "HT": "Haiti",
        "HU": "Mađarska",
        "IC": "Kanarska Ostrva",
        "ID": "Indonezija",
        "IE": "Irska",
        "IL": "Izrael",
        "IM": "Ostrvo Man",
        "IN": "Indija",
        "IO": "Britanska teritorija Indijskog okeana",
        "IQ": "Irak",
        "IR": "Iran",
        "IS": "Island",
        "IT": "Italija",
        "JE": "Džerzi",
        "JM": "Jamajka",
        "JO": "Jordan",
        "JP": "Japan",
        "KE": "Kenija",
        "KG": "Kirgistan",
        "KH": "Kambodža",
        "KI": "Kiribati",
        "KM": "Komorska Ostrva",
        "KN": "Sent Kits i Nevis",
        "KP": "Severna Koreja",
        "KR": "Južna Koreja",
        "KW": "Kuvajt",
        "KY": "Kajmanska Ostrva",
        "KZ": "Kazahstan",
        "LA": "Laos",
        "LB": "Liban",
        "LC": "Sveta Lucija",
        "LI": "Lihtenštajn",
        "LK": "Šri Lanka",
        "LR": "Liberija",
        "LS": "Lesoto",
        "LT": "Litvanija",
        "LU": "Luksemburg",
        "LV": "Letonija",
        "LY": "Libija",
        "MA": "Maroko",
        "MC": "Monako",
        "MD": "Moldavija",
        "ME": "Crna Gora",
        "MF": "Sveti Martin (Francuska)",
        "MG": "Madagaskar",
        "MH": "Maršalska Ostrva",
        "MK": "Makedonija",
        "ML": "Mali",
        "MM": "Mijanmar (Burma)",
        "MN": "Mongolija",
        "MO": "SAR Makao (Kina)",
        "MP": "Severna Marijanska Ostrva",
        "MQ": "Martinik",
        "MR": "Mauritanija",
        "MS": "Monserat",
        "MT": "Malta",
        "MU": "Mauricijus",
        "MV": "Maldivi",
        "MW": "Malavi",
        "MX": "Meksiko",
        "MY": "Malezija",
        "MZ": "Mozambik",
        "NA": "Namibija",
        "NC": "Nova Kaledonija",
        "NE": "Niger",
        "NF": "Ostrvo Norfok",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Holandija",
        "NO": "Norveška",
        "NP": "Nepal",
        "NR": "Nauru",
        "NU": "Niue",
        "NZ": "Novi Zeland",
        "OM": "Oman",
        "PA": "Panama",
        "PE": "Peru",
        "PF": "Francuska Polinezija",
        "PG": "Papua Nova Gvineja",
        "PH": "Filipini",
        "PK": "Pakistan",
        "PL": "Poljska",
        "PM": "Sen Pjer i Mikelon",
        "PN": "Pitkern",
        "PR": "Portoriko",
        "PS": "Palestinske teritorije",
        "PT": "Portugalija",
        "PW": "Palau",
        "PY": "Paragvaj",
        "QA": "Katar",
        "QO": "Okeanija (udaljena ostrva)",
        "RE": "Reinion",
        "RO": "Rumunija",
        "RS": "Srbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudijska Arabija",
        "SB": "Solomonska Ostrva",
        "SC": "Sejšeli",
        "SD": "Sudan",
        "SE": "Švedska",
        "SG": "Singapur",
        "SH": "Sveta Jelena",
        "SI": "Slovenija",
        "SJ": "Svalbard i Jan Majen",
        "SK": "Slovačka",
        "SL": "Sijera Leone",
        "SM": "San Marino",
        "SN": "Senegal",
        "SO": "Somalija",
        "SR": "Surinam",
        "SS": "Južni Sudan",
        "ST": "Sao Tome i Principe",
        "SV": "Salvador",
        "SX": "Sveti Martin (Holandija)",
        "SY": "Sirija",
        "SZ": "Svazilend",
        "TA": "Tristan da Kunja",
        "TC": "Ostrva Turks i Kaikos",
        "TD": "Čad",
        "TF": "Francuske Južne Teritorije",
        "TG": "Togo",
        "TH": "Tajland",
        "TJ": "Tadžikistan",
        "TK": "Tokelau",
        "TL": "Timor-Leste (Istočni Timor)",
        "TM": "Turkmenistan",
        "TN": "Tunis",
        "TO": "Tonga",
        "TR": "Turska",
        "TT": "Trinidad i Tobago",
        "TV": "Tuvalu",
        "TW": "Tajvan",
        "TZ": "Tanzanija",
        "UA": "Ukrajina",
        "UG": "Uganda",
        "UM": "Udaljena ostrva SAD",
        "UN": "Ujedinjene nacije",
        "US": "Sjedinjene Države",
        "UY": "Urugvaj",
        "UZ": "Uzbekistan",
        "VA": "Vatikan",
        "VC": "Sent Vinsent i Grenadini",
        "VE": "Venecuela",
        "VG": "Britanska Devičanska Ostrva",
        "VI": "Američka Devičanska Ostrva",
        "VN": "Vijetnam",
        "VU": "Vanuatu",
        "WF": "Valis i Futuna",
        "WS": "Samoa",
        "XK": "Kosovo",
        "YE": "Jemen",
        "YT": "Majot",
        "ZA": "Južnoafrička Republika",
        "ZM": "Zambija",
        "ZW": "Zimbabve",
        "ZZ": "Nepoznat region"
    };
  }-*/;
}
