/*
 * 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",
        "XA",
        "XB",
        "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("202", "Afrika južno od Sahare");
    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",
        "202": "Afrika južno od Sahare",
        "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"
    };
  }-*/;
}
