AFRICAN_COUNTRIES = {
    "DZ": "Algeria",
    "AO": "Angola",
    "BJ": "Benin",
    "BW": "Botswana",
    "BF": "Burkina Faso",
    "BI": "Burundi",
    "CM": "Cameroon",
    "CV": "Cape Verde",
    "CF": "Central African Republic",
    "TD": "Chad",
    "KM": "Comoros",
    "CG": "Congo",
    "CD": "Democratic Republic of the Congo",
    "DJ": "Djibouti",
    "EG": "Egypt",
    "GQ": "Equatorial Guinea",
    "ER": "Eritrea",
    "ET": "Ethiopia",
    "GA": "Gabon",
    "GM": "Gambia",
    "GH": "Ghana",
    "GN": "Guinea",
    "GW": "Guinea-Bissau",
    "CI": "Côte d'Ivoire",
    "KE": "Kenya",
    "LS": "Lesotho",
    "LR": "Liberia",
    "LY": "Libya",
    "MG": "Madagascar",
    "MW": "Malawi",
    "ML": "Mali",
    "MR": "Mauritania",
    "MU": "Mauritius",
    "MA": "Morocco",
    "MZ": "Mozambique",
    "NA": "Namibia",
    "NE": "Niger",
    "NG": "Nigeria",
    "RW": "Rwanda",
    "ST": "São Tomé and Príncipe",
    "SN": "Senegal",
    "SC": "Seychelles",
    "SL": "Sierra Leone",
    "SO": "Somalia",
    "ZA": "South Africa",
    "SS": "South Sudan",
    "SD": "Sudan",
    "SZ": "Eswatini",
    "TZ": "Tanzania",
    "TG": "Togo",
    "TN": "Tunisia",
    "UG": "Uganda",
    "ZM": "Zambia",
    "ZW": "Zimbabwe",
}

ASIAN_COUNTRIES = {
    "AF": "Afghanistan",
    "AM": "Armenia",
    "AZ": "Azerbaijan",
    "BH": "Bahrain",
    "BD": "Bangladesh",
    "BT": "Bhutan",
    "BN": "Brunei",
    "KH": "Cambodia",
    "CN": "China",
    "CY": "Cyprus",
    "GE": "Georgia",
    "IN": "India",
    "ID": "Indonesia",
    "IR": "Iran",
    "IQ": "Iraq",
    "IL": "Israel",
    "JP": "Japan",
    "JO": "Jordan",
    "KZ": "Kazakhstan",
    "KW": "Kuwait",
    "KG": "Kyrgyzstan",
    "LA": "Laos",
    "LB": "Lebanon",
    "MY": "Malaysia",
    "MV": "Maldives",
    "MN": "Mongolia",
    "MM": "Myanmar",
    "NP": "Nepal",
    "KP": "North Korea",
    "OM": "Oman",
    "PK": "Pakistan",
    "PS": "Palestine",
    "PH": "Philippines",
    "QA": "Qatar",
    "SA": "Saudi Arabia",
    "SG": "Singapore",
    "KR": "South Korea",
    "LK": "Sri Lanka",
    "SY": "Syria",
    "TW": "Taiwan",
    "TJ": "Tajikistan",
    "TH": "Thailand",
    "TR": "Turkey",
    "TM": "Turkmenistan",
    "AE": "United Arab Emirates",
    "UZ": "Uzbekistan",
    "VN": "Vietnam",
    "YE": "Yemen",
}

EUROPEAN_COUNTRIES = {
    "AL": "Albania",
    "AC": "Ascension Island (UK)",
    "AD": "Andorra",
    "AI": "Anguilla (UK)",
    "AT": "Austria",
    "AW": "Aruba (Netherlands)",
    "AX": "Aland Islands (Finland)",
    "BE": "Belgium",
    "BA": "Bosnia and Herzegovina",
    "BG": "Bulgaria",
    "BM": "Bermuda (UK)",
    "BQ": "Bonaire (Netherlands)",
    "BY": "Belarus",
    "HR": "Croatia",
    "CY": "Cyprus",
    "CZ": "Czech Republic",
    "DK": "Denmark",
    "EE": "Estonia",
    "FI": "Finland",
    "FR": "France",
    "DE": "Germany",
    "GR": "Greece",
    "HU": "Hungary",
    "IO": "British Indian Ocean Territory (UK)",
    "IS": "Iceland",
    "IE": "Ireland",
    "IT": "Italy",
    "XK": "Kosovo",
    "LV": "Latvia",
    "LI": "Liechtenstein",
    "LT": "Lithuania",
    "LU": "Luxembourg",
    "MK": "North Macedonia",
    "MT": "Malta",
    "MD": "Moldova",
    "MC": "Monaco",
    "ME": "Montenegro",
    "NL": "Netherlands",
    "NO": "Norway",
    "PL": "Poland",
    "PT": "Portugal",
    "RO": "Romania",
    "RU": "Russia",
    "SM": "San Marino",
    "RS": "Serbia",
    "SK": "Slovakia",
    "SI": "Slovenia",
    "ES": "Spain",
    "SE": "Sweden",
    "CH": "Switzerland",
    "UA": "Ukraine",
    "GB": "United Kingdom",
    "VA": "Vatican City",
    "VG": "British Virgin Islands (UK)",
}

NORTH_AMERICAN_COUNTRIES = {
    "AS": "American Samoa (USA)",
    "CA": "Canada",
    "US": "United States",
    "MX": "Mexico",
    "GT": "Guatemala",
    "BZ": "Belize",
    "SV": "El Salvador",
    "HN": "Honduras",
    "NI": "Nicaragua",
    "CR": "Costa Rica",
    "PA": "Panama",
    "BS": "Bahamas",
    "CU": "Cuba",
    "JM": "Jamaica",
    "HT": "Haiti",
    "DO": "Dominican Republic",
    "PR": "Puerto Rico",
    "KN": "Saint Kitts and Nevis",
    "AG": "Antigua and Barbuda",
    "DM": "Dominica",
    "VC": "Saint Vincent and the Grenadines",
    "LC": "Saint Lucia",
    "GD": "Grenada",
    "BB": "Barbados",
    "TT": "Trinidad and Tobago",
}

SOUTH_AMERICAN_COUNTRIES = {
    "AR": "Argentina",
    "BO": "Bolivia",
    "BR": "Brazil",
    "CL": "Chile",
    "CO": "Colombia",
    "EC": "Ecuador",
    "GY": "Guyana",
    "PE": "Peru",
    "PY": "Paraguay",
    "SR": "Suriname",
    "UY": "Uruguay",
    "VE": "Venezuela",
}

OCEANIA_COUNTRIES = {
    "AU": "Australia",
    "FJ": "Fiji",
    "KI": "Kiribati",
    "MH": "Marshall Islands",
    "FM": "Micronesia",
    "NR": "Nauru",
    "NZ": "New Zealand",
    "PW": "Palau",
    "PG": "Papua New Guinea",
    "WS": "Samoa",
    "SB": "Solomon Islands",
    "TO": "Tonga",
    "TV": "Tuvalu",
    "VU": "Vanuatu",
}

ALL_COUNTRIES = [
    AFRICAN_COUNTRIES,
    ASIAN_COUNTRIES,
    EUROPEAN_COUNTRIES,
    NORTH_AMERICAN_COUNTRIES,
    OCEANIA_COUNTRIES,
    SOUTH_AMERICAN_COUNTRIES,
]

UNKNOWN_COUNTRY = "Unknown Country"
UNKNOWN_ISO = "Unknown ISO"

APAC_COUNTRY_REGIONS = {
    **ASIAN_COUNTRIES,
    **OCEANIA_COUNTRIES,
}
EUROPEAN_COUNTRY_KEYS = EUROPEAN_COUNTRIES.keys()

EMERGING_MARKET_INSTRUMENT_GROUP = ["SSA", "SAS"]
XS_COUNTRY_ISO_CODES = ["XS"]
# EMASIA, CEEMEA, LATAM
LATAM_EMERGING_MARKETS = [
    "MX",
    "CL",
    "PE",
    "BR",
    "AR",
    "CR",
    "CO",
    "DO",
    "UY",
    "VE",
    "SV",
    "BS",
    "TT",
    "JM",
    "BB",
    "EC",
    "PY",
    "HN",
    "BO",
    "CW",
    "PA",
]
CEEMEA_EMERGING_MARKETS = [
    "PL",
    "HU",
    "CZ",
    "RO",
    "ZA",
    "RU",
    "TR",
    "IL",
    "EG",
    "GH",
    "IS",
    "KE",
    "KZ",
    "NG",
    "RS",
    "SI",
    "SK",
    "UA",
    "ZM",
    "LT",
    "LV",
    "CY",
    "EE",
    "BH",
    "KW",
    "OM",
    "QA",
    "SA",
    "AE",
    "EG",
    "BI",
    "SN",
    "CI",
    "TN",
    "MA",
    "CG",
    "BJ",
]
EMASIA_EMRGING_MARKETS = [
    "IN",
    "SG",
    "ID",
    "MY",
    "TH",
    "KR",
    "TW",
    "CN",
    "LK",
    "PH",
    "VN",
    "HK",
    "MU",
    "MH",
    "TJ",
    "LB",
    "JO",
]
EMERGING_MARKETS = {
    "LATAM": LATAM_EMERGING_MARKETS,
    "CEEMA": CEEMEA_EMERGING_MARKETS,
    "EMASIA": EMASIA_EMRGING_MARKETS,
}
