out += `};\n`;
out += `const int display_names_count = sizeof(display_names_data) / sizeof(display_names_data[0]);\n`;
+/* ------------------------------------------------------------------ */
+/* UTS 35 supplemental data: likely subtags, calendar preference, */
+/* time data, week data and script direction. */
+/* ------------------------------------------------------------------ */
+const CLDR_CORE_BASE = path.join(path.dirname(CLDR_BASE), '..', 'cldr-core');
+
+function readSupplementalJSON(rel) {
+ return JSON.parse(fs.readFileSync(path.join(CLDR_CORE_BASE, rel), 'utf8'));
+}
+
+/* --- Likely subtags --- */
+const likelySubtags = readSupplementalJSON('supplemental/likelySubtags.json')['supplemental']['likelySubtags'];
+const likelySubtagKeys = Object.keys(likelySubtags).sort();
+out += `\n/* Add Likely Subtags data (UTS 35). Each entry is "key\\000value" where the\n`
+ + ` key is language[-script][-region] and the value is language-script-region. */\n`;
+out += `const char *const likely_subtags_tab[] = {\n`;
+for (const k of likelySubtagKeys) {
+ out += ` "${escapeCString(k)}\\000${escapeCString(likelySubtags[k])}",\n`;
+}
+out += `};\n`;
+out += `const int likely_subtags_count = sizeof(likely_subtags_tab) / sizeof(likely_subtags_tab[0]);\n`;
+
+/* --- Calendar preference data (UTS 35 Part 4, Calendar Preference Data) --- */
+const calendarPreference = readSupplementalJSON('supplemental/calendarPreferenceData.json')['supplemental']['calendarPreferenceData'];
+const calPrefKeys = Object.keys(calendarPreference).sort();
+out += `\n/* Calendar preference data: locale or region -> calendars by descending preference */\n`;
+out += `const IntlPrefData cal_pref_tab[] = {\n`;
+for (const k of calPrefKeys) {
+ out += ` { "${escapeCString(k)}", "${escapeCString(calendarPreference[k].join(' '))}" },\n`;
+}
+out += `};\n`;
+out += `const int cal_pref_count = sizeof(cal_pref_tab) / sizeof(cal_pref_tab[0]);\n`;
+
+/* --- Time data (UTS 35 Part 4, Time Data) --- */
+const timeData = readSupplementalJSON('supplemental/timeData.json')['supplemental']['timeData'];
+function hourCycleOf(token) {
+ switch (token) {
+ case 'h': case 'hb': case 'hB': return 'h12';
+ case 'H': return 'h23';
+ case 'K': return 'h11';
+ case 'k': return 'h24';
+ default: return null;
+ }
+}
+const timeDataKeys = Object.keys(timeData).sort();
+out += `\n/* Time data: locale or region -> hour cycles by descending preference */\n`;
+out += `const IntlPrefData time_data_tab[] = {\n`;
+for (const k of timeDataKeys) {
+ const entry = timeData[k];
+ const ordered = (entry['_preferred'] + ' ' + entry['_allowed']).split(/\s+/);
+ const cycles = [];
+ for (const tok of ordered) {
+ const hc = hourCycleOf(tok);
+ if (hc && !cycles.includes(hc)) cycles.push(hc);
+ }
+ if (cycles.length == 0) continue;
+ out += ` { "${escapeCString(k)}", "${cycles.join(' ')}" },\n`;
+}
+out += `};\n`;
+out += `const int time_data_count = sizeof(time_data_tab) / sizeof(time_data_tab[0]);\n`;
+
+/* --- Week data (UTS 35 Part 4, Week Data) --- */
+const weekData = readSupplementalJSON('supplemental/weekData.json')['supplemental']['weekData'];
+const dayToNumber = { mon: 1, tue: 2, wed: 3, thu: 4, fri: 5, sat: 6, sun: 7 };
+const firstDay001 = dayToNumber[weekData['firstDay']['001']];
+const weekendStart001 = dayToNumber[weekData['weekendStart']['001']];
+const weekendEnd001 = dayToNumber[weekData['weekendEnd']['001']];
+const weekRegions = new Set();
+for (const name of ['firstDay', 'weekendStart', 'weekendEnd']) {
+ for (const region of Object.keys(weekData[name])) {
+ if (region.indexOf('-') < 0) weekRegions.add(region);
+ }
+}
+const weekRegionKeys = Array.from(weekRegions).sort();
+out += `\n/* Week data: region -> first day of week and weekend range (ISO 8601 days) */\n`;
+out += `const IntlWeekData week_data_tab[] = {\n`;
+for (const region of weekRegionKeys) {
+ const fd = dayToNumber[weekData['firstDay'][region]] || firstDay001;
+ const ws = dayToNumber[weekData['weekendStart'][region]] || weekendStart001;
+ const we = dayToNumber[weekData['weekendEnd'][region]] || weekendEnd001;
+ out += ` { "${escapeCString(region)}", ${fd}, ${ws}, ${we} },\n`;
+}
+out += `};\n`;
+out += `const int week_data_count = sizeof(week_data_tab) / sizeof(week_data_tab[0]);\n`;
+
+/* --- Script direction (UTS 35 Part 1, Script Metadata) --- */
+const scriptMetadata = readSupplementalJSON('scriptMetadata.json')['scriptMetadata'];
+const scriptDirKeys = Object.keys(scriptMetadata).filter(s => {
+ const rtl = scriptMetadata[s].rtl;
+ return rtl === 'YES' || rtl === 'NO';
+}).sort();
+out += `\n/* Script direction: script -> 0 for left-to-right, 1 for right-to-left */\n`;
+out += `const IntlScriptDir script_dir_tab[] = {\n`;
+for (const s of scriptDirKeys) {
+ out += ` { "${escapeCString(s)}", ${scriptMetadata[s].rtl === 'YES' ? 1 : 0} },\n`;
+}
+out += `};\n`;
+out += `const int script_dir_count = sizeof(script_dir_tab) / sizeof(script_dir_tab[0]);\n`;
+
const displayCurrencyCodesSorted = Array.from(allDisplayCurrencyCodes).sort();
out += `\nconst char *intl_supported_currencies[] = {\n`;
for (let i = 0; i < displayCurrencyCodesSorted.length; i++) {
return sorted(names)
+def collect_region_zones():
+ """Map ISO 3166 country codes to the zone identifiers of zone.tab."""
+ regions = {}
+ with open('/usr/share/zoneinfo/zone.tab', encoding='utf-8') as fp:
+ for line in fp:
+ line = line.rstrip('\n')
+ if not line or line.startswith('#'):
+ continue
+ fields = line.split('\t')
+ if len(fields) < 3:
+ continue
+ regions.setdefault(fields[0], []).append(fields[2])
+ for zones in regions.values():
+ zones.sort()
+ return regions
+
+
def collect_all_zones():
"""Return set of canonical zones plus aliases."""
zones = set(NEEDED_ZONES)
for name in zone_names:
f.write(f' "{name}",\n')
f.write('};\n')
- f.write('const int ti_tz_name_count = countof(ti_tz_names);\n')
+ f.write('const int ti_tz_name_count = countof(ti_tz_names);\n\n')
+
+ # Zones commonly used in each region (Intl.Locale.prototype.getTimeZones)
+ region_zones = collect_region_zones()
+ f.write('/* Zone identifiers commonly used in each region, sorted and zero separated */\n')
+ f.write('const TiTzRegion ti_tz_region_tab[] = {\n')
+ for region in sorted(region_zones):
+ zones = '\\000'.join(region_zones[region])
+ f.write(f' {{ "{region}", "{zones}" }},\n')
+ f.write('};\n')
+ f.write('const int ti_tz_region_count = countof(ti_tz_region_tab);\n')
- print(f"Generated {out_path}: {len(canonical_list)} canonical zones, {len(alias_list)} aliases, {len(zone_names)} zone names", file=sys.stderr)
+ print(f"Generated {out_path}: {len(canonical_list)} canonical zones, {len(alias_list)} aliases, {len(zone_names)} zone names, {len(region_zones)} regions", file=sys.stderr)
if __name__ == "__main__":
main()
{
if (!strcmp(collation, "default"))
return 1;
+ /* the root collations are inherited by every locale */
+ if (!strcmp(collation, "emoji") || !strcmp(collation, "eor"))
+ return 1;
if (!strcmp(locale, "de") || !strncmp(locale, "de-", 3)) {
- if (!strcmp(collation, "phonebk") || !strcmp(collation, "eor"))
+ if (!strcmp(collation, "phonebk"))
return 1;
}
return 0;
}
+BOOL js_intl_collation_is_supported(const char *collation, const char *locale)
+{
+ return is_collation_supported(collation, locale);
+}
+
static JSClassDef js_collator_class = {
"Collator",
.finalizer = js_collator_finalizer,
const int intl_all_numbering_systems_count = countof(intl_all_numbering_systems);
const char *intl_supported_collations[] = {
- "eor", "phonebk"
+ "emoji", "eor", "phonebk"
};
const int intl_supported_collations_count = countof(intl_supported_collations);
#define QUICKJS_INTL_PRIVATE_H
#include "../quickjs.h"
+#include "../cutils.h"
JSValue js_canonicalizeLocaleList(JSContext *ctx, JSValueConst locales);
int js_canonicalizeLocaleList_c(JSContext *ctx, JSValueConst locales,
char *js_intl_locale_get_unicode_key(JSContext *ctx, const char *locale, const char *key);
const char *js_intl_find_u_extension(const char *locale);
int js_intl_locale_has_key(const char *locale, const char *key);
+BOOL js_intl_collation_is_supported(const char *collation, const char *locale);
extern const char *intl_all_numbering_systems[];
extern const int intl_all_numbering_systems_count;
#define LD_DAYPERIOD_NARROW(ld, i) strpool_get(dayperiod_narrow_tab[(ld)->dayperiod_narrow_idx], (i))
const LocaleData *js_intl_find_locale_data(const char *locale);
+
+/* UTS 35 supplemental data (see gen-locale-data.js) */
+
+typedef struct {
+ const char *key; /* locale or region subtag */
+ const char *value; /* space separated list, most preferred first */
+} IntlPrefData;
+
+extern const char *const likely_subtags_tab[]; /* "key\000value" entries, sorted */
+extern const int likely_subtags_count;
+extern const IntlPrefData cal_pref_tab[];
+extern const int cal_pref_count;
+extern const IntlPrefData time_data_tab[];
+extern const int time_data_count;
+
+typedef struct {
+ const char *region;
+ uint8_t firstDay; /* ISO 8601 day of week, 1 (Monday) .. 7 (Sunday) */
+ uint8_t weekendStart;
+ uint8_t weekendEnd;
+} IntlWeekData;
+
+extern const IntlWeekData week_data_tab[];
+extern const int week_data_count;
+
+typedef struct {
+ const char *script;
+ uint8_t dir; /* 0 = left-to-right, 1 = right-to-left */
+} IntlScriptDir;
+
+extern const IntlScriptDir script_dir_tab[];
+extern const int script_dir_count;
int js_intl_get_currency_digits(const char *currency);
const char *js_intl_get_currency_symbol(const char *currency, const char *locale);
};
const int display_names_count = sizeof(display_names_data) / sizeof(display_names_data[0]);
+/* Add Likely Subtags data (UTS 35). Each entry is "key\000value" where the
+ key is language[-script][-region] and the value is language-script-region. */
+const char *const likely_subtags_tab[] = {
+ "aa\000aa-Latn-ET",
+ "aaa\000aaa-Latn-NG",
+ "aab\000aab-Latn-NG",
+ "aac\000aac-Latn-PG",
+ "aad\000aad-Latn-PG",
+ "aae\000aae-Latn-IT",
+ "aaf\000aaf-Mlym-IN",
+ "aag\000aag-Latn-PG",
+ "aah\000aah-Latn-PG",
+ "aai\000aai-Latn-PG",
+ "aak\000aak-Latn-PG",
+ "aal\000aal-Latn-CM",
+ "aan\000aan-Latn-BR",
+ "aao\000aao-Arab-DZ",
+ "aap\000aap-Latn-BR",
+ "aaq\000aaq-Latn-US",
+ "aas\000aas-Latn-TZ",
+ "aat\000aat-Grek-GR",
+ "aau\000aau-Latn-PG",
+ "aaw\000aaw-Latn-PG",
+ "aax\000aax-Latn-ID",
+ "aaz\000aaz-Latn-ID",
+ "ab\000ab-Cyrl-GE",
+ "aba\000aba-Latn-CI",
+ "abb\000abb-Latn-CM",
+ "abc\000abc-Latn-PH",
+ "abd\000abd-Latn-PH",
+ "abe\000abe-Latn-CA",
+ "abf\000abf-Latn-MY",
+ "abg\000abg-Latn-PG",
+ "abh\000abh-Arab-TJ",
+ "abi\000abi-Latn-CI",
+ "abl\000abl-Rjng-ID",
+ "abm\000abm-Latn-NG",
+ "abn\000abn-Latn-NG",
+ "abo\000abo-Latn-NG",
+ "abp\000abp-Latn-PH",
+ "abq\000abq-Cyrl-RU",
+ "abq-Latn\000abq-Latn-TR",
+ "abq-TR\000abq-Latn-TR",
+ "abr\000abr-Latn-GH",
+ "abs\000abs-Latn-ID",
+ "abt\000abt-Latn-PG",
+ "abu\000abu-Latn-CI",
+ "abv\000abv-Arab-BH",
+ "abw\000abw-Latn-PG",
+ "abx\000abx-Latn-PH",
+ "aby\000aby-Latn-PG",
+ "abz\000abz-Latn-ID",
+ "aca\000aca-Latn-CO",
+ "acb\000acb-Latn-NG",
+ "acd\000acd-Latn-GH",
+ "ace\000ace-Latn-ID",
+ "acf\000acf-Latn-LC",
+ "ach\000ach-Latn-UG",
+ "acm\000acm-Arab-IQ",
+ "acn\000acn-Latn-CN",
+ "acp\000acp-Latn-NG",
+ "acq\000acq-Arab-YE",
+ "acr\000acr-Latn-GT",
+ "acs\000acs-Latn-BR",
+ "act\000act-Latn-NL",
+ "acu\000acu-Latn-EC",
+ "acv\000acv-Latn-US",
+ "acw\000acw-Arab-SA",
+ "acx\000acx-Arab-OM",
+ "acy\000acy-Latn-CY",
+ "acz\000acz-Latn-SD",
+ "ada\000ada-Latn-GH",
+ "adb\000adb-Latn-TL",
+ "add\000add-Latn-CM",
+ "ade\000ade-Latn-TG",
+ "adf\000adf-Arab-OM",
+ "adg\000adg-Latn-AU",
+ "adh\000adh-Latn-UG",
+ "adi\000adi-Latn-IN",
+ "adj\000adj-Latn-CI",
+ "adl\000adl-Latn-IN",
+ "adn\000adn-Latn-ID",
+ "ado\000ado-Latn-PG",
+ "adq\000adq-Latn-GH",
+ "adr\000adr-Latn-ID",
+ "adt\000adt-Latn-AU",
+ "adu\000adu-Latn-NG",
+ "adw\000adw-Latn-BR",
+ "adx\000adx-Tibt-CN",
+ "ady\000ady-Cyrl-RU",
+ "adz\000adz-Latn-PG",
+ "ae\000ae-Avst-IR",
+ "aea\000aea-Latn-AU",
+ "aeb\000aeb-Arab-TN",
+ "aec\000aec-Arab-EG",
+ "aee\000aee-Arab-AF",
+ "aek\000aek-Latn-NC",
+ "ael\000ael-Latn-CM",
+ "aem\000aem-Latn-VN",
+ "aeq\000aeq-Arab-PK",
+ "aer\000aer-Latn-AU",
+ "aes\000aes-Latn-US",
+ "aeu\000aeu-Latn-CN",
+ "aew\000aew-Latn-PG",
+ "aey\000aey-Latn-PG",
+ "aez\000aez-Latn-PG",
+ "af\000af-Latn-ZA",
+ "afb\000afb-Arab-KW",
+ "afd\000afd-Latn-PG",
+ "afe\000afe-Latn-NG",
+ "afh\000afh-Latn-GH",
+ "afi\000afi-Latn-PG",
+ "afk\000afk-Latn-PG",
+ "afn\000afn-Latn-NG",
+ "afo\000afo-Latn-NG",
+ "afp\000afp-Latn-PG",
+ "afs\000afs-Latn-MX",
+ "afu\000afu-Latn-GH",
+ "afz\000afz-Latn-ID",
+ "aga\000aga-Latn-PE",
+ "agb\000agb-Latn-NG",
+ "agc\000agc-Latn-NG",
+ "agd\000agd-Latn-PG",
+ "age\000age-Latn-PG",
+ "agf\000agf-Latn-ID",
+ "agg\000agg-Latn-PG",
+ "agh\000agh-Latn-CD",
+ "agi\000agi-Deva-IN",
+ "agj\000agj-Ethi-ET",
+ "agk\000agk-Latn-PH",
+ "agl\000agl-Latn-PG",
+ "agm\000agm-Latn-PG",
+ "agn\000agn-Latn-PH",
+ "ago\000ago-Latn-PG",
+ "agq\000agq-Latn-CM",
+ "agr\000agr-Latn-PE",
+ "ags\000ags-Latn-CM",
+ "agt\000agt-Latn-PH",
+ "agu\000agu-Latn-GT",
+ "agv\000agv-Latn-PH",
+ "agw\000agw-Latn-SB",
+ "agx\000agx-Cyrl-RU",
+ "agy\000agy-Latn-PH",
+ "agz\000agz-Latn-PH",
+ "aha\000aha-Latn-GH",
+ "ahb\000ahb-Latn-VU",
+ "ahg\000ahg-Ethi-ET",
+ "ahh\000ahh-Latn-ID",
+ "ahi\000ahi-Latn-CI",
+ "ahk\000ahk-Latn-MM",
+ "ahl\000ahl-Latn-TG",
+ "ahm\000ahm-Latn-CI",
+ "ahn\000ahn-Latn-NG",
+ "aho\000aho-Ahom-IN",
+ "ahp\000ahp-Latn-CI",
+ "ahr\000ahr-Deva-IN",
+ "ahs\000ahs-Latn-NG",
+ "aht\000aht-Latn-US",
+ "aia\000aia-Latn-SB",
+ "aib\000aib-Arab-CN",
+ "aic\000aic-Latn-PG",
+ "aid\000aid-Latn-AU",
+ "aie\000aie-Latn-PG",
+ "aif\000aif-Latn-PG",
+ "aig\000aig-Latn-AG",
+ "aii\000aii-Syrc-IQ",
+ "aij\000aij-Hebr-IL",
+ "aik\000aik-Latn-NG",
+ "ail\000ail-Latn-PG",
+ "aim\000aim-Latn-IN",
+ "ain\000ain-Kana-JP",
+ "aio\000aio-Mymr-IN",
+ "aip\000aip-Latn-ID",
+ "aiq\000aiq-Arab-AF",
+ "air\000air-Latn-ID",
+ "ait\000ait-Latn-BR",
+ "aiw\000aiw-Latn-ET",
+ "aix\000aix-Latn-PG",
+ "aiy\000aiy-Latn-CF",
+ "aja\000aja-Latn-SS",
+ "ajg\000ajg-Latn-BJ",
+ "aji\000aji-Latn-NC",
+ "ajn\000ajn-Latn-AU",
+ "ajw\000ajw-Latn-NG",
+ "ajz\000ajz-Latn-IN",
+ "ak\000ak-Latn-GH",
+ "akb\000akb-Latn-ID",
+ "akc\000akc-Latn-ID",
+ "akd\000akd-Latn-NG",
+ "ake\000ake-Latn-GY",
+ "akf\000akf-Latn-NG",
+ "akg\000akg-Latn-ID",
+ "akh\000akh-Latn-PG",
+ "aki\000aki-Latn-PG",
+ "akk\000akk-Xsux-IQ",
+ "akl\000akl-Latn-PH",
+ "ako\000ako-Latn-SR",
+ "akp\000akp-Latn-GH",
+ "akq\000akq-Latn-PG",
+ "akr\000akr-Latn-VU",
+ "aks\000aks-Latn-TG",
+ "akt\000akt-Latn-PG",
+ "aku\000aku-Latn-CM",
+ "akv\000akv-Cyrl-RU",
+ "akw\000akw-Latn-CG",
+ "akz\000akz-Latn-US",
+ "ala\000ala-Latn-NG",
+ "alc\000alc-Latn-CL",
+ "ald\000ald-Latn-CI",
+ "ale\000ale-Latn-US",
+ "alf\000alf-Latn-NG",
+ "alh\000alh-Latn-AU",
+ "ali\000ali-Latn-PG",
+ "alj\000alj-Latn-PH",
+ "alk\000alk-Laoo-LA",
+ "all\000all-Mlym-IN",
+ "alm\000alm-Latn-VU",
+ "aln\000aln-Latn-XK",
+ "alo\000alo-Latn-ID",
+ "alp\000alp-Latn-ID",
+ "alq\000alq-Latn-CA",
+ "alr\000alr-Cyrl-RU",
+ "alt\000alt-Cyrl-RU",
+ "alu\000alu-Latn-SB",
+ "alw\000alw-Ethi-ET",
+ "alx\000alx-Latn-PG",
+ "aly\000aly-Latn-AU",
+ "alz\000alz-Latn-CD",
+ "am\000am-Ethi-ET",
+ "ama\000ama-Latn-BR",
+ "amb\000amb-Latn-NG",
+ "amc\000amc-Latn-PE",
+ "ame\000ame-Latn-PE",
+ "amf\000amf-Latn-ET",
+ "amg\000amg-Latn-AU",
+ "ami\000ami-Latn-TW",
+ "amj\000amj-Latn-TD",
+ "amk\000amk-Latn-ID",
+ "amm\000amm-Latn-PG",
+ "amn\000amn-Latn-PG",
+ "amo\000amo-Latn-NG",
+ "amp\000amp-Latn-PG",
+ "amq\000amq-Latn-ID",
+ "amr\000amr-Latn-PE",
+ "ams\000ams-Jpan-JP",
+ "amt\000amt-Latn-PG",
+ "amu\000amu-Latn-MX",
+ "amv\000amv-Latn-ID",
+ "amw\000amw-Syrc-SY",
+ "amx\000amx-Latn-AU",
+ "amy\000amy-Latn-AU",
+ "amz\000amz-Latn-AU",
+ "an\000an-Latn-ES",
+ "ana\000ana-Latn-CO",
+ "anb\000anb-Latn-PE",
+ "anc\000anc-Latn-NG",
+ "and\000and-Latn-ID",
+ "ane\000ane-Latn-NC",
+ "anf\000anf-Latn-GH",
+ "ang\000ang-Latn-GB",
+ "anh\000anh-Latn-PG",
+ "ani\000ani-Cyrl-RU",
+ "anj\000anj-Latn-PG",
+ "ank\000ank-Latn-NG",
+ "anl\000anl-Latn-MM",
+ "anm\000anm-Latn-IN",
+ "ann\000ann-Latn-NG",
+ "ano\000ano-Latn-CO",
+ "anp\000anp-Deva-IN",
+ "anq\000anq-Deva-IN",
+ "anr\000anr-Deva-IN",
+ "ans\000ans-Latn-CO",
+ "ant\000ant-Latn-AU",
+ "anu\000anu-Ethi-ET",
+ "anv\000anv-Latn-CM",
+ "anw\000anw-Latn-NG",
+ "anx\000anx-Latn-PG",
+ "any\000any-Latn-CI",
+ "anz\000anz-Latn-PG",
+ "aoa\000aoa-Latn-ST",
+ "aob\000aob-Latn-PG",
+ "aoc\000aoc-Latn-VE",
+ "aod\000aod-Latn-PG",
+ "aoe\000aoe-Latn-PG",
+ "aof\000aof-Latn-PG",
+ "aog\000aog-Latn-PG",
+ "aoi\000aoi-Latn-AU",
+ "aoj\000aoj-Latn-PG",
+ "aok\000aok-Latn-NC",
+ "aol\000aol-Latn-ID",
+ "aom\000aom-Latn-PG",
+ "aon\000aon-Latn-PG",
+ "aor\000aor-Latn-VU",
+ "aos\000aos-Latn-ID",
+ "aot\000aot-Beng-BD",
+ "aox\000aox-Latn-GY",
+ "aoz\000aoz-Latn-ID",
+ "apb\000apb-Latn-SB",
+ "apc\000apc-Arab-SY",
+ "apd\000apd-Arab-SD",
+ "ape\000ape-Latn-PG",
+ "apf\000apf-Latn-PH",
+ "apg\000apg-Latn-ID",
+ "aph\000aph-Deva-NP",
+ "api\000api-Latn-BR",
+ "apj\000apj-Latn-US",
+ "apk\000apk-Latn-US",
+ "apl\000apl-Latn-US",
+ "apm\000apm-Latn-US",
+ "apn\000apn-Latn-BR",
+ "apo\000apo-Latn-PG",
+ "app\000app-Latn-VU",
+ "apr\000apr-Latn-PG",
+ "aps\000aps-Latn-PG",
+ "apt\000apt-Latn-IN",
+ "apu\000apu-Latn-BR",
+ "apv\000apv-Latn-BR",
+ "apw\000apw-Latn-US",
+ "apx\000apx-Latn-ID",
+ "apy\000apy-Latn-BR",
+ "apz\000apz-Latn-PG",
+ "aqc\000aqc-Cyrl-RU",
+ "aqd\000aqd-Latn-ML",
+ "aqg\000aqg-Latn-NG",
+ "aqk\000aqk-Latn-NG",
+ "aqm\000aqm-Latn-ID",
+ "aqn\000aqn-Latn-PH",
+ "aqr\000aqr-Latn-NC",
+ "aqt\000aqt-Latn-PY",
+ "aqz\000aqz-Latn-BR",
+ "ar\000ar-Arab-EG",
+ "arc\000arc-Armi-IR",
+ "arc-Hatr\000arc-Hatr-IQ",
+ "arc-Nbat\000arc-Nbat-JO",
+ "arc-Palm\000arc-Palm-SY",
+ "ard\000ard-Latn-AU",
+ "are\000are-Latn-AU",
+ "arh\000arh-Latn-CO",
+ "ari\000ari-Latn-US",
+ "arj\000arj-Latn-BR",
+ "ark\000ark-Latn-BR",
+ "arl\000arl-Latn-PE",
+ "arn\000arn-Latn-CL",
+ "aro\000aro-Latn-BO",
+ "arp\000arp-Latn-US",
+ "arq\000arq-Arab-DZ",
+ "arr\000arr-Latn-BR",
+ "ars\000ars-Arab-SA",
+ "aru\000aru-Latn-BR",
+ "arv\000arv-Latn-ET",
+ "arw\000arw-Latn-SR",
+ "arx\000arx-Latn-BR",
+ "ary\000ary-Arab-MA",
+ "arz\000arz-Arab-EG",
+ "as\000as-Beng-IN",
+ "asa\000asa-Latn-TZ",
+ "asb\000asb-Latn-CA",
+ "asc\000asc-Latn-ID",
+ "ase\000ase-Sgnw-US",
+ "asg\000asg-Latn-NG",
+ "ash\000ash-Latn-PE",
+ "asi\000asi-Latn-ID",
+ "asj\000asj-Latn-CM",
+ "ask\000ask-Arab-AF",
+ "asl\000asl-Latn-ID",
+ "asn\000asn-Latn-BR",
+ "aso\000aso-Latn-PG",
+ "asr\000asr-Deva-IN",
+ "ass\000ass-Latn-CM",
+ "ast\000ast-Latn-ES",
+ "asu\000asu-Latn-BR",
+ "asv\000asv-Latn-CD",
+ "asx\000asx-Latn-PG",
+ "asy\000asy-Latn-ID",
+ "asz\000asz-Latn-ID",
+ "ata\000ata-Latn-PG",
+ "atb\000atb-Latn-CN",
+ "atc\000atc-Latn-PE",
+ "atd\000atd-Latn-PH",
+ "ate\000ate-Latn-PG",
+ "atg\000atg-Latn-NG",
+ "ati\000ati-Latn-CI",
+ "atj\000atj-Latn-CA",
+ "atk\000atk-Latn-PH",
+ "atl\000atl-Latn-PH",
+ "atm\000atm-Latn-PH",
+ "atn\000atn-Arab-IR",
+ "ato\000ato-Latn-CM",
+ "atp\000atp-Latn-PH",
+ "atq\000atq-Latn-ID",
+ "atr\000atr-Latn-BR",
+ "ats\000ats-Latn-US",
+ "att\000att-Latn-PH",
+ "atu\000atu-Latn-SS",
+ "atv\000atv-Cyrl-RU",
+ "atw\000atw-Latn-US",
+ "atx\000atx-Latn-BR",
+ "aty\000aty-Latn-VU",
+ "atz\000atz-Latn-PH",
+ "aua\000aua-Latn-SB",
+ "auc\000auc-Latn-EC",
+ "aud\000aud-Latn-SB",
+ "aug\000aug-Latn-BJ",
+ "auh\000auh-Latn-ZM",
+ "aui\000aui-Latn-PG",
+ "auj\000auj-Arab-LY",
+ "auk\000auk-Latn-PG",
+ "aul\000aul-Latn-VU",
+ "aum\000aum-Latn-NG",
+ "aun\000aun-Latn-PG",
+ "auo\000auo-Latn-NG",
+ "aup\000aup-Latn-PG",
+ "auq\000auq-Latn-ID",
+ "aur\000aur-Latn-PG",
+ "aut\000aut-Latn-PF",
+ "auu\000auu-Latn-ID",
+ "auw\000auw-Latn-ID",
+ "auy\000auy-Latn-PG",
+ "auz\000auz-Arab-UZ",
+ "av\000av-Cyrl-RU",
+ "avb\000avb-Latn-PG",
+ "avd\000avd-Arab-IR",
+ "avi\000avi-Latn-CI",
+ "avk\000avk-Latn-001",
+ "avl\000avl-Arab-EG",
+ "avm\000avm-Latn-AU",
+ "avn\000avn-Latn-GH",
+ "avo\000avo-Latn-BR",
+ "avs\000avs-Latn-PE",
+ "avt\000avt-Latn-PG",
+ "avu\000avu-Latn-SS",
+ "avv\000avv-Latn-BR",
+ "awa\000awa-Deva-IN",
+ "awb\000awb-Latn-PG",
+ "awc\000awc-Latn-NG",
+ "awe\000awe-Latn-BR",
+ "awg\000awg-Latn-AU",
+ "awh\000awh-Latn-ID",
+ "awi\000awi-Latn-PG",
+ "awk\000awk-Latn-AU",
+ "awm\000awm-Latn-PG",
+ "awn\000awn-Ethi-ET",
+ "awo\000awo-Latn-NG",
+ "awr\000awr-Latn-ID",
+ "aws\000aws-Latn-ID",
+ "awt\000awt-Latn-BR",
+ "awu\000awu-Latn-ID",
+ "awv\000awv-Latn-ID",
+ "aww\000aww-Latn-PG",
+ "awx\000awx-Latn-PG",
+ "awy\000awy-Latn-ID",
+ "axb\000axb-Latn-AR",
+ "axe\000axe-Latn-AU",
+ "axg\000axg-Latn-BR",
+ "axk\000axk-Latn-CF",
+ "axl\000axl-Latn-AU",
+ "axm\000axm-Armn-AM",
+ "axx\000axx-Latn-NC",
+ "ay\000ay-Latn-BO",
+ "aya\000aya-Latn-PG",
+ "ayb\000ayb-Latn-BJ",
+ "ayc\000ayc-Latn-PE",
+ "ayd\000ayd-Latn-AU",
+ "aye\000aye-Latn-NG",
+ "ayg\000ayg-Latn-TG",
+ "ayh\000ayh-Arab-YE",
+ "ayi\000ayi-Latn-NG",
+ "ayk\000ayk-Latn-NG",
+ "ayl\000ayl-Arab-LY",
+ "ayn\000ayn-Arab-YE",
+ "ayo\000ayo-Latn-PY",
+ "ayp\000ayp-Arab-IQ",
+ "ayq\000ayq-Latn-PG",
+ "ays\000ays-Latn-PH",
+ "ayt\000ayt-Latn-PH",
+ "ayu\000ayu-Latn-NG",
+ "ayz\000ayz-Latn-ID",
+ "az\000az-Latn-AZ",
+ "az-Arab\000az-Arab-IR",
+ "az-IQ\000az-Arab-IQ",
+ "az-IR\000az-Arab-IR",
+ "az-RU\000az-Cyrl-RU",
+ "azb\000azb-Arab-IR",
+ "azd\000azd-Latn-MX",
+ "azg\000azg-Latn-MX",
+ "azm\000azm-Latn-MX",
+ "azn\000azn-Latn-MX",
+ "azo\000azo-Latn-CM",
+ "azt\000azt-Latn-PH",
+ "azz\000azz-Latn-MX",
+ "ba\000ba-Cyrl-RU",
+ "baa\000baa-Latn-SB",
+ "bab\000bab-Latn-GW",
+ "bac\000bac-Latn-ID",
+ "bae\000bae-Latn-VE",
+ "baf\000baf-Latn-CM",
+ "bag\000bag-Latn-CM",
+ "bah\000bah-Latn-BS",
+ "baj\000baj-Latn-ID",
+ "bal\000bal-Arab-PK",
+ "ban\000ban-Latn-ID",
+ "bao\000bao-Latn-CO",
+ "bap\000bap-Deva-NP",
+ "bap-Krai\000bap-Krai-IN",
+ "bar\000bar-Latn-AT",
+ "bas\000bas-Latn-CM",
+ "bau\000bau-Latn-NG",
+ "bav\000bav-Latn-CM",
+ "baw\000baw-Latn-CM",
+ "bax\000bax-Bamu-CM",
+ "bay\000bay-Latn-ID",
+ "bba\000bba-Latn-BJ",
+ "bbb\000bbb-Latn-PG",
+ "bbc\000bbc-Latn-ID",
+ "bbd\000bbd-Latn-PG",
+ "bbe\000bbe-Latn-CD",
+ "bbf\000bbf-Latn-PG",
+ "bbg\000bbg-Latn-GA",
+ "bbi\000bbi-Latn-CM",
+ "bbj\000bbj-Latn-CM",
+ "bbk\000bbk-Latn-CM",
+ "bbl\000bbl-Geor-GE",
+ "bbm\000bbm-Latn-CD",
+ "bbn\000bbn-Latn-PG",
+ "bbo\000bbo-Latn-BF",
+ "bbp\000bbp-Latn-CF",
+ "bbq\000bbq-Latn-CM",
+ "bbr\000bbr-Latn-PG",
+ "bbs\000bbs-Latn-NG",
+ "bbt\000bbt-Latn-NG",
+ "bbu\000bbu-Latn-NG",
+ "bbv\000bbv-Latn-PG",
+ "bbw\000bbw-Latn-CM",
+ "bbx\000bbx-Latn-CM",
+ "bby\000bby-Latn-CM",
+ "bca\000bca-Latn-CN",
+ "bcb\000bcb-Latn-SN",
+ "bcd\000bcd-Latn-ID",
+ "bce\000bce-Latn-CM",
+ "bcf\000bcf-Latn-PG",
+ "bcg\000bcg-Latn-GN",
+ "bch\000bch-Latn-PG",
+ "bci\000bci-Latn-CI",
+ "bcj\000bcj-Latn-AU",
+ "bck\000bck-Latn-AU",
+ "bcm\000bcm-Latn-PG",
+ "bcn\000bcn-Latn-NG",
+ "bco\000bco-Latn-PG",
+ "bcp\000bcp-Latn-CD",
+ "bcq\000bcq-Ethi-ET",
+ "bcr\000bcr-Latn-CA",
+ "bcs\000bcs-Latn-NG",
+ "bct\000bct-Latn-CD",
+ "bcu\000bcu-Latn-PG",
+ "bcv\000bcv-Latn-NG",
+ "bcw\000bcw-Latn-CM",
+ "bcy\000bcy-Latn-NG",
+ "bcz\000bcz-Latn-SN",
+ "bda\000bda-Latn-SN",
+ "bdb\000bdb-Latn-ID",
+ "bdc\000bdc-Latn-CO",
+ "bdd\000bdd-Latn-PG",
+ "bde\000bde-Latn-NG",
+ "bdf\000bdf-Latn-PG",
+ "bdg\000bdg-Latn-MY",
+ "bdh\000bdh-Latn-SS",
+ "bdi\000bdi-Latn-SD",
+ "bdj\000bdj-Latn-SS",
+ "bdk\000bdk-Latn-AZ",
+ "bdl\000bdl-Latn-ID",
+ "bdm\000bdm-Latn-TD",
+ "bdn\000bdn-Latn-CM",
+ "bdo\000bdo-Latn-TD",
+ "bdp\000bdp-Latn-TZ",
+ "bdq\000bdq-Latn-VN",
+ "bdr\000bdr-Latn-MY",
+ "bds\000bds-Latn-TZ",
+ "bdt\000bdt-Latn-CF",
+ "bdu\000bdu-Latn-CM",
+ "bdv\000bdv-Orya-IN",
+ "bdw\000bdw-Latn-ID",
+ "bdx\000bdx-Latn-ID",
+ "bdy\000bdy-Latn-AU",
+ "bdz\000bdz-Arab-PK",
+ "be\000be-Cyrl-BY",
+ "bea\000bea-Latn-CA",
+ "beb\000beb-Latn-CM",
+ "bec\000bec-Latn-CM",
+ "bed\000bed-Latn-ID",
+ "bee\000bee-Deva-IN",
+ "bef\000bef-Latn-PG",
+ "beh\000beh-Latn-BJ",
+ "bei\000bei-Latn-ID",
+ "bej\000bej-Arab-SD",
+ "bek\000bek-Latn-PG",
+ "bem\000bem-Latn-ZM",
+ "beo\000beo-Latn-PG",
+ "bep\000bep-Latn-ID",
+ "beq\000beq-Latn-CG",
+ "bes\000bes-Latn-TD",
+ "bet\000bet-Latn-CI",
+ "beu\000beu-Latn-ID",
+ "bev\000bev-Latn-CI",
+ "bew\000bew-Latn-ID",
+ "bex\000bex-Latn-SS",
+ "bey\000bey-Latn-PG",
+ "bez\000bez-Latn-TZ",
+ "bfa\000bfa-Latn-SS",
+ "bfb\000bfb-Deva-IN",
+ "bfc\000bfc-Latn-CN",
+ "bfd\000bfd-Latn-CM",
+ "bfe\000bfe-Latn-ID",
+ "bff\000bff-Latn-CF",
+ "bfg\000bfg-Latn-ID",
+ "bfh\000bfh-Latn-PG",
+ "bfj\000bfj-Latn-CM",
+ "bfl\000bfl-Latn-CF",
+ "bfm\000bfm-Latn-CM",
+ "bfn\000bfn-Latn-TL",
+ "bfo\000bfo-Latn-BF",
+ "bfp\000bfp-Latn-CM",
+ "bfq\000bfq-Taml-IN",
+ "bfs\000bfs-Latn-CN",
+ "bft\000bft-Arab-PK",
+ "bfu\000bfu-Tibt-IN",
+ "bfw\000bfw-Orya-IN",
+ "bfx\000bfx-Latn-PH",
+ "bfy\000bfy-Deva-IN",
+ "bfz\000bfz-Deva-IN",
+ "bg\000bg-Cyrl-BG",
+ "bga\000bga-Latn-NG",
+ "bgb\000bgb-Latn-ID",
+ "bgc\000bgc-Deva-IN",
+ "bgd\000bgd-Deva-IN",
+ "bgf\000bgf-Latn-CM",
+ "bgg\000bgg-Latn-IN",
+ "bgi\000bgi-Latn-PH",
+ "bgj\000bgj-Latn-CM",
+ "bgn\000bgn-Arab-PK",
+ "bgo\000bgo-Latn-GN",
+ "bgp\000bgp-Arab-PK",
+ "bgq\000bgq-Deva-IN",
+ "bgr\000bgr-Latn-IN",
+ "bgs\000bgs-Latn-PH",
+ "bgt\000bgt-Latn-SB",
+ "bgu\000bgu-Latn-NG",
+ "bgv\000bgv-Latn-ID",
+ "bgw\000bgw-Deva-IN",
+ "bgx\000bgx-Grek-TR",
+ "bgy\000bgy-Latn-ID",
+ "bgz\000bgz-Latn-ID",
+ "bha\000bha-Deva-IN",
+ "bhb\000bhb-Deva-IN",
+ "bhc\000bhc-Latn-ID",
+ "bhd\000bhd-Deva-IN",
+ "bhe\000bhe-Arab-PK",
+ "bhf\000bhf-Latn-PG",
+ "bhg\000bhg-Latn-PG",
+ "bhh\000bhh-Cyrl-IL",
+ "bhi\000bhi-Deva-IN",
+ "bhj\000bhj-Deva-NP",
+ "bhl\000bhl-Latn-PG",
+ "bhm\000bhm-Arab-OM",
+ "bhn\000bhn-Syrc-GE",
+ "bho\000bho-Deva-IN",
+ "bhp\000bhp-Latn-ID",
+ "bhq\000bhq-Latn-ID",
+ "bhr\000bhr-Latn-MG",
+ "bhs\000bhs-Latn-CM",
+ "bht\000bht-Deva-IN",
+ "bhu\000bhu-Deva-IN",
+ "bhv\000bhv-Latn-ID",
+ "bhw\000bhw-Latn-ID",
+ "bhy\000bhy-Latn-CD",
+ "bhz\000bhz-Latn-ID",
+ "bi\000bi-Latn-VU",
+ "bia\000bia-Latn-AU",
+ "bib\000bib-Latn-BF",
+ "bid\000bid-Latn-TD",
+ "bie\000bie-Latn-PG",
+ "bif\000bif-Latn-GW",
+ "big\000big-Latn-PG",
+ "bik\000bik-Latn-PH",
+ "bil\000bil-Latn-NG",
+ "bim\000bim-Latn-GH",
+ "bin\000bin-Latn-NG",
+ "bio\000bio-Latn-PG",
+ "bip\000bip-Latn-CD",
+ "biq\000biq-Latn-PG",
+ "bir\000bir-Latn-PG",
+ "bit\000bit-Latn-PG",
+ "biu\000biu-Latn-IN",
+ "biv\000biv-Latn-GH",
+ "biw\000biw-Latn-CM",
+ "bix\000bix-Deva-IN",
+ "biy\000biy-Deva-IN",
+ "biz\000biz-Latn-CD",
+ "bja\000bja-Latn-CD",
+ "bjb\000bjb-Latn-AU",
+ "bjc\000bjc-Latn-PG",
+ "bjf\000bjf-Syrc-IL",
+ "bjg\000bjg-Latn-GW",
+ "bjh\000bjh-Latn-PG",
+ "bji\000bji-Latn-ET",
+ "bjj\000bjj-Deva-IN",
+ "bjk\000bjk-Latn-PG",
+ "bjl\000bjl-Latn-PG",
+ "bjm\000bjm-Arab-IQ",
+ "bjn\000bjn-Latn-ID",
+ "bjo\000bjo-Latn-CF",
+ "bjp\000bjp-Latn-PG",
+ "bjr\000bjr-Latn-PG",
+ "bjs\000bjs-Latn-BB",
+ "bjt\000bjt-Latn-SN",
+ "bju\000bju-Latn-CM",
+ "bjv\000bjv-Latn-TD",
+ "bjw\000bjw-Latn-CI",
+ "bjx\000bjx-Latn-PH",
+ "bjy\000bjy-Latn-AU",
+ "bjz\000bjz-Latn-PG",
+ "bka\000bka-Latn-NG",
+ "bkc\000bkc-Latn-CM",
+ "bkd\000bkd-Latn-PH",
+ "bkf\000bkf-Latn-CD",
+ "bkg\000bkg-Latn-CF",
+ "bkh\000bkh-Latn-CM",
+ "bki\000bki-Latn-VU",
+ "bkj\000bkj-Latn-CF",
+ "bkk\000bkk-Tibt-IN",
+ "bkl\000bkl-Latn-ID",
+ "bkm\000bkm-Latn-CM",
+ "bkn\000bkn-Latn-ID",
+ "bko\000bko-Latn-CM",
+ "bkp\000bkp-Latn-CD",
+ "bkq\000bkq-Latn-BR",
+ "bkr\000bkr-Latn-ID",
+ "bks\000bks-Latn-PH",
+ "bkt\000bkt-Latn-CD",
+ "bku\000bku-Latn-PH",
+ "bkv\000bkv-Latn-NG",
+ "bkw\000bkw-Latn-CG",
+ "bkx\000bkx-Latn-TL",
+ "bky\000bky-Latn-NG",
+ "bkz\000bkz-Latn-ID",
+ "bla\000bla-Latn-CA",
+ "blb\000blb-Latn-SB",
+ "blc\000blc-Latn-CA",
+ "bld\000bld-Latn-ID",
+ "ble\000ble-Latn-GW",
+ "blf\000blf-Latn-ID",
+ "blh\000blh-Latn-LR",
+ "bli\000bli-Latn-CD",
+ "blj\000blj-Latn-ID",
+ "blk\000blk-Mymr-MM",
+ "blm\000blm-Latn-SS",
+ "bln\000bln-Latn-PH",
+ "blo\000blo-Latn-BJ",
+ "blp\000blp-Latn-SB",
+ "blq\000blq-Latn-PG",
+ "blr\000blr-Latn-CN",
+ "bls\000bls-Latn-ID",
+ "blt\000blt-Tavt-VN",
+ "blv\000blv-Latn-AO",
+ "blw\000blw-Latn-PH",
+ "blx\000blx-Latn-PH",
+ "bly\000bly-Latn-BJ",
+ "blz\000blz-Latn-ID",
+ "bm\000bm-Latn-ML",
+ "bma\000bma-Latn-NG",
+ "bmb\000bmb-Latn-CD",
+ "bmc\000bmc-Latn-PG",
+ "bmd\000bmd-Latn-GN",
+ "bme\000bme-Latn-CF",
+ "bmf\000bmf-Latn-SL",
+ "bmg\000bmg-Latn-CD",
+ "bmh\000bmh-Latn-PG",
+ "bmi\000bmi-Latn-TD",
+ "bmj\000bmj-Deva-NP",
+ "bmk\000bmk-Latn-PG",
+ "bml\000bml-Latn-CD",
+ "bmm\000bmm-Latn-MG",
+ "bmn\000bmn-Latn-PG",
+ "bmo\000bmo-Latn-CM",
+ "bmp\000bmp-Latn-PG",
+ "bmq\000bmq-Latn-ML",
+ "bmr\000bmr-Latn-CO",
+ "bms\000bms-Latn-NE",
+ "bmu\000bmu-Latn-PG",
+ "bmv\000bmv-Latn-CM",
+ "bmw\000bmw-Latn-CG",
+ "bmx\000bmx-Latn-PG",
+ "bmz\000bmz-Latn-PG",
+ "bn\000bn-Beng-BD",
+ "bna\000bna-Latn-ID",
+ "bnb\000bnb-Latn-MY",
+ "bnc\000bnc-Latn-PH",
+ "bnd\000bnd-Latn-ID",
+ "bne\000bne-Latn-ID",
+ "bnf\000bnf-Latn-ID",
+ "bng\000bng-Latn-GQ",
+ "bni\000bni-Latn-CD",
+ "bnj\000bnj-Latn-PH",
+ "bnk\000bnk-Latn-VU",
+ "bnm\000bnm-Latn-GQ",
+ "bnn\000bnn-Latn-TW",
+ "bno\000bno-Latn-PH",
+ "bnp\000bnp-Latn-PG",
+ "bnq\000bnq-Latn-ID",
+ "bnr\000bnr-Latn-VU",
+ "bns\000bns-Deva-IN",
+ "bnu\000bnu-Latn-ID",
+ "bnv\000bnv-Latn-ID",
+ "bnw\000bnw-Latn-PG",
+ "bnx\000bnx-Latn-CD",
+ "bny\000bny-Latn-MY",
+ "bnz\000bnz-Latn-CM",
+ "bo\000bo-Tibt-CN",
+ "boa\000boa-Latn-PE",
+ "bob\000bob-Latn-KE",
+ "boe\000boe-Latn-CM",
+ "bof\000bof-Latn-BF",
+ "boh\000boh-Latn-CD",
+ "boj\000boj-Latn-PG",
+ "bok\000bok-Latn-CG",
+ "bol\000bol-Latn-NG",
+ "bom\000bom-Latn-NG",
+ "bon\000bon-Latn-PG",
+ "boo\000boo-Latn-ML",
+ "bop\000bop-Latn-PG",
+ "boq\000boq-Latn-PG",
+ "bor\000bor-Latn-BR",
+ "bot\000bot-Latn-SS",
+ "bou\000bou-Latn-TZ",
+ "bov\000bov-Latn-GH",
+ "bow\000bow-Latn-PG",
+ "box\000box-Latn-BF",
+ "boy\000boy-Latn-CF",
+ "boz\000boz-Latn-ML",
+ "bpa\000bpa-Latn-VU",
+ "bpc\000bpc-Latn-CM",
+ "bpd\000bpd-Latn-CF",
+ "bpe\000bpe-Latn-PG",
+ "bpg\000bpg-Latn-ID",
+ "bph\000bph-Cyrl-RU",
+ "bpi\000bpi-Latn-PG",
+ "bpj\000bpj-Latn-CD",
+ "bpk\000bpk-Latn-NC",
+ "bpl\000bpl-Latn-AU",
+ "bpm\000bpm-Latn-PG",
+ "bpo\000bpo-Latn-ID",
+ "bpp\000bpp-Latn-ID",
+ "bpq\000bpq-Latn-ID",
+ "bpr\000bpr-Latn-PH",
+ "bps\000bps-Latn-PH",
+ "bpt\000bpt-Latn-AU",
+ "bpu\000bpu-Latn-PG",
+ "bpv\000bpv-Latn-ID",
+ "bpw\000bpw-Latn-PG",
+ "bpx\000bpx-Deva-IN",
+ "bpy\000bpy-Beng-IN",
+ "bpz\000bpz-Latn-ID",
+ "bqa\000bqa-Latn-BJ",
+ "bqb\000bqb-Latn-ID",
+ "bqc\000bqc-Latn-BJ",
+ "bqd\000bqd-Latn-CM",
+ "bqf\000bqf-Latn-GN",
+ "bqg\000bqg-Latn-TG",
+ "bqi\000bqi-Arab-IR",
+ "bqj\000bqj-Latn-SN",
+ "bqk\000bqk-Latn-CF",
+ "bql\000bql-Latn-PG",
+ "bqm\000bqm-Latn-CM",
+ "bqo\000bqo-Latn-CM",
+ "bqp\000bqp-Latn-NG",
+ "bqq\000bqq-Latn-ID",
+ "bqr\000bqr-Latn-ID",
+ "bqs\000bqs-Latn-PG",
+ "bqt\000bqt-Latn-CM",
+ "bqu\000bqu-Latn-CD",
+ "bqv\000bqv-Latn-CI",
+ "bqw\000bqw-Latn-NG",
+ "bqx\000bqx-Latn-NG",
+ "bqz\000bqz-Latn-CM",
+ "br\000br-Latn-FR",
+ "bra\000bra-Deva-IN",
+ "brb\000brb-Khmr-KH",
+ "brc\000brc-Latn-GY",
+ "brd\000brd-Deva-NP",
+ "brf\000brf-Latn-CD",
+ "brg\000brg-Latn-BO",
+ "brh\000brh-Arab-PK",
+ "bri\000bri-Latn-CM",
+ "brj\000brj-Latn-VU",
+ "brk\000brk-Arab-SD",
+ "brl\000brl-Latn-BW",
+ "brm\000brm-Latn-CD",
+ "brn\000brn-Latn-CR",
+ "bro\000bro-Tibt-BT",
+ "brp\000brp-Latn-ID",
+ "brq\000brq-Latn-PG",
+ "brr\000brr-Latn-SB",
+ "brs\000brs-Latn-ID",
+ "brt\000brt-Latn-NG",
+ "bru\000bru-Latn-VN",
+ "brv\000brv-Laoo-LA",
+ "brw\000brw-Knda-IN",
+ "brx\000brx-Deva-IN",
+ "bry\000bry-Latn-PG",
+ "brz\000brz-Latn-PG",
+ "bs\000bs-Latn-BA",
+ "bsa\000bsa-Latn-ID",
+ "bsb\000bsb-Latn-BN",
+ "bsc\000bsc-Latn-SN",
+ "bse\000bse-Latn-CM",
+ "bsf\000bsf-Latn-NG",
+ "bsh\000bsh-Arab-AF",
+ "bsi\000bsi-Latn-CM",
+ "bsj\000bsj-Latn-NG",
+ "bsk\000bsk-Arab-PK",
+ "bsl\000bsl-Latn-NG",
+ "bsm\000bsm-Latn-ID",
+ "bsn\000bsn-Latn-CO",
+ "bso\000bso-Latn-TD",
+ "bsp\000bsp-Latn-GN",
+ "bsq\000bsq-Latn-LR",
+ "bsr\000bsr-Latn-NG",
+ "bss\000bss-Latn-CM",
+ "bst\000bst-Ethi-ET",
+ "bsu\000bsu-Latn-ID",
+ "bsv\000bsv-Latn-GN",
+ "bsw\000bsw-Latn-ET",
+ "bsx\000bsx-Latn-NG",
+ "bsy\000bsy-Latn-MY",
+ "bta\000bta-Latn-NG",
+ "btc\000btc-Latn-CM",
+ "btd\000btd-Batk-ID",
+ "bte\000bte-Latn-NG",
+ "btf\000btf-Latn-TD",
+ "btg\000btg-Latn-CI",
+ "bth\000bth-Latn-MY",
+ "bti\000bti-Latn-ID",
+ "btj\000btj-Latn-ID",
+ "btm\000btm-Batk-ID",
+ "btn\000btn-Latn-PH",
+ "bto\000bto-Latn-PH",
+ "btp\000btp-Latn-PG",
+ "btq\000btq-Latn-MY",
+ "btr\000btr-Latn-VU",
+ "bts\000bts-Latn-ID",
+ "btt\000btt-Latn-NG",
+ "btu\000btu-Latn-NG",
+ "btv\000btv-Deva-PK",
+ "btw\000btw-Latn-PH",
+ "btx\000btx-Latn-ID",
+ "bty\000bty-Latn-ID",
+ "btz\000btz-Latn-ID",
+ "bua\000bua-Cyrl-RU",
+ "bub\000bub-Latn-TD",
+ "buc\000buc-Latn-YT",
+ "bud\000bud-Latn-TG",
+ "bue\000bue-Latn-CA",
+ "buf\000buf-Latn-CD",
+ "bug\000bug-Latn-ID",
+ "buh\000buh-Latn-CN",
+ "bui\000bui-Latn-CG",
+ "buj\000buj-Latn-NG",
+ "buk\000buk-Latn-PG",
+ "bum\000bum-Latn-CM",
+ "bun\000bun-Latn-SL",
+ "buo\000buo-Latn-PG",
+ "bup\000bup-Latn-ID",
+ "buq\000buq-Latn-PG",
+ "bus\000bus-Latn-NG",
+ "but\000but-Latn-PG",
+ "buu\000buu-Latn-CD",
+ "buv\000buv-Latn-PG",
+ "buw\000buw-Latn-GA",
+ "bux\000bux-Latn-NG",
+ "buy\000buy-Latn-SL",
+ "buz\000buz-Latn-NG",
+ "bva\000bva-Latn-TD",
+ "bvb\000bvb-Latn-GQ",
+ "bvc\000bvc-Latn-SB",
+ "bvd\000bvd-Latn-SB",
+ "bve\000bve-Latn-ID",
+ "bvf\000bvf-Latn-TD",
+ "bvg\000bvg-Latn-CM",
+ "bvh\000bvh-Latn-NG",
+ "bvi\000bvi-Latn-SS",
+ "bvj\000bvj-Latn-NG",
+ "bvk\000bvk-Latn-ID",
+ "bvm\000bvm-Latn-CM",
+ "bvn\000bvn-Latn-PG",
+ "bvo\000bvo-Latn-TD",
+ "bvq\000bvq-Latn-CF",
+ "bvr\000bvr-Latn-AU",
+ "bvt\000bvt-Latn-ID",
+ "bvu\000bvu-Latn-ID",
+ "bvv\000bvv-Latn-VE",
+ "bvw\000bvw-Latn-NG",
+ "bvx\000bvx-Latn-CG",
+ "bvy\000bvy-Latn-PH",
+ "bvz\000bvz-Latn-ID",
+ "bwa\000bwa-Latn-NC",
+ "bwb\000bwb-Latn-FJ",
+ "bwc\000bwc-Latn-ZM",
+ "bwd\000bwd-Latn-PG",
+ "bwe\000bwe-Mymr-MM",
+ "bwf\000bwf-Latn-PG",
+ "bwg\000bwg-Latn-MZ",
+ "bwh\000bwh-Latn-CM",
+ "bwi\000bwi-Latn-VE",
+ "bwj\000bwj-Latn-BF",
+ "bwk\000bwk-Latn-PG",
+ "bwl\000bwl-Latn-CD",
+ "bwm\000bwm-Latn-PG",
+ "bwo\000bwo-Latn-ET",
+ "bwp\000bwp-Latn-ID",
+ "bwq\000bwq-Latn-BF",
+ "bwr\000bwr-Latn-NG",
+ "bws\000bws-Latn-CD",
+ "bwt\000bwt-Latn-CM",
+ "bwu\000bwu-Latn-GH",
+ "bww\000bww-Latn-CD",
+ "bwx\000bwx-Latn-CN",
+ "bwy\000bwy-Latn-BF",
+ "bwz\000bwz-Latn-CG",
+ "bxa\000bxa-Latn-SB",
+ "bxb\000bxb-Latn-SS",
+ "bxc\000bxc-Latn-GQ",
+ "bxf\000bxf-Latn-PG",
+ "bxg\000bxg-Latn-CD",
+ "bxh\000bxh-Latn-PG",
+ "bxi\000bxi-Latn-AU",
+ "bxj\000bxj-Latn-AU",
+ "bxl\000bxl-Latn-BF",
+ "bxm\000bxm-Cyrl-MN",
+ "bxn\000bxn-Latn-AU",
+ "bxo\000bxo-Latn-NG",
+ "bxp\000bxp-Latn-CM",
+ "bxq\000bxq-Latn-NG",
+ "bxs\000bxs-Latn-CM",
+ "bxu\000bxu-Mong-CN",
+ "bxv\000bxv-Latn-TD",
+ "bxw\000bxw-Latn-ML",
+ "bxz\000bxz-Latn-PG",
+ "bya\000bya-Latn-PH",
+ "byb\000byb-Latn-CM",
+ "byc\000byc-Latn-NG",
+ "byd\000byd-Latn-ID",
+ "bye\000bye-Latn-PG",
+ "byf\000byf-Latn-NG",
+ "byh\000byh-Deva-NP",
+ "byi\000byi-Latn-CD",
+ "byj\000byj-Latn-NG",
+ "byk\000byk-Latn-CN",
+ "byl\000byl-Latn-ID",
+ "bym\000bym-Latn-AU",
+ "byn\000byn-Ethi-ER",
+ "byp\000byp-Latn-NG",
+ "byr\000byr-Latn-PG",
+ "bys\000bys-Latn-NG",
+ "byv\000byv-Latn-CM",
+ "byw\000byw-Deva-NP",
+ "byx\000byx-Latn-PG",
+ "byz\000byz-Latn-PG",
+ "bza\000bza-Latn-LR",
+ "bzb\000bzb-Latn-ID",
+ "bzc\000bzc-Latn-MG",
+ "bzd\000bzd-Latn-CR",
+ "bze\000bze-Latn-ML",
+ "bzf\000bzf-Latn-PG",
+ "bzh\000bzh-Latn-PG",
+ "bzi\000bzi-Thai-TH",
+ "bzj\000bzj-Latn-BZ",
+ "bzk\000bzk-Latn-NI",
+ "bzl\000bzl-Latn-ID",
+ "bzm\000bzm-Latn-CD",
+ "bzn\000bzn-Latn-ID",
+ "bzo\000bzo-Latn-CD",
+ "bzp\000bzp-Latn-ID",
+ "bzq\000bzq-Latn-ID",
+ "bzr\000bzr-Latn-AU",
+ "bzt\000bzt-Latn-001",
+ "bzu\000bzu-Latn-ID",
+ "bzv\000bzv-Latn-CM",
+ "bzw\000bzw-Latn-NG",
+ "bzx\000bzx-Latn-ML",
+ "bzy\000bzy-Latn-NG",
+ "bzz\000bzz-Latn-NG",
+ "ca\000ca-Latn-ES",
+ "caa\000caa-Latn-GT",
+ "cab\000cab-Latn-HN",
+ "cac\000cac-Latn-GT",
+ "cad\000cad-Latn-US",
+ "cae\000cae-Latn-SN",
+ "caf\000caf-Latn-CA",
+ "cag\000cag-Latn-PY",
+ "cah\000cah-Latn-PE",
+ "caj\000caj-Latn-BO",
+ "cak\000cak-Latn-GT",
+ "cal\000cal-Latn-MP",
+ "cam\000cam-Latn-NC",
+ "can\000can-Latn-PG",
+ "cao\000cao-Latn-BO",
+ "cap\000cap-Latn-BO",
+ "caq\000caq-Latn-IN",
+ "car\000car-Latn-VE",
+ "cas\000cas-Latn-BO",
+ "cav\000cav-Latn-BO",
+ "caw\000caw-Latn-BO",
+ "cax\000cax-Latn-BO",
+ "cay\000cay-Latn-CA",
+ "caz\000caz-Latn-BO",
+ "cbb\000cbb-Latn-CO",
+ "cbc\000cbc-Latn-CO",
+ "cbd\000cbd-Latn-CO",
+ "cbg\000cbg-Latn-CO",
+ "cbi\000cbi-Latn-EC",
+ "cbj\000cbj-Latn-BJ",
+ "cbk\000cbk-Latn-PH",
+ "cbl\000cbl-Latn-MM",
+ "cbn\000cbn-Thai-TH",
+ "cbo\000cbo-Latn-NG",
+ "cbq\000cbq-Latn-NG",
+ "cbr\000cbr-Latn-PE",
+ "cbs\000cbs-Latn-PE",
+ "cbt\000cbt-Latn-PE",
+ "cbu\000cbu-Latn-PE",
+ "cbv\000cbv-Latn-CO",
+ "cbw\000cbw-Latn-PH",
+ "cby\000cby-Latn-CO",
+ "ccc\000ccc-Latn-PE",
+ "ccd\000ccd-Latn-BR",
+ "cce\000cce-Latn-MZ",
+ "ccg\000ccg-Latn-NG",
+ "cch\000cch-Latn-NG",
+ "ccj\000ccj-Latn-GW",
+ "ccl\000ccl-Latn-TZ",
+ "ccm\000ccm-Latn-MY",
+ "cco\000cco-Latn-MX",
+ "ccp\000ccp-Cakm-BD",
+ "ccr\000ccr-Latn-SV",
+ "cde\000cde-Telu-IN",
+ "cdf\000cdf-Latn-IN",
+ "cdh\000cdh-Deva-IN",
+ "cdi\000cdi-Gujr-IN",
+ "cdj\000cdj-Deva-IN",
+ "cdm\000cdm-Deva-NP",
+ "cdn\000cdn-Deva-IN",
+ "cdo\000cdo-Hans-CN",
+ "cdr\000cdr-Latn-NG",
+ "cdz\000cdz-Beng-IN",
+ "ce\000ce-Cyrl-RU",
+ "cea\000cea-Latn-US",
+ "ceb\000ceb-Latn-PH",
+ "ceg\000ceg-Latn-PY",
+ "cek\000cek-Latn-MM",
+ "cen\000cen-Latn-NG",
+ "cet\000cet-Latn-NG",
+ "cey\000cey-Latn-MM",
+ "cfa\000cfa-Latn-NG",
+ "cfd\000cfd-Latn-NG",
+ "cfg\000cfg-Latn-NG",
+ "cfm\000cfm-Latn-MM",
+ "cga\000cga-Latn-PG",
+ "cgc\000cgc-Latn-PH",
+ "cgg\000cgg-Latn-UG",
+ "cgk\000cgk-Tibt-BT",
+ "ch\000ch-Latn-GU",
+ "chb\000chb-Latn-CO",
+ "chd\000chd-Latn-MX",
+ "chf\000chf-Latn-MX",
+ "chg\000chg-Arab-TM",
+ "chh\000chh-Latn-US",
+ "chj\000chj-Latn-MX",
+ "chk\000chk-Latn-FM",
+ "chl\000chl-Latn-US",
+ "chm\000chm-Cyrl-RU",
+ "chn\000chn-Latn-US",
+ "cho\000cho-Latn-US",
+ "chp\000chp-Latn-CA",
+ "chq\000chq-Latn-MX",
+ "chr\000chr-Cher-US",
+ "cht\000cht-Latn-PE",
+ "chw\000chw-Latn-MZ",
+ "chx\000chx-Deva-NP",
+ "chy\000chy-Latn-US",
+ "chz\000chz-Latn-MX",
+ "cia\000cia-Latn-ID",
+ "cib\000cib-Latn-BJ",
+ "cic\000cic-Latn-US",
+ "cie\000cie-Latn-NG",
+ "cih\000cih-Deva-IN",
+ "cim\000cim-Latn-IT",
+ "cin\000cin-Latn-BR",
+ "cip\000cip-Latn-MX",
+ "cir\000cir-Latn-NC",
+ "ciw\000ciw-Latn-US",
+ "ciy\000ciy-Latn-VE",
+ "cja\000cja-Arab-KH",
+ "cje\000cje-Latn-VN",
+ "cjh\000cjh-Latn-US",
+ "cji\000cji-Cyrl-RU",
+ "cjk\000cjk-Latn-AO",
+ "cjm\000cjm-Cham-VN",
+ "cjn\000cjn-Latn-PG",
+ "cjo\000cjo-Latn-PE",
+ "cjp\000cjp-Latn-CR",
+ "cjs\000cjs-Latn-RU",
+ "cjv\000cjv-Latn-PG",
+ "cjy\000cjy-Hans-CN",
+ "ckb\000ckb-Arab-IQ",
+ "ckl\000ckl-Latn-NG",
+ "ckm\000ckm-Latn-HR",
+ "ckn\000ckn-Latn-MM",
+ "cko\000cko-Latn-GH",
+ "ckq\000ckq-Latn-TD",
+ "ckr\000ckr-Latn-PG",
+ "cks\000cks-Latn-NC",
+ "ckt\000ckt-Cyrl-RU",
+ "cku\000cku-Latn-US",
+ "ckv\000ckv-Latn-TW",
+ "ckx\000ckx-Latn-CM",
+ "cky\000cky-Latn-NG",
+ "ckz\000ckz-Latn-GT",
+ "cla\000cla-Latn-NG",
+ "clc\000clc-Latn-CA",
+ "cle\000cle-Latn-MX",
+ "clh\000clh-Arab-PK",
+ "cli\000cli-Latn-GH",
+ "clj\000clj-Latn-MM",
+ "clk\000clk-Latn-IN",
+ "cll\000cll-Latn-GH",
+ "clm\000clm-Latn-US",
+ "clo\000clo-Latn-MX",
+ "clt\000clt-Latn-MM",
+ "clu\000clu-Latn-PH",
+ "clw\000clw-Cyrl-RU",
+ "cly\000cly-Latn-MX",
+ "cma\000cma-Latn-VN",
+ "cme\000cme-Latn-BF",
+ "cmg\000cmg-Soyo-MN",
+ "cmi\000cmi-Latn-CO",
+ "cml\000cml-Latn-ID",
+ "cmo\000cmo-Latn-VN",
+ "cmr\000cmr-Latn-MM",
+ "cms\000cms-Latn-IT",
+ "cmt\000cmt-Latn-ZA",
+ "cna\000cna-Tibt-IN",
+ "cnb\000cnb-Latn-MM",
+ "cnc\000cnc-Latn-VN",
+ "cng\000cng-Latn-CN",
+ "cnh\000cnh-Latn-MM",
+ "cni\000cni-Latn-PE",
+ "cnk\000cnk-Latn-MM",
+ "cnl\000cnl-Latn-MX",
+ "cnp\000cnp-Hans-CN",
+ "cnq\000cnq-Latn-CM",
+ "cns\000cns-Latn-ID",
+ "cnt\000cnt-Latn-MX",
+ "cnw\000cnw-Latn-MM",
+ "cnx\000cnx-Latn-GB",
+ "co\000co-Latn-FR",
+ "coa\000coa-Latn-AU",
+ "cob\000cob-Latn-MX",
+ "coc\000coc-Latn-MX",
+ "cod\000cod-Latn-PE",
+ "coe\000coe-Latn-CO",
+ "cof\000cof-Latn-EC",
+ "cog\000cog-Thai-TH",
+ "coh\000coh-Latn-KE",
+ "coj\000coj-Latn-MX",
+ "cok\000cok-Latn-MX",
+ "col\000col-Latn-US",
+ "com\000com-Latn-US",
+ "coo\000coo-Latn-CA",
+ "cop\000cop-Copt-EG",
+ "coq\000coq-Latn-US",
+ "cot\000cot-Latn-PE",
+ "cou\000cou-Latn-SN",
+ "cox\000cox-Latn-PE",
+ "coz\000coz-Latn-MX",
+ "cpa\000cpa-Latn-MX",
+ "cpb\000cpb-Latn-PE",
+ "cpc\000cpc-Latn-PE",
+ "cpg\000cpg-Grek-GR",
+ "cpi\000cpi-Latn-NR",
+ "cpn\000cpn-Latn-GH",
+ "cpo\000cpo-Latn-BF",
+ "cps\000cps-Latn-PH",
+ "cpu\000cpu-Latn-PE",
+ "cpx\000cpx-Latn-CN",
+ "cpy\000cpy-Latn-PE",
+ "cqd\000cqd-Latn-CN",
+ "cr\000cr-Cans-CA",
+ "cra\000cra-Latn-ET",
+ "crb\000crb-Latn-VC",
+ "crc\000crc-Latn-VU",
+ "crd\000crd-Latn-US",
+ "crf\000crf-Latn-CO",
+ "crg\000crg-Latn-CA",
+ "crh\000crh-Cyrl-UA",
+ "cri\000cri-Latn-ST",
+ "crj\000crj-Cans-CA",
+ "crk\000crk-Cans-CA",
+ "crl\000crl-Cans-CA",
+ "crm\000crm-Cans-CA",
+ "crn\000crn-Latn-MX",
+ "cro\000cro-Latn-US",
+ "crq\000crq-Latn-AR",
+ "crs\000crs-Latn-SC",
+ "crt\000crt-Latn-AR",
+ "crv\000crv-Latn-IN",
+ "crw\000crw-Latn-VN",
+ "crx\000crx-Latn-CA",
+ "cry\000cry-Latn-NG",
+ "crz\000crz-Latn-US",
+ "cs\000cs-Latn-CZ",
+ "csa\000csa-Latn-MX",
+ "csb\000csb-Latn-PL",
+ "csh\000csh-Mymr-MM",
+ "csj\000csj-Latn-MM",
+ "csk\000csk-Latn-SN",
+ "csm\000csm-Latn-US",
+ "cso\000cso-Latn-MX",
+ "csp\000csp-Hans-CN",
+ "css\000css-Latn-US",
+ "cst\000cst-Latn-US",
+ "csv\000csv-Latn-MM",
+ "csw\000csw-Cans-CA",
+ "csy\000csy-Latn-MM",
+ "csz\000csz-Latn-US",
+ "cta\000cta-Latn-MX",
+ "ctc\000ctc-Latn-US",
+ "ctd\000ctd-Pauc-MM",
+ "cte\000cte-Latn-MX",
+ "ctg\000ctg-Beng-BD",
+ "cth\000cth-Latn-MM",
+ "ctl\000ctl-Latn-MX",
+ "ctm\000ctm-Latn-US",
+ "ctn\000ctn-Deva-NP",
+ "cto\000cto-Latn-CO",
+ "ctp\000ctp-Latn-MX",
+ "cts\000cts-Latn-PH",
+ "ctt\000ctt-Taml-IN",
+ "ctu\000ctu-Latn-MX",
+ "cty\000cty-Taml-IN",
+ "ctz\000ctz-Latn-MX",
+ "cu\000cu-Cyrl-RU",
+ "cu-Glag\000cu-Glag-BG",
+ "cua\000cua-Latn-VN",
+ "cub\000cub-Latn-CO",
+ "cuc\000cuc-Latn-MX",
+ "cuh\000cuh-Latn-KE",
+ "cui\000cui-Latn-CO",
+ "cuj\000cuj-Latn-PE",
+ "cuk\000cuk-Latn-PA",
+ "cul\000cul-Latn-BR",
+ "cuo\000cuo-Latn-VE",
+ "cup\000cup-Latn-US",
+ "cut\000cut-Latn-MX",
+ "cuu\000cuu-Lana-CN",
+ "cuv\000cuv-Latn-CM",
+ "cux\000cux-Latn-MX",
+ "cuy\000cuy-Latn-MX",
+ "cv\000cv-Cyrl-RU",
+ "cvg\000cvg-Latn-IN",
+ "cvn\000cvn-Latn-MX",
+ "cwa\000cwa-Latn-TZ",
+ "cwb\000cwb-Latn-MZ",
+ "cwe\000cwe-Latn-TZ",
+ "cwg\000cwg-Latn-MY",
+ "cwt\000cwt-Latn-SN",
+ "cxh\000cxh-Latn-NG",
+ "cy\000cy-Latn-GB",
+ "cya\000cya-Latn-MX",
+ "cyb\000cyb-Latn-BO",
+ "cyo\000cyo-Latn-PH",
+ "czh\000czh-Hans-CN",
+ "czk\000czk-Hebr-CZ",
+ "czn\000czn-Latn-MX",
+ "czt\000czt-Latn-MM",
+ "da\000da-Latn-DK",
+ "daa\000daa-Latn-TD",
+ "dac\000dac-Latn-PG",
+ "dad\000dad-Latn-PG",
+ "dae\000dae-Latn-CM",
+ "dag\000dag-Latn-GH",
+ "dah\000dah-Latn-PG",
+ "dai\000dai-Latn-TD",
+ "daj\000daj-Latn-SD",
+ "dak\000dak-Latn-US",
+ "dal\000dal-Latn-KE",
+ "dam\000dam-Latn-NG",
+ "dao\000dao-Latn-MM",
+ "daq\000daq-Deva-IN",
+ "dar\000dar-Cyrl-RU",
+ "das\000das-Latn-CI",
+ "dau\000dau-Latn-TD",
+ "dav\000dav-Latn-KE",
+ "daw\000daw-Latn-PH",
+ "dax\000dax-Latn-AU",
+ "daz\000daz-Latn-ID",
+ "dba\000dba-Latn-ML",
+ "dbb\000dbb-Latn-NG",
+ "dbd\000dbd-Latn-NG",
+ "dbe\000dbe-Latn-ID",
+ "dbf\000dbf-Latn-ID",
+ "dbg\000dbg-Latn-ML",
+ "dbi\000dbi-Latn-NG",
+ "dbj\000dbj-Latn-MY",
+ "dbl\000dbl-Latn-AU",
+ "dbm\000dbm-Latn-NG",
+ "dbn\000dbn-Latn-ID",
+ "dbo\000dbo-Latn-NG",
+ "dbp\000dbp-Latn-NG",
+ "dbq\000dbq-Latn-CM",
+ "dbt\000dbt-Latn-ML",
+ "dbu\000dbu-Latn-ML",
+ "dbv\000dbv-Latn-NG",
+ "dbw\000dbw-Latn-ML",
+ "dby\000dby-Latn-PG",
+ "dcc\000dcc-Arab-IN",
+ "dcr\000dcr-Latn-VI",
+ "dda\000dda-Latn-AU",
+ "ddd\000ddd-Latn-SS",
+ "dde\000dde-Latn-CG",
+ "ddg\000ddg-Latn-TL",
+ "ddi\000ddi-Latn-PG",
+ "ddj\000ddj-Latn-AU",
+ "ddn\000ddn-Latn-BJ",
+ "ddo\000ddo-Cyrl-RU",
+ "ddr\000ddr-Latn-AU",
+ "dds\000dds-Latn-ML",
+ "ddw\000ddw-Latn-ID",
+ "de\000de-Latn-DE",
+ "dec\000dec-Latn-SD",
+ "ded\000ded-Latn-PG",
+ "dee\000dee-Latn-LR",
+ "def\000def-Arab-IR",
+ "deg\000deg-Latn-NG",
+ "deh\000deh-Arab-PK",
+ "dei\000dei-Latn-ID",
+ "del\000del-Latn-US",
+ "dem\000dem-Latn-ID",
+ "den\000den-Latn-CA",
+ "deq\000deq-Latn-CF",
+ "der\000der-Beng-IN",
+ "des\000des-Latn-BR",
+ "dev\000dev-Latn-PG",
+ "dez\000dez-Latn-CD",
+ "dga\000dga-Latn-GH",
+ "dgb\000dgb-Latn-ML",
+ "dgc\000dgc-Latn-PH",
+ "dgd\000dgd-Latn-BF",
+ "dge\000dge-Latn-PG",
+ "dgg\000dgg-Latn-PG",
+ "dgh\000dgh-Latn-NG",
+ "dgi\000dgi-Latn-BF",
+ "dgk\000dgk-Latn-CF",
+ "dgl\000dgl-Arab-SD",
+ "dgn\000dgn-Latn-AU",
+ "dgr\000dgr-Latn-CA",
+ "dgs\000dgs-Latn-BF",
+ "dgt\000dgt-Latn-AU",
+ "dgw\000dgw-Latn-AU",
+ "dgx\000dgx-Latn-PG",
+ "dgz\000dgz-Latn-PG",
+ "dhg\000dhg-Latn-AU",
+ "dhi\000dhi-Deva-NP",
+ "dhl\000dhl-Latn-AU",
+ "dhm\000dhm-Latn-AO",
+ "dhn\000dhn-Gujr-IN",
+ "dho\000dho-Gujr-IN",
+ "dhr\000dhr-Latn-AU",
+ "dhs\000dhs-Latn-TZ",
+ "dhu\000dhu-Latn-AU",
+ "dhv\000dhv-Latn-NC",
+ "dhw\000dhw-Deva-NP",
+ "dhx\000dhx-Latn-AU",
+ "dia\000dia-Latn-PG",
+ "dib\000dib-Latn-SS",
+ "dic\000dic-Latn-CI",
+ "did\000did-Latn-SS",
+ "dif\000dif-Latn-AU",
+ "dig\000dig-Latn-KE",
+ "dih\000dih-Latn-MX",
+ "dii\000dii-Latn-CM",
+ "dij\000dij-Latn-ID",
+ "dil\000dil-Latn-SD",
+ "din\000din-Latn-SS",
+ "dio\000dio-Latn-NG",
+ "dip\000dip-Latn-SS",
+ "dir\000dir-Latn-NG",
+ "dis\000dis-Latn-IN",
+ "diu\000diu-Latn-NA",
+ "diw\000diw-Latn-SS",
+ "dix\000dix-Latn-VU",
+ "diy\000diy-Latn-ID",
+ "diz\000diz-Latn-CD",
+ "dja\000dja-Latn-AU",
+ "djb\000djb-Latn-AU",
+ "djc\000djc-Latn-TD",
+ "djd\000djd-Latn-AU",
+ "dje\000dje-Latn-NE",
+ "djf\000djf-Latn-AU",
+ "dji\000dji-Latn-AU",
+ "djj\000djj-Latn-AU",
+ "djk\000djk-Latn-SR",
+ "djm\000djm-Latn-ML",
+ "djn\000djn-Latn-AU",
+ "djo\000djo-Latn-ID",
+ "djr\000djr-Latn-AU",
+ "dju\000dju-Latn-PG",
+ "djw\000djw-Latn-AU",
+ "dka\000dka-Tibt-BT",
+ "dkg\000dkg-Latn-NG",
+ "dkk\000dkk-Latn-ID",
+ "dkr\000dkr-Latn-MY",
+ "dks\000dks-Latn-SS",
+ "dkx\000dkx-Latn-CM",
+ "dlg\000dlg-Cyrl-RU",
+ "dlm\000dlm-Latn-HR",
+ "dln\000dln-Latn-IN",
+ "dma\000dma-Latn-GA",
+ "dmb\000dmb-Latn-ML",
+ "dmc\000dmc-Latn-PG",
+ "dmd\000dmd-Latn-AU",
+ "dme\000dme-Latn-CM",
+ "dmf\000dmf-Medf-NG",
+ "dmg\000dmg-Latn-MY",
+ "dmk\000dmk-Arab-PK",
+ "dml\000dml-Arab-PK",
+ "dmm\000dmm-Latn-CM",
+ "dmo\000dmo-Latn-CM",
+ "dmr\000dmr-Latn-ID",
+ "dms\000dms-Latn-ID",
+ "dmu\000dmu-Latn-ID",
+ "dmv\000dmv-Latn-MY",
+ "dmw\000dmw-Latn-AU",
+ "dmx\000dmx-Latn-MZ",
+ "dmy\000dmy-Latn-ID",
+ "dna\000dna-Latn-ID",
+ "dnd\000dnd-Latn-PG",
+ "dne\000dne-Latn-TZ",
+ "dng\000dng-Cyrl-KG",
+ "dni\000dni-Latn-ID",
+ "dnj\000dnj-Latn-CI",
+ "dnk\000dnk-Latn-ID",
+ "dnn\000dnn-Latn-BF",
+ "dno\000dno-Latn-CD",
+ "dnr\000dnr-Latn-PG",
+ "dnt\000dnt-Latn-ID",
+ "dnu\000dnu-Mymr-MM",
+ "dnv\000dnv-Mymr-MM",
+ "dnw\000dnw-Latn-ID",
+ "dny\000dny-Latn-BR",
+ "doa\000doa-Latn-PG",
+ "dob\000dob-Latn-PG",
+ "doc\000doc-Latn-CN",
+ "doe\000doe-Latn-TZ",
+ "dof\000dof-Latn-PG",
+ "doh\000doh-Latn-NG",
+ "doi\000doi-Deva-IN",
+ "dok\000dok-Latn-ID",
+ "dol\000dol-Latn-PG",
+ "don\000don-Latn-PG",
+ "doo\000doo-Latn-CD",
+ "dop\000dop-Latn-BJ",
+ "dor\000dor-Latn-SB",
+ "dos\000dos-Latn-BF",
+ "dot\000dot-Latn-NG",
+ "dov\000dov-Latn-ZW",
+ "dow\000dow-Latn-CM",
+ "dox\000dox-Ethi-ET",
+ "doy\000doy-Latn-GH",
+ "dpp\000dpp-Latn-MY",
+ "drc\000drc-Latn-PT",
+ "dre\000dre-Tibt-NP",
+ "drg\000drg-Latn-MY",
+ "dri\000dri-Latn-NG",
+ "drl\000drl-Latn-AU",
+ "drn\000drn-Latn-ID",
+ "dro\000dro-Latn-MY",
+ "drq\000drq-Deva-NP",
+ "drs\000drs-Ethi-ET",
+ "drt\000drt-Latn-NL",
+ "dru\000dru-Latn-TW",
+ "dry\000dry-Deva-NP",
+ "dsb\000dsb-Latn-DE",
+ "dsh\000dsh-Latn-KE",
+ "dsi\000dsi-Latn-TD",
+ "dsk\000dsk-Latn-NG",
+ "dsn\000dsn-Latn-ID",
+ "dso\000dso-Orya-IN",
+ "dsq\000dsq-Latn-ML",
+ "dta\000dta-Latn-CN",
+ "dtb\000dtb-Latn-MY",
+ "dtd\000dtd-Latn-CA",
+ "dth\000dth-Latn-AU",
+ "dti\000dti-Latn-ML",
+ "dtk\000dtk-Latn-ML",
+ "dtm\000dtm-Latn-ML",
+ "dto\000dto-Latn-ML",
+ "dtp\000dtp-Latn-MY",
+ "dtr\000dtr-Latn-MY",
+ "dts\000dts-Latn-ML",
+ "dtt\000dtt-Latn-ML",
+ "dtu\000dtu-Latn-ML",
+ "dty\000dty-Deva-NP",
+ "dua\000dua-Latn-CM",
+ "dub\000dub-Gujr-IN",
+ "duc\000duc-Latn-PG",
+ "due\000due-Latn-PH",
+ "duf\000duf-Latn-NC",
+ "dug\000dug-Latn-KE",
+ "duh\000duh-Deva-IN",
+ "dui\000dui-Latn-PG",
+ "duk\000duk-Latn-PG",
+ "dul\000dul-Latn-PH",
+ "dum\000dum-Latn-NL",
+ "dun\000dun-Latn-ID",
+ "duo\000duo-Latn-PH",
+ "dup\000dup-Latn-ID",
+ "duq\000duq-Latn-ID",
+ "dur\000dur-Latn-CM",
+ "dus\000dus-Deva-NP",
+ "duu\000duu-Latn-CN",
+ "duv\000duv-Latn-ID",
+ "duw\000duw-Latn-ID",
+ "dux\000dux-Latn-ML",
+ "duy\000duy-Latn-PH",
+ "duz\000duz-Latn-CM",
+ "dv\000dv-Thaa-MV",
+ "dva\000dva-Latn-PG",
+ "dwa\000dwa-Latn-NG",
+ "dwk\000dwk-Orya-IN",
+ "dwr\000dwr-Latn-ET",
+ "dws\000dws-Latn-001",
+ "dwu\000dwu-Latn-AU",
+ "dww\000dww-Latn-PG",
+ "dwy\000dwy-Latn-AU",
+ "dwz\000dwz-Deva-NP",
+ "dya\000dya-Latn-BF",
+ "dyb\000dyb-Latn-AU",
+ "dyd\000dyd-Latn-AU",
+ "dyg\000dyg-Latn-PH",
+ "dyi\000dyi-Latn-CI",
+ "dym\000dym-Latn-ML",
+ "dyn\000dyn-Latn-AU",
+ "dyo\000dyo-Latn-SN",
+ "dyr\000dyr-Latn-NG",
+ "dyu\000dyu-Latn-BF",
+ "dyy\000dyy-Latn-AU",
+ "dz\000dz-Tibt-BT",
+ "dza\000dza-Latn-NG",
+ "dzd\000dzd-Latn-NG",
+ "dze\000dze-Latn-AU",
+ "dzg\000dzg-Latn-TD",
+ "dzl\000dzl-Tibt-BT",
+ "dzn\000dzn-Latn-CD",
+ "eaa\000eaa-Latn-AU",
+ "ebc\000ebc-Latn-ID",
+ "ebg\000ebg-Latn-NG",
+ "ebk\000ebk-Latn-PH",
+ "ebo\000ebo-Latn-CG",
+ "ebr\000ebr-Latn-CI",
+ "ebu\000ebu-Latn-KE",
+ "ecr\000ecr-Grek-GR",
+ "ecy\000ecy-Cprt-CY",
+ "ee\000ee-Latn-GH",
+ "efa\000efa-Latn-NG",
+ "efe\000efe-Latn-CD",
+ "efi\000efi-Latn-NG",
+ "ega\000ega-Latn-CI",
+ "egl\000egl-Latn-IT",
+ "egm\000egm-Latn-TZ",
+ "ego\000ego-Latn-NG",
+ "egy\000egy-Egyp-EG",
+ "ehu\000ehu-Latn-NG",
+ "eip\000eip-Latn-ID",
+ "eit\000eit-Latn-PG",
+ "eiv\000eiv-Latn-PG",
+ "eja\000eja-Latn-GW",
+ "eka\000eka-Latn-NG",
+ "eke\000eke-Latn-NG",
+ "ekg\000ekg-Latn-ID",
+ "eki\000eki-Latn-NG",
+ "ekl\000ekl-Latn-BD",
+ "ekm\000ekm-Latn-CM",
+ "eko\000eko-Latn-MZ",
+ "ekp\000ekp-Latn-NG",
+ "ekr\000ekr-Latn-NG",
+ "eky\000eky-Kali-MM",
+ "el\000el-Grek-GR",
+ "ele\000ele-Latn-PG",
+ "elk\000elk-Latn-PG",
+ "elm\000elm-Latn-NG",
+ "elo\000elo-Latn-KE",
+ "elu\000elu-Latn-PG",
+ "ema\000ema-Latn-NG",
+ "emb\000emb-Latn-ID",
+ "eme\000eme-Latn-GF",
+ "emg\000emg-Deva-NP",
+ "emi\000emi-Latn-PG",
+ "emm\000emm-Latn-MX",
+ "emn\000emn-Latn-CM",
+ "emp\000emp-Latn-PA",
+ "ems\000ems-Latn-US",
+ "emu\000emu-Deva-IN",
+ "emw\000emw-Latn-ID",
+ "emx\000emx-Latn-FR",
+ "emz\000emz-Latn-CM",
+ "en\000en-Latn-US",
+ "en-Shaw\000en-Shaw-GB",
+ "ena\000ena-Latn-PG",
+ "enb\000enb-Latn-KE",
+ "enc\000enc-Latn-VN",
+ "end\000end-Latn-ID",
+ "enf\000enf-Cyrl-RU",
+ "enh\000enh-Cyrl-RU",
+ "enl\000enl-Latn-PY",
+ "enm\000enm-Latn-GB",
+ "enn\000enn-Latn-NG",
+ "eno\000eno-Latn-ID",
+ "enq\000enq-Latn-PG",
+ "enr\000enr-Latn-ID",
+ "env\000env-Latn-NG",
+ "enw\000enw-Latn-NG",
+ "enx\000enx-Latn-PY",
+ "eo\000eo-Latn-001",
+ "eot\000eot-Latn-CI",
+ "epi\000epi-Latn-NG",
+ "era\000era-Taml-IN",
+ "erg\000erg-Latn-VU",
+ "erh\000erh-Latn-NG",
+ "eri\000eri-Latn-PG",
+ "erk\000erk-Latn-VU",
+ "err\000err-Latn-AU",
+ "ers\000ers-Latn-CN",
+ "ert\000ert-Latn-ID",
+ "erw\000erw-Latn-ID",
+ "es\000es-Latn-ES",
+ "ese\000ese-Latn-BO",
+ "esg\000esg-Gonm-IN",
+ "esh\000esh-Arab-IR",
+ "esi\000esi-Latn-US",
+ "esm\000esm-Latn-CI",
+ "ess\000ess-Latn-US",
+ "esu\000esu-Latn-US",
+ "esy\000esy-Latn-PH",
+ "et\000et-Latn-EE",
+ "etb\000etb-Latn-NG",
+ "etn\000etn-Latn-VU",
+ "eto\000eto-Latn-CM",
+ "etr\000etr-Latn-PG",
+ "ets\000ets-Latn-NG",
+ "ett\000ett-Ital-IT",
+ "etu\000etu-Latn-NG",
+ "etx\000etx-Latn-NG",
+ "etz\000etz-Latn-ID",
+ "eu\000eu-Latn-ES",
+ "eud\000eud-Latn-MX",
+ "eve\000eve-Cyrl-RU",
+ "evh\000evh-Latn-NG",
+ "evn\000evn-Cyrl-RU",
+ "ewo\000ewo-Latn-CM",
+ "ext\000ext-Latn-ES",
+ "eya\000eya-Latn-US",
+ "eyo\000eyo-Latn-KE",
+ "eza\000eza-Latn-NG",
+ "eze\000eze-Latn-NG",
+ "fa\000fa-Arab-IR",
+ "faa\000faa-Latn-PG",
+ "fab\000fab-Latn-GQ",
+ "fad\000fad-Latn-PG",
+ "faf\000faf-Latn-SB",
+ "fag\000fag-Latn-PG",
+ "fah\000fah-Latn-NG",
+ "fai\000fai-Latn-PG",
+ "faj\000faj-Latn-PG",
+ "fak\000fak-Latn-CM",
+ "fal\000fal-Latn-CM",
+ "fam\000fam-Latn-NG",
+ "fan\000fan-Latn-GQ",
+ "fap\000fap-Latn-SN",
+ "far\000far-Latn-SB",
+ "fau\000fau-Latn-ID",
+ "fax\000fax-Latn-ES",
+ "fay\000fay-Arab-IR",
+ "faz\000faz-Arab-IR",
+ "fbl\000fbl-Latn-PH",
+ "fer\000fer-Latn-SS",
+ "ff\000ff-Latn-SN",
+ "ff-Adlm\000ff-Adlm-GN",
+ "ffi\000ffi-Latn-PG",
+ "ffm\000ffm-Latn-ML",
+ "fgr\000fgr-Latn-TD",
+ "fi\000fi-Latn-FI",
+ "fia\000fia-Arab-SD",
+ "fie\000fie-Latn-NG",
+ "fif\000fif-Latn-SA",
+ "fil\000fil-Latn-PH",
+ "fip\000fip-Latn-TZ",
+ "fir\000fir-Latn-NG",
+ "fit\000fit-Latn-SE",
+ "fiw\000fiw-Latn-PG",
+ "fj\000fj-Latn-FJ",
+ "fkk\000fkk-Latn-NG",
+ "fkv\000fkv-Latn-NO",
+ "fla\000fla-Latn-US",
+ "flh\000flh-Latn-ID",
+ "fli\000fli-Latn-NG",
+ "fll\000fll-Latn-CM",
+ "fln\000fln-Latn-AU",
+ "flr\000flr-Latn-CD",
+ "fly\000fly-Latn-ZA",
+ "fmp\000fmp-Latn-CM",
+ "fmu\000fmu-Deva-IN",
+ "fnb\000fnb-Latn-VU",
+ "fng\000fng-Latn-ZA",
+ "fni\000fni-Latn-TD",
+ "fo\000fo-Latn-FO",
+ "fod\000fod-Latn-BJ",
+ "foi\000foi-Latn-PG",
+ "fom\000fom-Latn-CD",
+ "fon\000fon-Latn-BJ",
+ "for\000for-Latn-PG",
+ "fos\000fos-Latn-TW",
+ "fpe\000fpe-Latn-GQ",
+ "fqs\000fqs-Latn-PG",
+ "fr\000fr-Latn-FR",
+ "frc\000frc-Latn-US",
+ "frd\000frd-Latn-ID",
+ "frk\000frk-Latn-DE",
+ "frm\000frm-Latn-FR",
+ "fro\000fro-Latn-FR",
+ "frp\000frp-Latn-FR",
+ "frq\000frq-Latn-PG",
+ "frr\000frr-Latn-DE",
+ "frs\000frs-Latn-DE",
+ "frt\000frt-Latn-VU",
+ "fub\000fub-Arab-CM",
+ "fud\000fud-Latn-WF",
+ "fue\000fue-Latn-BJ",
+ "fuf\000fuf-Latn-GN",
+ "fuh\000fuh-Latn-NE",
+ "fui\000fui-Latn-TD",
+ "fum\000fum-Latn-NG",
+ "fun\000fun-Latn-BR",
+ "fuq\000fuq-Latn-NE",
+ "fur\000fur-Latn-IT",
+ "fut\000fut-Latn-VU",
+ "fuu\000fuu-Latn-CD",
+ "fuv\000fuv-Latn-NG",
+ "fuy\000fuy-Latn-PG",
+ "fvr\000fvr-Latn-SD",
+ "fwa\000fwa-Latn-NC",
+ "fwe\000fwe-Latn-NA",
+ "fy\000fy-Latn-NL",
+ "ga\000ga-Latn-IE",
+ "gaa\000gaa-Latn-GH",
+ "gab\000gab-Latn-TD",
+ "gac\000gac-Latn-IN",
+ "gad\000gad-Latn-PH",
+ "gae\000gae-Latn-VE",
+ "gaf\000gaf-Latn-PG",
+ "gag\000gag-Latn-MD",
+ "gah\000gah-Latn-PG",
+ "gai\000gai-Latn-PG",
+ "gaj\000gaj-Latn-PG",
+ "gak\000gak-Latn-ID",
+ "gal\000gal-Latn-TL",
+ "gam\000gam-Latn-PG",
+ "gan\000gan-Hans-CN",
+ "gao\000gao-Latn-PG",
+ "gap\000gap-Latn-PG",
+ "gaq\000gaq-Orya-IN",
+ "gar\000gar-Latn-PG",
+ "gas\000gas-Gujr-IN",
+ "gat\000gat-Latn-PG",
+ "gau\000gau-Telu-IN",
+ "gaw\000gaw-Latn-PG",
+ "gax\000gax-Latn-ET",
+ "gay\000gay-Latn-ID",
+ "gba\000gba-Latn-CF",
+ "gbb\000gbb-Latn-AU",
+ "gbd\000gbd-Latn-AU",
+ "gbe\000gbe-Latn-PG",
+ "gbf\000gbf-Latn-PG",
+ "gbg\000gbg-Latn-CF",
+ "gbh\000gbh-Latn-BJ",
+ "gbi\000gbi-Latn-ID",
+ "gbj\000gbj-Orya-IN",
+ "gbk\000gbk-Deva-IN",
+ "gbl\000gbl-Gujr-IN",
+ "gbm\000gbm-Deva-IN",
+ "gbn\000gbn-Latn-SS",
+ "gbp\000gbp-Latn-CF",
+ "gbq\000gbq-Latn-CF",
+ "gbr\000gbr-Latn-NG",
+ "gbs\000gbs-Latn-BJ",
+ "gbu\000gbu-Latn-AU",
+ "gbv\000gbv-Latn-CF",
+ "gbw\000gbw-Latn-AU",
+ "gbx\000gbx-Latn-BJ",
+ "gby\000gby-Latn-NG",
+ "gbz\000gbz-Arab-IR",
+ "gcc\000gcc-Latn-PG",
+ "gcd\000gcd-Latn-AU",
+ "gcf\000gcf-Latn-GP",
+ "gcl\000gcl-Latn-GD",
+ "gcn\000gcn-Latn-PG",
+ "gcr\000gcr-Latn-GF",
+ "gct\000gct-Latn-VE",
+ "gd\000gd-Latn-GB",
+ "gdb\000gdb-Orya-IN",
+ "gdc\000gdc-Latn-AU",
+ "gdd\000gdd-Latn-PG",
+ "gde\000gde-Latn-NG",
+ "gdf\000gdf-Latn-NG",
+ "gdg\000gdg-Latn-PH",
+ "gdh\000gdh-Latn-AU",
+ "gdi\000gdi-Latn-CF",
+ "gdj\000gdj-Latn-AU",
+ "gdk\000gdk-Latn-TD",
+ "gdl\000gdl-Latn-ET",
+ "gdm\000gdm-Latn-TD",
+ "gdn\000gdn-Latn-PG",
+ "gdo\000gdo-Cyrl-RU",
+ "gdq\000gdq-Latn-YE",
+ "gdr\000gdr-Latn-PG",
+ "gdt\000gdt-Latn-AU",
+ "gdu\000gdu-Latn-NG",
+ "gdx\000gdx-Deva-IN",
+ "gea\000gea-Latn-NG",
+ "geb\000geb-Latn-PG",
+ "gec\000gec-Latn-LR",
+ "ged\000ged-Latn-NG",
+ "gef\000gef-Latn-ID",
+ "geg\000geg-Latn-NG",
+ "geh\000geh-Latn-CA",
+ "gei\000gei-Latn-ID",
+ "gej\000gej-Latn-TG",
+ "gek\000gek-Latn-NG",
+ "gel\000gel-Latn-NG",
+ "geq\000geq-Latn-CF",
+ "ges\000ges-Latn-ID",
+ "gev\000gev-Latn-GA",
+ "gew\000gew-Latn-NG",
+ "gex\000gex-Latn-SO",
+ "gey\000gey-Latn-CD",
+ "gez\000gez-Ethi-ET",
+ "gfk\000gfk-Latn-PG",
+ "gga\000gga-Latn-SB",
+ "ggb\000ggb-Latn-LR",
+ "ggd\000ggd-Latn-AU",
+ "gge\000gge-Latn-AU",
+ "ggg\000ggg-Arab-PK",
+ "ggk\000ggk-Latn-AU",
+ "ggl\000ggl-Latn-PG",
+ "ggt\000ggt-Latn-PG",
+ "ggu\000ggu-Latn-CI",
+ "ggw\000ggw-Latn-PG",
+ "gha\000gha-Arab-LY",
+ "ghc\000ghc-Latn-GB",
+ "ghe\000ghe-Deva-NP",
+ "ghk\000ghk-Latn-MM",
+ "ghn\000ghn-Latn-SB",
+ "gho\000gho-Tfng-MA",
+ "ghr\000ghr-Arab-PK",
+ "ghs\000ghs-Latn-PG",
+ "ght\000ght-Tibt-NP",
+ "gia\000gia-Latn-AU",
+ "gib\000gib-Latn-NG",
+ "gic\000gic-Latn-ZA",
+ "gid\000gid-Latn-CM",
+ "gie\000gie-Latn-CI",
+ "gig\000gig-Arab-PK",
+ "gih\000gih-Latn-AU",
+ "gil\000gil-Latn-KI",
+ "gim\000gim-Latn-PG",
+ "gin\000gin-Cyrl-RU",
+ "gip\000gip-Latn-PG",
+ "giq\000giq-Latn-VN",
+ "gir\000gir-Latn-VN",
+ "gis\000gis-Latn-CM",
+ "git\000git-Latn-CA",
+ "gix\000gix-Latn-CD",
+ "giy\000giy-Latn-AU",
+ "giz\000giz-Latn-CM",
+ "gjk\000gjk-Arab-PK",
+ "gjm\000gjm-Latn-AU",
+ "gjn\000gjn-Latn-GH",
+ "gjr\000gjr-Latn-AU",
+ "gju\000gju-Arab-PK",
+ "gka\000gka-Latn-PG",
+ "gkd\000gkd-Latn-PG",
+ "gke\000gke-Latn-CM",
+ "gkn\000gkn-Latn-NG",
+ "gko\000gko-Latn-AU",
+ "gkp\000gkp-Latn-GN",
+ "gku\000gku-Latn-ZA",
+ "gl\000gl-Latn-ES",
+ "glb\000glb-Latn-NG",
+ "glc\000glc-Latn-TD",
+ "gld\000gld-Cyrl-RU",
+ "glh\000glh-Arab-AF",
+ "glj\000glj-Latn-TD",
+ "glk\000glk-Arab-IR",
+ "gll\000gll-Latn-AU",
+ "glo\000glo-Latn-NG",
+ "glr\000glr-Latn-LR",
+ "glu\000glu-Latn-TD",
+ "glw\000glw-Latn-NG",
+ "gma\000gma-Latn-AU",
+ "gmb\000gmb-Latn-SB",
+ "gmd\000gmd-Latn-NG",
+ "gmg\000gmg-Latn-PG",
+ "gmh\000gmh-Latn-DE",
+ "gml\000gml-Latf-DE",
+ "gmm\000gmm-Latn-CM",
+ "gmn\000gmn-Latn-CM",
+ "gmr\000gmr-Latn-AU",
+ "gmu\000gmu-Latn-PG",
+ "gmv\000gmv-Ethi-ET",
+ "gmx\000gmx-Latn-TZ",
+ "gmy\000gmy-Linb-GR",
+ "gmz\000gmz-Latn-NG",
+ "gn\000gn-Latn-PY",
+ "gna\000gna-Latn-BF",
+ "gnb\000gnb-Latn-IN",
+ "gnc\000gnc-Latn-ES",
+ "gnd\000gnd-Latn-CM",
+ "gne\000gne-Latn-NG",
+ "gng\000gng-Latn-TG",
+ "gnh\000gnh-Latn-NG",
+ "gni\000gni-Latn-AU",
+ "gnj\000gnj-Latn-CI",
+ "gnk\000gnk-Latn-BW",
+ "gnl\000gnl-Latn-AU",
+ "gnm\000gnm-Latn-PG",
+ "gnn\000gnn-Latn-AU",
+ "gnq\000gnq-Latn-MY",
+ "gnr\000gnr-Latn-AU",
+ "gnt\000gnt-Latn-PG",
+ "gnu\000gnu-Latn-PG",
+ "gnw\000gnw-Latn-BO",
+ "gnz\000gnz-Latn-CF",
+ "goa\000goa-Latn-CI",
+ "gob\000gob-Latn-CO",
+ "goc\000goc-Latn-PG",
+ "god\000god-Latn-CI",
+ "goe\000goe-Tibt-BT",
+ "gof\000gof-Ethi-ET",
+ "gog\000gog-Latn-TZ",
+ "goh\000goh-Latn-DE",
+ "goi\000goi-Latn-PG",
+ "goj\000goj-Deva-IN",
+ "gok\000gok-Deva-IN",
+ "gol\000gol-Latn-LR",
+ "gon\000gon-Deva-IN",
+ "goo\000goo-Latn-FJ",
+ "gop\000gop-Latn-ID",
+ "goq\000goq-Latn-ID",
+ "gor\000gor-Latn-ID",
+ "gos\000gos-Latn-NL",
+ "got\000got-Goth-UA",
+ "gou\000gou-Latn-CM",
+ "gov\000gov-Latn-CI",
+ "gow\000gow-Latn-TZ",
+ "gox\000gox-Latn-CD",
+ "goy\000goy-Latn-TD",
+ "gpa\000gpa-Latn-NG",
+ "gpe\000gpe-Latn-GH",
+ "gpn\000gpn-Latn-PG",
+ "gqa\000gqa-Latn-NG",
+ "gqn\000gqn-Latn-BR",
+ "gqr\000gqr-Latn-TD",
+ "gra\000gra-Deva-IN",
+ "grb\000grb-Latn-LR",
+ "grc\000grc-Grek-GR",
+ "grd\000grd-Latn-NG",
+ "grg\000grg-Latn-PG",
+ "grh\000grh-Latn-NG",
+ "gri\000gri-Latn-SB",
+ "grj\000grj-Latn-LR",
+ "grm\000grm-Latn-MY",
+ "grq\000grq-Latn-PG",
+ "grr\000grr-Arab-DZ",
+ "grs\000grs-Latn-ID",
+ "grt\000grt-Beng-IN",
+ "gru\000gru-Ethi-ET",
+ "grv\000grv-Latn-LR",
+ "grw\000grw-Latn-PG",
+ "grx\000grx-Latn-PG",
+ "gry\000gry-Latn-LR",
+ "grz\000grz-Latn-PG",
+ "gsl\000gsl-Latn-SN",
+ "gsn\000gsn-Latn-PG",
+ "gso\000gso-Latn-CF",
+ "gsp\000gsp-Latn-PG",
+ "gsw\000gsw-Latn-CH",
+ "gta\000gta-Latn-BR",
+ "gtu\000gtu-Latn-AU",
+ "gu\000gu-Gujr-IN",
+ "gua\000gua-Latn-NG",
+ "gub\000gub-Latn-BR",
+ "guc\000guc-Latn-CO",
+ "gud\000gud-Latn-CI",
+ "gue\000gue-Latn-AU",
+ "guf\000guf-Latn-AU",
+ "guh\000guh-Latn-CO",
+ "gui\000gui-Latn-BO",
+ "guk\000guk-Latn-ET",
+ "gul\000gul-Latn-US",
+ "gum\000gum-Latn-CO",
+ "gun\000gun-Latn-BR",
+ "guo\000guo-Latn-CO",
+ "gup\000gup-Latn-AU",
+ "guq\000guq-Latn-PY",
+ "gur\000gur-Latn-GH",
+ "gut\000gut-Latn-CR",
+ "guu\000guu-Latn-VE",
+ "guw\000guw-Latn-BJ",
+ "gux\000gux-Latn-BF",
+ "guz\000guz-Latn-KE",
+ "gv\000gv-Latn-IM",
+ "gva\000gva-Latn-PY",
+ "gvc\000gvc-Latn-BR",
+ "gve\000gve-Latn-PG",
+ "gvf\000gvf-Latn-PG",
+ "gvj\000gvj-Latn-BR",
+ "gvl\000gvl-Latn-TD",
+ "gvm\000gvm-Latn-NG",
+ "gvn\000gvn-Latn-AU",
+ "gvo\000gvo-Latn-BR",
+ "gvp\000gvp-Latn-BR",
+ "gvr\000gvr-Deva-NP",
+ "gvs\000gvs-Latn-PG",
+ "gvy\000gvy-Latn-AU",
+ "gwa\000gwa-Latn-CI",
+ "gwb\000gwb-Latn-NG",
+ "gwc\000gwc-Arab-PK",
+ "gwd\000gwd-Latn-ET",
+ "gwe\000gwe-Latn-TZ",
+ "gwf\000gwf-Arab-PK",
+ "gwg\000gwg-Latn-NG",
+ "gwi\000gwi-Latn-CA",
+ "gwj\000gwj-Latn-BW",
+ "gwm\000gwm-Latn-AU",
+ "gwn\000gwn-Latn-NG",
+ "gwr\000gwr-Latn-UG",
+ "gwt\000gwt-Arab-AF",
+ "gwu\000gwu-Latn-AU",
+ "gww\000gww-Latn-AU",
+ "gwx\000gwx-Latn-GH",
+ "gxx\000gxx-Latn-CI",
+ "gyb\000gyb-Latn-PG",
+ "gyd\000gyd-Latn-AU",
+ "gye\000gye-Latn-NG",
+ "gyf\000gyf-Latn-AU",
+ "gyg\000gyg-Latn-CF",
+ "gyi\000gyi-Latn-CM",
+ "gyl\000gyl-Latn-ET",
+ "gym\000gym-Latn-PA",
+ "gyn\000gyn-Latn-GY",
+ "gyo\000gyo-Deva-NP",
+ "gyr\000gyr-Latn-BO",
+ "gyy\000gyy-Latn-AU",
+ "gyz\000gyz-Latn-NG",
+ "gza\000gza-Latn-SD",
+ "gzi\000gzi-Arab-IR",
+ "gzn\000gzn-Latn-ID",
+ "ha\000ha-Latn-NG",
+ "ha-CM\000ha-Arab-CM",
+ "ha-SD\000ha-Arab-SD",
+ "haa\000haa-Latn-US",
+ "hac\000hac-Arab-IR",
+ "had\000had-Latn-ID",
+ "hae\000hae-Latn-ET",
+ "hag\000hag-Latn-GH",
+ "hah\000hah-Latn-PG",
+ "hai\000hai-Latn-CA",
+ "haj\000haj-Latn-IN",
+ "hak\000hak-Hans-CN",
+ "hak-Hant\000hak-Hant-TW",
+ "hak-TW\000hak-Hant-TW",
+ "hal\000hal-Latn-VN",
+ "ham\000ham-Latn-PG",
+ "han\000han-Latn-TZ",
+ "hao\000hao-Latn-PG",
+ "hap\000hap-Latn-ID",
+ "haq\000haq-Latn-TZ",
+ "har\000har-Ethi-ET",
+ "has\000has-Latn-CA",
+ "hav\000hav-Latn-CD",
+ "haw\000haw-Latn-US",
+ "hax\000hax-Latn-CA",
+ "hay\000hay-Latn-TZ",
+ "haz\000haz-Arab-AF",
+ "hba\000hba-Latn-CD",
+ "hbb\000hbb-Latn-NG",
+ "hbn\000hbn-Latn-SD",
+ "hbo\000hbo-Hebr-IL",
+ "hbu\000hbu-Latn-TL",
+ "hch\000hch-Latn-MX",
+ "hdy\000hdy-Ethi-ET",
+ "he\000he-Hebr-IL",
+ "hed\000hed-Latn-TD",
+ "heg\000heg-Latn-ID",
+ "heh\000heh-Latn-TZ",
+ "hei\000hei-Latn-CA",
+ "hem\000hem-Latn-CD",
+ "hgm\000hgm-Latn-NA",
+ "hgw\000hgw-Latn-PG",
+ "hhi\000hhi-Latn-PG",
+ "hhr\000hhr-Latn-SN",
+ "hhy\000hhy-Latn-PG",
+ "hi\000hi-Deva-IN",
+ "hia\000hia-Latn-NG",
+ "hib\000hib-Latn-PE",
+ "hid\000hid-Latn-US",
+ "hif\000hif-Deva-FJ",
+ "hig\000hig-Latn-NG",
+ "hih\000hih-Latn-PG",
+ "hii\000hii-Takr-IN",
+ "hij\000hij-Latn-CM",
+ "hik\000hik-Latn-ID",
+ "hil\000hil-Latn-PH",
+ "hio\000hio-Latn-BW",
+ "hir\000hir-Latn-BR",
+ "hit\000hit-Xsux-TR",
+ "hiw\000hiw-Latn-VU",
+ "hix\000hix-Latn-BR",
+ "hji\000hji-Latn-ID",
+ "hka\000hka-Latn-TZ",
+ "hke\000hke-Latn-CD",
+ "hkh\000hkh-Arab-IN",
+ "hkk\000hkk-Latn-PG",
+ "hla\000hla-Latn-PG",
+ "hlb\000hlb-Deva-IN",
+ "hld\000hld-Latn-VN",
+ "hlt\000hlt-Latn-MM",
+ "hlu\000hlu-Hluw-TR",
+ "hma\000hma-Latn-CN",
+ "hmb\000hmb-Latn-ML",
+ "hmd\000hmd-Plrd-CN",
+ "hmf\000hmf-Latn-VN",
+ "hmj\000hmj-Bopo-CN",
+ "hmm\000hmm-Latn-CN",
+ "hmn\000hmn-Latn-CN",
+ "hmp\000hmp-Latn-CN",
+ "hmq\000hmq-Bopo-CN",
+ "hmr\000hmr-Latn-IN",
+ "hms\000hms-Latn-CN",
+ "hmt\000hmt-Latn-PG",
+ "hmu\000hmu-Latn-ID",
+ "hmv\000hmv-Latn-VN",
+ "hmw\000hmw-Latn-CN",
+ "hmy\000hmy-Latn-CN",
+ "hmz\000hmz-Latn-CN",
+ "hna\000hna-Latn-CM",
+ "hnd\000hnd-Arab-PK",
+ "hne\000hne-Deva-IN",
+ "hng\000hng-Latn-AO",
+ "hnh\000hnh-Latn-BW",
+ "hni\000hni-Latn-CN",
+ "hnj\000hnj-Hmnp-US",
+ "hnj-Hmng\000hnj-Hmng-LA",
+ "hnm\000hnm-Hans-CN",
+ "hnn\000hnn-Latn-PH",
+ "hno\000hno-Arab-PK",
+ "hns\000hns-Latn-SR",
+ "ho\000ho-Latn-PG",
+ "hoa\000hoa-Latn-SB",
+ "hob\000hob-Latn-PG",
+ "hoc\000hoc-Deva-IN",
+ "hod\000hod-Latn-NG",
+ "hoe\000hoe-Latn-NG",
+ "hoh\000hoh-Arab-OM",
+ "hoi\000hoi-Latn-US",
+ "hoj\000hoj-Deva-IN",
+ "hol\000hol-Latn-AO",
+ "hom\000hom-Latn-SS",
+ "hoo\000hoo-Latn-CD",
+ "hop\000hop-Latn-US",
+ "hor\000hor-Latn-TD",
+ "hot\000hot-Latn-PG",
+ "hov\000hov-Latn-ID",
+ "how\000how-Hani-CN",
+ "hoy\000hoy-Deva-IN",
+ "hpo\000hpo-Mymr-MM",
+ "hr\000hr-Latn-HR",
+ "hra\000hra-Latn-IN",
+ "hrc\000hrc-Latn-PG",
+ "hre\000hre-Latn-VN",
+ "hrk\000hrk-Latn-ID",
+ "hrm\000hrm-Latn-CN",
+ "hro\000hro-Latn-VN",
+ "hrp\000hrp-Latn-AU",
+ "hrt\000hrt-Syrc-TR",
+ "hru\000hru-Latn-IN",
+ "hrw\000hrw-Latn-PG",
+ "hrx\000hrx-Latn-BR",
+ "hrz\000hrz-Arab-IR",
+ "hsb\000hsb-Latn-DE",
+ "hsn\000hsn-Hans-CN",
+ "hss\000hss-Arab-OM",
+ "ht\000ht-Latn-HT",
+ "hti\000hti-Latn-ID",
+ "hto\000hto-Latn-CO",
+ "hts\000hts-Latn-TZ",
+ "htu\000htu-Latn-ID",
+ "htx\000htx-Xsux-TR",
+ "hu\000hu-Latn-HU",
+ "hub\000hub-Latn-PE",
+ "huc\000huc-Latn-BW",
+ "hud\000hud-Latn-ID",
+ "hue\000hue-Latn-MX",
+ "huf\000huf-Latn-PG",
+ "hug\000hug-Latn-PE",
+ "huh\000huh-Latn-CL",
+ "hui\000hui-Latn-PG",
+ "huk\000huk-Latn-ID",
+ "hul\000hul-Latn-PG",
+ "hum\000hum-Latn-CD",
+ "hup\000hup-Latn-US",
+ "hur\000hur-Latn-CA",
+ "hus\000hus-Latn-MX",
+ "hut\000hut-Deva-NP",
+ "huu\000huu-Latn-PE",
+ "huv\000huv-Latn-MX",
+ "huw\000huw-Latn-ID",
+ "hux\000hux-Latn-PE",
+ "huy\000huy-Hebr-IL",
+ "huz\000huz-Cyrl-RU",
+ "hvc\000hvc-Latn-HT",
+ "hve\000hve-Latn-MX",
+ "hvk\000hvk-Latn-NC",
+ "hvn\000hvn-Latn-ID",
+ "hvv\000hvv-Latn-MX",
+ "hwa\000hwa-Latn-CI",
+ "hwc\000hwc-Latn-US",
+ "hwo\000hwo-Latn-NG",
+ "hy\000hy-Armn-AM",
+ "hya\000hya-Latn-CM",
+ "hyw\000hyw-Armn-AM",
+ "hz\000hz-Latn-NA",
+ "ia\000ia-Latn-001",
+ "iai\000iai-Latn-NC",
+ "ian\000ian-Latn-PG",
+ "iar\000iar-Latn-PG",
+ "iba\000iba-Latn-MY",
+ "ibb\000ibb-Latn-NG",
+ "ibd\000ibd-Latn-AU",
+ "ibe\000ibe-Latn-NG",
+ "ibg\000ibg-Latn-PH",
+ "ibh\000ibh-Latn-VN",
+ "ibl\000ibl-Latn-PH",
+ "ibm\000ibm-Latn-NG",
+ "ibn\000ibn-Latn-NG",
+ "ibr\000ibr-Latn-NG",
+ "ibu\000ibu-Latn-ID",
+ "iby\000iby-Latn-NG",
+ "ica\000ica-Latn-BJ",
+ "ich\000ich-Latn-NG",
+ "icr\000icr-Latn-CO",
+ "id\000id-Latn-ID",
+ "ida\000ida-Latn-KE",
+ "idb\000idb-Latn-IN",
+ "idc\000idc-Latn-NG",
+ "idd\000idd-Latn-BJ",
+ "ide\000ide-Latn-NG",
+ "idi\000idi-Latn-PG",
+ "idr\000idr-Latn-SS",
+ "ids\000ids-Latn-NG",
+ "idt\000idt-Latn-TL",
+ "idu\000idu-Latn-NG",
+ "ie\000ie-Latn-EE",
+ "ifa\000ifa-Latn-PH",
+ "ifb\000ifb-Latn-PH",
+ "ife\000ife-Latn-TG",
+ "iff\000iff-Latn-VU",
+ "ifk\000ifk-Latn-PH",
+ "ifm\000ifm-Latn-CG",
+ "ifu\000ifu-Latn-PH",
+ "ify\000ify-Latn-PH",
+ "ig\000ig-Latn-NG",
+ "igb\000igb-Latn-NG",
+ "ige\000ige-Latn-NG",
+ "igg\000igg-Latn-PG",
+ "igl\000igl-Latn-NG",
+ "igm\000igm-Latn-PG",
+ "ign\000ign-Latn-BO",
+ "igo\000igo-Latn-PG",
+ "igs\000igs-Latn-001",
+ "igw\000igw-Latn-NG",
+ "ihb\000ihb-Latn-ID",
+ "ihi\000ihi-Latn-NG",
+ "ihp\000ihp-Latn-ID",
+ "ihw\000ihw-Latn-AU",
+ "ii\000ii-Yiii-CN",
+ "iin\000iin-Latn-AU",
+ "ijc\000ijc-Latn-NG",
+ "ije\000ije-Latn-NG",
+ "ijj\000ijj-Latn-BJ",
+ "ijn\000ijn-Latn-NG",
+ "ijs\000ijs-Latn-NG",
+ "ik\000ik-Latn-US",
+ "ikh\000ikh-Latn-NG",
+ "iki\000iki-Latn-NG",
+ "ikk\000ikk-Latn-NG",
+ "ikl\000ikl-Latn-NG",
+ "iko\000iko-Latn-NG",
+ "ikp\000ikp-Latn-NG",
+ "ikr\000ikr-Latn-AU",
+ "ikt\000ikt-Latn-CA",
+ "ikv\000ikv-Latn-NG",
+ "ikw\000ikw-Latn-NG",
+ "ikx\000ikx-Latn-UG",
+ "ikz\000ikz-Latn-TZ",
+ "ila\000ila-Latn-ID",
+ "ilb\000ilb-Latn-ZM",
+ "ilg\000ilg-Latn-AU",
+ "ili\000ili-Latn-CN",
+ "ilk\000ilk-Latn-PH",
+ "ilm\000ilm-Latn-MY",
+ "ilo\000ilo-Latn-PH",
+ "ilp\000ilp-Latn-PH",
+ "ilu\000ilu-Latn-ID",
+ "ilv\000ilv-Latn-NG",
+ "imi\000imi-Latn-PG",
+ "iml\000iml-Latn-US",
+ "imn\000imn-Latn-PG",
+ "imo\000imo-Latn-PG",
+ "imr\000imr-Latn-ID",
+ "ims\000ims-Latn-IT",
+ "imt\000imt-Latn-SS",
+ "imy\000imy-Lyci-TR",
+ "in\000in-Latn-ID",
+ "inb\000inb-Latn-CO",
+ "ing\000ing-Latn-US",
+ "inh\000inh-Cyrl-RU",
+ "inj\000inj-Latn-CO",
+ "inn\000inn-Latn-PH",
+ "ino\000ino-Latn-PG",
+ "inp\000inp-Latn-PE",
+ "int\000int-Mymr-MM",
+ "io\000io-Latn-001",
+ "ior\000ior-Ethi-ET",
+ "iou\000iou-Latn-PG",
+ "iow\000iow-Latn-US",
+ "ipi\000ipi-Latn-PG",
+ "ipo\000ipo-Latn-PG",
+ "iqu\000iqu-Latn-PE",
+ "iqw\000iqw-Latn-NG",
+ "ire\000ire-Latn-ID",
+ "irh\000irh-Latn-ID",
+ "iri\000iri-Latn-NG",
+ "irk\000irk-Latn-TZ",
+ "irn\000irn-Latn-BR",
+ "iru\000iru-Taml-IN",
+ "irx\000irx-Latn-ID",
+ "iry\000iry-Latn-PH",
+ "is\000is-Latn-IS",
+ "isa\000isa-Latn-PG",
+ "isc\000isc-Latn-PE",
+ "isd\000isd-Latn-PH",
+ "ish\000ish-Latn-NG",
+ "isi\000isi-Latn-NG",
+ "isk\000isk-Arab-AF",
+ "ism\000ism-Latn-ID",
+ "isn\000isn-Latn-TZ",
+ "iso\000iso-Latn-NG",
+ "ist\000ist-Latn-HR",
+ "isu\000isu-Latn-CM",
+ "it\000it-Latn-IT",
+ "itb\000itb-Latn-PH",
+ "itd\000itd-Latn-ID",
+ "ite\000ite-Latn-BO",
+ "iti\000iti-Latn-PH",
+ "itk\000itk-Hebr-IT",
+ "itl\000itl-Cyrl-RU",
+ "itm\000itm-Latn-NG",
+ "ito\000ito-Latn-BO",
+ "itr\000itr-Latn-PG",
+ "its\000its-Latn-NG",
+ "itt\000itt-Latn-PH",
+ "itv\000itv-Latn-PH",
+ "itw\000itw-Latn-NG",
+ "itx\000itx-Latn-ID",
+ "ity\000ity-Latn-PH",
+ "itz\000itz-Latn-GT",
+ "iu\000iu-Cans-CA",
+ "ium\000ium-Latn-CN",
+ "ivb\000ivb-Latn-PH",
+ "ivv\000ivv-Latn-PH",
+ "iw\000iw-Hebr-IL",
+ "iwk\000iwk-Latn-PH",
+ "iwm\000iwm-Latn-PG",
+ "iwo\000iwo-Latn-ID",
+ "iws\000iws-Latn-PG",
+ "ixc\000ixc-Latn-MX",
+ "ixl\000ixl-Latn-GT",
+ "iya\000iya-Latn-NG",
+ "iyo\000iyo-Latn-CM",
+ "iyx\000iyx-Latn-CG",
+ "izh\000izh-Latn-RU",
+ "izm\000izm-Latn-NG",
+ "izr\000izr-Latn-NG",
+ "izz\000izz-Latn-NG",
+ "ja\000ja-Jpan-JP",
+ "jaa\000jaa-Latn-BR",
+ "jab\000jab-Latn-NG",
+ "jac\000jac-Latn-GT",
+ "jad\000jad-Arab-GN",
+ "jae\000jae-Latn-PG",
+ "jaf\000jaf-Latn-NG",
+ "jah\000jah-Latn-MY",
+ "jaj\000jaj-Latn-SB",
+ "jak\000jak-Latn-MY",
+ "jal\000jal-Latn-ID",
+ "jam\000jam-Latn-JM",
+ "jan\000jan-Latn-AU",
+ "jao\000jao-Latn-AU",
+ "jaq\000jaq-Latn-ID",
+ "jas\000jas-Latn-NC",
+ "jat\000jat-Arab-AF",
+ "jau\000jau-Latn-ID",
+ "jax\000jax-Latn-ID",
+ "jay\000jay-Latn-AU",
+ "jaz\000jaz-Latn-NC",
+ "jbe\000jbe-Hebr-IL",
+ "jbi\000jbi-Latn-AU",
+ "jbj\000jbj-Latn-ID",
+ "jbk\000jbk-Latn-PG",
+ "jbm\000jbm-Latn-NG",
+ "jbn\000jbn-Arab-LY",
+ "jbo\000jbo-Latn-001",
+ "jbr\000jbr-Latn-ID",
+ "jbt\000jbt-Latn-BR",
+ "jbu\000jbu-Latn-CM",
+ "jbw\000jbw-Latn-AU",
+ "jct\000jct-Cyrl-UA",
+ "jda\000jda-Tibt-IN",
+ "jdg\000jdg-Arab-PK",
+ "jdt\000jdt-Cyrl-RU",
+ "jeb\000jeb-Latn-PE",
+ "jee\000jee-Deva-NP",
+ "jeh\000jeh-Latn-VN",
+ "jei\000jei-Latn-ID",
+ "jek\000jek-Latn-CI",
+ "jel\000jel-Latn-ID",
+ "jen\000jen-Latn-NG",
+ "jer\000jer-Latn-NG",
+ "jet\000jet-Latn-PG",
+ "jeu\000jeu-Latn-TD",
+ "jgb\000jgb-Latn-CD",
+ "jge\000jge-Geor-GE",
+ "jgk\000jgk-Latn-NG",
+ "jgo\000jgo-Latn-CM",
+ "jhi\000jhi-Latn-MY",
+ "ji\000ji-Hebr-UA",
+ "jia\000jia-Latn-CM",
+ "jib\000jib-Latn-NG",
+ "jic\000jic-Latn-HN",
+ "jid\000jid-Latn-NG",
+ "jie\000jie-Latn-NG",
+ "jig\000jig-Latn-AU",
+ "jil\000jil-Latn-PG",
+ "jim\000jim-Latn-CM",
+ "jit\000jit-Latn-TZ",
+ "jiu\000jiu-Latn-CN",
+ "jiv\000jiv-Latn-EC",
+ "jiy\000jiy-Latn-CN",
+ "jje\000jje-Hang-KR",
+ "jjr\000jjr-Latn-NG",
+ "jka\000jka-Latn-ID",
+ "jkm\000jkm-Mymr-MM",
+ "jko\000jko-Latn-PG",
+ "jku\000jku-Latn-NG",
+ "jle\000jle-Latn-SD",
+ "jma\000jma-Latn-PG",
+ "jmb\000jmb-Latn-NG",
+ "jmc\000jmc-Latn-TZ",
+ "jmd\000jmd-Latn-ID",
+ "jmi\000jmi-Latn-NG",
+ "jml\000jml-Deva-NP",
+ "jmn\000jmn-Latn-MM",
+ "jmr\000jmr-Latn-GH",
+ "jms\000jms-Latn-NG",
+ "jmw\000jmw-Latn-PG",
+ "jmx\000jmx-Latn-MX",
+ "jna\000jna-Takr-IN",
+ "jnd\000jnd-Arab-PK",
+ "jng\000jng-Latn-AU",
+ "jni\000jni-Latn-NG",
+ "jnj\000jnj-Latn-ET",
+ "jnl\000jnl-Deva-IN",
+ "jns\000jns-Deva-IN",
+ "job\000job-Latn-CD",
+ "jod\000jod-Latn-CI",
+ "jog\000jog-Arab-PK",
+ "jor\000jor-Latn-BO",
+ "jow\000jow-Latn-ML",
+ "jpa\000jpa-Hebr-PS",
+ "jpr\000jpr-Hebr-IL",
+ "jqr\000jqr-Latn-PE",
+ "jra\000jra-Latn-VN",
+ "jrb\000jrb-Hebr-IL",
+ "jrr\000jrr-Latn-NG",
+ "jrt\000jrt-Latn-NG",
+ "jru\000jru-Latn-VE",
+ "jua\000jua-Latn-BR",
+ "jub\000jub-Latn-NG",
+ "jud\000jud-Latn-CI",
+ "juh\000juh-Latn-NG",
+ "jui\000jui-Latn-AU",
+ "juk\000juk-Latn-NG",
+ "jul\000jul-Deva-NP",
+ "jum\000jum-Latn-SD",
+ "jun\000jun-Orya-IN",
+ "juo\000juo-Latn-NG",
+ "jup\000jup-Latn-BR",
+ "jur\000jur-Latn-BR",
+ "jut\000jut-Latn-DK",
+ "juu\000juu-Latn-NG",
+ "juw\000juw-Latn-NG",
+ "juy\000juy-Orya-IN",
+ "jv\000jv-Latn-ID",
+ "jvd\000jvd-Latn-ID",
+ "jvn\000jvn-Latn-SR",
+ "jw\000jw-Latn-ID",
+ "jwi\000jwi-Latn-GH",
+ "jya\000jya-Tibt-CN",
+ "jye\000jye-Hebr-IL",
+ "jyy\000jyy-Latn-TD",
+ "ka\000ka-Geor-GE",
+ "kaa\000kaa-Cyrl-UZ",
+ "kab\000kab-Latn-DZ",
+ "kac\000kac-Latn-MM",
+ "kad\000kad-Latn-NG",
+ "kag\000kag-Latn-MY",
+ "kah\000kah-Latn-CF",
+ "kai\000kai-Latn-NG",
+ "kaj\000kaj-Latn-NG",
+ "kak\000kak-Latn-PH",
+ "kam\000kam-Latn-KE",
+ "kao\000kao-Latn-ML",
+ "kap\000kap-Cyrl-RU",
+ "kaq\000kaq-Latn-PE",
+ "kav\000kav-Latn-BR",
+ "kaw\000kaw-Bali-ID",
+ "kax\000kax-Latn-ID",
+ "kay\000kay-Latn-BR",
+ "kba\000kba-Latn-AU",
+ "kbb\000kbb-Latn-BR",
+ "kbc\000kbc-Latn-BR",
+ "kbd\000kbd-Cyrl-RU",
+ "kbe\000kbe-Latn-AU",
+ "kbg\000kbg-Tibt-IN",
+ "kbh\000kbh-Latn-CO",
+ "kbi\000kbi-Latn-ID",
+ "kbj\000kbj-Latn-CD",
+ "kbk\000kbk-Latn-PG",
+ "kbl\000kbl-Latn-TD",
+ "kbm\000kbm-Latn-PG",
+ "kbn\000kbn-Latn-CF",
+ "kbo\000kbo-Latn-SS",
+ "kbp\000kbp-Latn-TG",
+ "kbq\000kbq-Latn-PG",
+ "kbr\000kbr-Latn-ET",
+ "kbs\000kbs-Latn-GA",
+ "kbt\000kbt-Latn-PG",
+ "kbu\000kbu-Arab-PK",
+ "kbv\000kbv-Latn-ID",
+ "kbw\000kbw-Latn-PG",
+ "kbx\000kbx-Latn-PG",
+ "kby\000kby-Arab-NE",
+ "kbz\000kbz-Latn-NG",
+ "kca\000kca-Cyrl-RU",
+ "kcb\000kcb-Latn-PG",
+ "kcc\000kcc-Latn-NG",
+ "kcd\000kcd-Latn-ID",
+ "kce\000kce-Latn-NG",
+ "kcf\000kcf-Latn-NG",
+ "kcg\000kcg-Latn-NG",
+ "kch\000kch-Latn-NG",
+ "kci\000kci-Latn-NG",
+ "kcj\000kcj-Latn-GW",
+ "kck\000kck-Latn-ZW",
+ "kcl\000kcl-Latn-PG",
+ "kcm\000kcm-Latn-CF",
+ "kcn\000kcn-Latn-UG",
+ "kco\000kco-Latn-PG",
+ "kcp\000kcp-Latn-SD",
+ "kcq\000kcq-Latn-NG",
+ "kcs\000kcs-Latn-NG",
+ "kct\000kct-Latn-PG",
+ "kcu\000kcu-Latn-TZ",
+ "kcv\000kcv-Latn-CD",
+ "kcw\000kcw-Latn-CD",
+ "kcy\000kcy-Arab-DZ",
+ "kcz\000kcz-Latn-TZ",
+ "kda\000kda-Latn-AU",
+ "kdc\000kdc-Latn-TZ",
+ "kdd\000kdd-Latn-AU",
+ "kde\000kde-Latn-TZ",
+ "kdf\000kdf-Latn-PG",
+ "kdg\000kdg-Latn-CD",
+ "kdh\000kdh-Latn-TG",
+ "kdi\000kdi-Latn-UG",
+ "kdj\000kdj-Latn-UG",
+ "kdk\000kdk-Latn-NC",
+ "kdl\000kdl-Latn-NG",
+ "kdm\000kdm-Latn-NG",
+ "kdn\000kdn-Latn-ZW",
+ "kdp\000kdp-Latn-NG",
+ "kdq\000kdq-Beng-IN",
+ "kdr\000kdr-Latn-LT",
+ "kdt\000kdt-Thai-TH",
+ "kdw\000kdw-Latn-ID",
+ "kdx\000kdx-Latn-NG",
+ "kdy\000kdy-Latn-ID",
+ "kdz\000kdz-Latn-CM",
+ "kea\000kea-Latn-CV",
+ "keb\000keb-Latn-GA",
+ "kec\000kec-Latn-SD",
+ "ked\000ked-Latn-TZ",
+ "kee\000kee-Latn-US",
+ "kef\000kef-Latn-TG",
+ "keg\000keg-Latn-SD",
+ "keh\000keh-Latn-PG",
+ "kei\000kei-Latn-ID",
+ "kek\000kek-Latn-GT",
+ "kel\000kel-Latn-CD",
+ "kem\000kem-Latn-TL",
+ "ken\000ken-Latn-CM",
+ "keo\000keo-Latn-UG",
+ "ker\000ker-Latn-TD",
+ "kes\000kes-Latn-NG",
+ "ket\000ket-Cyrl-RU",
+ "keu\000keu-Latn-TG",
+ "kev\000kev-Mlym-IN",
+ "kew\000kew-Latn-PG",
+ "kex\000kex-Deva-IN",
+ "key\000key-Telu-IN",
+ "kez\000kez-Latn-NG",
+ "kfa\000kfa-Knda-IN",
+ "kfb\000kfb-Deva-IN",
+ "kfc\000kfc-Telu-IN",
+ "kfd\000kfd-Knda-IN",
+ "kfe\000kfe-Taml-IN",
+ "kff\000kff-Latn-IN",
+ "kfg\000kfg-Knda-IN",
+ "kfh\000kfh-Mlym-IN",
+ "kfi\000kfi-Taml-IN",
+ "kfk\000kfk-Deva-IN",
+ "kfl\000kfl-Latn-CM",
+ "kfm\000kfm-Arab-IR",
+ "kfn\000kfn-Latn-CM",
+ "kfo\000kfo-Latn-CI",
+ "kfp\000kfp-Deva-IN",
+ "kfq\000kfq-Deva-IN",
+ "kfr\000kfr-Deva-IN",
+ "kfs\000kfs-Deva-IN",
+ "kfu\000kfu-Deva-IN",
+ "kfv\000kfv-Latn-IN",
+ "kfw\000kfw-Latn-IN",
+ "kfx\000kfx-Deva-IN",
+ "kfy\000kfy-Deva-IN",
+ "kfz\000kfz-Latn-BF",
+ "kg\000kg-Latn-CD",
+ "kga\000kga-Latn-CI",
+ "kgb\000kgb-Latn-ID",
+ "kge\000kge-Latn-ID",
+ "kgf\000kgf-Latn-PG",
+ "kgj\000kgj-Deva-NP",
+ "kgk\000kgk-Latn-BR",
+ "kgl\000kgl-Latn-AU",
+ "kgo\000kgo-Latn-SD",
+ "kgp\000kgp-Latn-BR",
+ "kgq\000kgq-Latn-ID",
+ "kgr\000kgr-Latn-ID",
+ "kgs\000kgs-Latn-AU",
+ "kgt\000kgt-Latn-NG",
+ "kgu\000kgu-Latn-PG",
+ "kgv\000kgv-Latn-ID",
+ "kgw\000kgw-Latn-ID",
+ "kgx\000kgx-Latn-ID",
+ "kgy\000kgy-Tibt-NP",
+ "kha\000kha-Latn-IN",
+ "khb\000khb-Talu-CN",
+ "khc\000khc-Latn-ID",
+ "khd\000khd-Latn-ID",
+ "khe\000khe-Latn-ID",
+ "khf\000khf-Thai-LA",
+ "khg\000khg-Tibt-CN",
+ "khh\000khh-Latn-ID",
+ "khj\000khj-Latn-NG",
+ "khl\000khl-Latn-PG",
+ "khn\000khn-Deva-IN",
+ "kho\000kho-Brah-IR",
+ "khp\000khp-Latn-ID",
+ "khq\000khq-Latn-ML",
+ "khr\000khr-Latn-IN",
+ "khs\000khs-Latn-PG",
+ "kht\000kht-Mymr-IN",
+ "khu\000khu-Latn-AO",
+ "khv\000khv-Cyrl-RU",
+ "khw\000khw-Arab-PK",
+ "khx\000khx-Latn-CD",
+ "khy\000khy-Latn-CD",
+ "khz\000khz-Latn-PG",
+ "ki\000ki-Latn-KE",
+ "kia\000kia-Latn-TD",
+ "kib\000kib-Latn-SD",
+ "kic\000kic-Latn-US",
+ "kid\000kid-Latn-CM",
+ "kie\000kie-Latn-TD",
+ "kif\000kif-Deva-NP",
+ "kig\000kig-Latn-ID",
+ "kih\000kih-Latn-PG",
+ "kij\000kij-Latn-PG",
+ "kil\000kil-Latn-NG",
+ "kim\000kim-Cyrl-RU",
+ "kio\000kio-Latn-US",
+ "kip\000kip-Deva-NP",
+ "kiq\000kiq-Latn-ID",
+ "kis\000kis-Latn-PG",
+ "kit\000kit-Latn-PG",
+ "kiu\000kiu-Latn-TR",
+ "kiv\000kiv-Latn-TZ",
+ "kiw\000kiw-Latn-PG",
+ "kix\000kix-Latn-IN",
+ "kiy\000kiy-Latn-ID",
+ "kiz\000kiz-Latn-TZ",
+ "kj\000kj-Latn-NA",
+ "kja\000kja-Latn-ID",
+ "kjb\000kjb-Latn-GT",
+ "kjc\000kjc-Latn-ID",
+ "kjd\000kjd-Latn-PG",
+ "kje\000kje-Latn-ID",
+ "kjg\000kjg-Laoo-LA",
+ "kjh\000kjh-Cyrl-RU",
+ "kji\000kji-Latn-SB",
+ "kjj\000kjj-Latn-AZ",
+ "kjk\000kjk-Latn-ID",
+ "kjl\000kjl-Deva-NP",
+ "kjm\000kjm-Latn-VN",
+ "kjn\000kjn-Latn-AU",
+ "kjo\000kjo-Deva-IN",
+ "kjp\000kjp-Mymr-MM",
+ "kjq\000kjq-Latn-US",
+ "kjr\000kjr-Latn-ID",
+ "kjs\000kjs-Latn-PG",
+ "kjt\000kjt-Thai-TH",
+ "kju\000kju-Latn-US",
+ "kjx\000kjx-Latn-PG",
+ "kjy\000kjy-Latn-PG",
+ "kjz\000kjz-Tibt-BT",
+ "kk\000kk-Cyrl-KZ",
+ "kk-AF\000kk-Arab-AF",
+ "kk-Arab\000kk-Arab-CN",
+ "kk-CN\000kk-Arab-CN",
+ "kk-IR\000kk-Arab-IR",
+ "kk-MN\000kk-Arab-MN",
+ "kka\000kka-Latn-NG",
+ "kkb\000kkb-Latn-ID",
+ "kkc\000kkc-Latn-PG",
+ "kkd\000kkd-Latn-NG",
+ "kke\000kke-Latn-GN",
+ "kkf\000kkf-Tibt-IN",
+ "kkg\000kkg-Latn-PH",
+ "kkh\000kkh-Lana-MM",
+ "kki\000kki-Latn-TZ",
+ "kkj\000kkj-Latn-CM",
+ "kkk\000kkk-Latn-SB",
+ "kkl\000kkl-Latn-ID",
+ "kkm\000kkm-Latn-NG",
+ "kko\000kko-Latn-SD",
+ "kkp\000kkp-Latn-AU",
+ "kkq\000kkq-Latn-CD",
+ "kkr\000kkr-Latn-NG",
+ "kks\000kks-Latn-NG",
+ "kkt\000kkt-Deva-NP",
+ "kku\000kku-Latn-NG",
+ "kkv\000kkv-Latn-ID",
+ "kkw\000kkw-Latn-CG",
+ "kkx\000kkx-Latn-ID",
+ "kky\000kky-Latn-AU",
+ "kkz\000kkz-Latn-CA",
+ "kl\000kl-Latn-GL",
+ "kla\000kla-Latn-US",
+ "klb\000klb-Latn-MX",
+ "klc\000klc-Latn-CM",
+ "kld\000kld-Latn-AU",
+ "kle\000kle-Deva-NP",
+ "klf\000klf-Latn-TD",
+ "klg\000klg-Latn-PH",
+ "klh\000klh-Latn-PG",
+ "kli\000kli-Latn-ID",
+ "klj\000klj-Arab-IR",
+ "klk\000klk-Latn-NG",
+ "kll\000kll-Latn-PH",
+ "klm\000klm-Latn-PG",
+ "kln\000kln-Latn-KE",
+ "klo\000klo-Latn-NG",
+ "klp\000klp-Latn-PG",
+ "klq\000klq-Latn-PG",
+ "klr\000klr-Deva-NP",
+ "kls\000kls-Latn-PK",
+ "klt\000klt-Latn-PG",
+ "klu\000klu-Latn-LR",
+ "klv\000klv-Latn-VU",
+ "klw\000klw-Latn-ID",
+ "klx\000klx-Latn-PG",
+ "kly\000kly-Latn-ID",
+ "klz\000klz-Latn-ID",
+ "km\000km-Khmr-KH",
+ "kma\000kma-Latn-GH",
+ "kmb\000kmb-Latn-AO",
+ "kmc\000kmc-Latn-CN",
+ "kmd\000kmd-Latn-PH",
+ "kme\000kme-Latn-CM",
+ "kmf\000kmf-Latn-PG",
+ "kmg\000kmg-Latn-PG",
+ "kmh\000kmh-Latn-PG",
+ "kmi\000kmi-Latn-NG",
+ "kmj\000kmj-Deva-IN",
+ "kmk\000kmk-Latn-PH",
+ "kml\000kml-Latn-PH",
+ "kmm\000kmm-Latn-IN",
+ "kmn\000kmn-Latn-PG",
+ "kmo\000kmo-Latn-PG",
+ "kmp\000kmp-Latn-CM",
+ "kmq\000kmq-Latn-ET",
+ "kms\000kms-Latn-PG",
+ "kmt\000kmt-Latn-ID",
+ "kmu\000kmu-Latn-PG",
+ "kmv\000kmv-Latn-BR",
+ "kmw\000kmw-Latn-CD",
+ "kmx\000kmx-Latn-PG",
+ "kmy\000kmy-Latn-NG",
+ "kmz\000kmz-Arab-IR",
+ "kn\000kn-Knda-IN",
+ "kna\000kna-Latn-NG",
+ "knb\000knb-Latn-PH",
+ "knd\000knd-Latn-ID",
+ "kne\000kne-Latn-PH",
+ "knf\000knf-Latn-GW",
+ "kni\000kni-Latn-NG",
+ "knj\000knj-Latn-GT",
+ "knk\000knk-Latn-SL",
+ "knl\000knl-Latn-ID",
+ "knm\000knm-Latn-BR",
+ "knn\000knn-Deva-IN",
+ "kno\000kno-Latn-SL",
+ "knp\000knp-Latn-CM",
+ "knq\000knq-Latn-MY",
+ "knr\000knr-Latn-PG",
+ "kns\000kns-Latn-MY",
+ "knt\000knt-Latn-BR",
+ "knu\000knu-Latn-GN",
+ "knv\000knv-Latn-PG",
+ "knw\000knw-Latn-NA",
+ "knx\000knx-Latn-ID",
+ "kny\000kny-Latn-CD",
+ "knz\000knz-Latn-BF",
+ "ko\000ko-Kore-KR",
+ "koa\000koa-Latn-PG",
+ "koc\000koc-Latn-NG",
+ "kod\000kod-Latn-ID",
+ "koe\000koe-Latn-SS",
+ "kof\000kof-Latn-NG",
+ "kog\000kog-Latn-CO",
+ "koh\000koh-Latn-CG",
+ "koi\000koi-Cyrl-RU",
+ "kok\000kok-Deva-IN",
+ "kol\000kol-Latn-PG",
+ "koo\000koo-Latn-UG",
+ "kop\000kop-Latn-PG",
+ "koq\000koq-Latn-GA",
+ "kos\000kos-Latn-FM",
+ "kot\000kot-Latn-CM",
+ "kou\000kou-Latn-TD",
+ "kov\000kov-Latn-NG",
+ "kow\000kow-Latn-NG",
+ "koy\000koy-Latn-US",
+ "koz\000koz-Latn-PG",
+ "kpa\000kpa-Latn-NG",
+ "kpc\000kpc-Latn-CO",
+ "kpd\000kpd-Latn-ID",
+ "kpe\000kpe-Latn-LR",
+ "kpf\000kpf-Latn-PG",
+ "kpg\000kpg-Latn-FM",
+ "kph\000kph-Latn-GH",
+ "kpi\000kpi-Latn-ID",
+ "kpj\000kpj-Latn-BR",
+ "kpk\000kpk-Latn-NG",
+ "kpl\000kpl-Latn-CD",
+ "kpm\000kpm-Latn-VN",
+ "kpn\000kpn-Latn-BR",
+ "kpo\000kpo-Latn-TG",
+ "kpq\000kpq-Latn-ID",
+ "kpr\000kpr-Latn-PG",
+ "kps\000kps-Latn-ID",
+ "kpt\000kpt-Cyrl-RU",
+ "kpu\000kpu-Latn-ID",
+ "kpw\000kpw-Latn-PG",
+ "kpx\000kpx-Latn-PG",
+ "kpy\000kpy-Cyrl-RU",
+ "kpz\000kpz-Latn-UG",
+ "kqa\000kqa-Latn-PG",
+ "kqb\000kqb-Latn-PG",
+ "kqc\000kqc-Latn-PG",
+ "kqd\000kqd-Syrc-IQ",
+ "kqe\000kqe-Latn-PH",
+ "kqf\000kqf-Latn-PG",
+ "kqg\000kqg-Latn-BF",
+ "kqh\000kqh-Latn-TZ",
+ "kqi\000kqi-Latn-PG",
+ "kqj\000kqj-Latn-PG",
+ "kqk\000kqk-Latn-BJ",
+ "kql\000kql-Latn-PG",
+ "kqm\000kqm-Latn-CI",
+ "kqn\000kqn-Latn-ZM",
+ "kqo\000kqo-Latn-LR",
+ "kqp\000kqp-Latn-TD",
+ "kqq\000kqq-Latn-BR",
+ "kqr\000kqr-Latn-MY",
+ "kqs\000kqs-Latn-GN",
+ "kqt\000kqt-Latn-MY",
+ "kqu\000kqu-Latn-ZA",
+ "kqv\000kqv-Latn-ID",
+ "kqw\000kqw-Latn-PG",
+ "kqx\000kqx-Latn-CM",
+ "kqy\000kqy-Ethi-ET",
+ "kqz\000kqz-Latn-ZA",
+ "kr\000kr-Latn-NG",
+ "kra\000kra-Deva-NP",
+ "krb\000krb-Latn-US",
+ "krc\000krc-Cyrl-RU",
+ "krd\000krd-Latn-TL",
+ "kre\000kre-Latn-BR",
+ "krf\000krf-Latn-VU",
+ "krh\000krh-Latn-NG",
+ "kri\000kri-Latn-SL",
+ "krj\000krj-Latn-PH",
+ "krk\000krk-Cyrl-RU",
+ "krl\000krl-Latn-RU",
+ "krn\000krn-Latn-LR",
+ "kro\000kro-Latn-LR",
+ "krp\000krp-Latn-NG",
+ "krr\000krr-Khmr-KH",
+ "krs\000krs-Latn-SS",
+ "krt\000krt-Latn-NE",
+ "kru\000kru-Deva-IN",
+ "krv\000krv-Khmr-KH",
+ "krw\000krw-Latn-LR",
+ "krx\000krx-Latn-SN",
+ "kry\000kry-Latn-AZ",
+ "krz\000krz-Latn-ID",
+ "ks\000ks-Arab-IN",
+ "ksb\000ksb-Latn-TZ",
+ "ksc\000ksc-Latn-PH",
+ "ksd\000ksd-Latn-PG",
+ "kse\000kse-Latn-PG",
+ "ksf\000ksf-Latn-CM",
+ "ksg\000ksg-Latn-SB",
+ "ksh\000ksh-Latn-DE",
+ "ksi\000ksi-Latn-PG",
+ "ksj\000ksj-Latn-PG",
+ "ksk\000ksk-Latn-US",
+ "ksl\000ksl-Latn-PG",
+ "ksm\000ksm-Latn-NG",
+ "ksn\000ksn-Latn-PH",
+ "kso\000kso-Latn-NG",
+ "ksp\000ksp-Latn-CF",
+ "ksq\000ksq-Latn-NG",
+ "ksr\000ksr-Latn-PG",
+ "kss\000kss-Latn-LR",
+ "kst\000kst-Latn-BF",
+ "ksu\000ksu-Mymr-IN",
+ "ksv\000ksv-Latn-CD",
+ "ksw\000ksw-Mymr-MM",
+ "ksx\000ksx-Latn-ID",
+ "ksz\000ksz-Deva-IN",
+ "kta\000kta-Latn-VN",
+ "ktb\000ktb-Ethi-ET",
+ "ktc\000ktc-Latn-NG",
+ "ktd\000ktd-Latn-AU",
+ "kte\000kte-Deva-NP",
+ "ktf\000ktf-Latn-CD",
+ "ktg\000ktg-Latn-AU",
+ "kth\000kth-Latn-TD",
+ "kti\000kti-Latn-ID",
+ "ktj\000ktj-Latn-CI",
+ "ktk\000ktk-Latn-PG",
+ "ktl\000ktl-Arab-IR",
+ "ktm\000ktm-Latn-PG",
+ "ktn\000ktn-Latn-BR",
+ "kto\000kto-Latn-PG",
+ "ktp\000ktp-Plrd-CN",
+ "ktq\000ktq-Latn-PH",
+ "kts\000kts-Latn-ID",
+ "ktt\000ktt-Latn-ID",
+ "ktu\000ktu-Latn-CD",
+ "ktv\000ktv-Latn-VN",
+ "ktw\000ktw-Latn-US",
+ "ktx\000ktx-Latn-BR",
+ "kty\000kty-Latn-CD",
+ "ktz\000ktz-Latn-NA",
+ "ku\000ku-Latn-TR",
+ "ku-AM\000ku-Cyrl-AM",
+ "ku-AZ\000ku-Cyrl-AZ",
+ "ku-Arab\000ku-Arab-IQ",
+ "ku-Cyrl\000ku-Cyrl-AM",
+ "ku-GE\000ku-Cyrl-GE",
+ "ku-IQ\000ku-Arab-IQ",
+ "ku-IR\000ku-Arab-IR",
+ "ku-LB\000ku-Arab-LB",
+ "ku-TM\000ku-Cyrl-TM",
+ "ku-Yezi\000ku-Yezi-GE",
+ "kub\000kub-Latn-NG",
+ "kuc\000kuc-Latn-ID",
+ "kud\000kud-Latn-PG",
+ "kue\000kue-Latn-PG",
+ "kuf\000kuf-Laoo-LA",
+ "kug\000kug-Latn-NG",
+ "kuh\000kuh-Latn-NG",
+ "kui\000kui-Latn-BR",
+ "kuj\000kuj-Latn-TZ",
+ "kuk\000kuk-Latn-ID",
+ "kul\000kul-Latn-NG",
+ "kum\000kum-Cyrl-RU",
+ "kun\000kun-Latn-ER",
+ "kuo\000kuo-Latn-PG",
+ "kup\000kup-Latn-PG",
+ "kuq\000kuq-Latn-BR",
+ "kus\000kus-Latn-GH",
+ "kut\000kut-Latn-CA",
+ "kuu\000kuu-Latn-US",
+ "kuv\000kuv-Latn-ID",
+ "kuw\000kuw-Latn-CF",
+ "kux\000kux-Latn-AU",
+ "kuy\000kuy-Latn-AU",
+ "kuz\000kuz-Latn-CL",
+ "kv\000kv-Cyrl-RU",
+ "kva\000kva-Cyrl-RU",
+ "kvb\000kvb-Latn-ID",
+ "kvc\000kvc-Latn-PG",
+ "kvd\000kvd-Latn-ID",
+ "kve\000kve-Latn-MY",
+ "kvf\000kvf-Latn-TD",
+ "kvg\000kvg-Latn-PG",
+ "kvh\000kvh-Latn-ID",
+ "kvi\000kvi-Latn-TD",
+ "kvj\000kvj-Latn-CM",
+ "kvl\000kvl-Latn-MM",
+ "kvm\000kvm-Latn-CM",
+ "kvn\000kvn-Latn-CO",
+ "kvo\000kvo-Latn-ID",
+ "kvp\000kvp-Latn-ID",
+ "kvq\000kvq-Mymr-MM",
+ "kvr\000kvr-Latn-ID",
+ "kvt\000kvt-Mymr-MM",
+ "kvv\000kvv-Latn-ID",
+ "kvw\000kvw-Latn-ID",
+ "kvx\000kvx-Arab-PK",
+ "kvy\000kvy-Kali-MM",
+ "kvz\000kvz-Latn-ID",
+ "kw\000kw-Latn-GB",
+ "kwa\000kwa-Latn-BR",
+ "kwb\000kwb-Latn-NG",
+ "kwc\000kwc-Latn-CG",
+ "kwd\000kwd-Latn-SB",
+ "kwe\000kwe-Latn-ID",
+ "kwf\000kwf-Latn-SB",
+ "kwg\000kwg-Latn-TD",
+ "kwh\000kwh-Latn-ID",
+ "kwi\000kwi-Latn-CO",
+ "kwj\000kwj-Latn-PG",
+ "kwk\000kwk-Latn-CA",
+ "kwl\000kwl-Latn-NG",
+ "kwm\000kwm-Latn-NA",
+ "kwn\000kwn-Latn-NA",
+ "kwo\000kwo-Latn-PG",
+ "kwp\000kwp-Latn-CI",
+ "kwr\000kwr-Latn-ID",
+ "kws\000kws-Latn-CD",
+ "kwt\000kwt-Latn-ID",
+ "kwu\000kwu-Latn-CM",
+ "kwv\000kwv-Latn-TD",
+ "kww\000kww-Latn-SR",
+ "kwx\000kwx-Deva-IN",
+ "kwy\000kwy-Latn-AO",
+ "kwz\000kwz-Latn-AO",
+ "kxa\000kxa-Latn-PG",
+ "kxb\000kxb-Latn-CI",
+ "kxc\000kxc-Latn-ET",
+ "kxd\000kxd-Latn-BN",
+ "kxf\000kxf-Mymr-MM",
+ "kxi\000kxi-Latn-MY",
+ "kxj\000kxj-Latn-TD",
+ "kxk\000kxk-Mymr-MM",
+ "kxm\000kxm-Thai-TH",
+ "kxn\000kxn-Latn-MY",
+ "kxo\000kxo-Latn-BR",
+ "kxp\000kxp-Arab-PK",
+ "kxq\000kxq-Latn-ID",
+ "kxr\000kxr-Latn-PG",
+ "kxt\000kxt-Latn-PG",
+ "kxv\000kxv-Latn-IN",
+ "kxw\000kxw-Latn-PG",
+ "kxx\000kxx-Latn-CG",
+ "kxy\000kxy-Latn-VN",
+ "kxz\000kxz-Latn-PG",
+ "ky\000ky-Cyrl-KG",
+ "ky-Arab\000ky-Arab-CN",
+ "ky-CN\000ky-Arab-CN",
+ "ky-Latn\000ky-Latn-TR",
+ "ky-TR\000ky-Latn-TR",
+ "kya\000kya-Latn-TZ",
+ "kyb\000kyb-Latn-PH",
+ "kyc\000kyc-Latn-PG",
+ "kyd\000kyd-Latn-ID",
+ "kye\000kye-Latn-GH",
+ "kyf\000kyf-Latn-CI",
+ "kyg\000kyg-Latn-PG",
+ "kyh\000kyh-Latn-US",
+ "kyi\000kyi-Latn-MY",
+ "kyj\000kyj-Latn-PH",
+ "kyk\000kyk-Latn-PH",
+ "kyl\000kyl-Latn-US",
+ "kym\000kym-Latn-CF",
+ "kyn\000kyn-Latn-PH",
+ "kyo\000kyo-Latn-ID",
+ "kyq\000kyq-Latn-TD",
+ "kyr\000kyr-Latn-BR",
+ "kys\000kys-Latn-MY",
+ "kyt\000kyt-Latn-ID",
+ "kyu\000kyu-Kali-MM",
+ "kyv\000kyv-Deva-NP",
+ "kyw\000kyw-Deva-IN",
+ "kyx\000kyx-Latn-PG",
+ "kyy\000kyy-Latn-PG",
+ "kyz\000kyz-Latn-BR",
+ "kza\000kza-Latn-BF",
+ "kzb\000kzb-Latn-ID",
+ "kzc\000kzc-Latn-CI",
+ "kzd\000kzd-Latn-ID",
+ "kze\000kze-Latn-PG",
+ "kzf\000kzf-Latn-ID",
+ "kzi\000kzi-Latn-MY",
+ "kzk\000kzk-Latn-SB",
+ "kzl\000kzl-Latn-ID",
+ "kzm\000kzm-Latn-ID",
+ "kzn\000kzn-Latn-MW",
+ "kzo\000kzo-Latn-GA",
+ "kzp\000kzp-Latn-ID",
+ "kzr\000kzr-Latn-CM",
+ "kzs\000kzs-Latn-MY",
+ "kzu\000kzu-Latn-ID",
+ "kzv\000kzv-Latn-ID",
+ "kzw\000kzw-Latn-BR",
+ "kzx\000kzx-Latn-ID",
+ "kzy\000kzy-Latn-CD",
+ "kzz\000kzz-Latn-ID",
+ "la\000la-Latn-VA",
+ "laa\000laa-Latn-PH",
+ "lab\000lab-Lina-GR",
+ "lac\000lac-Latn-MX",
+ "lad\000lad-Hebr-IL",
+ "lae\000lae-Deva-IN",
+ "lag\000lag-Latn-TZ",
+ "lah\000lah-Arab-PK",
+ "lai\000lai-Latn-MW",
+ "laj\000laj-Latn-UG",
+ "lal\000lal-Latn-CD",
+ "lam\000lam-Latn-ZM",
+ "lan\000lan-Latn-NG",
+ "lap\000lap-Latn-TD",
+ "laq\000laq-Latn-VN",
+ "lar\000lar-Latn-GH",
+ "las\000las-Latn-TG",
+ "lau\000lau-Latn-ID",
+ "law\000law-Latn-ID",
+ "lax\000lax-Latn-IN",
+ "laz\000laz-Latn-PG",
+ "lb\000lb-Latn-LU",
+ "lbb\000lbb-Latn-PG",
+ "lbe\000lbe-Cyrl-RU",
+ "lbf\000lbf-Deva-IN",
+ "lbi\000lbi-Latn-CM",
+ "lbj\000lbj-Tibt-IN",
+ "lbl\000lbl-Latn-PH",
+ "lbm\000lbm-Deva-IN",
+ "lbn\000lbn-Latn-LA",
+ "lbo\000lbo-Laoo-LA",
+ "lbq\000lbq-Latn-PG",
+ "lbr\000lbr-Deva-NP",
+ "lbt\000lbt-Latn-VN",
+ "lbu\000lbu-Latn-PG",
+ "lbv\000lbv-Latn-PG",
+ "lbw\000lbw-Latn-ID",
+ "lbx\000lbx-Latn-ID",
+ "lby\000lby-Latn-AU",
+ "lbz\000lbz-Latn-AU",
+ "lcc\000lcc-Latn-ID",
+ "lcd\000lcd-Latn-ID",
+ "lce\000lce-Latn-ID",
+ "lcf\000lcf-Latn-ID",
+ "lch\000lch-Latn-AO",
+ "lcl\000lcl-Latn-ID",
+ "lcm\000lcm-Latn-PG",
+ "lcp\000lcp-Thai-CN",
+ "lcq\000lcq-Latn-ID",
+ "lcs\000lcs-Latn-ID",
+ "lda\000lda-Latn-CI",
+ "ldb\000ldb-Latn-NG",
+ "ldd\000ldd-Latn-NG",
+ "ldg\000ldg-Latn-NG",
+ "ldh\000ldh-Latn-NG",
+ "ldi\000ldi-Latn-CG",
+ "ldj\000ldj-Latn-NG",
+ "ldk\000ldk-Latn-NG",
+ "ldl\000ldl-Latn-NG",
+ "ldm\000ldm-Latn-GN",
+ "ldn\000ldn-Latn-001",
+ "ldo\000ldo-Latn-NG",
+ "ldp\000ldp-Latn-NG",
+ "ldq\000ldq-Latn-NG",
+ "lea\000lea-Latn-CD",
+ "leb\000leb-Latn-ZM",
+ "lec\000lec-Latn-BO",
+ "led\000led-Latn-CD",
+ "lee\000lee-Latn-BF",
+ "lef\000lef-Latn-GH",
+ "leh\000leh-Latn-ZM",
+ "lei\000lei-Latn-PG",
+ "lej\000lej-Latn-CD",
+ "lek\000lek-Latn-PG",
+ "lel\000lel-Latn-CD",
+ "lem\000lem-Latn-CM",
+ "len\000len-Latn-SV",
+ "leo\000leo-Latn-CM",
+ "lep\000lep-Lepc-IN",
+ "leq\000leq-Latn-PG",
+ "ler\000ler-Latn-PG",
+ "les\000les-Latn-CD",
+ "let\000let-Latn-PG",
+ "leu\000leu-Latn-PG",
+ "lev\000lev-Latn-ID",
+ "lew\000lew-Latn-ID",
+ "lex\000lex-Latn-ID",
+ "ley\000ley-Latn-ID",
+ "lez\000lez-Cyrl-RU",
+ "lfa\000lfa-Latn-CM",
+ "lfn\000lfn-Latn-001",
+ "lg\000lg-Latn-UG",
+ "lga\000lga-Latn-SB",
+ "lgb\000lgb-Latn-SB",
+ "lgg\000lgg-Latn-UG",
+ "lgh\000lgh-Latn-VN",
+ "lgi\000lgi-Latn-ID",
+ "lgk\000lgk-Latn-VU",
+ "lgl\000lgl-Latn-SB",
+ "lgm\000lgm-Latn-CD",
+ "lgn\000lgn-Latn-ET",
+ "lgo\000lgo-Latn-SS",
+ "lgq\000lgq-Latn-GH",
+ "lgr\000lgr-Latn-SB",
+ "lgt\000lgt-Latn-PG",
+ "lgu\000lgu-Latn-SB",
+ "lgz\000lgz-Latn-CD",
+ "lha\000lha-Latn-VN",
+ "lhh\000lhh-Latn-ID",
+ "lhi\000lhi-Latn-CN",
+ "lhm\000lhm-Deva-NP",
+ "lhn\000lhn-Latn-MY",
+ "lhs\000lhs-Syrc-SY",
+ "lht\000lht-Latn-VU",
+ "lhu\000lhu-Latn-CN",
+ "li\000li-Latn-NL",
+ "lia\000lia-Latn-SL",
+ "lib\000lib-Latn-PG",
+ "lic\000lic-Latn-CN",
+ "lid\000lid-Latn-PG",
+ "lie\000lie-Latn-CD",
+ "lif\000lif-Deva-NP",
+ "lif-Limb\000lif-Limb-IN",
+ "lig\000lig-Latn-GH",
+ "lih\000lih-Latn-PG",
+ "lij\000lij-Latn-IT",
+ "lik\000lik-Latn-CD",
+ "lil\000lil-Latn-CA",
+ "lio\000lio-Latn-ID",
+ "lip\000lip-Latn-GH",
+ "liq\000liq-Latn-ET",
+ "lir\000lir-Latn-LR",
+ "lis\000lis-Lisu-CN",
+ "liu\000liu-Latn-SD",
+ "liv\000liv-Latn-LV",
+ "liw\000liw-Latn-ID",
+ "lix\000lix-Latn-ID",
+ "liy\000liy-Latn-CF",
+ "liz\000liz-Latn-CD",
+ "lja\000lja-Latn-AU",
+ "lje\000lje-Latn-ID",
+ "lji\000lji-Latn-ID",
+ "ljl\000ljl-Latn-ID",
+ "ljp\000ljp-Latn-ID",
+ "ljw\000ljw-Latn-AU",
+ "ljx\000ljx-Latn-AU",
+ "lka\000lka-Latn-TL",
+ "lkb\000lkb-Latn-KE",
+ "lkc\000lkc-Latn-VN",
+ "lkd\000lkd-Latn-BR",
+ "lke\000lke-Latn-UG",
+ "lkh\000lkh-Tibt-BT",
+ "lki\000lki-Arab-IR",
+ "lkj\000lkj-Latn-MY",
+ "lkl\000lkl-Latn-PG",
+ "lkm\000lkm-Latn-AU",
+ "lkn\000lkn-Latn-VU",
+ "lko\000lko-Latn-KE",
+ "lkr\000lkr-Latn-SS",
+ "lks\000lks-Latn-KE",
+ "lkt\000lkt-Latn-US",
+ "lku\000lku-Latn-AU",
+ "lky\000lky-Latn-SS",
+ "lla\000lla-Latn-NG",
+ "llb\000llb-Latn-MZ",
+ "llc\000llc-Latn-GN",
+ "lld\000lld-Latn-IT",
+ "lle\000lle-Latn-PG",
+ "llf\000llf-Latn-PG",
+ "llg\000llg-Latn-ID",
+ "lli\000lli-Latn-CG",
+ "llj\000llj-Latn-AU",
+ "llk\000llk-Latn-MY",
+ "lll\000lll-Latn-PG",
+ "llm\000llm-Latn-ID",
+ "lln\000lln-Latn-TD",
+ "llp\000llp-Latn-VU",
+ "llq\000llq-Latn-ID",
+ "llu\000llu-Latn-SB",
+ "llx\000llx-Latn-FJ",
+ "lma\000lma-Latn-GN",
+ "lmb\000lmb-Latn-VU",
+ "lmc\000lmc-Latn-AU",
+ "lmd\000lmd-Latn-SD",
+ "lme\000lme-Latn-TD",
+ "lmf\000lmf-Latn-ID",
+ "lmg\000lmg-Latn-PG",
+ "lmh\000lmh-Deva-NP",
+ "lmi\000lmi-Latn-CD",
+ "lmj\000lmj-Latn-ID",
+ "lmk\000lmk-Latn-IN",
+ "lml\000lml-Latn-VU",
+ "lmn\000lmn-Telu-IN",
+ "lmo\000lmo-Latn-IT",
+ "lmp\000lmp-Latn-CM",
+ "lmq\000lmq-Latn-ID",
+ "lmr\000lmr-Latn-ID",
+ "lmu\000lmu-Latn-VU",
+ "lmv\000lmv-Latn-FJ",
+ "lmw\000lmw-Latn-US",
+ "lmx\000lmx-Latn-CM",
+ "lmy\000lmy-Latn-ID",
+ "ln\000ln-Latn-CD",
+ "lna\000lna-Latn-CF",
+ "lnb\000lnb-Latn-NA",
+ "lnd\000lnd-Latn-ID",
+ "lng\000lng-Latn-HU",
+ "lnh\000lnh-Latn-MY",
+ "lni\000lni-Latn-PG",
+ "lnj\000lnj-Latn-AU",
+ "lnl\000lnl-Latn-CF",
+ "lnm\000lnm-Latn-PG",
+ "lnn\000lnn-Latn-VU",
+ "lns\000lns-Latn-CM",
+ "lnu\000lnu-Latn-NG",
+ "lnw\000lnw-Latn-AU",
+ "lnz\000lnz-Latn-CD",
+ "lo\000lo-Laoo-LA",
+ "loa\000loa-Latn-ID",
+ "lob\000lob-Latn-BF",
+ "loc\000loc-Latn-PH",
+ "loe\000loe-Latn-ID",
+ "log\000log-Latn-CD",
+ "loh\000loh-Latn-SS",
+ "loi\000loi-Latn-CI",
+ "loj\000loj-Latn-PG",
+ "lok\000lok-Latn-SL",
+ "lol\000lol-Latn-CD",
+ "lom\000lom-Latn-LR",
+ "lon\000lon-Latn-MW",
+ "loo\000loo-Latn-CD",
+ "lop\000lop-Latn-NG",
+ "loq\000loq-Latn-CD",
+ "lor\000lor-Latn-CI",
+ "los\000los-Latn-PG",
+ "lot\000lot-Latn-SS",
+ "lou\000lou-Latn-US",
+ "low\000low-Latn-MY",
+ "lox\000lox-Latn-ID",
+ "loy\000loy-Deva-NP",
+ "loz\000loz-Latn-ZM",
+ "lpa\000lpa-Latn-VU",
+ "lpe\000lpe-Latn-ID",
+ "lpn\000lpn-Latn-MM",
+ "lpo\000lpo-Plrd-CN",
+ "lpx\000lpx-Latn-SS",
+ "lqr\000lqr-Latn-SS",
+ "lra\000lra-Latn-MY",
+ "lrc\000lrc-Arab-IR",
+ "lrg\000lrg-Latn-AU",
+ "lri\000lri-Latn-KE",
+ "lrk\000lrk-Arab-PK",
+ "lrl\000lrl-Arab-IR",
+ "lrm\000lrm-Latn-KE",
+ "lrn\000lrn-Latn-ID",
+ "lro\000lro-Latn-SD",
+ "lrt\000lrt-Latn-ID",
+ "lrv\000lrv-Latn-VU",
+ "lrz\000lrz-Latn-VU",
+ "lsa\000lsa-Arab-IR",
+ "lsd\000lsd-Hebr-IL",
+ "lse\000lse-Latn-CD",
+ "lsi\000lsi-Latn-MM",
+ "lsm\000lsm-Latn-UG",
+ "lsr\000lsr-Latn-PG",
+ "lss\000lss-Arab-PK",
+ "lt\000lt-Latn-LT",
+ "ltc\000ltc-Hant-CN",
+ "ltg\000ltg-Latn-LV",
+ "lth\000lth-Latn-UG",
+ "lti\000lti-Latn-ID",
+ "ltn\000ltn-Latn-BR",
+ "lto\000lto-Latn-KE",
+ "lts\000lts-Latn-KE",
+ "ltu\000ltu-Latn-ID",
+ "lu\000lu-Latn-CD",
+ "lua\000lua-Latn-CD",
+ "luc\000luc-Latn-UG",
+ "lud\000lud-Latn-RU",
+ "lue\000lue-Latn-ZM",
+ "luf\000luf-Latn-PG",
+ "luh\000luh-Hans-CN",
+ "lui\000lui-Latn-US",
+ "luj\000luj-Latn-CD",
+ "luk\000luk-Tibt-BT",
+ "lul\000lul-Latn-SS",
+ "lum\000lum-Latn-AO",
+ "lun\000lun-Latn-ZM",
+ "luo\000luo-Latn-KE",
+ "lup\000lup-Latn-GA",
+ "luq\000luq-Latn-CU",
+ "lur\000lur-Latn-ID",
+ "lus\000lus-Latn-IN",
+ "lut\000lut-Latn-US",
+ "luu\000luu-Deva-NP",
+ "luv\000luv-Arab-OM",
+ "luw\000luw-Latn-CM",
+ "luy\000luy-Latn-KE",
+ "luz\000luz-Arab-IR",
+ "lv\000lv-Latn-LV",
+ "lva\000lva-Latn-TL",
+ "lvi\000lvi-Latn-LA",
+ "lvk\000lvk-Latn-SB",
+ "lvl\000lvl-Latn-CD",
+ "lvu\000lvu-Latn-ID",
+ "lwa\000lwa-Latn-CD",
+ "lwe\000lwe-Latn-ID",
+ "lwg\000lwg-Latn-KE",
+ "lwh\000lwh-Latn-VN",
+ "lwl\000lwl-Thai-TH",
+ "lwm\000lwm-Thai-CN",
+ "lwo\000lwo-Latn-SS",
+ "lwt\000lwt-Latn-ID",
+ "lww\000lww-Latn-VU",
+ "lxm\000lxm-Latn-PG",
+ "lya\000lya-Tibt-BT",
+ "lyn\000lyn-Latn-ZM",
+ "lzh\000lzh-Hant-CN",
+ "lzl\000lzl-Latn-VU",
+ "lzn\000lzn-Latn-MM",
+ "lzz\000lzz-Latn-TR",
+ "lzz-GE\000lzz-Geor-GE",
+ "lzz-Geor\000lzz-Geor-GE",
+ "maa\000maa-Latn-MX",
+ "mab\000mab-Latn-MX",
+ "mad\000mad-Latn-ID",
+ "mae\000mae-Latn-NG",
+ "maf\000maf-Latn-CM",
+ "mag\000mag-Deva-IN",
+ "mai\000mai-Deva-IN",
+ "maj\000maj-Latn-MX",
+ "mak\000mak-Latn-ID",
+ "mam\000mam-Latn-GT",
+ "man\000man-Latn-GM",
+ "man-Nkoo\000man-Nkoo-GN",
+ "maq\000maq-Latn-MX",
+ "mas\000mas-Latn-KE",
+ "mat\000mat-Latn-MX",
+ "mau\000mau-Latn-MX",
+ "mav\000mav-Latn-BR",
+ "maw\000maw-Latn-GH",
+ "max\000max-Latn-ID",
+ "maz\000maz-Latn-MX",
+ "mba\000mba-Latn-PH",
+ "mbb\000mbb-Latn-PH",
+ "mbc\000mbc-Latn-BR",
+ "mbd\000mbd-Latn-PH",
+ "mbf\000mbf-Latn-SG",
+ "mbh\000mbh-Latn-PG",
+ "mbi\000mbi-Latn-PH",
+ "mbj\000mbj-Latn-BR",
+ "mbk\000mbk-Latn-PG",
+ "mbl\000mbl-Latn-BR",
+ "mbm\000mbm-Latn-CG",
+ "mbn\000mbn-Latn-CO",
+ "mbo\000mbo-Latn-CM",
+ "mbp\000mbp-Latn-CO",
+ "mbq\000mbq-Latn-PG",
+ "mbr\000mbr-Latn-CO",
+ "mbs\000mbs-Latn-PH",
+ "mbt\000mbt-Latn-PH",
+ "mbu\000mbu-Latn-NG",
+ "mbv\000mbv-Latn-GN",
+ "mbw\000mbw-Latn-PG",
+ "mbx\000mbx-Latn-PG",
+ "mby\000mby-Arab-PK",
+ "mbz\000mbz-Latn-MX",
+ "mca\000mca-Latn-PY",
+ "mcb\000mcb-Latn-PE",
+ "mcc\000mcc-Latn-PG",
+ "mcd\000mcd-Latn-PE",
+ "mce\000mce-Latn-MX",
+ "mcf\000mcf-Latn-PE",
+ "mcg\000mcg-Latn-VE",
+ "mch\000mch-Latn-VE",
+ "mci\000mci-Latn-PG",
+ "mcj\000mcj-Latn-NG",
+ "mck\000mck-Latn-AO",
+ "mcl\000mcl-Latn-CO",
+ "mcm\000mcm-Latn-MY",
+ "mcn\000mcn-Latn-TD",
+ "mco\000mco-Latn-MX",
+ "mcp\000mcp-Latn-CM",
+ "mcq\000mcq-Latn-PG",
+ "mcr\000mcr-Latn-PG",
+ "mcs\000mcs-Latn-CM",
+ "mct\000mct-Latn-CM",
+ "mcu\000mcu-Latn-CM",
+ "mcv\000mcv-Latn-PG",
+ "mcw\000mcw-Latn-TD",
+ "mcx\000mcx-Latn-CF",
+ "mcy\000mcy-Latn-PG",
+ "mcz\000mcz-Latn-PG",
+ "mda\000mda-Latn-NG",
+ "mdb\000mdb-Latn-PG",
+ "mdc\000mdc-Latn-PG",
+ "mdd\000mdd-Latn-CM",
+ "mde\000mde-Arab-TD",
+ "mdf\000mdf-Cyrl-RU",
+ "mdg\000mdg-Latn-TD",
+ "mdh\000mdh-Latn-PH",
+ "mdi\000mdi-Latn-CD",
+ "mdj\000mdj-Latn-CD",
+ "mdk\000mdk-Latn-CD",
+ "mdm\000mdm-Latn-CD",
+ "mdn\000mdn-Latn-CF",
+ "mdp\000mdp-Latn-CD",
+ "mdq\000mdq-Latn-CD",
+ "mdr\000mdr-Latn-ID",
+ "mds\000mds-Latn-PG",
+ "mdt\000mdt-Latn-CG",
+ "mdu\000mdu-Latn-CG",
+ "mdv\000mdv-Latn-MX",
+ "mdw\000mdw-Latn-CG",
+ "mdx\000mdx-Ethi-ET",
+ "mdy\000mdy-Ethi-ET",
+ "mdz\000mdz-Latn-BR",
+ "mea\000mea-Latn-CM",
+ "meb\000meb-Latn-PG",
+ "mec\000mec-Latn-AU",
+ "med\000med-Latn-PG",
+ "mee\000mee-Latn-PG",
+ "meh\000meh-Latn-MX",
+ "mej\000mej-Latn-ID",
+ "mek\000mek-Latn-PG",
+ "mel\000mel-Latn-MY",
+ "mem\000mem-Latn-AU",
+ "men\000men-Latn-SL",
+ "meo\000meo-Latn-MY",
+ "mep\000mep-Latn-AU",
+ "meq\000meq-Latn-CM",
+ "mer\000mer-Latn-KE",
+ "mes\000mes-Latn-TD",
+ "met\000met-Latn-PG",
+ "meu\000meu-Latn-PG",
+ "mev\000mev-Latn-LR",
+ "mew\000mew-Latn-NG",
+ "mey\000mey-Arab-DZ",
+ "mey-Latn\000mey-Latn-SN",
+ "mey-SN\000mey-Latn-SN",
+ "mez\000mez-Latn-US",
+ "mfa\000mfa-Arab-TH",
+ "mfb\000mfb-Latn-ID",
+ "mfc\000mfc-Latn-CD",
+ "mfd\000mfd-Latn-CM",
+ "mfe\000mfe-Latn-MU",
+ "mff\000mff-Latn-CM",
+ "mfg\000mfg-Latn-GN",
+ "mfh\000mfh-Latn-CM",
+ "mfi\000mfi-Arab-CM",
+ "mfj\000mfj-Latn-CM",
+ "mfk\000mfk-Latn-CM",
+ "mfl\000mfl-Latn-NG",
+ "mfm\000mfm-Latn-NG",
+ "mfn\000mfn-Latn-NG",
+ "mfo\000mfo-Latn-NG",
+ "mfp\000mfp-Latn-ID",
+ "mfq\000mfq-Latn-TG",
+ "mfr\000mfr-Latn-AU",
+ "mft\000mft-Latn-PG",
+ "mfu\000mfu-Latn-AO",
+ "mfv\000mfv-Latn-SN",
+ "mfw\000mfw-Latn-PG",
+ "mfx\000mfx-Latn-ET",
+ "mfy\000mfy-Latn-MX",
+ "mfz\000mfz-Latn-SS",
+ "mg\000mg-Latn-MG",
+ "mga\000mga-Latg-IE",
+ "mgb\000mgb-Latn-TD",
+ "mgc\000mgc-Latn-SS",
+ "mgd\000mgd-Latn-SS",
+ "mge\000mge-Latn-TD",
+ "mgf\000mgf-Latn-ID",
+ "mgg\000mgg-Latn-CM",
+ "mgh\000mgh-Latn-MZ",
+ "mgi\000mgi-Latn-NG",
+ "mgj\000mgj-Latn-NG",
+ "mgk\000mgk-Latn-ID",
+ "mgl\000mgl-Latn-PG",
+ "mgm\000mgm-Latn-TL",
+ "mgn\000mgn-Latn-CF",
+ "mgo\000mgo-Latn-CM",
+ "mgp\000mgp-Deva-NP",
+ "mgq\000mgq-Latn-TZ",
+ "mgr\000mgr-Latn-ZM",
+ "mgs\000mgs-Latn-TZ",
+ "mgt\000mgt-Latn-PG",
+ "mgu\000mgu-Latn-PG",
+ "mgv\000mgv-Latn-TZ",
+ "mgw\000mgw-Latn-TZ",
+ "mgy\000mgy-Latn-TZ",
+ "mgz\000mgz-Latn-TZ",
+ "mh\000mh-Latn-MH",
+ "mhb\000mhb-Latn-GA",
+ "mhc\000mhc-Latn-MX",
+ "mhd\000mhd-Latn-TZ",
+ "mhe\000mhe-Latn-MY",
+ "mhf\000mhf-Latn-PG",
+ "mhg\000mhg-Latn-AU",
+ "mhi\000mhi-Latn-UG",
+ "mhj\000mhj-Arab-AF",
+ "mhk\000mhk-Latn-CM",
+ "mhl\000mhl-Latn-PG",
+ "mhm\000mhm-Latn-MZ",
+ "mhn\000mhn-Latn-IT",
+ "mho\000mho-Latn-ZM",
+ "mhp\000mhp-Latn-ID",
+ "mhq\000mhq-Latn-US",
+ "mhs\000mhs-Latn-ID",
+ "mht\000mht-Latn-VE",
+ "mhu\000mhu-Latn-IN",
+ "mhw\000mhw-Latn-BW",
+ "mhx\000mhx-Latn-MM",
+ "mhy\000mhy-Latn-ID",
+ "mhz\000mhz-Latn-ID",
+ "mi\000mi-Latn-NZ",
+ "mia\000mia-Latn-US",
+ "mib\000mib-Latn-MX",
+ "mic\000mic-Latn-CA",
+ "mid\000mid-Mand-IQ",
+ "mie\000mie-Latn-MX",
+ "mif\000mif-Latn-CM",
+ "mig\000mig-Latn-MX",
+ "mih\000mih-Latn-MX",
+ "mii\000mii-Latn-MX",
+ "mij\000mij-Latn-CM",
+ "mik\000mik-Latn-US",
+ "mil\000mil-Latn-MX",
+ "mim\000mim-Latn-MX",
+ "min\000min-Latn-ID",
+ "mio\000mio-Latn-MX",
+ "mip\000mip-Latn-MX",
+ "miq\000miq-Latn-NI",
+ "mir\000mir-Latn-MX",
+ "mit\000mit-Latn-MX",
+ "miu\000miu-Latn-MX",
+ "miw\000miw-Latn-PG",
+ "mix\000mix-Latn-MX",
+ "miy\000miy-Latn-MX",
+ "miz\000miz-Latn-MX",
+ "mjb\000mjb-Latn-TL",
+ "mjc\000mjc-Latn-MX",
+ "mjd\000mjd-Latn-US",
+ "mje\000mje-Latn-TD",
+ "mjg\000mjg-Latn-CN",
+ "mjh\000mjh-Latn-TZ",
+ "mji\000mji-Latn-CN",
+ "mjj\000mjj-Latn-PG",
+ "mjk\000mjk-Latn-PG",
+ "mjl\000mjl-Deva-IN",
+ "mjm\000mjm-Latn-PG",
+ "mjn\000mjn-Latn-PG",
+ "mjq\000mjq-Mlym-IN",
+ "mjr\000mjr-Mlym-IN",
+ "mjs\000mjs-Latn-NG",
+ "mjt\000mjt-Deva-IN",
+ "mju\000mju-Telu-IN",
+ "mjv\000mjv-Mlym-IN",
+ "mjw\000mjw-Latn-IN",
+ "mjx\000mjx-Latn-BD",
+ "mjy\000mjy-Latn-US",
+ "mjz\000mjz-Deva-NP",
+ "mk\000mk-Cyrl-MK",
+ "mka\000mka-Latn-CI",
+ "mkb\000mkb-Deva-IN",
+ "mkc\000mkc-Latn-PG",
+ "mke\000mke-Deva-IN",
+ "mkf\000mkf-Latn-NG",
+ "mki\000mki-Arab-PK",
+ "mkj\000mkj-Latn-FM",
+ "mkk\000mkk-Latn-CM",
+ "mkl\000mkl-Latn-BJ",
+ "mkm\000mkm-Thai-TH",
+ "mkn\000mkn-Latn-ID",
+ "mko\000mko-Latn-NG",
+ "mkp\000mkp-Latn-PG",
+ "mkr\000mkr-Latn-PG",
+ "mks\000mks-Latn-MX",
+ "mkt\000mkt-Latn-NC",
+ "mkv\000mkv-Latn-VU",
+ "mkw\000mkw-Latn-CG",
+ "mkx\000mkx-Latn-PH",
+ "mky\000mky-Latn-ID",
+ "mkz\000mkz-Latn-TL",
+ "ml\000ml-Mlym-IN",
+ "mla\000mla-Latn-VU",
+ "mlb\000mlb-Latn-CM",
+ "mlc\000mlc-Latn-VN",
+ "mle\000mle-Latn-PG",
+ "mlf\000mlf-Thai-LA",
+ "mlh\000mlh-Latn-PG",
+ "mli\000mli-Latn-ID",
+ "mlj\000mlj-Latn-TD",
+ "mlk\000mlk-Latn-KE",
+ "mll\000mll-Latn-VU",
+ "mln\000mln-Latn-SB",
+ "mlo\000mlo-Latn-SN",
+ "mlp\000mlp-Latn-PG",
+ "mlr\000mlr-Latn-CM",
+ "mls\000mls-Latn-SD",
+ "mlu\000mlu-Latn-SB",
+ "mlv\000mlv-Latn-VU",
+ "mlw\000mlw-Latn-CM",
+ "mlx\000mlx-Latn-VU",
+ "mlz\000mlz-Latn-PH",
+ "mma\000mma-Latn-NG",
+ "mmb\000mmb-Latn-ID",
+ "mmc\000mmc-Latn-MX",
+ "mmd\000mmd-Latn-CN",
+ "mme\000mme-Latn-VU",
+ "mmf\000mmf-Latn-NG",
+ "mmg\000mmg-Latn-VU",
+ "mmh\000mmh-Latn-BR",
+ "mmi\000mmi-Latn-PG",
+ "mmm\000mmm-Latn-VU",
+ "mmn\000mmn-Latn-PH",
+ "mmo\000mmo-Latn-PG",
+ "mmp\000mmp-Latn-PG",
+ "mmq\000mmq-Latn-PG",
+ "mmr\000mmr-Latn-CN",
+ "mmt\000mmt-Latn-PG",
+ "mmu\000mmu-Latn-CM",
+ "mmv\000mmv-Latn-BR",
+ "mmw\000mmw-Latn-VU",
+ "mmx\000mmx-Latn-PG",
+ "mmy\000mmy-Latn-TD",
+ "mmz\000mmz-Latn-CD",
+ "mn\000mn-Cyrl-MN",
+ "mn-CN\000mn-Mong-CN",
+ "mn-Mong\000mn-Mong-CN",
+ "mna\000mna-Latn-PG",
+ "mnb\000mnb-Latn-ID",
+ "mnc\000mnc-Mong-CN",
+ "mnd\000mnd-Latn-BR",
+ "mne\000mne-Latn-TD",
+ "mnf\000mnf-Latn-CM",
+ "mng\000mng-Latn-VN",
+ "mnh\000mnh-Latn-CD",
+ "mni\000mni-Beng-IN",
+ "mnj\000mnj-Arab-AF",
+ "mnk\000mnk-Latn-GM",
+ "mnl\000mnl-Latn-VU",
+ "mnm\000mnm-Latn-PG",
+ "mnn\000mnn-Latn-VN",
+ "mnp\000mnp-Latn-CN",
+ "mnq\000mnq-Latn-MY",
+ "mnr\000mnr-Latn-US",
+ "mns\000mns-Cyrl-RU",
+ "mnu\000mnu-Latn-ID",
+ "mnv\000mnv-Latn-SB",
+ "mnw\000mnw-Mymr-MM",
+ "mnx\000mnx-Latn-ID",
+ "mny\000mny-Latn-MZ",
+ "mnz\000mnz-Latn-ID",
+ "mo\000mo-Latn-RO",
+ "moa\000moa-Latn-CI",
+ "moc\000moc-Latn-AR",
+ "mod\000mod-Latn-US",
+ "moe\000moe-Latn-CA",
+ "mog\000mog-Latn-ID",
+ "moh\000moh-Latn-CA",
+ "moi\000moi-Latn-NG",
+ "moj\000moj-Latn-CG",
+ "mok\000mok-Latn-ID",
+ "mom\000mom-Latn-NI",
+ "moo\000moo-Latn-VN",
+ "mop\000mop-Latn-BZ",
+ "moq\000moq-Latn-ID",
+ "mor\000mor-Latn-SD",
+ "mos\000mos-Latn-BF",
+ "mot\000mot-Latn-CO",
+ "mou\000mou-Latn-TD",
+ "mov\000mov-Latn-US",
+ "mow\000mow-Latn-CG",
+ "mox\000mox-Latn-PG",
+ "moy\000moy-Latn-ET",
+ "moz\000moz-Latn-TD",
+ "mpa\000mpa-Latn-TZ",
+ "mpb\000mpb-Latn-AU",
+ "mpc\000mpc-Latn-AU",
+ "mpd\000mpd-Latn-BR",
+ "mpe\000mpe-Latn-ET",
+ "mpg\000mpg-Latn-TD",
+ "mph\000mph-Latn-AU",
+ "mpi\000mpi-Latn-CM",
+ "mpj\000mpj-Latn-AU",
+ "mpk\000mpk-Latn-TD",
+ "mpl\000mpl-Latn-PG",
+ "mpm\000mpm-Latn-MX",
+ "mpn\000mpn-Latn-PG",
+ "mpo\000mpo-Latn-PG",
+ "mpp\000mpp-Latn-PG",
+ "mpq\000mpq-Latn-BR",
+ "mpr\000mpr-Latn-SB",
+ "mps\000mps-Latn-PG",
+ "mpt\000mpt-Latn-PG",
+ "mpu\000mpu-Latn-BR",
+ "mpv\000mpv-Latn-PG",
+ "mpw\000mpw-Latn-BR",
+ "mpx\000mpx-Latn-PG",
+ "mpy\000mpy-Latn-ID",
+ "mpz\000mpz-Thai-TH",
+ "mqa\000mqa-Latn-ID",
+ "mqb\000mqb-Latn-CM",
+ "mqc\000mqc-Latn-ID",
+ "mqe\000mqe-Latn-PG",
+ "mqf\000mqf-Latn-ID",
+ "mqg\000mqg-Latn-ID",
+ "mqh\000mqh-Latn-MX",
+ "mqi\000mqi-Latn-ID",
+ "mqj\000mqj-Latn-ID",
+ "mqk\000mqk-Latn-PH",
+ "mql\000mql-Latn-BJ",
+ "mqm\000mqm-Latn-PF",
+ "mqn\000mqn-Latn-ID",
+ "mqo\000mqo-Latn-ID",
+ "mqp\000mqp-Latn-ID",
+ "mqq\000mqq-Latn-MY",
+ "mqr\000mqr-Latn-ID",
+ "mqs\000mqs-Latn-ID",
+ "mqt\000mqt-Latn-TH",
+ "mqu\000mqu-Latn-SS",
+ "mqv\000mqv-Latn-PG",
+ "mqw\000mqw-Latn-PG",
+ "mqx\000mqx-Latn-ID",
+ "mqy\000mqy-Latn-ID",
+ "mqz\000mqz-Latn-PG",
+ "mr\000mr-Deva-IN",
+ "mra\000mra-Thai-TH",
+ "mrb\000mrb-Latn-VU",
+ "mrc\000mrc-Latn-US",
+ "mrd\000mrd-Deva-NP",
+ "mrf\000mrf-Latn-ID",
+ "mrg\000mrg-Latn-IN",
+ "mrh\000mrh-Latn-IN",
+ "mrj\000mrj-Cyrl-RU",
+ "mrk\000mrk-Latn-NC",
+ "mrl\000mrl-Latn-FM",
+ "mrm\000mrm-Latn-VU",
+ "mrn\000mrn-Latn-SB",
+ "mro\000mro-Mroo-BD",
+ "mrp\000mrp-Latn-VU",
+ "mrq\000mrq-Latn-PF",
+ "mrr\000mrr-Deva-IN",
+ "mrs\000mrs-Latn-VU",
+ "mrt\000mrt-Latn-NG",
+ "mru\000mru-Latn-CM",
+ "mrv\000mrv-Latn-PF",
+ "mrw\000mrw-Latn-PH",
+ "mrx\000mrx-Latn-ID",
+ "mry\000mry-Latn-PH",
+ "mrz\000mrz-Latn-ID",
+ "ms\000ms-Latn-MY",
+ "ms-CC\000ms-Arab-CC",
+ "msb\000msb-Latn-PH",
+ "mse\000mse-Latn-TD",
+ "msf\000msf-Latn-ID",
+ "msg\000msg-Latn-ID",
+ "msh\000msh-Latn-MG",
+ "msi\000msi-Latn-MY",
+ "msj\000msj-Latn-CD",
+ "msk\000msk-Latn-PH",
+ "msl\000msl-Latn-ID",
+ "msm\000msm-Latn-PH",
+ "msn\000msn-Latn-VU",
+ "mso\000mso-Latn-ID",
+ "msp\000msp-Latn-BR",
+ "msq\000msq-Latn-NC",
+ "mss\000mss-Latn-ID",
+ "msu\000msu-Latn-PG",
+ "msv\000msv-Latn-CM",
+ "msw\000msw-Latn-GW",
+ "msx\000msx-Latn-PG",
+ "msy\000msy-Latn-PG",
+ "msz\000msz-Latn-PG",
+ "mt\000mt-Latn-MT",
+ "mta\000mta-Latn-PH",
+ "mtb\000mtb-Latn-CI",
+ "mtc\000mtc-Latn-PG",
+ "mtd\000mtd-Latn-ID",
+ "mte\000mte-Latn-SB",
+ "mtf\000mtf-Latn-PG",
+ "mtg\000mtg-Latn-ID",
+ "mth\000mth-Latn-ID",
+ "mti\000mti-Latn-PG",
+ "mtj\000mtj-Latn-ID",
+ "mtk\000mtk-Latn-CM",
+ "mtl\000mtl-Latn-NG",
+ "mtm\000mtm-Cyrl-RU",
+ "mtn\000mtn-Latn-NI",
+ "mto\000mto-Latn-MX",
+ "mtp\000mtp-Latn-BO",
+ "mtq\000mtq-Latn-VN",
+ "mtr\000mtr-Deva-IN",
+ "mts\000mts-Latn-PE",
+ "mtt\000mtt-Latn-VU",
+ "mtu\000mtu-Latn-MX",
+ "mtv\000mtv-Latn-PG",
+ "mtw\000mtw-Latn-PH",
+ "mtx\000mtx-Latn-MX",
+ "mty\000mty-Latn-PG",
+ "mua\000mua-Latn-CM",
+ "mub\000mub-Latn-TD",
+ "muc\000muc-Latn-CM",
+ "mud\000mud-Cyrl-RU",
+ "mue\000mue-Latn-EC",
+ "mug\000mug-Latn-CM",
+ "muh\000muh-Latn-SS",
+ "mui\000mui-Latn-ID",
+ "muj\000muj-Latn-TD",
+ "muk\000muk-Tibt-NP",
+ "mum\000mum-Latn-PG",
+ "muo\000muo-Latn-CM",
+ "muq\000muq-Latn-CN",
+ "mur\000mur-Latn-SS",
+ "mus\000mus-Latn-US",
+ "mut\000mut-Deva-IN",
+ "muu\000muu-Latn-KE",
+ "muv\000muv-Taml-IN",
+ "mux\000mux-Latn-PG",
+ "muy\000muy-Latn-CM",
+ "muz\000muz-Ethi-ET",
+ "mva\000mva-Latn-PG",
+ "mvd\000mvd-Latn-ID",
+ "mve\000mve-Arab-PK",
+ "mvf\000mvf-Mong-CN",
+ "mvg\000mvg-Latn-MX",
+ "mvh\000mvh-Latn-TD",
+ "mvk\000mvk-Latn-PG",
+ "mvl\000mvl-Latn-AU",
+ "mvn\000mvn-Latn-PG",
+ "mvo\000mvo-Latn-SB",
+ "mvp\000mvp-Latn-ID",
+ "mvq\000mvq-Latn-PG",
+ "mvr\000mvr-Latn-ID",
+ "mvs\000mvs-Latn-ID",
+ "mvt\000mvt-Latn-VU",
+ "mvu\000mvu-Latn-TD",
+ "mvv\000mvv-Latn-MY",
+ "mvw\000mvw-Latn-TZ",
+ "mvx\000mvx-Latn-ID",
+ "mvy\000mvy-Arab-PK",
+ "mvz\000mvz-Ethi-ET",
+ "mwa\000mwa-Latn-PG",
+ "mwb\000mwb-Latn-PG",
+ "mwc\000mwc-Latn-PG",
+ "mwe\000mwe-Latn-TZ",
+ "mwf\000mwf-Latn-AU",
+ "mwg\000mwg-Latn-PG",
+ "mwh\000mwh-Latn-PG",
+ "mwi\000mwi-Latn-VU",
+ "mwk\000mwk-Latn-ML",
+ "mwl\000mwl-Latn-PT",
+ "mwm\000mwm-Latn-TD",
+ "mwn\000mwn-Latn-ZM",
+ "mwo\000mwo-Latn-VU",
+ "mwp\000mwp-Latn-AU",
+ "mwq\000mwq-Latn-MM",
+ "mwr\000mwr-Deva-IN",
+ "mws\000mws-Latn-KE",
+ "mwt\000mwt-Mymr-MM",
+ "mwu\000mwu-Latn-SS",
+ "mwv\000mwv-Latn-ID",
+ "mww\000mww-Hmnp-US",
+ "mwz\000mwz-Latn-CD",
+ "mxa\000mxa-Latn-MX",
+ "mxb\000mxb-Latn-MX",
+ "mxc\000mxc-Latn-ZW",
+ "mxd\000mxd-Latn-ID",
+ "mxe\000mxe-Latn-VU",
+ "mxf\000mxf-Latn-CM",
+ "mxg\000mxg-Latn-AO",
+ "mxh\000mxh-Latn-CD",
+ "mxi\000mxi-Latn-ES",
+ "mxj\000mxj-Latn-IN",
+ "mxk\000mxk-Latn-PG",
+ "mxl\000mxl-Latn-BJ",
+ "mxm\000mxm-Latn-PG",
+ "mxn\000mxn-Latn-ID",
+ "mxo\000mxo-Latn-ZM",
+ "mxp\000mxp-Latn-MX",
+ "mxq\000mxq-Latn-MX",
+ "mxr\000mxr-Latn-MY",
+ "mxs\000mxs-Latn-MX",
+ "mxt\000mxt-Latn-MX",
+ "mxu\000mxu-Latn-CM",
+ "mxv\000mxv-Latn-MX",
+ "mxw\000mxw-Latn-PG",
+ "mxx\000mxx-Latn-CI",
+ "mxy\000mxy-Latn-MX",
+ "mxz\000mxz-Latn-ID",
+ "my\000my-Mymr-MM",
+ "myb\000myb-Latn-TD",
+ "myc\000myc-Latn-CD",
+ "mye\000mye-Latn-GA",
+ "myf\000myf-Latn-ET",
+ "myg\000myg-Latn-CM",
+ "myh\000myh-Latn-US",
+ "myj\000myj-Latn-SS",
+ "myk\000myk-Latn-ML",
+ "myl\000myl-Latn-ID",
+ "mym\000mym-Ethi-ET",
+ "myp\000myp-Latn-BR",
+ "myr\000myr-Latn-PE",
+ "myu\000myu-Latn-BR",
+ "myv\000myv-Cyrl-RU",
+ "myw\000myw-Latn-PG",
+ "myx\000myx-Latn-UG",
+ "myy\000myy-Latn-CO",
+ "myz\000myz-Mand-IR",
+ "mza\000mza-Latn-MX",
+ "mzb\000mzb-Arab-DZ",
+ "mzd\000mzd-Latn-CM",
+ "mze\000mze-Latn-PG",
+ "mzh\000mzh-Latn-AR",
+ "mzi\000mzi-Latn-MX",
+ "mzj\000mzj-Latn-LR",
+ "mzk\000mzk-Latn-NG",
+ "mzl\000mzl-Latn-MX",
+ "mzm\000mzm-Latn-NG",
+ "mzn\000mzn-Arab-IR",
+ "mzo\000mzo-Latn-BR",
+ "mzp\000mzp-Latn-BO",
+ "mzq\000mzq-Latn-ID",
+ "mzr\000mzr-Latn-BR",
+ "mzt\000mzt-Latn-MY",
+ "mzu\000mzu-Latn-PG",
+ "mzv\000mzv-Latn-CF",
+ "mzw\000mzw-Latn-GH",
+ "mzx\000mzx-Latn-GY",
+ "mzz\000mzz-Latn-PG",
+ "na\000na-Latn-NR",
+ "naa\000naa-Latn-ID",
+ "nab\000nab-Latn-BR",
+ "nac\000nac-Latn-PG",
+ "nae\000nae-Latn-ID",
+ "naf\000naf-Latn-PG",
+ "nag\000nag-Latn-IN",
+ "naj\000naj-Latn-GN",
+ "nak\000nak-Latn-PG",
+ "nal\000nal-Latn-PG",
+ "nam\000nam-Latn-AU",
+ "nan\000nan-Hans-CN",
+ "nan-Hant\000nan-Hant-TW",
+ "nan-MO\000nan-Hant-MO",
+ "nan-TW\000nan-Hant-TW",
+ "nao\000nao-Deva-NP",
+ "nap\000nap-Latn-IT",
+ "naq\000naq-Latn-NA",
+ "nar\000nar-Latn-NG",
+ "nas\000nas-Latn-PG",
+ "nat\000nat-Latn-NG",
+ "naw\000naw-Latn-GH",
+ "nax\000nax-Latn-PG",
+ "nay\000nay-Latn-AU",
+ "naz\000naz-Latn-MX",
+ "nb\000nb-Latn-NO",
+ "nba\000nba-Latn-AO",
+ "nbb\000nbb-Latn-NG",
+ "nbc\000nbc-Latn-IN",
+ "nbd\000nbd-Latn-CD",
+ "nbe\000nbe-Latn-IN",
+ "nbh\000nbh-Latn-NG",
+ "nbi\000nbi-Latn-IN",
+ "nbj\000nbj-Latn-AU",
+ "nbk\000nbk-Latn-PG",
+ "nbm\000nbm-Latn-CF",
+ "nbn\000nbn-Latn-ID",
+ "nbo\000nbo-Latn-NG",
+ "nbp\000nbp-Latn-NG",
+ "nbq\000nbq-Latn-ID",
+ "nbr\000nbr-Latn-NG",
+ "nbt\000nbt-Latn-IN",
+ "nbu\000nbu-Latn-IN",
+ "nbv\000nbv-Latn-CM",
+ "nbw\000nbw-Latn-CD",
+ "nby\000nby-Latn-PG",
+ "nca\000nca-Latn-PG",
+ "ncb\000ncb-Latn-IN",
+ "ncc\000ncc-Latn-PG",
+ "ncd\000ncd-Deva-NP",
+ "nce\000nce-Latn-PG",
+ "ncf\000ncf-Latn-PG",
+ "ncg\000ncg-Latn-CA",
+ "nch\000nch-Latn-MX",
+ "nci\000nci-Latn-MX",
+ "ncj\000ncj-Latn-MX",
+ "nck\000nck-Latn-AU",
+ "ncl\000ncl-Latn-MX",
+ "ncm\000ncm-Latn-PG",
+ "ncn\000ncn-Latn-PG",
+ "nco\000nco-Latn-PG",
+ "ncq\000ncq-Laoo-LA",
+ "ncr\000ncr-Latn-CM",
+ "nct\000nct-Latn-IN",
+ "ncu\000ncu-Latn-GH",
+ "ncx\000ncx-Latn-MX",
+ "ncz\000ncz-Latn-US",
+ "nd\000nd-Latn-ZW",
+ "nda\000nda-Latn-CG",
+ "ndb\000ndb-Latn-CM",
+ "ndc\000ndc-Latn-MZ",
+ "ndd\000ndd-Latn-NG",
+ "ndf\000ndf-Cyrl-RU",
+ "ndg\000ndg-Latn-TZ",
+ "ndh\000ndh-Latn-TZ",
+ "ndi\000ndi-Latn-NG",
+ "ndj\000ndj-Latn-TZ",
+ "ndk\000ndk-Latn-CD",
+ "ndl\000ndl-Latn-CD",
+ "ndm\000ndm-Latn-TD",
+ "ndn\000ndn-Latn-CG",
+ "ndp\000ndp-Latn-UG",
+ "ndq\000ndq-Latn-AO",
+ "ndr\000ndr-Latn-NG",
+ "nds\000nds-Latn-DE",
+ "ndt\000ndt-Latn-CD",
+ "ndu\000ndu-Latn-CM",
+ "ndv\000ndv-Latn-SN",
+ "ndw\000ndw-Latn-CD",
+ "ndx\000ndx-Latn-ID",
+ "ndy\000ndy-Latn-CF",
+ "ndz\000ndz-Latn-SS",
+ "ne\000ne-Deva-NP",
+ "nea\000nea-Latn-ID",
+ "neb\000neb-Latn-CI",
+ "nec\000nec-Latn-ID",
+ "ned\000ned-Latn-NG",
+ "nee\000nee-Latn-NC",
+ "neg\000neg-Cyrl-RU",
+ "neh\000neh-Tibt-BT",
+ "nei\000nei-Xsux-TR",
+ "nej\000nej-Latn-PG",
+ "nek\000nek-Latn-NC",
+ "nem\000nem-Latn-NC",
+ "nen\000nen-Latn-NC",
+ "neo\000neo-Latn-VN",
+ "neq\000neq-Latn-MX",
+ "ner\000ner-Latn-ID",
+ "net\000net-Latn-PG",
+ "neu\000neu-Latn-001",
+ "new\000new-Deva-NP",
+ "nex\000nex-Latn-PG",
+ "ney\000ney-Latn-CI",
+ "nez\000nez-Latn-US",
+ "nfa\000nfa-Latn-ID",
+ "nfd\000nfd-Latn-NG",
+ "nfl\000nfl-Latn-SB",
+ "nfr\000nfr-Latn-GH",
+ "nfu\000nfu-Latn-CM",
+ "ng\000ng-Latn-NA",
+ "nga\000nga-Latn-CD",
+ "ngb\000ngb-Latn-CD",
+ "ngc\000ngc-Latn-CD",
+ "ngd\000ngd-Latn-CF",
+ "nge\000nge-Latn-CM",
+ "ngg\000ngg-Latn-CF",
+ "ngh\000ngh-Latn-ZA",
+ "ngi\000ngi-Latn-NG",
+ "ngj\000ngj-Latn-CM",
+ "ngk\000ngk-Latn-AU",
+ "ngl\000ngl-Latn-MZ",
+ "ngm\000ngm-Latn-FM",
+ "ngn\000ngn-Latn-CM",
+ "ngp\000ngp-Latn-TZ",
+ "ngq\000ngq-Latn-TZ",
+ "ngr\000ngr-Latn-SB",
+ "ngs\000ngs-Latn-NG",
+ "ngt\000ngt-Laoo-LA",
+ "ngu\000ngu-Latn-MX",
+ "ngv\000ngv-Latn-CM",
+ "ngw\000ngw-Latn-NG",
+ "ngx\000ngx-Latn-NG",
+ "ngy\000ngy-Latn-CM",
+ "ngz\000ngz-Latn-CG",
+ "nha\000nha-Latn-AU",
+ "nhb\000nhb-Latn-CI",
+ "nhc\000nhc-Latn-MX",
+ "nhd\000nhd-Latn-PY",
+ "nhe\000nhe-Latn-MX",
+ "nhf\000nhf-Latn-AU",
+ "nhg\000nhg-Latn-MX",
+ "nhi\000nhi-Latn-MX",
+ "nhk\000nhk-Latn-MX",
+ "nhm\000nhm-Latn-MX",
+ "nhn\000nhn-Latn-MX",
+ "nho\000nho-Latn-PG",
+ "nhp\000nhp-Latn-MX",
+ "nhq\000nhq-Latn-MX",
+ "nhr\000nhr-Latn-BW",
+ "nht\000nht-Latn-MX",
+ "nhu\000nhu-Latn-CM",
+ "nhv\000nhv-Latn-MX",
+ "nhw\000nhw-Latn-MX",
+ "nhx\000nhx-Latn-MX",
+ "nhy\000nhy-Latn-MX",
+ "nhz\000nhz-Latn-MX",
+ "nia\000nia-Latn-ID",
+ "nib\000nib-Latn-PG",
+ "nid\000nid-Latn-AU",
+ "nie\000nie-Latn-TD",
+ "nif\000nif-Latn-PG",
+ "nig\000nig-Latn-AU",
+ "nih\000nih-Latn-TZ",
+ "nii\000nii-Latn-PG",
+ "nij\000nij-Latn-ID",
+ "nil\000nil-Latn-ID",
+ "nim\000nim-Latn-TZ",
+ "nin\000nin-Latn-NG",
+ "nio\000nio-Cyrl-RU",
+ "niq\000niq-Latn-KE",
+ "nir\000nir-Latn-ID",
+ "nis\000nis-Latn-PG",
+ "nit\000nit-Telu-IN",
+ "niu\000niu-Latn-NU",
+ "niv\000niv-Cyrl-RU",
+ "niw\000niw-Latn-PG",
+ "nix\000nix-Latn-CD",
+ "niy\000niy-Latn-CD",
+ "niz\000niz-Latn-PG",
+ "nja\000nja-Latn-NG",
+ "njb\000njb-Latn-IN",
+ "njd\000njd-Latn-TZ",
+ "njh\000njh-Latn-IN",
+ "nji\000nji-Latn-AU",
+ "njj\000njj-Latn-CM",
+ "njl\000njl-Latn-SS",
+ "njm\000njm-Latn-IN",
+ "njn\000njn-Latn-IN",
+ "njo\000njo-Latn-IN",
+ "njr\000njr-Latn-NG",
+ "njs\000njs-Latn-ID",
+ "njt\000njt-Latn-SR",
+ "nju\000nju-Latn-AU",
+ "njx\000njx-Latn-CG",
+ "njy\000njy-Latn-CM",
+ "njz\000njz-Latn-IN",
+ "nka\000nka-Latn-ZM",
+ "nkb\000nkb-Latn-IN",
+ "nkc\000nkc-Latn-CM",
+ "nkd\000nkd-Latn-IN",
+ "nke\000nke-Latn-SB",
+ "nkf\000nkf-Latn-IN",
+ "nkg\000nkg-Latn-PG",
+ "nkh\000nkh-Latn-IN",
+ "nki\000nki-Latn-IN",
+ "nkj\000nkj-Latn-ID",
+ "nkk\000nkk-Latn-VU",
+ "nkm\000nkm-Latn-PG",
+ "nkn\000nkn-Latn-AO",
+ "nko\000nko-Latn-GH",
+ "nkq\000nkq-Latn-GH",
+ "nkr\000nkr-Latn-FM",
+ "nks\000nks-Latn-ID",
+ "nkt\000nkt-Latn-TZ",
+ "nku\000nku-Latn-CI",
+ "nkv\000nkv-Latn-MW",
+ "nkw\000nkw-Latn-CD",
+ "nkx\000nkx-Latn-NG",
+ "nkz\000nkz-Latn-NG",
+ "nl\000nl-Latn-NL",
+ "nla\000nla-Latn-CM",
+ "nlc\000nlc-Latn-ID",
+ "nle\000nle-Latn-KE",
+ "nlg\000nlg-Latn-SB",
+ "nli\000nli-Arab-AF",
+ "nlj\000nlj-Latn-CD",
+ "nlk\000nlk-Latn-ID",
+ "nlm\000nlm-Arab-PK",
+ "nlo\000nlo-Latn-CD",
+ "nlq\000nlq-Latn-MM",
+ "nlu\000nlu-Latn-GH",
+ "nlv\000nlv-Latn-MX",
+ "nlw\000nlw-Latn-AU",
+ "nlx\000nlx-Deva-IN",
+ "nly\000nly-Latn-AU",
+ "nlz\000nlz-Latn-SB",
+ "nma\000nma-Latn-IN",
+ "nmb\000nmb-Latn-VU",
+ "nmc\000nmc-Latn-TD",
+ "nmd\000nmd-Latn-GA",
+ "nme\000nme-Latn-IN",
+ "nmf\000nmf-Latn-IN",
+ "nmg\000nmg-Latn-CM",
+ "nmh\000nmh-Latn-IN",
+ "nmi\000nmi-Latn-NG",
+ "nmj\000nmj-Latn-CF",
+ "nmk\000nmk-Latn-VU",
+ "nml\000nml-Latn-CM",
+ "nmm\000nmm-Deva-NP",
+ "nmn\000nmn-Latn-BW",
+ "nmo\000nmo-Latn-IN",
+ "nmp\000nmp-Latn-AU",
+ "nmq\000nmq-Latn-ZW",
+ "nmr\000nmr-Latn-CM",
+ "nms\000nms-Latn-VU",
+ "nmt\000nmt-Latn-FM",
+ "nmu\000nmu-Latn-US",
+ "nmv\000nmv-Latn-AU",
+ "nmw\000nmw-Latn-PG",
+ "nmx\000nmx-Latn-PG",
+ "nmz\000nmz-Latn-TG",
+ "nn\000nn-Latn-NO",
+ "nna\000nna-Latn-AU",
+ "nnb\000nnb-Latn-CD",
+ "nnc\000nnc-Latn-TD",
+ "nnd\000nnd-Latn-VU",
+ "nne\000nne-Latn-AO",
+ "nnf\000nnf-Latn-PG",
+ "nng\000nng-Latn-IN",
+ "nnh\000nnh-Latn-CM",
+ "nni\000nni-Latn-ID",
+ "nnj\000nnj-Latn-ET",
+ "nnk\000nnk-Latn-PG",
+ "nnl\000nnl-Latn-IN",
+ "nnm\000nnm-Latn-PG",
+ "nnn\000nnn-Latn-TD",
+ "nnp\000nnp-Wcho-IN",
+ "nnq\000nnq-Latn-TZ",
+ "nnr\000nnr-Latn-AU",
+ "nnt\000nnt-Latn-US",
+ "nnu\000nnu-Latn-GH",
+ "nnv\000nnv-Latn-AU",
+ "nnw\000nnw-Latn-BF",
+ "nny\000nny-Latn-AU",
+ "nnz\000nnz-Latn-CM",
+ "no\000no-Latn-NO",
+ "noa\000noa-Latn-CO",
+ "noc\000noc-Latn-PG",
+ "nod\000nod-Lana-TH",
+ "noe\000noe-Deva-IN",
+ "nof\000nof-Latn-PG",
+ "nog\000nog-Cyrl-RU",
+ "noh\000noh-Latn-PG",
+ "noi\000noi-Deva-IN",
+ "noj\000noj-Latn-CO",
+ "nok\000nok-Latn-US",
+ "non\000non-Runr-SE",
+ "nop\000nop-Latn-PG",
+ "noq\000noq-Latn-CD",
+ "nos\000nos-Yiii-CN",
+ "not\000not-Latn-PE",
+ "nou\000nou-Latn-PG",
+ "nov\000nov-Latn-001",
+ "now\000now-Latn-TZ",
+ "noy\000noy-Latn-TD",
+ "npb\000npb-Tibt-BT",
+ "npg\000npg-Latn-MM",
+ "nph\000nph-Latn-IN",
+ "npl\000npl-Latn-MX",
+ "npn\000npn-Latn-PG",
+ "npo\000npo-Latn-IN",
+ "nps\000nps-Latn-ID",
+ "npu\000npu-Latn-IN",
+ "npx\000npx-Latn-SB",
+ "npy\000npy-Latn-ID",
+ "nqg\000nqg-Latn-BJ",
+ "nqk\000nqk-Latn-BJ",
+ "nql\000nql-Latn-AO",
+ "nqm\000nqm-Latn-ID",
+ "nqn\000nqn-Latn-PG",
+ "nqo\000nqo-Nkoo-GN",
+ "nqq\000nqq-Latn-MM",
+ "nqt\000nqt-Latn-NG",
+ "nqy\000nqy-Latn-MM",
+ "nr\000nr-Latn-ZA",
+ "nra\000nra-Latn-GA",
+ "nrb\000nrb-Latn-ER",
+ "nre\000nre-Latn-IN",
+ "nrf\000nrf-Latn-JE",
+ "nrg\000nrg-Latn-VU",
+ "nri\000nri-Latn-IN",
+ "nrk\000nrk-Latn-AU",
+ "nrl\000nrl-Latn-AU",
+ "nrm\000nrm-Latn-MY",
+ "nrn\000nrn-Runr-GB",
+ "nrp\000nrp-Latn-IT",
+ "nru\000nru-Latn-CN",
+ "nrx\000nrx-Latn-AU",
+ "nrz\000nrz-Latn-PG",
+ "nsa\000nsa-Latn-IN",
+ "nsb\000nsb-Latn-ZA",
+ "nsc\000nsc-Latn-NG",
+ "nsd\000nsd-Yiii-CN",
+ "nse\000nse-Latn-ZM",
+ "nsf\000nsf-Yiii-CN",
+ "nsg\000nsg-Latn-TZ",
+ "nsh\000nsh-Latn-CM",
+ "nsk\000nsk-Cans-CA",
+ "nsm\000nsm-Latn-IN",
+ "nsn\000nsn-Latn-PG",
+ "nso\000nso-Latn-ZA",
+ "nsq\000nsq-Latn-US",
+ "nss\000nss-Latn-PG",
+ "nst\000nst-Tnsa-IN",
+ "nsu\000nsu-Latn-MX",
+ "nsv\000nsv-Yiii-CN",
+ "nsw\000nsw-Latn-VU",
+ "nsx\000nsx-Latn-AO",
+ "nsy\000nsy-Latn-ID",
+ "nsz\000nsz-Latn-US",
+ "ntd\000ntd-Latn-MY",
+ "ntg\000ntg-Latn-AU",
+ "nti\000nti-Latn-BF",
+ "ntj\000ntj-Latn-AU",
+ "ntk\000ntk-Latn-TZ",
+ "ntm\000ntm-Latn-BJ",
+ "nto\000nto-Latn-CD",
+ "ntp\000ntp-Latn-MX",
+ "ntr\000ntr-Latn-GH",
+ "ntu\000ntu-Latn-SB",
+ "ntx\000ntx-Latn-MM",
+ "nty\000nty-Yiii-VN",
+ "ntz\000ntz-Arab-IR",
+ "nua\000nua-Latn-NC",
+ "nuc\000nuc-Latn-BR",
+ "nud\000nud-Latn-PG",
+ "nue\000nue-Latn-CF",
+ "nuf\000nuf-Latn-CN",
+ "nug\000nug-Latn-AU",
+ "nuh\000nuh-Latn-NG",
+ "nui\000nui-Latn-GQ",
+ "nuj\000nuj-Latn-UG",
+ "nuk\000nuk-Latn-CA",
+ "num\000num-Latn-TO",
+ "nun\000nun-Latn-MM",
+ "nuo\000nuo-Latn-VN",
+ "nup\000nup-Latn-NG",
+ "nuq\000nuq-Latn-PG",
+ "nur\000nur-Latn-PG",
+ "nus\000nus-Latn-SS",
+ "nut\000nut-Latn-VN",
+ "nuu\000nuu-Latn-CD",
+ "nuv\000nuv-Latn-BF",
+ "nuw\000nuw-Latn-FM",
+ "nux\000nux-Latn-PG",
+ "nuy\000nuy-Latn-AU",
+ "nuz\000nuz-Latn-MX",
+ "nv\000nv-Latn-US",
+ "nvh\000nvh-Latn-VU",
+ "nvm\000nvm-Latn-PG",
+ "nvo\000nvo-Latn-CM",
+ "nwb\000nwb-Latn-CI",
+ "nwc\000nwc-Newa-NP",
+ "nwe\000nwe-Latn-CM",
+ "nwg\000nwg-Latn-AU",
+ "nwi\000nwi-Latn-VU",
+ "nwm\000nwm-Latn-SS",
+ "nwo\000nwo-Latn-AU",
+ "nwr\000nwr-Latn-PG",
+ "nww\000nww-Latn-TZ",
+ "nwx\000nwx-Deva-NP",
+ "nxa\000nxa-Latn-TL",
+ "nxd\000nxd-Latn-CD",
+ "nxe\000nxe-Latn-ID",
+ "nxg\000nxg-Latn-ID",
+ "nxi\000nxi-Latn-TZ",
+ "nxk\000nxk-Latn-MM",
+ "nxl\000nxl-Latn-ID",
+ "nxn\000nxn-Latn-AU",
+ "nxo\000nxo-Latn-GA",
+ "nxq\000nxq-Latn-CN",
+ "nxr\000nxr-Latn-PG",
+ "nxx\000nxx-Latn-ID",
+ "ny\000ny-Latn-MW",
+ "nyb\000nyb-Latn-GH",
+ "nyc\000nyc-Latn-CD",
+ "nyd\000nyd-Latn-KE",
+ "nye\000nye-Latn-AO",
+ "nyf\000nyf-Latn-KE",
+ "nyg\000nyg-Latn-CD",
+ "nyh\000nyh-Latn-AU",
+ "nyi\000nyi-Latn-SD",
+ "nyj\000nyj-Latn-CD",
+ "nyk\000nyk-Latn-AO",
+ "nyl\000nyl-Thai-TH",
+ "nym\000nym-Latn-TZ",
+ "nyn\000nyn-Latn-UG",
+ "nyo\000nyo-Latn-UG",
+ "nyp\000nyp-Latn-UG",
+ "nyq\000nyq-Arab-IR",
+ "nyr\000nyr-Latn-MW",
+ "nys\000nys-Latn-AU",
+ "nyt\000nyt-Latn-AU",
+ "nyu\000nyu-Latn-MZ",
+ "nyv\000nyv-Latn-AU",
+ "nyw\000nyw-Thai-TH",
+ "nyx\000nyx-Latn-AU",
+ "nyy\000nyy-Latn-TZ",
+ "nza\000nza-Latn-CM",
+ "nzb\000nzb-Latn-GA",
+ "nzd\000nzd-Latn-CD",
+ "nzi\000nzi-Latn-GH",
+ "nzk\000nzk-Latn-CF",
+ "nzm\000nzm-Latn-IN",
+ "nzr\000nzr-Latn-NG",
+ "nzu\000nzu-Latn-CG",
+ "nzy\000nzy-Latn-TD",
+ "nzz\000nzz-Latn-ML",
+ "oaa\000oaa-Cyrl-RU",
+ "oac\000oac-Cyrl-RU",
+ "oar\000oar-Syrc-SY",
+ "oav\000oav-Geor-GE",
+ "obi\000obi-Latn-US",
+ "obk\000obk-Latn-PH",
+ "obl\000obl-Latn-CM",
+ "obm\000obm-Phnx-JO",
+ "obo\000obo-Latn-PH",
+ "obr\000obr-Mymr-MM",
+ "obt\000obt-Latn-FR",
+ "obu\000obu-Latn-NG",
+ "oc\000oc-Latn-FR",
+ "oca\000oca-Latn-PE",
+ "oco\000oco-Latn-GB",
+ "ocu\000ocu-Latn-MX",
+ "oda\000oda-Latn-NG",
+ "odk\000odk-Arab-PK",
+ "odt\000odt-Latn-NL",
+ "odu\000odu-Latn-NG",
+ "ofs\000ofs-Latn-NL",
+ "ofu\000ofu-Latn-NG",
+ "ogb\000ogb-Latn-NG",
+ "ogc\000ogc-Latn-NG",
+ "ogg\000ogg-Latn-NG",
+ "ogo\000ogo-Latn-NG",
+ "ogu\000ogu-Latn-NG",
+ "oht\000oht-Xsux-TR",
+ "ohu\000ohu-Latn-HU",
+ "oia\000oia-Latn-ID",
+ "oie\000oie-Latn-SS",
+ "oin\000oin-Latn-PG",
+ "oj\000oj-Cans-CA",
+ "ojb\000ojb-Latn-CA",
+ "ojc\000ojc-Latn-CA",
+ "ojs\000ojs-Cans-CA",
+ "ojv\000ojv-Latn-SB",
+ "ojw\000ojw-Latn-CA",
+ "oka\000oka-Latn-CA",
+ "okb\000okb-Latn-NG",
+ "okc\000okc-Latn-CD",
+ "okd\000okd-Latn-NG",
+ "oke\000oke-Latn-NG",
+ "okg\000okg-Latn-AU",
+ "oki\000oki-Latn-KE",
+ "okk\000okk-Latn-PG",
+ "okm\000okm-Hang-KR",
+ "oko\000oko-Hani-KR",
+ "okr\000okr-Latn-NG",
+ "oks\000oks-Latn-NG",
+ "oku\000oku-Latn-CM",
+ "okv\000okv-Latn-PG",
+ "okx\000okx-Latn-NG",
+ "okz\000okz-Khmr-KH",
+ "ola\000ola-Deva-NP",
+ "old\000old-Latn-TZ",
+ "ole\000ole-Tibt-BT",
+ "olk\000olk-Latn-AU",
+ "olm\000olm-Latn-NG",
+ "olo\000olo-Latn-RU",
+ "olr\000olr-Latn-VU",
+ "olt\000olt-Latn-LT",
+ "olu\000olu-Latn-AO",
+ "om\000om-Latn-ET",
+ "oma\000oma-Latn-US",
+ "omb\000omb-Latn-VU",
+ "omc\000omc-Latn-PE",
+ "omg\000omg-Latn-PE",
+ "omi\000omi-Latn-CD",
+ "omk\000omk-Cyrl-RU",
+ "oml\000oml-Latn-CD",
+ "omo\000omo-Latn-PG",
+ "omp\000omp-Mtei-IN",
+ "omr\000omr-Modi-IN",
+ "omt\000omt-Latn-KE",
+ "omu\000omu-Latn-PE",
+ "omw\000omw-Latn-PG",
+ "omx\000omx-Mymr-MM",
+ "ona\000ona-Latn-AR",
+ "one\000one-Latn-CA",
+ "ong\000ong-Latn-PG",
+ "oni\000oni-Latn-ID",
+ "onj\000onj-Latn-PG",
+ "onk\000onk-Latn-PG",
+ "onn\000onn-Latn-PG",
+ "ono\000ono-Latn-CA",
+ "onp\000onp-Latn-IN",
+ "onr\000onr-Latn-PG",
+ "ons\000ons-Latn-PG",
+ "ont\000ont-Latn-PG",
+ "onu\000onu-Latn-VU",
+ "onx\000onx-Latn-ID",
+ "ood\000ood-Latn-US",
+ "oon\000oon-Deva-IN",
+ "oor\000oor-Latn-ZA",
+ "opa\000opa-Latn-NG",
+ "opk\000opk-Latn-ID",
+ "opm\000opm-Latn-PG",
+ "opo\000opo-Latn-PG",
+ "opt\000opt-Latn-MX",
+ "opy\000opy-Latn-BR",
+ "or\000or-Orya-IN",
+ "ora\000ora-Latn-SB",
+ "orc\000orc-Latn-KE",
+ "ore\000ore-Latn-PE",
+ "org\000org-Latn-NG",
+ "orn\000orn-Latn-MY",
+ "oro\000oro-Latn-PG",
+ "orr\000orr-Latn-NG",
+ "ors\000ors-Latn-MY",
+ "ort\000ort-Telu-IN",
+ "oru\000oru-Arab-PK",
+ "orv\000orv-Cyrl-RU",
+ "orw\000orw-Latn-BR",
+ "orx\000orx-Latn-NG",
+ "orz\000orz-Latn-ID",
+ "os\000os-Cyrl-GE",
+ "osa\000osa-Osge-US",
+ "osc\000osc-Ital-IT",
+ "osi\000osi-Java-ID",
+ "oso\000oso-Latn-NG",
+ "osp\000osp-Latn-ES",
+ "ost\000ost-Latn-CM",
+ "osu\000osu-Latn-PG",
+ "osx\000osx-Latn-DE",
+ "ota\000ota-Arab-TR",
+ "otb\000otb-Tibt-CN",
+ "otd\000otd-Latn-ID",
+ "ote\000ote-Latn-MX",
+ "oti\000oti-Latn-BR",
+ "otk\000otk-Orkh-MN",
+ "otl\000otl-Latn-MX",
+ "otm\000otm-Latn-MX",
+ "otn\000otn-Latn-MX",
+ "otq\000otq-Latn-MX",
+ "otr\000otr-Latn-SD",
+ "ots\000ots-Latn-MX",
+ "ott\000ott-Latn-MX",
+ "otu\000otu-Latn-BR",
+ "otw\000otw-Latn-CA",
+ "otx\000otx-Latn-MX",
+ "oty\000oty-Gran-IN",
+ "otz\000otz-Latn-MX",
+ "oub\000oub-Latn-LR",
+ "oue\000oue-Latn-PG",
+ "oui\000oui-Ougr-CN",
+ "oum\000oum-Latn-PG",
+ "ovd\000ovd-Latn-SE",
+ "owi\000owi-Latn-PG",
+ "owl\000owl-Latn-GB",
+ "oyb\000oyb-Laoo-LA",
+ "oyd\000oyd-Latn-ET",
+ "oym\000oym-Latn-BR",
+ "oyy\000oyy-Latn-PG",
+ "ozm\000ozm-Latn-CM",
+ "pa\000pa-Guru-IN",
+ "pa-Arab\000pa-Arab-PK",
+ "pa-PK\000pa-Arab-PK",
+ "pab\000pab-Latn-BR",
+ "pac\000pac-Latn-VN",
+ "pad\000pad-Latn-BR",
+ "pae\000pae-Latn-CD",
+ "paf\000paf-Latn-BR",
+ "pag\000pag-Latn-PH",
+ "pah\000pah-Latn-BR",
+ "pai\000pai-Latn-NG",
+ "pak\000pak-Latn-BR",
+ "pal\000pal-Phli-IR",
+ "pal-Phlp\000pal-Phlp-CN",
+ "pam\000pam-Latn-PH",
+ "pao\000pao-Latn-US",
+ "pap\000pap-Latn-CW",
+ "paq\000paq-Cyrl-TJ",
+ "par\000par-Latn-US",
+ "pas\000pas-Latn-ID",
+ "pau\000pau-Latn-PW",
+ "pav\000pav-Latn-BR",
+ "paw\000paw-Latn-US",
+ "pax\000pax-Latn-BR",
+ "pay\000pay-Latn-HN",
+ "paz\000paz-Latn-BR",
+ "pbb\000pbb-Latn-CO",
+ "pbc\000pbc-Latn-GY",
+ "pbe\000pbe-Latn-MX",
+ "pbf\000pbf-Latn-MX",
+ "pbg\000pbg-Latn-VE",
+ "pbh\000pbh-Latn-VE",
+ "pbi\000pbi-Latn-CM",
+ "pbl\000pbl-Latn-NG",
+ "pbm\000pbm-Latn-MX",
+ "pbn\000pbn-Latn-NG",
+ "pbo\000pbo-Latn-GW",
+ "pbp\000pbp-Latn-GN",
+ "pbr\000pbr-Latn-TZ",
+ "pbs\000pbs-Latn-MX",
+ "pbt\000pbt-Arab-AF",
+ "pbv\000pbv-Latn-IN",
+ "pby\000pby-Latn-PG",
+ "pca\000pca-Latn-MX",
+ "pcb\000pcb-Khmr-KH",
+ "pcc\000pcc-Latn-CN",
+ "pcd\000pcd-Latn-FR",
+ "pce\000pce-Mymr-MM",
+ "pcf\000pcf-Mlym-IN",
+ "pcg\000pcg-Mlym-IN",
+ "pch\000pch-Deva-IN",
+ "pci\000pci-Deva-IN",
+ "pcj\000pcj-Telu-IN",
+ "pck\000pck-Latn-IN",
+ "pcm\000pcm-Latn-NG",
+ "pcn\000pcn-Latn-NG",
+ "pcp\000pcp-Latn-BO",
+ "pcw\000pcw-Latn-NG",
+ "pda\000pda-Latn-PG",
+ "pdc\000pdc-Latn-US",
+ "pdn\000pdn-Latn-ID",
+ "pdo\000pdo-Latn-ID",
+ "pdt\000pdt-Latn-CA",
+ "pdu\000pdu-Latn-MM",
+ "pea\000pea-Latn-ID",
+ "peb\000peb-Latn-US",
+ "ped\000ped-Latn-PG",
+ "pee\000pee-Latn-ID",
+ "peg\000peg-Orya-IN",
+ "pei\000pei-Latn-MX",
+ "pek\000pek-Latn-PG",
+ "pel\000pel-Latn-ID",
+ "pem\000pem-Latn-CD",
+ "peo\000peo-Xpeo-IR",
+ "pep\000pep-Latn-PG",
+ "peq\000peq-Latn-US",
+ "pev\000pev-Latn-VE",
+ "pex\000pex-Latn-PG",
+ "pey\000pey-Latn-ID",
+ "pez\000pez-Latn-MY",
+ "pfa\000pfa-Latn-FM",
+ "pfe\000pfe-Latn-CM",
+ "pfl\000pfl-Latn-DE",
+ "pga\000pga-Latn-SS",
+ "pgd\000pgd-Khar-PK",
+ "pgg\000pgg-Deva-IN",
+ "pgi\000pgi-Latn-PG",
+ "pgk\000pgk-Latn-VU",
+ "pgl\000pgl-Ogam-IE",
+ "pgn\000pgn-Ital-IT",
+ "pgs\000pgs-Latn-NG",
+ "pgu\000pgu-Latn-ID",
+ "phd\000phd-Deva-IN",
+ "phg\000phg-Latn-VN",
+ "phh\000phh-Latn-VN",
+ "phk\000phk-Mymr-IN",
+ "phl\000phl-Arab-PK",
+ "phm\000phm-Latn-MZ",
+ "phn\000phn-Phnx-LB",
+ "pho\000pho-Laoo-LA",
+ "phr\000phr-Arab-PK",
+ "pht\000pht-Thai-TH",
+ "phu\000phu-Thai-TH",
+ "phv\000phv-Arab-AF",
+ "phw\000phw-Deva-NP",
+ "pi\000pi-Latn-GB",
+ "pi-Deva\000pi-Deva-IN",
+ "pi-IN\000pi-Deva-IN",
+ "pi-LK\000pi-Sinh-LK",
+ "pi-MM\000pi-Mymr-MM",
+ "pi-Mymr\000pi-Mymr-MM",
+ "pi-Sinh\000pi-Sinh-LK",
+ "pi-TH\000pi-Thai-TH",
+ "pi-Thai\000pi-Thai-TH",
+ "pia\000pia-Latn-MX",
+ "pib\000pib-Latn-PE",
+ "pic\000pic-Latn-GA",
+ "pid\000pid-Latn-VE",
+ "pif\000pif-Latn-FM",
+ "pig\000pig-Latn-PE",
+ "pih\000pih-Latn-NF",
+ "pij\000pij-Latn-CO",
+ "pil\000pil-Latn-BJ",
+ "pim\000pim-Latn-US",
+ "pin\000pin-Latn-PG",
+ "pio\000pio-Latn-CO",
+ "pip\000pip-Latn-NG",
+ "pir\000pir-Latn-BR",
+ "pis\000pis-Latn-SB",
+ "pit\000pit-Latn-AU",
+ "piu\000piu-Latn-AU",
+ "piv\000piv-Latn-SB",
+ "piw\000piw-Latn-TZ",
+ "pix\000pix-Latn-PG",
+ "piy\000piy-Latn-NG",
+ "piz\000piz-Latn-NC",
+ "pjt\000pjt-Latn-AU",
+ "pka\000pka-Brah-IN",
+ "pkb\000pkb-Latn-KE",
+ "pkg\000pkg-Latn-PG",
+ "pkh\000pkh-Latn-BD",
+ "pkn\000pkn-Latn-AU",
+ "pko\000pko-Latn-KE",
+ "pkp\000pkp-Latn-CK",
+ "pkr\000pkr-Mlym-IN",
+ "pku\000pku-Latn-ID",
+ "pl\000pl-Latn-PL",
+ "pla\000pla-Latn-PG",
+ "plb\000plb-Latn-VU",
+ "plc\000plc-Latn-PH",
+ "pld\000pld-Latn-GB",
+ "ple\000ple-Latn-ID",
+ "plg\000plg-Latn-AR",
+ "plh\000plh-Latn-ID",
+ "plk\000plk-Arab-PK",
+ "pll\000pll-Mymr-MM",
+ "pln\000pln-Latn-CO",
+ "plo\000plo-Latn-MX",
+ "plr\000plr-Latn-CI",
+ "pls\000pls-Latn-MX",
+ "plu\000plu-Latn-BR",
+ "plv\000plv-Latn-PH",
+ "plw\000plw-Latn-PH",
+ "plz\000plz-Latn-MY",
+ "pma\000pma-Latn-VU",
+ "pmb\000pmb-Latn-CD",
+ "pmd\000pmd-Latn-AU",
+ "pme\000pme-Latn-NC",
+ "pmf\000pmf-Latn-ID",
+ "pmh\000pmh-Brah-IN",
+ "pmi\000pmi-Latn-CN",
+ "pmj\000pmj-Latn-CN",
+ "pml\000pml-Latn-TN",
+ "pmm\000pmm-Latn-CM",
+ "pmn\000pmn-Latn-CM",
+ "pmo\000pmo-Latn-ID",
+ "pmq\000pmq-Latn-MX",
+ "pmr\000pmr-Latn-PG",
+ "pms\000pms-Latn-IT",
+ "pmt\000pmt-Latn-PF",
+ "pmw\000pmw-Latn-US",
+ "pmx\000pmx-Latn-IN",
+ "pmy\000pmy-Latn-ID",
+ "pmz\000pmz-Latn-MX",
+ "pna\000pna-Latn-MY",
+ "pnc\000pnc-Latn-ID",
+ "pnd\000pnd-Latn-AO",
+ "pne\000pne-Latn-MY",
+ "png\000png-Latn-NG",
+ "pnh\000pnh-Latn-CK",
+ "pni\000pni-Latn-ID",
+ "pnj\000pnj-Latn-AU",
+ "pnk\000pnk-Latn-BO",
+ "pnl\000pnl-Latn-BF",
+ "pnm\000pnm-Latn-MY",
+ "pnn\000pnn-Latn-PG",
+ "pno\000pno-Latn-PE",
+ "pnp\000pnp-Latn-ID",
+ "pnq\000pnq-Latn-BF",
+ "pnr\000pnr-Latn-PG",
+ "pns\000pns-Latn-ID",
+ "pnt\000pnt-Grek-GR",
+ "pnt-Cyrl\000pnt-Cyrl-RU",
+ "pnt-Latn\000pnt-Latn-TR",
+ "pnt-RU\000pnt-Cyrl-RU",
+ "pnt-TR\000pnt-Latn-TR",
+ "pnv\000pnv-Latn-AU",
+ "pnw\000pnw-Latn-AU",
+ "pny\000pny-Latn-CM",
+ "pnz\000pnz-Latn-CF",
+ "poc\000poc-Latn-GT",
+ "poe\000poe-Latn-MX",
+ "pof\000pof-Latn-CD",
+ "pog\000pog-Latn-BR",
+ "poh\000poh-Latn-GT",
+ "poi\000poi-Latn-MX",
+ "pok\000pok-Latn-BR",
+ "pom\000pom-Latn-US",
+ "pon\000pon-Latn-FM",
+ "poo\000poo-Latn-US",
+ "pop\000pop-Latn-NC",
+ "poq\000poq-Latn-MX",
+ "pos\000pos-Latn-MX",
+ "pot\000pot-Latn-US",
+ "pov\000pov-Latn-GW",
+ "pow\000pow-Latn-MX",
+ "poy\000poy-Latn-TZ",
+ "ppe\000ppe-Latn-PG",
+ "ppi\000ppi-Latn-MX",
+ "ppk\000ppk-Latn-ID",
+ "ppl\000ppl-Latn-SV",
+ "ppm\000ppm-Latn-ID",
+ "ppn\000ppn-Latn-PG",
+ "ppo\000ppo-Latn-PG",
+ "ppp\000ppp-Latn-CD",
+ "ppq\000ppq-Latn-PG",
+ "pps\000pps-Latn-MX",
+ "ppt\000ppt-Latn-PG",
+ "pqa\000pqa-Latn-NG",
+ "pqm\000pqm-Latn-CA",
+ "prc\000prc-Arab-AF",
+ "prd\000prd-Arab-IR",
+ "pre\000pre-Latn-ST",
+ "prf\000prf-Latn-PH",
+ "prg\000prg-Latn-PL",
+ "prh\000prh-Latn-PH",
+ "pri\000pri-Latn-NC",
+ "prk\000prk-Latn-MM",
+ "prm\000prm-Latn-PG",
+ "pro\000pro-Latn-FR",
+ "prq\000prq-Latn-PE",
+ "prr\000prr-Latn-BR",
+ "prt\000prt-Thai-TH",
+ "pru\000pru-Latn-ID",
+ "prw\000prw-Latn-PG",
+ "prx\000prx-Arab-IN",
+ "ps\000ps-Arab-AF",
+ "psa\000psa-Latn-ID",
+ "pse\000pse-Latn-ID",
+ "psh\000psh-Arab-AF",
+ "psi\000psi-Arab-AF",
+ "psm\000psm-Latn-BO",
+ "psn\000psn-Latn-ID",
+ "psq\000psq-Latn-PG",
+ "pss\000pss-Latn-PG",
+ "pst\000pst-Arab-PK",
+ "psu\000psu-Brah-IN",
+ "psw\000psw-Latn-VU",
+ "pt\000pt-Latn-BR",
+ "pta\000pta-Latn-PY",
+ "pth\000pth-Latn-BR",
+ "pti\000pti-Latn-AU",
+ "ptn\000ptn-Latn-ID",
+ "pto\000pto-Latn-BR",
+ "ptp\000ptp-Latn-PG",
+ "ptr\000ptr-Latn-VU",
+ "ptt\000ptt-Latn-ID",
+ "ptu\000ptu-Latn-ID",
+ "ptv\000ptv-Latn-VU",
+ "pua\000pua-Latn-MX",
+ "pub\000pub-Latn-IN",
+ "puc\000puc-Latn-ID",
+ "pud\000pud-Latn-ID",
+ "pue\000pue-Latn-AR",
+ "puf\000puf-Latn-ID",
+ "pug\000pug-Latn-BF",
+ "pui\000pui-Latn-CO",
+ "puj\000puj-Latn-ID",
+ "pum\000pum-Deva-NP",
+ "puo\000puo-Latn-VN",
+ "pup\000pup-Latn-PG",
+ "puq\000puq-Latn-BO",
+ "pur\000pur-Latn-BR",
+ "put\000put-Latn-ID",
+ "puu\000puu-Latn-GA",
+ "puw\000puw-Latn-FM",
+ "pux\000pux-Latn-PG",
+ "puy\000puy-Latn-US",
+ "pwa\000pwa-Latn-PG",
+ "pwb\000pwb-Latn-NG",
+ "pwg\000pwg-Latn-PG",
+ "pwm\000pwm-Latn-PH",
+ "pwn\000pwn-Latn-TW",
+ "pwo\000pwo-Mymr-MM",
+ "pwr\000pwr-Deva-IN",
+ "pww\000pww-Thai-TH",
+ "pxm\000pxm-Latn-MX",
+ "pye\000pye-Latn-CI",
+ "pym\000pym-Latn-NG",
+ "pyn\000pyn-Latn-BR",
+ "pyu\000pyu-Latn-TW",
+ "pyx\000pyx-Mymr-MM",
+ "pyy\000pyy-Latn-MM",
+ "pze\000pze-Latn-NG",
+ "pzh\000pzh-Latn-TW",
+ "pzn\000pzn-Latn-MM",
+ "qu\000qu-Latn-PE",
+ "qua\000qua-Latn-US",
+ "qub\000qub-Latn-PE",
+ "quc\000quc-Latn-GT",
+ "qud\000qud-Latn-EC",
+ "quf\000quf-Latn-PE",
+ "qug\000qug-Latn-EC",
+ "qui\000qui-Latn-US",
+ "quk\000quk-Latn-PE",
+ "qul\000qul-Latn-BO",
+ "qum\000qum-Latn-GT",
+ "qun\000qun-Latn-US",
+ "qup\000qup-Latn-PE",
+ "quq\000quq-Latn-ES",
+ "qur\000qur-Latn-PE",
+ "qus\000qus-Latn-AR",
+ "quv\000quv-Latn-GT",
+ "quw\000quw-Latn-EC",
+ "qux\000qux-Latn-PE",
+ "quy\000quy-Latn-PE",
+ "qva\000qva-Latn-PE",
+ "qvc\000qvc-Latn-PE",
+ "qve\000qve-Latn-PE",
+ "qvh\000qvh-Latn-PE",
+ "qvi\000qvi-Latn-EC",
+ "qvj\000qvj-Latn-EC",
+ "qvl\000qvl-Latn-PE",
+ "qvm\000qvm-Latn-PE",
+ "qvn\000qvn-Latn-PE",
+ "qvo\000qvo-Latn-PE",
+ "qvp\000qvp-Latn-PE",
+ "qvs\000qvs-Latn-PE",
+ "qvw\000qvw-Latn-PE",
+ "qvz\000qvz-Latn-EC",
+ "qwa\000qwa-Latn-PE",
+ "qwc\000qwc-Latn-PE",
+ "qwh\000qwh-Latn-PE",
+ "qwm\000qwm-Latn-HU",
+ "qws\000qws-Latn-PE",
+ "qwt\000qwt-Latn-US",
+ "qxa\000qxa-Latn-PE",
+ "qxc\000qxc-Latn-PE",
+ "qxh\000qxh-Latn-PE",
+ "qxl\000qxl-Latn-EC",
+ "qxn\000qxn-Latn-PE",
+ "qxo\000qxo-Latn-PE",
+ "qxp\000qxp-Latn-PE",
+ "qxq\000qxq-Arab-IR",
+ "qxr\000qxr-Latn-EC",
+ "qxt\000qxt-Latn-PE",
+ "qxu\000qxu-Latn-PE",
+ "qxw\000qxw-Latn-PE",
+ "qya\000qya-Latn-001",
+ "qyp\000qyp-Latn-US",
+ "raa\000raa-Deva-NP",
+ "rab\000rab-Deva-NP",
+ "rac\000rac-Latn-ID",
+ "rad\000rad-Latn-VN",
+ "raf\000raf-Deva-NP",
+ "rag\000rag-Latn-KE",
+ "rah\000rah-Beng-IN",
+ "rai\000rai-Latn-PG",
+ "raj\000raj-Deva-IN",
+ "rak\000rak-Latn-PG",
+ "ram\000ram-Latn-BR",
+ "ran\000ran-Latn-ID",
+ "rao\000rao-Latn-PG",
+ "rap\000rap-Latn-CL",
+ "rar\000rar-Latn-CK",
+ "rav\000rav-Deva-NP",
+ "raw\000raw-Latn-MM",
+ "rax\000rax-Latn-NG",
+ "ray\000ray-Latn-PF",
+ "raz\000raz-Latn-ID",
+ "rbb\000rbb-Mymr-MM",
+ "rbk\000rbk-Latn-PH",
+ "rbl\000rbl-Latn-PH",
+ "rbp\000rbp-Latn-AU",
+ "rcf\000rcf-Latn-RE",
+ "rdb\000rdb-Arab-IR",
+ "rea\000rea-Latn-PG",
+ "reb\000reb-Latn-ID",
+ "ree\000ree-Latn-MY",
+ "reg\000reg-Latn-TZ",
+ "rei\000rei-Orya-IN",
+ "rej\000rej-Latn-ID",
+ "rel\000rel-Latn-KE",
+ "rem\000rem-Latn-PE",
+ "ren\000ren-Latn-VN",
+ "res\000res-Latn-NG",
+ "ret\000ret-Latn-ID",
+ "rey\000rey-Latn-BO",
+ "rga\000rga-Latn-VU",
+ "rgn\000rgn-Latn-IT",
+ "rgr\000rgr-Latn-PE",
+ "rgs\000rgs-Latn-VN",
+ "rgu\000rgu-Latn-ID",
+ "rhg\000rhg-Rohg-MM",
+ "rhp\000rhp-Latn-PG",
+ "ria\000ria-Latn-IN",
+ "rif\000rif-Latn-MA",
+ "ril\000ril-Latn-MM",
+ "rim\000rim-Latn-TZ",
+ "rin\000rin-Latn-NG",
+ "rir\000rir-Latn-ID",
+ "rit\000rit-Latn-AU",
+ "riu\000riu-Latn-ID",
+ "rjg\000rjg-Latn-ID",
+ "rji\000rji-Deva-NP",
+ "rjs\000rjs-Deva-NP",
+ "rka\000rka-Khmr-KH",
+ "rkb\000rkb-Latn-BR",
+ "rkh\000rkh-Latn-CK",
+ "rki\000rki-Mymr-MM",
+ "rkm\000rkm-Latn-BF",
+ "rkt\000rkt-Beng-BD",
+ "rkw\000rkw-Latn-AU",
+ "rm\000rm-Latn-CH",
+ "rma\000rma-Latn-NI",
+ "rmb\000rmb-Latn-AU",
+ "rmc\000rmc-Latn-SK",
+ "rmd\000rmd-Latn-DK",
+ "rme\000rme-Latn-GB",
+ "rmf\000rmf-Latn-FI",
+ "rmg\000rmg-Latn-NO",
+ "rmh\000rmh-Latn-ID",
+ "rmi\000rmi-Armn-AM",
+ "rmk\000rmk-Latn-PG",
+ "rml\000rml-Latn-PL",
+ "rmm\000rmm-Latn-ID",
+ "rmn\000rmn-Latn-RS",
+ "rmo\000rmo-Latn-CH",
+ "rmp\000rmp-Latn-PG",
+ "rmq\000rmq-Latn-ES",
+ "rmt\000rmt-Arab-IR",
+ "rmu\000rmu-Latn-SE",
+ "rmw\000rmw-Latn-GB",
+ "rmx\000rmx-Latn-VN",
+ "rmz\000rmz-Mymr-IN",
+ "rn\000rn-Latn-BI",
+ "rnd\000rnd-Latn-CD",
+ "rng\000rng-Latn-MZ",
+ "rnl\000rnl-Latn-IN",
+ "rnn\000rnn-Latn-ID",
+ "rnr\000rnr-Latn-AU",
+ "rnw\000rnw-Latn-TZ",
+ "ro\000ro-Latn-RO",
+ "rob\000rob-Latn-ID",
+ "roc\000roc-Latn-VN",
+ "rod\000rod-Latn-NG",
+ "roe\000roe-Latn-PG",
+ "rof\000rof-Latn-TZ",
+ "rog\000rog-Latn-VN",
+ "rol\000rol-Latn-PH",
+ "rom\000rom-Latn-RO",
+ "roo\000roo-Latn-PG",
+ "rop\000rop-Latn-AU",
+ "ror\000ror-Latn-ID",
+ "rou\000rou-Latn-TD",
+ "row\000row-Latn-ID",
+ "rpn\000rpn-Latn-VU",
+ "rpt\000rpt-Latn-PG",
+ "rri\000rri-Latn-SB",
+ "rrm\000rrm-Latn-NZ",
+ "rro\000rro-Latn-PG",
+ "rrt\000rrt-Latn-AU",
+ "rsk\000rsk-Cyrl-RS",
+ "rsw\000rsw-Latn-NG",
+ "rtc\000rtc-Latn-MM",
+ "rth\000rth-Latn-ID",
+ "rtm\000rtm-Latn-FJ",
+ "rtw\000rtw-Deva-IN",
+ "ru\000ru-Cyrl-RU",
+ "rub\000rub-Latn-UG",
+ "ruc\000ruc-Latn-UG",
+ "rue\000rue-Cyrl-UA",
+ "ruf\000ruf-Latn-TZ",
+ "rug\000rug-Latn-SB",
+ "rui\000rui-Latn-TZ",
+ "ruk\000ruk-Latn-NG",
+ "ruo\000ruo-Latn-HR",
+ "rup\000rup-Latn-RO",
+ "ruq\000ruq-Latn-GR",
+ "rut\000rut-Cyrl-RU",
+ "ruu\000ruu-Latn-MY",
+ "ruy\000ruy-Latn-NG",
+ "ruz\000ruz-Latn-NG",
+ "rw\000rw-Latn-RW",
+ "rwa\000rwa-Latn-PG",
+ "rwk\000rwk-Latn-TZ",
+ "rwl\000rwl-Latn-TZ",
+ "rwm\000rwm-Latn-UG",
+ "rwo\000rwo-Latn-PG",
+ "rwr\000rwr-Deva-IN",
+ "rxd\000rxd-Latn-AU",
+ "rxw\000rxw-Latn-AU",
+ "ryu\000ryu-Kana-JP",
+ "sa\000sa-Deva-IN",
+ "saa\000saa-Latn-TD",
+ "sab\000sab-Latn-PA",
+ "sac\000sac-Latn-US",
+ "sad\000sad-Latn-TZ",
+ "sae\000sae-Latn-BR",
+ "saf\000saf-Latn-GH",
+ "sah\000sah-Cyrl-RU",
+ "saj\000saj-Latn-ID",
+ "sak\000sak-Latn-GA",
+ "sam\000sam-Samr-PS",
+ "sao\000sao-Latn-ID",
+ "saq\000saq-Latn-KE",
+ "sar\000sar-Latn-BO",
+ "sas\000sas-Latn-ID",
+ "sat\000sat-Olck-IN",
+ "sau\000sau-Latn-ID",
+ "sav\000sav-Latn-SN",
+ "saw\000saw-Latn-ID",
+ "sax\000sax-Latn-VU",
+ "say\000say-Latn-NG",
+ "saz\000saz-Saur-IN",
+ "sba\000sba-Latn-TD",
+ "sbb\000sbb-Latn-SB",
+ "sbc\000sbc-Latn-PG",
+ "sbd\000sbd-Latn-BF",
+ "sbe\000sbe-Latn-PG",
+ "sbg\000sbg-Latn-ID",
+ "sbh\000sbh-Latn-PG",
+ "sbi\000sbi-Latn-PG",
+ "sbj\000sbj-Latn-TD",
+ "sbk\000sbk-Latn-TZ",
+ "sbl\000sbl-Latn-PH",
+ "sbm\000sbm-Latn-TZ",
+ "sbn\000sbn-Arab-PK",
+ "sbo\000sbo-Latn-MY",
+ "sbp\000sbp-Latn-TZ",
+ "sbq\000sbq-Latn-PG",
+ "sbr\000sbr-Latn-ID",
+ "sbs\000sbs-Latn-NA",
+ "sbt\000sbt-Latn-ID",
+ "sbu\000sbu-Tibt-IN",
+ "sbv\000sbv-Latn-IT",
+ "sbw\000sbw-Latn-GA",
+ "sbx\000sbx-Latn-ID",
+ "sby\000sby-Latn-ZM",
+ "sbz\000sbz-Latn-CF",
+ "sc\000sc-Latn-IT",
+ "scb\000scb-Latn-VN",
+ "sce\000sce-Latn-CN",
+ "scf\000scf-Latn-PA",
+ "scg\000scg-Latn-ID",
+ "sch\000sch-Latn-IN",
+ "sci\000sci-Latn-LK",
+ "sck\000sck-Deva-IN",
+ "scl\000scl-Arab-PK",
+ "scn\000scn-Latn-IT",
+ "sco\000sco-Latn-GB",
+ "scp\000scp-Deva-NP",
+ "scs\000scs-Latn-CA",
+ "sct\000sct-Laoo-LA",
+ "scu\000scu-Takr-IN",
+ "scv\000scv-Latn-NG",
+ "scw\000scw-Latn-NG",
+ "scx\000scx-Grek-IT",
+ "sd\000sd-Arab-PK",
+ "sd-Deva\000sd-Deva-IN",
+ "sd-IN\000sd-Deva-IN",
+ "sd-Khoj\000sd-Khoj-IN",
+ "sd-Sind\000sd-Sind-IN",
+ "sda\000sda-Latn-ID",
+ "sdb\000sdb-Arab-IQ",
+ "sdc\000sdc-Latn-IT",
+ "sde\000sde-Latn-NG",
+ "sdf\000sdf-Arab-IQ",
+ "sdg\000sdg-Arab-AF",
+ "sdh\000sdh-Arab-IR",
+ "sdj\000sdj-Latn-CG",
+ "sdk\000sdk-Latn-PG",
+ "sdn\000sdn-Latn-IT",
+ "sdo\000sdo-Latn-MY",
+ "sdq\000sdq-Latn-ID",
+ "sdr\000sdr-Beng-BD",
+ "sds\000sds-Arab-TN",
+ "sdu\000sdu-Latn-ID",
+ "sdx\000sdx-Latn-MY",
+ "se\000se-Latn-NO",
+ "sea\000sea-Latn-MY",
+ "seb\000seb-Latn-CI",
+ "sec\000sec-Latn-CA",
+ "sed\000sed-Latn-VN",
+ "see\000see-Latn-US",
+ "sef\000sef-Latn-CI",
+ "seg\000seg-Latn-TZ",
+ "seh\000seh-Latn-MZ",
+ "sei\000sei-Latn-MX",
+ "sej\000sej-Latn-PG",
+ "sek\000sek-Latn-CA",
+ "sel\000sel-Cyrl-RU",
+ "sen\000sen-Latn-BF",
+ "seo\000seo-Latn-PG",
+ "sep\000sep-Latn-BF",
+ "seq\000seq-Latn-BF",
+ "ser\000ser-Latn-US",
+ "ses\000ses-Latn-ML",
+ "set\000set-Latn-ID",
+ "seu\000seu-Latn-ID",
+ "sev\000sev-Latn-CI",
+ "sew\000sew-Latn-PG",
+ "sey\000sey-Latn-EC",
+ "sez\000sez-Latn-MM",
+ "sfe\000sfe-Latn-PH",
+ "sfm\000sfm-Plrd-CN",
+ "sfw\000sfw-Latn-GH",
+ "sg\000sg-Latn-CF",
+ "sga\000sga-Latn-IE",
+ "sgb\000sgb-Latn-PH",
+ "sgc\000sgc-Latn-KE",
+ "sgd\000sgd-Latn-PH",
+ "sge\000sge-Latn-ID",
+ "sgh\000sgh-Cyrl-TJ",
+ "sgi\000sgi-Latn-CM",
+ "sgj\000sgj-Deva-IN",
+ "sgm\000sgm-Latn-KE",
+ "sgp\000sgp-Latn-IN",
+ "sgr\000sgr-Arab-IR",
+ "sgs\000sgs-Latn-LT",
+ "sgt\000sgt-Tibt-BT",
+ "sgu\000sgu-Latn-ID",
+ "sgw\000sgw-Ethi-ET",
+ "sgy\000sgy-Arab-AF",
+ "sgz\000sgz-Latn-PG",
+ "sha\000sha-Latn-NG",
+ "shb\000shb-Latn-BR",
+ "shc\000shc-Latn-CD",
+ "shd\000shd-Arab-PK",
+ "she\000she-Latn-ET",
+ "shg\000shg-Latn-BW",
+ "shh\000shh-Latn-US",
+ "shi\000shi-Tfng-MA",
+ "shj\000shj-Latn-SD",
+ "shk\000shk-Latn-SS",
+ "shm\000shm-Arab-IR",
+ "shn\000shn-Mymr-MM",
+ "sho\000sho-Latn-NG",
+ "shp\000shp-Latn-PE",
+ "shq\000shq-Latn-ZM",
+ "shr\000shr-Latn-CD",
+ "shs\000shs-Latn-CA",
+ "sht\000sht-Latn-US",
+ "shu\000shu-Arab-TD",
+ "shv\000shv-Arab-OM",
+ "shw\000shw-Latn-SD",
+ "shy\000shy-Latn-DZ",
+ "shz\000shz-Latn-ML",
+ "si\000si-Sinh-LK",
+ "sia\000sia-Cyrl-RU",
+ "sib\000sib-Latn-MY",
+ "sid\000sid-Latn-ET",
+ "sie\000sie-Latn-ZM",
+ "sif\000sif-Latn-BF",
+ "sig\000sig-Latn-GH",
+ "sih\000sih-Latn-NC",
+ "sii\000sii-Latn-IN",
+ "sij\000sij-Latn-PG",
+ "sik\000sik-Latn-BR",
+ "sil\000sil-Latn-GH",
+ "sim\000sim-Latn-PG",
+ "sip\000sip-Tibt-IN",
+ "siq\000siq-Latn-PG",
+ "sir\000sir-Latn-NG",
+ "sis\000sis-Latn-US",
+ "siu\000siu-Latn-PG",
+ "siv\000siv-Latn-PG",
+ "siw\000siw-Latn-PG",
+ "six\000six-Latn-PG",
+ "siy\000siy-Arab-IR",
+ "siz\000siz-Arab-EG",
+ "sja\000sja-Latn-CO",
+ "sjb\000sjb-Latn-ID",
+ "sjc\000sjc-Hans-CN",
+ "sjd\000sjd-Cyrl-RU",
+ "sje\000sje-Latn-SE",
+ "sjg\000sjg-Latn-TD",
+ "sjl\000sjl-Latn-IN",
+ "sjm\000sjm-Latn-PH",
+ "sjp\000sjp-Deva-IN",
+ "sjr\000sjr-Latn-PG",
+ "sjt\000sjt-Cyrl-RU",
+ "sju\000sju-Latn-SE",
+ "sjw\000sjw-Latn-US",
+ "sk\000sk-Latn-SK",
+ "ska\000ska-Latn-US",
+ "skb\000skb-Thai-TH",
+ "skc\000skc-Latn-PG",
+ "skd\000skd-Latn-US",
+ "ske\000ske-Latn-VU",
+ "skf\000skf-Latn-BR",
+ "skg\000skg-Latn-MG",
+ "skh\000skh-Latn-ID",
+ "ski\000ski-Latn-ID",
+ "skj\000skj-Deva-NP",
+ "skm\000skm-Latn-PG",
+ "skn\000skn-Latn-PH",
+ "sko\000sko-Latn-ID",
+ "skp\000skp-Latn-MY",
+ "skq\000skq-Latn-BF",
+ "skr\000skr-Arab-PK",
+ "sks\000sks-Latn-PG",
+ "skt\000skt-Latn-CD",
+ "sku\000sku-Latn-VU",
+ "skv\000skv-Latn-ID",
+ "skw\000skw-Latn-GY",
+ "skx\000skx-Latn-ID",
+ "sky\000sky-Latn-SB",
+ "skz\000skz-Latn-ID",
+ "sl\000sl-Latn-SI",
+ "slc\000slc-Latn-CO",
+ "sld\000sld-Latn-BF",
+ "slg\000slg-Latn-ID",
+ "slh\000slh-Latn-US",
+ "sli\000sli-Latn-PL",
+ "slj\000slj-Latn-BR",
+ "sll\000sll-Latn-PG",
+ "slm\000slm-Latn-PH",
+ "sln\000sln-Latn-US",
+ "slp\000slp-Latn-ID",
+ "slr\000slr-Latn-CN",
+ "slu\000slu-Latn-ID",
+ "slw\000slw-Latn-PG",
+ "slx\000slx-Latn-CD",
+ "sly\000sly-Latn-ID",
+ "slz\000slz-Latn-ID",
+ "sm\000sm-Latn-WS",
+ "sma\000sma-Latn-SE",
+ "smb\000smb-Latn-PG",
+ "smc\000smc-Latn-PG",
+ "smf\000smf-Latn-PG",
+ "smg\000smg-Latn-PG",
+ "smh\000smh-Yiii-CN",
+ "smj\000smj-Latn-SE",
+ "smk\000smk-Latn-PH",
+ "sml\000sml-Latn-PH",
+ "smn\000smn-Latn-FI",
+ "smp\000smp-Samr-IL",
+ "smq\000smq-Latn-PG",
+ "smr\000smr-Latn-ID",
+ "sms\000sms-Latn-FI",
+ "smt\000smt-Latn-IN",
+ "smu\000smu-Khmr-KH",
+ "smw\000smw-Latn-ID",
+ "smx\000smx-Latn-CD",
+ "smy\000smy-Arab-IR",
+ "smz\000smz-Latn-PG",
+ "sn\000sn-Latn-ZW",
+ "snc\000snc-Latn-PG",
+ "sne\000sne-Latn-MY",
+ "snf\000snf-Latn-SN",
+ "sng\000sng-Latn-CD",
+ "sni\000sni-Latn-PE",
+ "snj\000snj-Latn-CF",
+ "snk\000snk-Latn-ML",
+ "snl\000snl-Latn-PH",
+ "snm\000snm-Latn-UG",
+ "snn\000snn-Latn-CO",
+ "sno\000sno-Latn-US",
+ "snp\000snp-Latn-PG",
+ "snq\000snq-Latn-GA",
+ "snr\000snr-Latn-PG",
+ "sns\000sns-Latn-VU",
+ "snu\000snu-Latn-ID",
+ "snv\000snv-Latn-MY",
+ "snw\000snw-Latn-GH",
+ "snx\000snx-Latn-PG",
+ "sny\000sny-Latn-PG",
+ "snz\000snz-Latn-PG",
+ "so\000so-Latn-SO",
+ "soa\000soa-Tavt-TH",
+ "sob\000sob-Latn-ID",
+ "soc\000soc-Latn-CD",
+ "sod\000sod-Latn-CD",
+ "soe\000soe-Latn-CD",
+ "sog\000sog-Sogd-UZ",
+ "soi\000soi-Deva-NP",
+ "sok\000sok-Latn-TD",
+ "sol\000sol-Latn-PG",
+ "soo\000soo-Latn-CD",
+ "sop\000sop-Latn-CD",
+ "soq\000soq-Latn-PG",
+ "sor\000sor-Latn-TD",
+ "sos\000sos-Latn-BF",
+ "sou\000sou-Thai-TH",
+ "sov\000sov-Latn-PW",
+ "sow\000sow-Latn-PG",
+ "sox\000sox-Latn-CM",
+ "soy\000soy-Latn-BJ",
+ "soz\000soz-Latn-TZ",
+ "spb\000spb-Latn-ID",
+ "spc\000spc-Latn-VE",
+ "spd\000spd-Latn-PG",
+ "spe\000spe-Latn-PG",
+ "spg\000spg-Latn-MY",
+ "spi\000spi-Latn-ID",
+ "spk\000spk-Latn-PG",
+ "spl\000spl-Latn-PG",
+ "spm\000spm-Latn-PG",
+ "spn\000spn-Latn-PY",
+ "spo\000spo-Latn-US",
+ "spp\000spp-Latn-ML",
+ "spq\000spq-Latn-PE",
+ "spr\000spr-Latn-ID",
+ "sps\000sps-Latn-PG",
+ "spt\000spt-Tibt-IN",
+ "spv\000spv-Orya-IN",
+ "sq\000sq-Latn-AL",
+ "sqa\000sqa-Latn-NG",
+ "sqh\000sqh-Latn-NG",
+ "sqm\000sqm-Latn-CF",
+ "sqo\000sqo-Arab-IR",
+ "sqq\000sqq-Laoo-LA",
+ "sqt\000sqt-Arab-YE",
+ "squ\000squ-Latn-CA",
+ "sr\000sr-Cyrl-RS",
+ "sr-ME\000sr-Latn-ME",
+ "sr-RO\000sr-Latn-RO",
+ "sr-TR\000sr-Latn-TR",
+ "sra\000sra-Latn-PG",
+ "srb\000srb-Sora-IN",
+ "sre\000sre-Latn-ID",
+ "srf\000srf-Latn-PG",
+ "srg\000srg-Latn-PH",
+ "srh\000srh-Arab-CN",
+ "sri\000sri-Latn-CO",
+ "srk\000srk-Latn-MY",
+ "srl\000srl-Latn-ID",
+ "srm\000srm-Latn-SR",
+ "srn\000srn-Latn-SR",
+ "sro\000sro-Latn-IT",
+ "srq\000srq-Latn-BO",
+ "srr\000srr-Latn-SN",
+ "srs\000srs-Latn-CA",
+ "srt\000srt-Latn-ID",
+ "sru\000sru-Latn-BR",
+ "srv\000srv-Latn-PH",
+ "srw\000srw-Latn-ID",
+ "srx\000srx-Deva-IN",
+ "sry\000sry-Latn-PG",
+ "srz\000srz-Arab-IR",
+ "ss\000ss-Latn-ZA",
+ "ssb\000ssb-Latn-PH",
+ "ssc\000ssc-Latn-TZ",
+ "ssd\000ssd-Latn-PG",
+ "sse\000sse-Latn-PH",
+ "ssf\000ssf-Latn-TW",
+ "ssg\000ssg-Latn-PG",
+ "ssh\000ssh-Arab-AE",
+ "ssj\000ssj-Latn-PG",
+ "ssl\000ssl-Latn-GH",
+ "ssm\000ssm-Latn-MY",
+ "ssn\000ssn-Latn-KE",
+ "sso\000sso-Latn-PG",
+ "ssq\000ssq-Latn-ID",
+ "sss\000sss-Laoo-LA",
+ "sst\000sst-Latn-PG",
+ "ssu\000ssu-Latn-PG",
+ "ssv\000ssv-Latn-VU",
+ "ssx\000ssx-Latn-PG",
+ "ssy\000ssy-Latn-ER",
+ "ssz\000ssz-Latn-PG",
+ "st\000st-Latn-ZA",
+ "sta\000sta-Latn-ZM",
+ "stb\000stb-Latn-PH",
+ "ste\000ste-Latn-ID",
+ "stf\000stf-Latn-PG",
+ "stg\000stg-Latn-VN",
+ "sth\000sth-Latn-IE",
+ "sti\000sti-Latn-VN",
+ "stj\000stj-Latn-BF",
+ "stk\000stk-Latn-PG",
+ "stl\000stl-Latn-NL",
+ "stm\000stm-Latn-PG",
+ "stn\000stn-Latn-SB",
+ "sto\000sto-Latn-CA",
+ "stp\000stp-Latn-MX",
+ "stq\000stq-Latn-DE",
+ "str\000str-Latn-CA",
+ "sts\000sts-Arab-AF",
+ "stt\000stt-Latn-VN",
+ "stu\000stu-Lana-MM",
+ "stu-CN\000stu-Tale-CN",
+ "stu-Tale\000stu-Tale-CN",
+ "stv\000stv-Ethi-ET",
+ "stw\000stw-Latn-FM",
+ "sty\000sty-Cyrl-RU",
+ "su\000su-Latn-ID",
+ "sua\000sua-Latn-PG",
+ "sub\000sub-Latn-CD",
+ "suc\000suc-Latn-PH",
+ "sue\000sue-Latn-PG",
+ "sug\000sug-Latn-PG",
+ "sui\000sui-Latn-PG",
+ "suj\000suj-Latn-TZ",
+ "suk\000suk-Latn-TZ",
+ "suo\000suo-Latn-PG",
+ "suq\000suq-Latn-ET",
+ "sur\000sur-Latn-NG",
+ "sus\000sus-Latn-GN",
+ "sut\000sut-Latn-NI",
+ "suv\000suv-Latn-IN",
+ "suw\000suw-Latn-TZ",
+ "suy\000suy-Latn-BR",
+ "suz\000suz-Deva-NP",
+ "sv\000sv-Latn-SE",
+ "sva\000sva-Geor-GE",
+ "svb\000svb-Latn-PG",
+ "svc\000svc-Latn-VC",
+ "sve\000sve-Latn-ID",
+ "svm\000svm-Latn-IT",
+ "svs\000svs-Latn-SB",
+ "sw\000sw-Latn-TZ",
+ "swb\000swb-Arab-YT",
+ "swf\000swf-Latn-CD",
+ "swg\000swg-Latn-DE",
+ "swi\000swi-Hani-CN",
+ "swj\000swj-Latn-GA",
+ "swk\000swk-Latn-MW",
+ "swm\000swm-Latn-PG",
+ "swo\000swo-Latn-BR",
+ "swp\000swp-Latn-PG",
+ "swq\000swq-Latn-CM",
+ "swr\000swr-Latn-ID",
+ "sws\000sws-Latn-ID",
+ "swt\000swt-Latn-ID",
+ "swu\000swu-Latn-ID",
+ "swv\000swv-Deva-IN",
+ "sww\000sww-Latn-VU",
+ "swx\000swx-Latn-BR",
+ "swy\000swy-Latn-TD",
+ "sxb\000sxb-Latn-KE",
+ "sxe\000sxe-Latn-GA",
+ "sxn\000sxn-Latn-ID",
+ "sxr\000sxr-Latn-TW",
+ "sxs\000sxs-Latn-NG",
+ "sxu\000sxu-Runr-DE",
+ "sxw\000sxw-Latn-BJ",
+ "sya\000sya-Latn-ID",
+ "syb\000syb-Latn-PH",
+ "syc\000syc-Syrc-TR",
+ "syi\000syi-Latn-GA",
+ "syk\000syk-Latn-NG",
+ "syl\000syl-Beng-BD",
+ "sym\000sym-Latn-BF",
+ "syn\000syn-Syrc-IR",
+ "syo\000syo-Latn-KH",
+ "syr\000syr-Syrc-IQ",
+ "sys\000sys-Latn-TD",
+ "syw\000syw-Deva-NP",
+ "syx\000syx-Latn-GA",
+ "sza\000sza-Latn-MY",
+ "szb\000szb-Latn-ID",
+ "szc\000szc-Latn-MY",
+ "szg\000szg-Latn-CD",
+ "szl\000szl-Latn-PL",
+ "szn\000szn-Latn-ID",
+ "szp\000szp-Latn-ID",
+ "szv\000szv-Latn-CM",
+ "szw\000szw-Latn-ID",
+ "szy\000szy-Latn-TW",
+ "ta\000ta-Taml-IN",
+ "taa\000taa-Latn-US",
+ "tab\000tab-Cyrl-RU",
+ "tac\000tac-Latn-MX",
+ "tad\000tad-Latn-ID",
+ "tae\000tae-Latn-BR",
+ "taf\000taf-Latn-BR",
+ "tag\000tag-Latn-SD",
+ "taj\000taj-Deva-NP",
+ "tak\000tak-Latn-NG",
+ "tal\000tal-Latn-NG",
+ "tan\000tan-Latn-NG",
+ "tao\000tao-Latn-TW",
+ "tap\000tap-Latn-CD",
+ "taq\000taq-Latn-ML",
+ "tar\000tar-Latn-MX",
+ "tas\000tas-Latn-VN",
+ "tau\000tau-Latn-US",
+ "tav\000tav-Latn-CO",
+ "taw\000taw-Latn-PG",
+ "tax\000tax-Latn-TD",
+ "tay\000tay-Latn-TW",
+ "taz\000taz-Latn-SD",
+ "tba\000tba-Latn-BR",
+ "tbc\000tbc-Latn-PG",
+ "tbd\000tbd-Latn-PG",
+ "tbe\000tbe-Latn-SB",
+ "tbf\000tbf-Latn-PG",
+ "tbg\000tbg-Latn-PG",
+ "tbh\000tbh-Latn-AU",
+ "tbi\000tbi-Latn-SD",
+ "tbj\000tbj-Latn-PG",
+ "tbk\000tbk-Tagb-PH",
+ "tbl\000tbl-Latn-PH",
+ "tbm\000tbm-Latn-CD",
+ "tbn\000tbn-Latn-CO",
+ "tbo\000tbo-Latn-PG",
+ "tbp\000tbp-Latn-ID",
+ "tbs\000tbs-Latn-PG",
+ "tbt\000tbt-Latn-CD",
+ "tbu\000tbu-Latn-MX",
+ "tbv\000tbv-Latn-PG",
+ "tbw\000tbw-Latn-PH",
+ "tbx\000tbx-Latn-PG",
+ "tby\000tby-Latn-ID",
+ "tbz\000tbz-Latn-BJ",
+ "tca\000tca-Latn-BR",
+ "tcb\000tcb-Latn-US",
+ "tcc\000tcc-Latn-TZ",
+ "tcd\000tcd-Latn-GH",
+ "tce\000tce-Latn-CA",
+ "tcf\000tcf-Latn-MX",
+ "tcg\000tcg-Latn-ID",
+ "tch\000tch-Latn-TC",
+ "tci\000tci-Latn-PG",
+ "tck\000tck-Latn-GA",
+ "tcm\000tcm-Latn-ID",
+ "tcn\000tcn-Deva-NP",
+ "tco\000tco-Mymr-MM",
+ "tcp\000tcp-Latn-MM",
+ "tcq\000tcq-Latn-ID",
+ "tcs\000tcs-Latn-AU",
+ "tcu\000tcu-Latn-MX",
+ "tcw\000tcw-Latn-MX",
+ "tcx\000tcx-Taml-IN",
+ "tcy\000tcy-Knda-IN",
+ "tcz\000tcz-Latn-IN",
+ "tda\000tda-Tfng-NE",
+ "tdb\000tdb-Deva-IN",
+ "tdc\000tdc-Latn-CO",
+ "tdd\000tdd-Tale-CN",
+ "tde\000tde-Latn-ML",
+ "tdg\000tdg-Deva-NP",
+ "tdh\000tdh-Deva-NP",
+ "tdi\000tdi-Latn-ID",
+ "tdj\000tdj-Latn-ID",
+ "tdk\000tdk-Latn-NG",
+ "tdl\000tdl-Latn-NG",
+ "tdm\000tdm-Latn-GY",
+ "tdn\000tdn-Latn-ID",
+ "tdo\000tdo-Latn-NG",
+ "tdq\000tdq-Latn-NG",
+ "tdr\000tdr-Latn-VN",
+ "tds\000tds-Latn-ID",
+ "tdt\000tdt-Latn-TL",
+ "tdv\000tdv-Latn-NG",
+ "tdx\000tdx-Latn-MG",
+ "tdy\000tdy-Latn-PH",
+ "te\000te-Telu-IN",
+ "tea\000tea-Latn-MY",
+ "teb\000teb-Latn-EC",
+ "tec\000tec-Latn-KE",
+ "ted\000ted-Latn-CI",
+ "tee\000tee-Latn-MX",
+ "teg\000teg-Latn-GA",
+ "teh\000teh-Latn-AR",
+ "tei\000tei-Latn-PG",
+ "tek\000tek-Latn-CD",
+ "tem\000tem-Latn-SL",
+ "ten\000ten-Latn-CO",
+ "teo\000teo-Latn-UG",
+ "tep\000tep-Latn-MX",
+ "teq\000teq-Latn-SD",
+ "ter\000ter-Latn-BR",
+ "tes\000tes-Java-ID",
+ "tet\000tet-Latn-TL",
+ "teu\000teu-Latn-UG",
+ "tev\000tev-Latn-ID",
+ "tew\000tew-Latn-US",
+ "tex\000tex-Latn-SS",
+ "tey\000tey-Latn-SD",
+ "tez\000tez-Latn-NE",
+ "tfi\000tfi-Latn-BJ",
+ "tfn\000tfn-Latn-US",
+ "tfo\000tfo-Latn-ID",
+ "tfr\000tfr-Latn-PA",
+ "tft\000tft-Latn-ID",
+ "tg\000tg-Cyrl-TJ",
+ "tg-Arab\000tg-Arab-PK",
+ "tg-PK\000tg-Arab-PK",
+ "tga\000tga-Latn-KE",
+ "tgb\000tgb-Latn-MY",
+ "tgc\000tgc-Latn-PG",
+ "tgd\000tgd-Latn-NG",
+ "tge\000tge-Deva-NP",
+ "tgf\000tgf-Tibt-BT",
+ "tgh\000tgh-Latn-TT",
+ "tgi\000tgi-Latn-PG",
+ "tgj\000tgj-Latn-IN",
+ "tgn\000tgn-Latn-PH",
+ "tgo\000tgo-Latn-PG",
+ "tgp\000tgp-Latn-VU",
+ "tgq\000tgq-Latn-MY",
+ "tgs\000tgs-Latn-VU",
+ "tgt\000tgt-Latn-PH",
+ "tgu\000tgu-Latn-PG",
+ "tgv\000tgv-Latn-BR",
+ "tgw\000tgw-Latn-CI",
+ "tgx\000tgx-Latn-CA",
+ "tgy\000tgy-Latn-SS",
+ "tgz\000tgz-Latn-AU",
+ "th\000th-Thai-TH",
+ "thd\000thd-Latn-AU",
+ "the\000the-Deva-NP",
+ "thf\000thf-Deva-NP",
+ "thh\000thh-Latn-MX",
+ "thi\000thi-Tale-LA",
+ "thk\000thk-Latn-KE",
+ "thl\000thl-Deva-NP",
+ "thm\000thm-Thai-TH",
+ "thp\000thp-Latn-CA",
+ "thq\000thq-Deva-NP",
+ "thr\000thr-Deva-NP",
+ "ths\000ths-Deva-NP",
+ "tht\000tht-Latn-CA",
+ "thu\000thu-Latn-SS",
+ "thv\000thv-Latn-DZ",
+ "thy\000thy-Latn-NG",
+ "thz\000thz-Latn-NE",
+ "ti\000ti-Ethi-ET",
+ "tic\000tic-Latn-SD",
+ "tif\000tif-Latn-PG",
+ "tig\000tig-Ethi-ER",
+ "tih\000tih-Latn-MY",
+ "tii\000tii-Latn-CD",
+ "tij\000tij-Deva-NP",
+ "tik\000tik-Latn-CM",
+ "til\000til-Latn-US",
+ "tim\000tim-Latn-PG",
+ "tin\000tin-Cyrl-RU",
+ "tio\000tio-Latn-PG",
+ "tip\000tip-Latn-ID",
+ "tiq\000tiq-Latn-BF",
+ "tis\000tis-Latn-PH",
+ "tit\000tit-Latn-CO",
+ "tiu\000tiu-Latn-PH",
+ "tiv\000tiv-Latn-NG",
+ "tiw\000tiw-Latn-AU",
+ "tix\000tix-Latn-US",
+ "tiy\000tiy-Latn-PH",
+ "tja\000tja-Latn-LR",
+ "tjg\000tjg-Latn-ID",
+ "tji\000tji-Latn-CN",
+ "tjj\000tjj-Latn-AU",
+ "tjl\000tjl-Mymr-MM",
+ "tjn\000tjn-Latn-CI",
+ "tjo\000tjo-Arab-DZ",
+ "tjp\000tjp-Latn-AU",
+ "tjs\000tjs-Latn-CN",
+ "tju\000tju-Latn-AU",
+ "tjw\000tjw-Latn-AU",
+ "tk\000tk-Latn-TM",
+ "tka\000tka-Latn-BR",
+ "tkb\000tkb-Deva-IN",
+ "tkd\000tkd-Latn-TL",
+ "tke\000tke-Latn-MZ",
+ "tkf\000tkf-Latn-BR",
+ "tkg\000tkg-Latn-MG",
+ "tkl\000tkl-Latn-TK",
+ "tkp\000tkp-Latn-SB",
+ "tkq\000tkq-Latn-NG",
+ "tkr\000tkr-Latn-AZ",
+ "tks\000tks-Arab-IR",
+ "tkt\000tkt-Deva-NP",
+ "tku\000tku-Latn-MX",
+ "tkv\000tkv-Latn-PG",
+ "tkw\000tkw-Latn-SB",
+ "tkx\000tkx-Latn-ID",
+ "tkz\000tkz-Latn-VN",
+ "tl\000tl-Latn-PH",
+ "tla\000tla-Latn-MX",
+ "tlb\000tlb-Latn-ID",
+ "tlc\000tlc-Latn-MX",
+ "tld\000tld-Latn-ID",
+ "tlf\000tlf-Latn-PG",
+ "tlg\000tlg-Latn-ID",
+ "tli\000tli-Latn-US",
+ "tlj\000tlj-Latn-UG",
+ "tlk\000tlk-Latn-ID",
+ "tll\000tll-Latn-CD",
+ "tlm\000tlm-Latn-VU",
+ "tln\000tln-Latn-ID",
+ "tlp\000tlp-Latn-MX",
+ "tlq\000tlq-Latn-MM",
+ "tlr\000tlr-Latn-SB",
+ "tls\000tls-Latn-VU",
+ "tlt\000tlt-Latn-ID",
+ "tlu\000tlu-Latn-ID",
+ "tlv\000tlv-Latn-ID",
+ "tlx\000tlx-Latn-PG",
+ "tly\000tly-Latn-AZ",
+ "tma\000tma-Latn-TD",
+ "tmb\000tmb-Latn-VU",
+ "tmc\000tmc-Latn-TD",
+ "tmd\000tmd-Latn-PG",
+ "tme\000tme-Latn-BR",
+ "tmf\000tmf-Latn-PY",
+ "tmg\000tmg-Latn-ID",
+ "tmh\000tmh-Latn-NE",
+ "tmi\000tmi-Latn-VU",
+ "tmj\000tmj-Latn-ID",
+ "tml\000tml-Latn-ID",
+ "tmm\000tmm-Latn-VN",
+ "tmn\000tmn-Latn-ID",
+ "tmo\000tmo-Latn-MY",
+ "tmq\000tmq-Latn-PG",
+ "tmr\000tmr-Syrc-IL",
+ "tmt\000tmt-Latn-VU",
+ "tmu\000tmu-Latn-ID",
+ "tmv\000tmv-Latn-CD",
+ "tmw\000tmw-Latn-MY",
+ "tmy\000tmy-Latn-PG",
+ "tmz\000tmz-Latn-VE",
+ "tn\000tn-Latn-ZA",
+ "tna\000tna-Latn-BO",
+ "tnb\000tnb-Latn-CO",
+ "tnc\000tnc-Latn-CO",
+ "tnd\000tnd-Latn-CO",
+ "tng\000tng-Latn-TD",
+ "tnh\000tnh-Latn-PG",
+ "tni\000tni-Latn-ID",
+ "tnk\000tnk-Latn-VU",
+ "tnl\000tnl-Latn-VU",
+ "tnm\000tnm-Latn-ID",
+ "tnn\000tnn-Latn-VU",
+ "tno\000tno-Latn-BO",
+ "tnp\000tnp-Latn-VU",
+ "tnq\000tnq-Latn-PR",
+ "tnr\000tnr-Latn-SN",
+ "tns\000tns-Latn-PG",
+ "tnt\000tnt-Latn-ID",
+ "tnv\000tnv-Cakm-BD",
+ "tnw\000tnw-Latn-ID",
+ "tnx\000tnx-Latn-SB",
+ "tny\000tny-Latn-TZ",
+ "to\000to-Latn-TO",
+ "tob\000tob-Latn-AR",
+ "toc\000toc-Latn-MX",
+ "tod\000tod-Latn-GN",
+ "tof\000tof-Latn-PG",
+ "tog\000tog-Latn-MW",
+ "toh\000toh-Latn-MZ",
+ "toi\000toi-Latn-ZM",
+ "toj\000toj-Latn-MX",
+ "tok\000tok-Latn-001",
+ "tol\000tol-Latn-US",
+ "tom\000tom-Latn-ID",
+ "too\000too-Latn-MX",
+ "top\000top-Latn-MX",
+ "toq\000toq-Latn-SS",
+ "tor\000tor-Latn-CD",
+ "tos\000tos-Latn-MX",
+ "tou\000tou-Latn-VN",
+ "tov\000tov-Arab-IR",
+ "tow\000tow-Latn-US",
+ "tox\000tox-Latn-PW",
+ "toy\000toy-Latn-ID",
+ "toz\000toz-Latn-CM",
+ "tpa\000tpa-Latn-PG",
+ "tpc\000tpc-Latn-MX",
+ "tpe\000tpe-Latn-BD",
+ "tpf\000tpf-Latn-ID",
+ "tpg\000tpg-Latn-ID",
+ "tpi\000tpi-Latn-PG",
+ "tpj\000tpj-Latn-PY",
+ "tpk\000tpk-Latn-BR",
+ "tpl\000tpl-Latn-MX",
+ "tpm\000tpm-Latn-GH",
+ "tpn\000tpn-Latn-BR",
+ "tpp\000tpp-Latn-MX",
+ "tpr\000tpr-Latn-BR",
+ "tpt\000tpt-Latn-MX",
+ "tpu\000tpu-Khmr-KH",
+ "tpv\000tpv-Latn-MP",
+ "tpx\000tpx-Latn-MX",
+ "tpy\000tpy-Latn-BR",
+ "tpz\000tpz-Latn-PG",
+ "tqb\000tqb-Latn-BR",
+ "tql\000tql-Latn-VU",
+ "tqm\000tqm-Latn-PG",
+ "tqn\000tqn-Latn-US",
+ "tqo\000tqo-Latn-PG",
+ "tqp\000tqp-Latn-PG",
+ "tqt\000tqt-Latn-MX",
+ "tqu\000tqu-Latn-SB",
+ "tqw\000tqw-Latn-US",
+ "tr\000tr-Latn-TR",
+ "tra\000tra-Arab-AF",
+ "trb\000trb-Latn-PG",
+ "trc\000trc-Latn-MX",
+ "tre\000tre-Latn-ID",
+ "trf\000trf-Latn-TT",
+ "trg\000trg-Hebr-IL",
+ "trh\000trh-Latn-PG",
+ "tri\000tri-Latn-SR",
+ "trj\000trj-Latn-TD",
+ "trl\000trl-Latn-GB",
+ "trm\000trm-Arab-AF",
+ "trn\000trn-Latn-BO",
+ "tro\000tro-Latn-IN",
+ "trp\000trp-Latn-IN",
+ "trq\000trq-Latn-MX",
+ "trr\000trr-Latn-PE",
+ "trs\000trs-Latn-MX",
+ "trt\000trt-Latn-ID",
+ "tru\000tru-Latn-TR",
+ "trv\000trv-Latn-TW",
+ "trw\000trw-Arab-PK",
+ "trx\000trx-Latn-MY",
+ "try\000try-Latn-IN",
+ "trz\000trz-Latn-BR",
+ "ts\000ts-Latn-ZA",
+ "tsa\000tsa-Latn-CG",
+ "tsb\000tsb-Latn-ET",
+ "tsc\000tsc-Latn-MZ",
+ "tsd\000tsd-Grek-GR",
+ "tsg\000tsg-Latn-PH",
+ "tsh\000tsh-Latn-CM",
+ "tsi\000tsi-Latn-CA",
+ "tsj\000tsj-Tibt-BT",
+ "tsl\000tsl-Latn-VN",
+ "tsp\000tsp-Latn-BF",
+ "tsr\000tsr-Latn-VU",
+ "tst\000tst-Latn-ML",
+ "tsu\000tsu-Latn-TW",
+ "tsv\000tsv-Latn-GA",
+ "tsw\000tsw-Latn-NG",
+ "tsx\000tsx-Latn-PG",
+ "tsz\000tsz-Latn-MX",
+ "tt\000tt-Cyrl-RU",
+ "ttb\000ttb-Latn-NG",
+ "ttc\000ttc-Latn-GT",
+ "ttd\000ttd-Latn-PG",
+ "tte\000tte-Latn-PG",
+ "ttf\000ttf-Latn-CM",
+ "tth\000tth-Laoo-LA",
+ "tti\000tti-Latn-ID",
+ "ttj\000ttj-Latn-UG",
+ "ttk\000ttk-Latn-CO",
+ "ttl\000ttl-Latn-ZM",
+ "ttm\000ttm-Latn-CA",
+ "ttn\000ttn-Latn-ID",
+ "tto\000tto-Laoo-LA",
+ "ttp\000ttp-Latn-ID",
+ "ttr\000ttr-Latn-NG",
+ "tts\000tts-Thai-TH",
+ "ttt\000ttt-Latn-AZ",
+ "ttu\000ttu-Latn-PG",
+ "ttv\000ttv-Latn-PG",
+ "ttw\000ttw-Latn-MY",
+ "tty\000tty-Latn-ID",
+ "ttz\000ttz-Deva-NP",
+ "tua\000tua-Latn-PG",
+ "tub\000tub-Latn-US",
+ "tuc\000tuc-Latn-PG",
+ "tud\000tud-Latn-BR",
+ "tue\000tue-Latn-CO",
+ "tuf\000tuf-Latn-CO",
+ "tug\000tug-Latn-TD",
+ "tuh\000tuh-Latn-PG",
+ "tui\000tui-Latn-CM",
+ "tuj\000tuj-Latn-ID",
+ "tul\000tul-Latn-NG",
+ "tum\000tum-Latn-MW",
+ "tun\000tun-Latn-US",
+ "tuo\000tuo-Latn-BR",
+ "tuq\000tuq-Latn-TD",
+ "tus\000tus-Latn-CA",
+ "tuu\000tuu-Latn-US",
+ "tuv\000tuv-Latn-KE",
+ "tux\000tux-Latn-BR",
+ "tuy\000tuy-Latn-KE",
+ "tuz\000tuz-Latn-BF",
+ "tva\000tva-Latn-SB",
+ "tvd\000tvd-Latn-NG",
+ "tve\000tve-Latn-ID",
+ "tvi\000tvi-Latn-NG",
+ "tvk\000tvk-Latn-VU",
+ "tvl\000tvl-Latn-TV",
+ "tvm\000tvm-Latn-ID",
+ "tvn\000tvn-Mymr-MM",
+ "tvo\000tvo-Latn-ID",
+ "tvs\000tvs-Latn-KE",
+ "tvt\000tvt-Latn-IN",
+ "tvu\000tvu-Latn-CM",
+ "tvw\000tvw-Latn-ID",
+ "tvx\000tvx-Latn-TW",
+ "twa\000twa-Latn-US",
+ "twb\000twb-Latn-PH",
+ "twd\000twd-Latn-NL",
+ "twe\000twe-Latn-ID",
+ "twf\000twf-Latn-US",
+ "twg\000twg-Latn-ID",
+ "twh\000twh-Latn-VN",
+ "twl\000twl-Latn-MZ",
+ "twm\000twm-Tibt-IN",
+ "twn\000twn-Latn-CM",
+ "two\000two-Latn-BW",
+ "twp\000twp-Latn-PG",
+ "twq\000twq-Latn-NE",
+ "twr\000twr-Latn-MX",
+ "twt\000twt-Latn-BR",
+ "twu\000twu-Latn-ID",
+ "tww\000tww-Latn-PG",
+ "twx\000twx-Latn-MZ",
+ "twy\000twy-Latn-ID",
+ "txa\000txa-Latn-MY",
+ "txe\000txe-Latn-ID",
+ "txg\000txg-Tang-CN",
+ "txi\000txi-Latn-BR",
+ "txj\000txj-Latn-NG",
+ "txm\000txm-Latn-ID",
+ "txn\000txn-Latn-ID",
+ "txo\000txo-Toto-IN",
+ "txq\000txq-Latn-ID",
+ "txs\000txs-Latn-ID",
+ "txt\000txt-Latn-ID",
+ "txu\000txu-Latn-BR",
+ "txx\000txx-Latn-MY",
+ "txy\000txy-Latn-MG",
+ "ty\000ty-Latn-PF",
+ "tya\000tya-Latn-PG",
+ "tye\000tye-Latn-NG",
+ "tyh\000tyh-Latn-VN",
+ "tyi\000tyi-Latn-CG",
+ "tyj\000tyj-Latn-VN",
+ "tyl\000tyl-Latn-VN",
+ "tyn\000tyn-Latn-ID",
+ "typ\000typ-Latn-AU",
+ "tyr\000tyr-Tavt-VN",
+ "tys\000tys-Latn-VN",
+ "tyt\000tyt-Latn-VN",
+ "tyu\000tyu-Latn-BW",
+ "tyv\000tyv-Cyrl-RU",
+ "tyx\000tyx-Latn-CG",
+ "tyy\000tyy-Latn-NG",
+ "tyz\000tyz-Latn-VN",
+ "tzh\000tzh-Latn-MX",
+ "tzj\000tzj-Latn-GT",
+ "tzl\000tzl-Latn-001",
+ "tzm\000tzm-Latn-MA",
+ "tzn\000tzn-Latn-ID",
+ "tzo\000tzo-Latn-MX",
+ "tzx\000tzx-Latn-PG",
+ "uam\000uam-Latn-BR",
+ "uar\000uar-Latn-PG",
+ "uba\000uba-Latn-NG",
+ "ubi\000ubi-Latn-TD",
+ "ubl\000ubl-Latn-PH",
+ "ubr\000ubr-Latn-PG",
+ "ubu\000ubu-Latn-PG",
+ "uby\000uby-Latn-TR",
+ "uda\000uda-Latn-NG",
+ "ude\000ude-Cyrl-RU",
+ "udg\000udg-Mlym-IN",
+ "udi\000udi-Cyrl-RU",
+ "udj\000udj-Latn-ID",
+ "udl\000udl-Latn-CM",
+ "udm\000udm-Cyrl-RU",
+ "udu\000udu-Latn-SD",
+ "ues\000ues-Latn-ID",
+ "ufi\000ufi-Latn-PG",
+ "ug\000ug-Arab-CN",
+ "ug-Cyrl\000ug-Cyrl-KZ",
+ "ug-KZ\000ug-Cyrl-KZ",
+ "ug-MN\000ug-Cyrl-MN",
+ "uga\000uga-Ugar-SY",
+ "ugb\000ugb-Latn-AU",
+ "uge\000uge-Latn-SB",
+ "ugh\000ugh-Cyrl-RU",
+ "ugo\000ugo-Thai-TH",
+ "uha\000uha-Latn-NG",
+ "uhn\000uhn-Latn-ID",
+ "uis\000uis-Latn-PG",
+ "uiv\000uiv-Latn-CM",
+ "uji\000uji-Latn-NG",
+ "uk\000uk-Cyrl-UA",
+ "uka\000uka-Latn-ID",
+ "ukg\000ukg-Latn-PG",
+ "ukh\000ukh-Latn-CF",
+ "uki\000uki-Orya-IN",
+ "ukk\000ukk-Latn-MM",
+ "ukp\000ukp-Latn-NG",
+ "ukq\000ukq-Latn-NG",
+ "uku\000uku-Latn-NG",
+ "ukv\000ukv-Latn-SS",
+ "ukw\000ukw-Latn-NG",
+ "uky\000uky-Latn-AU",
+ "ula\000ula-Latn-NG",
+ "ulb\000ulb-Latn-NG",
+ "ulc\000ulc-Cyrl-RU",
+ "ule\000ule-Latn-AR",
+ "ulf\000ulf-Latn-ID",
+ "uli\000uli-Latn-FM",
+ "ulk\000ulk-Latn-AU",
+ "ulm\000ulm-Latn-ID",
+ "uln\000uln-Latn-PG",
+ "ulu\000ulu-Latn-ID",
+ "ulw\000ulw-Latn-NI",
+ "uly\000uly-Latn-NG",
+ "uma\000uma-Latn-US",
+ "umb\000umb-Latn-AO",
+ "umd\000umd-Latn-AU",
+ "umg\000umg-Latn-AU",
+ "umi\000umi-Latn-MY",
+ "umm\000umm-Latn-NG",
+ "umn\000umn-Latn-MM",
+ "umo\000umo-Latn-BR",
+ "ump\000ump-Latn-AU",
+ "umr\000umr-Latn-AU",
+ "ums\000ums-Latn-ID",
+ "una\000una-Latn-PG",
+ "und\000en-Latn-US",
+ "und-419\000es-Latn-419",
+ "und-AD\000ca-Latn-AD",
+ "und-AE\000ar-Arab-AE",
+ "und-AF\000fa-Arab-AF",
+ "und-AL\000sq-Latn-AL",
+ "und-AM\000hy-Armn-AM",
+ "und-AO\000pt-Latn-AO",
+ "und-AR\000es-Latn-AR",
+ "und-AS\000sm-Latn-AS",
+ "und-AT\000de-Latn-AT",
+ "und-AW\000nl-Latn-AW",
+ "und-AX\000sv-Latn-AX",
+ "und-AZ\000az-Latn-AZ",
+ "und-Adlm\000ff-Adlm-GN",
+ "und-Aghb\000xag-Aghb-AZ",
+ "und-Ahom\000aho-Ahom-IN",
+ "und-Arab\000ar-Arab-EG",
+ "und-Arab-AF\000fa-Arab-AF",
+ "und-Arab-AZ\000az-Arab-AZ",
+ "und-Arab-BN\000ms-Arab-BN",
+ "und-Arab-CC\000ms-Arab-CC",
+ "und-Arab-CN\000ug-Arab-CN",
+ "und-Arab-GB\000ur-Arab-GB",
+ "und-Arab-ID\000ms-Arab-ID",
+ "und-Arab-IN\000ur-Arab-IN",
+ "und-Arab-IR\000fa-Arab-IR",
+ "und-Arab-KH\000cja-Arab-KH",
+ "und-Arab-MM\000rhg-Arab-MM",
+ "und-Arab-MN\000kk-Arab-MN",
+ "und-Arab-MU\000ur-Arab-MU",
+ "und-Arab-NG\000ha-Arab-NG",
+ "und-Arab-PK\000ur-Arab-PK",
+ "und-Arab-TH\000mfa-Arab-TH",
+ "und-Arab-TJ\000fa-Arab-TJ",
+ "und-Arab-TR\000apc-Arab-TR",
+ "und-Arab-YT\000swb-Arab-YT",
+ "und-Armi\000arc-Armi-IR",
+ "und-Armn\000hy-Armn-AM",
+ "und-Avst\000ae-Avst-IR",
+ "und-BA\000bs-Latn-BA",
+ "und-BD\000bn-Beng-BD",
+ "und-BE\000nl-Latn-BE",
+ "und-BF\000fr-Latn-BF",
+ "und-BG\000bg-Cyrl-BG",
+ "und-BH\000ar-Arab-BH",
+ "und-BI\000rn-Latn-BI",
+ "und-BJ\000fr-Latn-BJ",
+ "und-BL\000fr-Latn-BL",
+ "und-BN\000ms-Latn-BN",
+ "und-BO\000es-Latn-BO",
+ "und-BQ\000pap-Latn-BQ",
+ "und-BR\000pt-Latn-BR",
+ "und-BT\000dz-Tibt-BT",
+ "und-BV\000no-Latn-BV",
+ "und-BY\000ru-Cyrl-BY",
+ "und-Bali\000ban-Bali-ID",
+ "und-Bamu\000bax-Bamu-CM",
+ "und-Bass\000bsq-Bass-LR",
+ "und-Batk\000bbc-Batk-ID",
+ "und-Beng\000bn-Beng-BD",
+ "und-Berf\000zag-Berf-SD",
+ "und-Bhks\000sa-Bhks-IN",
+ "und-Bopo\000zh-Bopo-TW",
+ "und-Brah\000pka-Brah-IN",
+ "und-Brai\000fr-Brai-FR",
+ "und-Bugi\000bug-Bugi-ID",
+ "und-Buhd\000bku-Buhd-PH",
+ "und-CC\000ms-Arab-CC",
+ "und-CD\000fr-Latn-CD",
+ "und-CF\000sg-Latn-CF",
+ "und-CG\000fr-Latn-CG",
+ "und-CH\000de-Latn-CH",
+ "und-CI\000fr-Latn-CI",
+ "und-CL\000es-Latn-CL",
+ "und-CM\000fr-Latn-CM",
+ "und-CN\000zh-Hans-CN",
+ "und-CO\000es-Latn-CO",
+ "und-CR\000es-Latn-CR",
+ "und-CU\000es-Latn-CU",
+ "und-CV\000pt-Latn-CV",
+ "und-CW\000pap-Latn-CW",
+ "und-CY\000el-Grek-CY",
+ "und-CZ\000cs-Latn-CZ",
+ "und-Cakm\000ccp-Cakm-BD",
+ "und-Cans\000iu-Cans-CA",
+ "und-Cari\000xcr-Cari-TR",
+ "und-Cham\000cjm-Cham-VN",
+ "und-Cher\000chr-Cher-US",
+ "und-Chrs\000xco-Chrs-UZ",
+ "und-Copt\000cop-Copt-EG",
+ "und-Cpmn\000und-Cpmn-CY",
+ "und-Cprt\000ecy-Cprt-CY",
+ "und-Cyrl\000ru-Cyrl-RU",
+ "und-Cyrl-AF\000kaa-Cyrl-AF",
+ "und-Cyrl-AL\000mk-Cyrl-AL",
+ "und-Cyrl-AZ\000az-Cyrl-AZ",
+ "und-Cyrl-BA\000sr-Cyrl-BA",
+ "und-Cyrl-BG\000bg-Cyrl-BG",
+ "und-Cyrl-GE\000ab-Cyrl-GE",
+ "und-Cyrl-GR\000mk-Cyrl-GR",
+ "und-Cyrl-IR\000kaa-Cyrl-IR",
+ "und-Cyrl-KG\000ky-Cyrl-KG",
+ "und-Cyrl-MD\000uk-Cyrl-MD",
+ "und-Cyrl-ME\000sr-Cyrl-ME",
+ "und-Cyrl-MK\000mk-Cyrl-MK",
+ "und-Cyrl-MN\000mn-Cyrl-MN",
+ "und-Cyrl-RO\000bg-Cyrl-RO",
+ "und-Cyrl-RS\000sr-Cyrl-RS",
+ "und-Cyrl-SK\000uk-Cyrl-SK",
+ "und-Cyrl-TJ\000tg-Cyrl-TJ",
+ "und-Cyrl-TR\000kbd-Cyrl-TR",
+ "und-Cyrl-UA\000uk-Cyrl-UA",
+ "und-Cyrl-UZ\000uz-Cyrl-UZ",
+ "und-Cyrl-XK\000sr-Cyrl-XK",
+ "und-DE\000de-Latn-DE",
+ "und-DJ\000fr-Latn-DJ",
+ "und-DK\000da-Latn-DK",
+ "und-DO\000es-Latn-DO",
+ "und-DZ\000ar-Arab-DZ",
+ "und-Deva\000hi-Deva-IN",
+ "und-Deva-BT\000ne-Deva-BT",
+ "und-Deva-FJ\000hif-Deva-FJ",
+ "und-Deva-MU\000bho-Deva-MU",
+ "und-Deva-NP\000ne-Deva-NP",
+ "und-Deva-PK\000btv-Deva-PK",
+ "und-Diak\000dv-Diak-MV",
+ "und-Dogr\000doi-Dogr-IN",
+ "und-Dupl\000fr-Dupl-FR",
+ "und-EA\000es-Latn-EA",
+ "und-EC\000es-Latn-EC",
+ "und-EE\000et-Latn-EE",
+ "und-EG\000ar-Arab-EG",
+ "und-EH\000ar-Arab-EH",
+ "und-ER\000ti-Ethi-ER",
+ "und-ES\000es-Latn-ES",
+ "und-ET\000am-Ethi-ET",
+ "und-Egyp\000egy-Egyp-EG",
+ "und-Elba\000sq-Elba-AL",
+ "und-Elym\000arc-Elym-IR",
+ "und-Ethi\000am-Ethi-ET",
+ "und-Ethi-ER\000ti-Ethi-ER",
+ "und-FI\000fi-Latn-FI",
+ "und-FO\000fo-Latn-FO",
+ "und-FR\000fr-Latn-FR",
+ "und-GA\000fr-Latn-GA",
+ "und-GE\000ka-Geor-GE",
+ "und-GF\000fr-Latn-GF",
+ "und-GH\000ak-Latn-GH",
+ "und-GL\000kl-Latn-GL",
+ "und-GN\000fr-Latn-GN",
+ "und-GP\000fr-Latn-GP",
+ "und-GQ\000es-Latn-GQ",
+ "und-GR\000el-Grek-GR",
+ "und-GT\000es-Latn-GT",
+ "und-GW\000pt-Latn-GW",
+ "und-Gara\000wo-Gara-SN",
+ "und-Geor\000ka-Geor-GE",
+ "und-Glag\000cu-Glag-BG",
+ "und-Gong\000wsg-Gong-IN",
+ "und-Gonm\000esg-Gonm-IN",
+ "und-Goth\000got-Goth-UA",
+ "und-Gran\000sa-Gran-IN",
+ "und-Grek\000el-Grek-GR",
+ "und-Grek-TR\000bgx-Grek-TR",
+ "und-Gujr\000gu-Gujr-IN",
+ "und-Gukh\000gvr-Gukh-NP",
+ "und-Guru\000pa-Guru-IN",
+ "und-HK\000zh-Hant-HK",
+ "und-HN\000es-Latn-HN",
+ "und-HR\000hr-Latn-HR",
+ "und-HT\000ht-Latn-HT",
+ "und-HU\000hu-Latn-HU",
+ "und-Hanb\000zh-Hanb-TW",
+ "und-Hang\000ko-Hang-KR",
+ "und-Hani\000zh-Hani-CN",
+ "und-Hano\000hnn-Hano-PH",
+ "und-Hans\000zh-Hans-CN",
+ "und-Hant\000zh-Hant-TW",
+ "und-Hant-CA\000yue-Hant-CA",
+ "und-Hant-CN\000yue-Hant-CN",
+ "und-Hatr\000arc-Hatr-IQ",
+ "und-Hebr\000he-Hebr-IL",
+ "und-Hebr-SE\000yi-Hebr-SE",
+ "und-Hebr-UA\000yi-Hebr-UA",
+ "und-Hebr-US\000yi-Hebr-US",
+ "und-Hira\000ja-Hira-JP",
+ "und-Hluw\000hlu-Hluw-TR",
+ "und-Hmng\000hnj-Hmng-LA",
+ "und-Hmnp\000mww-Hmnp-US",
+ "und-Hmnp-AU\000hnj-Hmnp-AU",
+ "und-Hmnp-FR\000hnj-Hmnp-FR",
+ "und-Hmnp-GF\000hnj-Hmnp-GF",
+ "und-Hmnp-LA\000hnj-Hmnp-LA",
+ "und-Hmnp-MM\000hnj-Hmnp-MM",
+ "und-Hmnp-SR\000hnj-Hmnp-SR",
+ "und-Hmnp-TH\000hnj-Hmnp-TH",
+ "und-Hung\000hu-Hung-HU",
+ "und-IC\000es-Latn-IC",
+ "und-ID\000id-Latn-ID",
+ "und-IL\000he-Hebr-IL",
+ "und-IN\000hi-Deva-IN",
+ "und-IQ\000ar-Arab-IQ",
+ "und-IR\000fa-Arab-IR",
+ "und-IS\000is-Latn-IS",
+ "und-IT\000it-Latn-IT",
+ "und-Ital\000ett-Ital-IT",
+ "und-JO\000ar-Arab-JO",
+ "und-JP\000ja-Jpan-JP",
+ "und-Jamo\000ko-Jamo-KR",
+ "und-Java\000jv-Java-ID",
+ "und-Jpan\000ja-Jpan-JP",
+ "und-KE\000sw-Latn-KE",
+ "und-KG\000ky-Cyrl-KG",
+ "und-KH\000km-Khmr-KH",
+ "und-KM\000ar-Arab-KM",
+ "und-KP\000ko-Kore-KP",
+ "und-KR\000ko-Kore-KR",
+ "und-KW\000ar-Arab-KW",
+ "und-KZ\000ru-Cyrl-KZ",
+ "und-Kali\000eky-Kali-MM",
+ "und-Kana\000ja-Kana-JP",
+ "und-Kawi\000kaw-Kawi-ID",
+ "und-Khar\000pgd-Khar-PK",
+ "und-Khmr\000km-Khmr-KH",
+ "und-Khoj\000sd-Khoj-IN",
+ "und-Kits\000zkt-Kits-CN",
+ "und-Knda\000kn-Knda-IN",
+ "und-Kore\000ko-Kore-KR",
+ "und-Krai\000bap-Krai-IN",
+ "und-Kthi\000bho-Kthi-IN",
+ "und-LA\000lo-Laoo-LA",
+ "und-LB\000ar-Arab-LB",
+ "und-LI\000de-Latn-LI",
+ "und-LK\000si-Sinh-LK",
+ "und-LS\000st-Latn-LS",
+ "und-LT\000lt-Latn-LT",
+ "und-LU\000fr-Latn-LU",
+ "und-LV\000lv-Latn-LV",
+ "und-LY\000ar-Arab-LY",
+ "und-Lana\000nod-Lana-TH",
+ "und-Lana-MM\000stu-Lana-MM",
+ "und-Laoo\000lo-Laoo-LA",
+ "und-Latn-AE\000en-Latn-AE",
+ "und-Latn-AF\000tk-Latn-AF",
+ "und-Latn-AM\000ku-Latn-AM",
+ "und-Latn-BD\000en-Latn-BD",
+ "und-Latn-BG\000en-Latn-BG",
+ "und-Latn-BT\000en-Latn-BT",
+ "und-Latn-CC\000en-Latn-CC",
+ "und-Latn-CN\000za-Latn-CN",
+ "und-Latn-CY\000tr-Latn-CY",
+ "und-Latn-DZ\000fr-Latn-DZ",
+ "und-Latn-EG\000en-Latn-EG",
+ "und-Latn-ER\000en-Latn-ER",
+ "und-Latn-ET\000en-Latn-ET",
+ "und-Latn-GR\000en-Latn-GR",
+ "und-Latn-HK\000en-Latn-HK",
+ "und-Latn-IL\000en-Latn-IL",
+ "und-Latn-IN\000en-Latn-IN",
+ "und-Latn-IQ\000en-Latn-IQ",
+ "und-Latn-IR\000tk-Latn-IR",
+ "und-Latn-JO\000en-Latn-JO",
+ "und-Latn-KM\000fr-Latn-KM",
+ "und-Latn-KZ\000en-Latn-KZ",
+ "und-Latn-LB\000en-Latn-LB",
+ "und-Latn-LK\000en-Latn-LK",
+ "und-Latn-MA\000fr-Latn-MA",
+ "und-Latn-MK\000sq-Latn-MK",
+ "und-Latn-MM\000kac-Latn-MM",
+ "und-Latn-MO\000en-Latn-MO",
+ "und-Latn-MR\000fr-Latn-MR",
+ "und-Latn-MV\000en-Latn-MV",
+ "und-Latn-NP\000en-Latn-NP",
+ "und-Latn-PK\000en-Latn-PK",
+ "und-Latn-RU\000krl-Latn-RU",
+ "und-Latn-SD\000en-Latn-SD",
+ "und-Latn-SS\000en-Latn-SS",
+ "und-Latn-SY\000ku-Latn-SY",
+ "und-Latn-TD\000fr-Latn-TD",
+ "und-Latn-TH\000en-Latn-TH",
+ "und-Latn-TN\000fr-Latn-TN",
+ "und-Latn-TW\000trv-Latn-TW",
+ "und-Latn-UA\000pl-Latn-UA",
+ "und-Latn-YE\000en-Latn-YE",
+ "und-Lepc\000lep-Lepc-IN",
+ "und-Limb\000lif-Limb-IN",
+ "und-Lina\000lab-Lina-GR",
+ "und-Linb\000gmy-Linb-GR",
+ "und-Lisu\000lis-Lisu-CN",
+ "und-Lyci\000xlc-Lyci-TR",
+ "und-Lydi\000xld-Lydi-TR",
+ "und-MA\000ar-Arab-MA",
+ "und-MC\000fr-Latn-MC",
+ "und-MD\000ro-Latn-MD",
+ "und-ME\000sr-Latn-ME",
+ "und-MF\000fr-Latn-MF",
+ "und-MG\000mg-Latn-MG",
+ "und-MK\000mk-Cyrl-MK",
+ "und-ML\000bm-Latn-ML",
+ "und-MM\000my-Mymr-MM",
+ "und-MN\000mn-Cyrl-MN",
+ "und-MO\000zh-Hant-MO",
+ "und-MQ\000fr-Latn-MQ",
+ "und-MR\000ar-Arab-MR",
+ "und-MT\000mt-Latn-MT",
+ "und-MU\000fr-Latn-MU",
+ "und-MV\000dv-Thaa-MV",
+ "und-MX\000es-Latn-MX",
+ "und-MY\000ms-Latn-MY",
+ "und-MZ\000pt-Latn-MZ",
+ "und-Mahj\000hi-Mahj-IN",
+ "und-Maka\000mak-Maka-ID",
+ "und-Mand\000myz-Mand-IR",
+ "und-Mani\000xmn-Mani-CN",
+ "und-Marc\000bo-Marc-CN",
+ "und-Medf\000dmf-Medf-NG",
+ "und-Mend\000men-Mend-SL",
+ "und-Merc\000xmr-Merc-SD",
+ "und-Mero\000xmr-Mero-SD",
+ "und-Mlym\000ml-Mlym-IN",
+ "und-Modi\000mr-Modi-IN",
+ "und-Mong\000mn-Mong-CN",
+ "und-Mroo\000mro-Mroo-BD",
+ "und-Mtei\000mni-Mtei-IN",
+ "und-Mult\000skr-Mult-PK",
+ "und-Mymr\000my-Mymr-MM",
+ "und-Mymr-IN\000kht-Mymr-IN",
+ "und-Mymr-TH\000mnw-Mymr-TH",
+ "und-NA\000af-Latn-NA",
+ "und-NC\000fr-Latn-NC",
+ "und-NE\000ha-Latn-NE",
+ "und-NI\000es-Latn-NI",
+ "und-NL\000nl-Latn-NL",
+ "und-NO\000nb-Latn-NO",
+ "und-NP\000ne-Deva-NP",
+ "und-Nagm\000unr-Nagm-IN",
+ "und-Nand\000sa-Nand-IN",
+ "und-Narb\000xna-Narb-SA",
+ "und-Nbat\000arc-Nbat-JO",
+ "und-Newa\000new-Newa-NP",
+ "und-Nkoo\000man-Nkoo-GN",
+ "und-Nkoo-ML\000bm-Nkoo-ML",
+ "und-OM\000ar-Arab-OM",
+ "und-Ogam\000sga-Ogam-IE",
+ "und-Olck\000sat-Olck-IN",
+ "und-Onao\000unr-Onao-IN",
+ "und-Orkh\000otk-Orkh-MN",
+ "und-Orya\000or-Orya-IN",
+ "und-Osge\000osa-Osge-US",
+ "und-Osma\000so-Osma-SO",
+ "und-Ougr\000oui-Ougr-CN",
+ "und-PA\000es-Latn-PA",
+ "und-PE\000es-Latn-PE",
+ "und-PF\000fr-Latn-PF",
+ "und-PG\000tpi-Latn-PG",
+ "und-PH\000fil-Latn-PH",
+ "und-PK\000ur-Arab-PK",
+ "und-PL\000pl-Latn-PL",
+ "und-PM\000fr-Latn-PM",
+ "und-PR\000es-Latn-PR",
+ "und-PS\000ar-Arab-PS",
+ "und-PT\000pt-Latn-PT",
+ "und-PW\000pau-Latn-PW",
+ "und-PY\000gn-Latn-PY",
+ "und-Palm\000arc-Palm-SY",
+ "und-Pauc\000ctd-Pauc-MM",
+ "und-Perm\000kv-Perm-RU",
+ "und-Phag\000lzh-Phag-CN",
+ "und-Phli\000pal-Phli-IR",
+ "und-Phlp\000pal-Phlp-CN",
+ "und-Phnx\000phn-Phnx-LB",
+ "und-Plrd\000hmd-Plrd-CN",
+ "und-Prti\000xpr-Prti-IR",
+ "und-QA\000ar-Arab-QA",
+ "und-RE\000fr-Latn-RE",
+ "und-RO\000ro-Latn-RO",
+ "und-RS\000sr-Cyrl-RS",
+ "und-RU\000ru-Cyrl-RU",
+ "und-RW\000rw-Latn-RW",
+ "und-Rjng\000rej-Rjng-ID",
+ "und-Rohg\000rhg-Rohg-MM",
+ "und-Runr\000non-Runr-SE",
+ "und-SA\000ar-Arab-SA",
+ "und-SC\000fr-Latn-SC",
+ "und-SD\000ar-Arab-SD",
+ "und-SE\000sv-Latn-SE",
+ "und-SI\000sl-Latn-SI",
+ "und-SJ\000nb-Latn-SJ",
+ "und-SK\000sk-Latn-SK",
+ "und-SM\000it-Latn-SM",
+ "und-SN\000wo-Latn-SN",
+ "und-SO\000so-Latn-SO",
+ "und-SR\000nl-Latn-SR",
+ "und-SS\000ar-Arab-SS",
+ "und-ST\000pt-Latn-ST",
+ "und-SV\000es-Latn-SV",
+ "und-SY\000ar-Arab-SY",
+ "und-Samr\000smp-Samr-IL",
+ "und-Sarb\000xsa-Sarb-YE",
+ "und-Saur\000saz-Saur-IN",
+ "und-Sgnw\000ase-Sgnw-US",
+ "und-Shaw\000en-Shaw-GB",
+ "und-Shrd\000sa-Shrd-IN",
+ "und-Sidd\000sa-Sidd-IN",
+ "und-Sidt\000xsd-Sidt-TR",
+ "und-Sind\000sd-Sind-IN",
+ "und-Sinh\000si-Sinh-LK",
+ "und-Sogd\000sog-Sogd-UZ",
+ "und-Sogo\000sog-Sogo-UZ",
+ "und-Sora\000srb-Sora-IN",
+ "und-Soyo\000cmg-Soyo-MN",
+ "und-Sund\000su-Sund-ID",
+ "und-Sunu\000suz-Sunu-NP",
+ "und-Sylo\000syl-Sylo-BD",
+ "und-Syrc\000syr-Syrc-IQ",
+ "und-TD\000ar-Arab-TD",
+ "und-TF\000fr-Latn-TF",
+ "und-TG\000fr-Latn-TG",
+ "und-TH\000th-Thai-TH",
+ "und-TJ\000tg-Cyrl-TJ",
+ "und-TK\000tkl-Latn-TK",
+ "und-TL\000pt-Latn-TL",
+ "und-TM\000tk-Latn-TM",
+ "und-TN\000ar-Arab-TN",
+ "und-TO\000to-Latn-TO",
+ "und-TR\000tr-Latn-TR",
+ "und-TV\000tvl-Latn-TV",
+ "und-TW\000zh-Hant-TW",
+ "und-TZ\000sw-Latn-TZ",
+ "und-Tagb\000tbw-Tagb-PH",
+ "und-Takr\000doi-Takr-IN",
+ "und-Tale\000tdd-Tale-CN",
+ "und-Talu\000khb-Talu-CN",
+ "und-Taml\000ta-Taml-IN",
+ "und-Tang\000txg-Tang-CN",
+ "und-Tavt\000blt-Tavt-VN",
+ "und-Tayo\000tyj-Tayo-VN",
+ "und-Telu\000te-Telu-IN",
+ "und-Tfng\000zgh-Tfng-MA",
+ "und-Tglg\000fil-Tglg-PH",
+ "und-Thaa\000dv-Thaa-MV",
+ "und-Thai\000th-Thai-TH",
+ "und-Thai-CN\000lcp-Thai-CN",
+ "und-Thai-KH\000kdt-Thai-KH",
+ "und-Thai-LA\000kdt-Thai-LA",
+ "und-Tibt\000bo-Tibt-CN",
+ "und-Tibt-BT\000dz-Tibt-BT",
+ "und-Tirh\000mai-Tirh-IN",
+ "und-Tnsa\000nst-Tnsa-IN",
+ "und-Todr\000sq-Todr-AL",
+ "und-Tols\000kru-Tols-IN",
+ "und-Toto\000txo-Toto-IN",
+ "und-Tutg\000sa-Tutg-IN",
+ "und-UA\000uk-Cyrl-UA",
+ "und-UG\000sw-Latn-UG",
+ "und-UY\000es-Latn-UY",
+ "und-UZ\000uz-Latn-UZ",
+ "und-Ugar\000uga-Ugar-SY",
+ "und-VA\000it-Latn-VA",
+ "und-VE\000es-Latn-VE",
+ "und-VN\000vi-Latn-VN",
+ "und-VU\000bi-Latn-VU",
+ "und-Vaii\000vai-Vaii-LR",
+ "und-Vith\000sq-Vith-AL",
+ "und-WF\000fr-Latn-WF",
+ "und-WS\000sm-Latn-WS",
+ "und-Wara\000hoc-Wara-IN",
+ "und-Wcho\000nnp-Wcho-IN",
+ "und-XK\000sq-Latn-XK",
+ "und-Xpeo\000peo-Xpeo-IR",
+ "und-Xsux\000akk-Xsux-IQ",
+ "und-YE\000ar-Arab-YE",
+ "und-YT\000fr-Latn-YT",
+ "und-Yezi\000ku-Yezi-GE",
+ "und-Yiii\000ii-Yiii-CN",
+ "und-ZW\000sn-Latn-ZW",
+ "und-Zanb\000cmg-Zanb-MN",
+ "une\000une-Latn-NG",
+ "ung\000ung-Latn-AU",
+ "uni\000uni-Latn-PG",
+ "unk\000unk-Latn-BR",
+ "unm\000unm-Latn-US",
+ "unn\000unn-Latn-AU",
+ "unr\000unr-Beng-IN",
+ "unr-Deva\000unr-Deva-NP",
+ "unr-NP\000unr-Deva-NP",
+ "unu\000unu-Latn-PG",
+ "unx\000unx-Beng-IN",
+ "unz\000unz-Latn-ID",
+ "uon\000uon-Latn-TW",
+ "upi\000upi-Latn-PG",
+ "upv\000upv-Latn-VU",
+ "ur\000ur-Arab-PK",
+ "ura\000ura-Latn-PE",
+ "urb\000urb-Latn-BR",
+ "urc\000urc-Latn-AU",
+ "ure\000ure-Latn-BO",
+ "urf\000urf-Latn-AU",
+ "urg\000urg-Latn-PG",
+ "urh\000urh-Latn-NG",
+ "uri\000uri-Latn-PG",
+ "urk\000urk-Thai-TH",
+ "urm\000urm-Latn-PG",
+ "urn\000urn-Latn-ID",
+ "uro\000uro-Latn-PG",
+ "urp\000urp-Latn-BR",
+ "urr\000urr-Latn-VU",
+ "urt\000urt-Latn-PG",
+ "uru\000uru-Latn-BR",
+ "urv\000urv-Latn-PG",
+ "urw\000urw-Latn-PG",
+ "urx\000urx-Latn-PG",
+ "ury\000ury-Latn-ID",
+ "urz\000urz-Latn-BR",
+ "usa\000usa-Latn-PG",
+ "ush\000ush-Arab-PK",
+ "usi\000usi-Latn-BD",
+ "usk\000usk-Latn-CM",
+ "usp\000usp-Latn-GT",
+ "uss\000uss-Latn-NG",
+ "usu\000usu-Latn-PG",
+ "uta\000uta-Latn-NG",
+ "ute\000ute-Latn-US",
+ "uth\000uth-Latn-NG",
+ "utp\000utp-Latn-SB",
+ "utr\000utr-Latn-NG",
+ "utu\000utu-Latn-PG",
+ "uum\000uum-Grek-GE",
+ "uur\000uur-Latn-VU",
+ "uve\000uve-Latn-NC",
+ "uvh\000uvh-Latn-PG",
+ "uvl\000uvl-Latn-PG",
+ "uwa\000uwa-Latn-AU",
+ "uya\000uya-Latn-NG",
+ "uz\000uz-Latn-UZ",
+ "uz-AF\000uz-Arab-AF",
+ "uz-Arab\000uz-Arab-AF",
+ "uz-CN\000uz-Cyrl-CN",
+ "uzs\000uzs-Arab-AF",
+ "vaa\000vaa-Taml-IN",
+ "vae\000vae-Latn-CF",
+ "vaf\000vaf-Arab-IR",
+ "vag\000vag-Latn-GH",
+ "vah\000vah-Deva-IN",
+ "vai\000vai-Vaii-LR",
+ "vaj\000vaj-Latn-NA",
+ "val\000val-Latn-PG",
+ "vam\000vam-Latn-PG",
+ "van\000van-Latn-PG",
+ "vao\000vao-Latn-VU",
+ "vap\000vap-Latn-IN",
+ "var\000var-Latn-MX",
+ "vas\000vas-Deva-IN",
+ "vau\000vau-Latn-CD",
+ "vav\000vav-Deva-IN",
+ "vay\000vay-Deva-NP",
+ "vbb\000vbb-Latn-ID",
+ "vbk\000vbk-Latn-PH",
+ "ve\000ve-Latn-ZA",
+ "vec\000vec-Latn-IT",
+ "vem\000vem-Latn-NG",
+ "veo\000veo-Latn-US",
+ "vep\000vep-Latn-RU",
+ "ver\000ver-Latn-NG",
+ "vgr\000vgr-Arab-PK",
+ "vi\000vi-Latn-VN",
+ "vic\000vic-Latn-SX",
+ "vid\000vid-Latn-TZ",
+ "vif\000vif-Latn-CG",
+ "vig\000vig-Latn-BF",
+ "vil\000vil-Latn-AR",
+ "vin\000vin-Latn-TZ",
+ "vit\000vit-Latn-NG",
+ "viv\000viv-Latn-PG",
+ "vjk\000vjk-Deva-IN",
+ "vka\000vka-Latn-AU",
+ "vkj\000vkj-Latn-TD",
+ "vkk\000vkk-Latn-ID",
+ "vkl\000vkl-Latn-ID",
+ "vkm\000vkm-Latn-BR",
+ "vkn\000vkn-Latn-NG",
+ "vko\000vko-Latn-ID",
+ "vkp\000vkp-Latn-IN",
+ "vkt\000vkt-Latn-ID",
+ "vku\000vku-Latn-AU",
+ "vkz\000vkz-Latn-NG",
+ "vlp\000vlp-Latn-VU",
+ "vls\000vls-Latn-BE",
+ "vma\000vma-Latn-AU",
+ "vmb\000vmb-Latn-AU",
+ "vmc\000vmc-Latn-MX",
+ "vmd\000vmd-Knda-IN",
+ "vme\000vme-Latn-ID",
+ "vmf\000vmf-Latn-DE",
+ "vmg\000vmg-Latn-PG",
+ "vmh\000vmh-Arab-IR",
+ "vmi\000vmi-Latn-AU",
+ "vmj\000vmj-Latn-MX",
+ "vmk\000vmk-Latn-MZ",
+ "vml\000vml-Latn-AU",
+ "vmm\000vmm-Latn-MX",
+ "vmp\000vmp-Latn-MX",
+ "vmq\000vmq-Latn-MX",
+ "vmr\000vmr-Latn-MZ",
+ "vms\000vms-Latn-ID",
+ "vmu\000vmu-Latn-AU",
+ "vmw\000vmw-Latn-MZ",
+ "vmx\000vmx-Latn-MX",
+ "vmy\000vmy-Latn-MX",
+ "vmz\000vmz-Latn-MX",
+ "vnk\000vnk-Latn-SB",
+ "vnm\000vnm-Latn-VU",
+ "vnp\000vnp-Latn-VU",
+ "vo\000vo-Latn-001",
+ "vor\000vor-Latn-NG",
+ "vot\000vot-Latn-RU",
+ "vra\000vra-Latn-VU",
+ "vro\000vro-Latn-EE",
+ "vrs\000vrs-Latn-SB",
+ "vrt\000vrt-Latn-VU",
+ "vto\000vto-Latn-ID",
+ "vum\000vum-Latn-GA",
+ "vun\000vun-Latn-TZ",
+ "vut\000vut-Latn-CM",
+ "vwa\000vwa-Latn-CN",
+ "wa\000wa-Latn-BE",
+ "waa\000waa-Latn-US",
+ "wab\000wab-Latn-PG",
+ "wac\000wac-Latn-US",
+ "wad\000wad-Latn-ID",
+ "wae\000wae-Latn-CH",
+ "waf\000waf-Latn-BR",
+ "wag\000wag-Latn-PG",
+ "wah\000wah-Latn-ID",
+ "wai\000wai-Latn-ID",
+ "waj\000waj-Latn-PG",
+ "wal\000wal-Ethi-ET",
+ "wam\000wam-Latn-US",
+ "wan\000wan-Latn-CI",
+ "wap\000wap-Latn-GY",
+ "waq\000waq-Latn-AU",
+ "war\000war-Latn-PH",
+ "was\000was-Latn-US",
+ "wat\000wat-Latn-PG",
+ "wau\000wau-Latn-BR",
+ "wav\000wav-Latn-NG",
+ "waw\000waw-Latn-BR",
+ "wax\000wax-Latn-PG",
+ "way\000way-Latn-SR",
+ "waz\000waz-Latn-PG",
+ "wba\000wba-Latn-VE",
+ "wbb\000wbb-Latn-ID",
+ "wbe\000wbe-Latn-ID",
+ "wbf\000wbf-Latn-BF",
+ "wbh\000wbh-Latn-TZ",
+ "wbi\000wbi-Latn-TZ",
+ "wbj\000wbj-Latn-TZ",
+ "wbk\000wbk-Arab-AF",
+ "wbl\000wbl-Latn-PK",
+ "wbm\000wbm-Latn-CN",
+ "wbp\000wbp-Latn-AU",
+ "wbq\000wbq-Telu-IN",
+ "wbr\000wbr-Deva-IN",
+ "wbt\000wbt-Latn-AU",
+ "wbv\000wbv-Latn-AU",
+ "wbw\000wbw-Latn-ID",
+ "wca\000wca-Latn-BR",
+ "wci\000wci-Latn-TG",
+ "wdd\000wdd-Latn-GA",
+ "wdg\000wdg-Latn-PG",
+ "wdj\000wdj-Latn-AU",
+ "wdk\000wdk-Latn-AU",
+ "wdt\000wdt-Latn-CA",
+ "wdu\000wdu-Latn-AU",
+ "wdy\000wdy-Latn-AU",
+ "wec\000wec-Latn-CI",
+ "wed\000wed-Latn-PG",
+ "weg\000weg-Latn-AU",
+ "weh\000weh-Latn-CM",
+ "wei\000wei-Latn-PG",
+ "wem\000wem-Latn-BJ",
+ "weo\000weo-Latn-ID",
+ "wep\000wep-Latn-DE",
+ "wer\000wer-Latn-PG",
+ "wes\000wes-Latn-CM",
+ "wet\000wet-Latn-ID",
+ "weu\000weu-Latn-MM",
+ "wew\000wew-Latn-ID",
+ "wfg\000wfg-Latn-ID",
+ "wga\000wga-Latn-AU",
+ "wgb\000wgb-Latn-PG",
+ "wgg\000wgg-Latn-AU",
+ "wgi\000wgi-Latn-PG",
+ "wgo\000wgo-Latn-ID",
+ "wgu\000wgu-Latn-AU",
+ "wgy\000wgy-Latn-AU",
+ "wha\000wha-Latn-ID",
+ "whg\000whg-Latn-PG",
+ "whk\000whk-Latn-ID",
+ "whu\000whu-Latn-ID",
+ "wib\000wib-Latn-BF",
+ "wic\000wic-Latn-US",
+ "wie\000wie-Latn-AU",
+ "wif\000wif-Latn-AU",
+ "wig\000wig-Latn-AU",
+ "wih\000wih-Latn-AU",
+ "wii\000wii-Latn-PG",
+ "wij\000wij-Latn-AU",
+ "wik\000wik-Latn-AU",
+ "wil\000wil-Latn-AU",
+ "wim\000wim-Latn-AU",
+ "win\000win-Latn-US",
+ "wir\000wir-Latn-BR",
+ "wiu\000wiu-Latn-PG",
+ "wiv\000wiv-Latn-PG",
+ "wiy\000wiy-Latn-US",
+ "wja\000wja-Latn-NG",
+ "wji\000wji-Latn-NG",
+ "wka\000wka-Latn-TZ",
+ "wkd\000wkd-Latn-ID",
+ "wkr\000wkr-Latn-AU",
+ "wkw\000wkw-Latn-AU",
+ "wky\000wky-Latn-AU",
+ "wla\000wla-Latn-PG",
+ "wle\000wle-Ethi-ET",
+ "wlg\000wlg-Latn-AU",
+ "wlh\000wlh-Latn-TL",
+ "wli\000wli-Latn-ID",
+ "wlm\000wlm-Latn-GB",
+ "wlo\000wlo-Arab-ID",
+ "wlr\000wlr-Latn-VU",
+ "wls\000wls-Latn-WF",
+ "wlu\000wlu-Latn-AU",
+ "wlv\000wlv-Latn-AR",
+ "wlw\000wlw-Latn-ID",
+ "wlx\000wlx-Latn-GH",
+ "wma\000wma-Latn-NG",
+ "wmb\000wmb-Latn-AU",
+ "wmc\000wmc-Latn-PG",
+ "wmd\000wmd-Latn-BR",
+ "wme\000wme-Deva-NP",
+ "wmh\000wmh-Latn-TL",
+ "wmi\000wmi-Latn-AU",
+ "wmm\000wmm-Latn-ID",
+ "wmn\000wmn-Latn-NC",
+ "wmo\000wmo-Latn-PG",
+ "wms\000wms-Latn-ID",
+ "wmt\000wmt-Latn-AU",
+ "wmw\000wmw-Latn-MZ",
+ "wmx\000wmx-Latn-PG",
+ "wnb\000wnb-Latn-PG",
+ "wnc\000wnc-Latn-PG",
+ "wnd\000wnd-Latn-AU",
+ "wne\000wne-Arab-PK",
+ "wng\000wng-Latn-ID",
+ "wni\000wni-Arab-KM",
+ "wnk\000wnk-Latn-ID",
+ "wnm\000wnm-Latn-AU",
+ "wnn\000wnn-Latn-AU",
+ "wno\000wno-Latn-ID",
+ "wnp\000wnp-Latn-PG",
+ "wnu\000wnu-Latn-PG",
+ "wnw\000wnw-Latn-US",
+ "wny\000wny-Latn-AU",
+ "wo\000wo-Latn-SN",
+ "woa\000woa-Latn-AU",
+ "wob\000wob-Latn-CI",
+ "woc\000woc-Latn-PG",
+ "wod\000wod-Latn-ID",
+ "woe\000woe-Latn-FM",
+ "wof\000wof-Latn-GM",
+ "wog\000wog-Latn-PG",
+ "woi\000woi-Latn-ID",
+ "wok\000wok-Latn-CM",
+ "wom\000wom-Latn-NG",
+ "won\000won-Latn-CD",
+ "woo\000woo-Latn-ID",
+ "wor\000wor-Latn-ID",
+ "wos\000wos-Latn-PG",
+ "wow\000wow-Latn-ID",
+ "wpc\000wpc-Latn-VE",
+ "wrb\000wrb-Latn-AU",
+ "wrg\000wrg-Latn-AU",
+ "wrh\000wrh-Latn-AU",
+ "wri\000wri-Latn-AU",
+ "wrk\000wrk-Latn-AU",
+ "wrl\000wrl-Latn-AU",
+ "wrm\000wrm-Latn-AU",
+ "wro\000wro-Latn-AU",
+ "wrp\000wrp-Latn-ID",
+ "wrr\000wrr-Latn-AU",
+ "wrs\000wrs-Latn-PG",
+ "wru\000wru-Latn-ID",
+ "wrv\000wrv-Latn-PG",
+ "wrw\000wrw-Latn-AU",
+ "wrx\000wrx-Latn-ID",
+ "wrz\000wrz-Latn-AU",
+ "wsa\000wsa-Latn-ID",
+ "wsg\000wsg-Gong-IN",
+ "wsi\000wsi-Latn-VU",
+ "wsk\000wsk-Latn-PG",
+ "wsr\000wsr-Latn-PG",
+ "wss\000wss-Latn-GH",
+ "wsu\000wsu-Latn-BR",
+ "wsv\000wsv-Arab-AF",
+ "wtb\000wtb-Latn-TZ",
+ "wtf\000wtf-Latn-PG",
+ "wth\000wth-Latn-AU",
+ "wti\000wti-Latn-ET",
+ "wtk\000wtk-Latn-PG",
+ "wtm\000wtm-Deva-IN",
+ "wtw\000wtw-Latn-ID",
+ "wua\000wua-Latn-AU",
+ "wub\000wub-Latn-AU",
+ "wud\000wud-Latn-TG",
+ "wul\000wul-Latn-ID",
+ "wum\000wum-Latn-GA",
+ "wun\000wun-Latn-TZ",
+ "wur\000wur-Latn-AU",
+ "wut\000wut-Latn-PG",
+ "wuu\000wuu-Hans-CN",
+ "wuv\000wuv-Latn-PG",
+ "wux\000wux-Latn-AU",
+ "wuy\000wuy-Latn-ID",
+ "wwa\000wwa-Latn-BJ",
+ "wwb\000wwb-Latn-AU",
+ "wwo\000wwo-Latn-VU",
+ "wwr\000wwr-Latn-AU",
+ "www\000www-Latn-CM",
+ "wxw\000wxw-Latn-AU",
+ "wyb\000wyb-Latn-AU",
+ "wyi\000wyi-Latn-AU",
+ "wym\000wym-Latn-PL",
+ "wyn\000wyn-Latn-US",
+ "wyr\000wyr-Latn-BR",
+ "wyy\000wyy-Latn-FJ",
+ "xaa\000xaa-Latn-ES",
+ "xab\000xab-Latn-NG",
+ "xag\000xag-Aghb-AZ",
+ "xai\000xai-Latn-BR",
+ "xaj\000xaj-Latn-BR",
+ "xak\000xak-Latn-VE",
+ "xal\000xal-Cyrl-RU",
+ "xam\000xam-Latn-ZA",
+ "xan\000xan-Ethi-ET",
+ "xao\000xao-Latn-VN",
+ "xar\000xar-Latn-PG",
+ "xas\000xas-Cyrl-RU",
+ "xat\000xat-Latn-BR",
+ "xau\000xau-Latn-ID",
+ "xav\000xav-Latn-BR",
+ "xaw\000xaw-Latn-US",
+ "xay\000xay-Latn-ID",
+ "xbb\000xbb-Latn-AU",
+ "xbd\000xbd-Latn-AU",
+ "xbe\000xbe-Latn-AU",
+ "xbg\000xbg-Latn-AU",
+ "xbi\000xbi-Latn-PG",
+ "xbj\000xbj-Latn-AU",
+ "xbm\000xbm-Latn-FR",
+ "xbn\000xbn-Latn-MY",
+ "xbp\000xbp-Latn-AU",
+ "xbr\000xbr-Latn-ID",
+ "xbw\000xbw-Latn-BR",
+ "xby\000xby-Latn-AU",
+ "xch\000xch-Latn-US",
+ "xco\000xco-Chrs-UZ",
+ "xcr\000xcr-Cari-TR",
+ "xda\000xda-Latn-AU",
+ "xdk\000xdk-Latn-AU",
+ "xdo\000xdo-Latn-AO",
+ "xdq\000xdq-Cyrl-RU",
+ "xdy\000xdy-Latn-ID",
+ "xed\000xed-Latn-CM",
+ "xeg\000xeg-Latn-ZA",
+ "xem\000xem-Latn-ID",
+ "xer\000xer-Latn-BR",
+ "xes\000xes-Latn-PG",
+ "xet\000xet-Latn-BR",
+ "xeu\000xeu-Latn-PG",
+ "xgb\000xgb-Latn-CI",
+ "xgd\000xgd-Latn-AU",
+ "xgg\000xgg-Latn-AU",
+ "xgi\000xgi-Latn-AU",
+ "xgm\000xgm-Latn-AU",
+ "xgu\000xgu-Latn-AU",
+ "xgw\000xgw-Latn-AU",
+ "xh\000xh-Latn-ZA",
+ "xhe\000xhe-Arab-PK",
+ "xhm\000xhm-Khmr-KH",
+ "xhv\000xhv-Latn-VN",
+ "xii\000xii-Latn-ZA",
+ "xin\000xin-Latn-GT",
+ "xir\000xir-Latn-BR",
+ "xis\000xis-Orya-IN",
+ "xiy\000xiy-Latn-BR",
+ "xjb\000xjb-Latn-AU",
+ "xjt\000xjt-Latn-AU",
+ "xka\000xka-Arab-PK",
+ "xkb\000xkb-Latn-BJ",
+ "xkc\000xkc-Arab-IR",
+ "xkd\000xkd-Latn-ID",
+ "xke\000xke-Latn-ID",
+ "xkf\000xkf-Tibt-BT",
+ "xkg\000xkg-Latn-ML",
+ "xkj\000xkj-Arab-IR",
+ "xkl\000xkl-Latn-ID",
+ "xkn\000xkn-Latn-ID",
+ "xkp\000xkp-Arab-IR",
+ "xkq\000xkq-Latn-ID",
+ "xkr\000xkr-Latn-BR",
+ "xks\000xks-Latn-ID",
+ "xkt\000xkt-Latn-GH",
+ "xku\000xku-Latn-CG",
+ "xkv\000xkv-Latn-BW",
+ "xkw\000xkw-Latn-ID",
+ "xkx\000xkx-Latn-PG",
+ "xky\000xky-Latn-MY",
+ "xkz\000xkz-Latn-BT",
+ "xla\000xla-Latn-PG",
+ "xlc\000xlc-Lyci-TR",
+ "xld\000xld-Lydi-TR",
+ "xly\000xly-Elym-IR",
+ "xma\000xma-Latn-SO",
+ "xmb\000xmb-Latn-CM",
+ "xmc\000xmc-Latn-MZ",
+ "xmd\000xmd-Latn-CM",
+ "xmf\000xmf-Geor-GE",
+ "xmg\000xmg-Latn-CM",
+ "xmh\000xmh-Latn-AU",
+ "xmj\000xmj-Latn-CM",
+ "xmm\000xmm-Latn-ID",
+ "xmn\000xmn-Mani-CN",
+ "xmo\000xmo-Latn-BR",
+ "xmp\000xmp-Latn-AU",
+ "xmq\000xmq-Latn-AU",
+ "xmr\000xmr-Merc-SD",
+ "xmt\000xmt-Latn-ID",
+ "xmu\000xmu-Latn-AU",
+ "xmv\000xmv-Latn-MG",
+ "xmw\000xmw-Latn-MG",
+ "xmx\000xmx-Latn-ID",
+ "xmy\000xmy-Latn-AU",
+ "xmz\000xmz-Latn-ID",
+ "xna\000xna-Narb-SA",
+ "xnb\000xnb-Latn-TW",
+ "xni\000xni-Latn-AU",
+ "xnj\000xnj-Latn-TZ",
+ "xnk\000xnk-Latn-AU",
+ "xnm\000xnm-Latn-AU",
+ "xnn\000xnn-Latn-PH",
+ "xnq\000xnq-Latn-MZ",
+ "xnr\000xnr-Deva-IN",
+ "xnt\000xnt-Latn-US",
+ "xnu\000xnu-Latn-AU",
+ "xny\000xny-Latn-AU",
+ "xnz\000xnz-Latn-EG",
+ "xoc\000xoc-Latn-NG",
+ "xod\000xod-Latn-ID",
+ "xog\000xog-Latn-UG",
+ "xoi\000xoi-Latn-PG",
+ "xok\000xok-Latn-BR",
+ "xom\000xom-Latn-SD",
+ "xon\000xon-Latn-GH",
+ "xoo\000xoo-Latn-BR",
+ "xop\000xop-Latn-PG",
+ "xor\000xor-Latn-BR",
+ "xow\000xow-Latn-PG",
+ "xpa\000xpa-Latn-AU",
+ "xpb\000xpb-Latn-AU",
+ "xpd\000xpd-Latn-AU",
+ "xpf\000xpf-Latn-AU",
+ "xpg\000xpg-Grek-TR",
+ "xph\000xph-Latn-AU",
+ "xpi\000xpi-Ogam-GB",
+ "xpj\000xpj-Latn-AU",
+ "xpk\000xpk-Latn-BR",
+ "xpl\000xpl-Latn-AU",
+ "xpm\000xpm-Cyrl-RU",
+ "xpn\000xpn-Latn-BR",
+ "xpo\000xpo-Latn-MX",
+ "xpq\000xpq-Latn-US",
+ "xpr\000xpr-Prti-IR",
+ "xpt\000xpt-Latn-AU",
+ "xpv\000xpv-Latn-AU",
+ "xpw\000xpw-Latn-AU",
+ "xpx\000xpx-Latn-AU",
+ "xpz\000xpz-Latn-AU",
+ "xra\000xra-Latn-BR",
+ "xrb\000xrb-Latn-BF",
+ "xrd\000xrd-Latn-AU",
+ "xre\000xre-Latn-BR",
+ "xrg\000xrg-Latn-AU",
+ "xri\000xri-Latn-BR",
+ "xrm\000xrm-Cyrl-RU",
+ "xrn\000xrn-Cyrl-RU",
+ "xrr\000xrr-Latn-IT",
+ "xru\000xru-Latn-AU",
+ "xrw\000xrw-Latn-PG",
+ "xsa\000xsa-Sarb-YE",
+ "xsb\000xsb-Latn-PH",
+ "xsd\000xsd-Sidt-TR",
+ "xse\000xse-Latn-ID",
+ "xsh\000xsh-Latn-NG",
+ "xsi\000xsi-Latn-PG",
+ "xsm\000xsm-Latn-GH",
+ "xsn\000xsn-Latn-NG",
+ "xsp\000xsp-Latn-PG",
+ "xsq\000xsq-Latn-MZ",
+ "xsr\000xsr-Deva-NP",
+ "xsu\000xsu-Latn-VE",
+ "xsy\000xsy-Latn-TW",
+ "xta\000xta-Latn-MX",
+ "xtb\000xtb-Latn-MX",
+ "xtc\000xtc-Latn-SD",
+ "xtd\000xtd-Latn-MX",
+ "xte\000xte-Latn-ID",
+ "xth\000xth-Latn-AU",
+ "xti\000xti-Latn-MX",
+ "xtj\000xtj-Latn-MX",
+ "xtl\000xtl-Latn-MX",
+ "xtm\000xtm-Latn-MX",
+ "xtn\000xtn-Latn-MX",
+ "xtp\000xtp-Latn-MX",
+ "xtq\000xtq-Brah-IR",
+ "xts\000xts-Latn-MX",
+ "xtt\000xtt-Latn-MX",
+ "xtu\000xtu-Latn-MX",
+ "xtv\000xtv-Latn-AU",
+ "xtw\000xtw-Latn-BR",
+ "xty\000xty-Latn-MX",
+ "xub\000xub-Taml-IN",
+ "xud\000xud-Latn-AU",
+ "xuj\000xuj-Taml-IN",
+ "xul\000xul-Latn-AU",
+ "xum\000xum-Latn-IT",
+ "xun\000xun-Latn-AU",
+ "xuo\000xuo-Latn-TD",
+ "xut\000xut-Latn-AU",
+ "xuu\000xuu-Latn-NA",
+ "xve\000xve-Ital-IT",
+ "xvi\000xvi-Arab-AF",
+ "xvn\000xvn-Latn-ES",
+ "xvo\000xvo-Latn-IT",
+ "xvs\000xvs-Latn-IT",
+ "xwa\000xwa-Latn-BR",
+ "xwd\000xwd-Latn-AU",
+ "xwe\000xwe-Latn-BJ",
+ "xwj\000xwj-Latn-AU",
+ "xwk\000xwk-Latn-AU",
+ "xwl\000xwl-Latn-BJ",
+ "xwo\000xwo-Cyrl-RU",
+ "xwr\000xwr-Latn-ID",
+ "xwt\000xwt-Latn-AU",
+ "xww\000xww-Latn-AU",
+ "xxb\000xxb-Latn-GH",
+ "xxk\000xxk-Latn-ID",
+ "xxm\000xxm-Latn-AU",
+ "xxr\000xxr-Latn-BR",
+ "xxt\000xxt-Latn-ID",
+ "xya\000xya-Latn-AU",
+ "xyb\000xyb-Latn-AU",
+ "xyj\000xyj-Latn-AU",
+ "xyk\000xyk-Latn-AU",
+ "xyl\000xyl-Latn-BR",
+ "xyt\000xyt-Latn-AU",
+ "xyy\000xyy-Latn-AU",
+ "xzh\000xzh-Marc-CN",
+ "xzp\000xzp-Latn-MX",
+ "yaa\000yaa-Latn-PE",
+ "yab\000yab-Latn-BR",
+ "yac\000yac-Latn-ID",
+ "yad\000yad-Latn-PE",
+ "yae\000yae-Latn-VE",
+ "yaf\000yaf-Latn-CD",
+ "yag\000yag-Latn-CL",
+ "yah\000yah-Latn-TJ",
+ "yai\000yai-Cyrl-TJ",
+ "yaj\000yaj-Latn-CF",
+ "yak\000yak-Latn-US",
+ "yal\000yal-Latn-GN",
+ "yam\000yam-Latn-CM",
+ "yan\000yan-Latn-NI",
+ "yao\000yao-Latn-MZ",
+ "yap\000yap-Latn-FM",
+ "yaq\000yaq-Latn-MX",
+ "yar\000yar-Latn-VE",
+ "yas\000yas-Latn-CM",
+ "yat\000yat-Latn-CM",
+ "yau\000yau-Latn-VE",
+ "yav\000yav-Latn-CM",
+ "yaw\000yaw-Latn-BR",
+ "yax\000yax-Latn-AO",
+ "yay\000yay-Latn-NG",
+ "yaz\000yaz-Latn-NG",
+ "yba\000yba-Latn-NG",
+ "ybb\000ybb-Latn-CM",
+ "ybe\000ybe-Latn-CN",
+ "ybh\000ybh-Deva-NP",
+ "ybi\000ybi-Deva-NP",
+ "ybj\000ybj-Latn-NG",
+ "ybl\000ybl-Latn-NG",
+ "ybm\000ybm-Latn-PG",
+ "ybn\000ybn-Latn-BR",
+ "ybo\000ybo-Latn-PG",
+ "ybx\000ybx-Latn-PG",
+ "yby\000yby-Latn-PG",
+ "ycl\000ycl-Latn-CN",
+ "ycn\000ycn-Latn-CO",
+ "ycr\000ycr-Latn-TW",
+ "yda\000yda-Latn-AU",
+ "yde\000yde-Latn-PG",
+ "ydg\000ydg-Arab-PK",
+ "ydk\000ydk-Latn-PG",
+ "yea\000yea-Mlym-IN",
+ "yec\000yec-Latn-DE",
+ "yee\000yee-Latn-PG",
+ "yei\000yei-Latn-CM",
+ "yej\000yej-Grek-GR",
+ "yel\000yel-Latn-CD",
+ "yer\000yer-Latn-NG",
+ "yes\000yes-Latn-NG",
+ "yet\000yet-Latn-ID",
+ "yeu\000yeu-Telu-IN",
+ "yev\000yev-Latn-PG",
+ "yey\000yey-Latn-BW",
+ "yga\000yga-Latn-AU",
+ "ygi\000ygi-Latn-AU",
+ "ygl\000ygl-Latn-PG",
+ "ygm\000ygm-Latn-PG",
+ "ygp\000ygp-Plrd-CN",
+ "ygr\000ygr-Latn-PG",
+ "ygu\000ygu-Latn-AU",
+ "ygw\000ygw-Latn-PG",
+ "yhd\000yhd-Hebr-IL",
+ "yi\000yi-Hebr-UA",
+ "yia\000yia-Latn-AU",
+ "yig\000yig-Yiii-CN",
+ "yih\000yih-Hebr-DE",
+ "yii\000yii-Latn-AU",
+ "yij\000yij-Latn-AU",
+ "yil\000yil-Latn-AU",
+ "yim\000yim-Latn-IN",
+ "yir\000yir-Latn-ID",
+ "yis\000yis-Latn-PG",
+ "yiv\000yiv-Yiii-CN",
+ "yka\000yka-Latn-PH",
+ "ykg\000ykg-Cyrl-RU",
+ "ykh\000ykh-Cyrl-MN",
+ "yki\000yki-Latn-ID",
+ "ykk\000ykk-Latn-PG",
+ "ykm\000ykm-Latn-PG",
+ "yko\000yko-Latn-CM",
+ "ykr\000ykr-Latn-PG",
+ "yky\000yky-Latn-CF",
+ "yla\000yla-Latn-PG",
+ "ylb\000ylb-Latn-PG",
+ "yle\000yle-Latn-PG",
+ "ylg\000ylg-Latn-PG",
+ "yli\000yli-Latn-ID",
+ "yll\000yll-Latn-PG",
+ "ylr\000ylr-Latn-AU",
+ "ylu\000ylu-Latn-PG",
+ "yly\000yly-Latn-NC",
+ "ymb\000ymb-Latn-PG",
+ "yme\000yme-Latn-PE",
+ "ymg\000ymg-Latn-CD",
+ "ymk\000ymk-Latn-MZ",
+ "yml\000yml-Latn-PG",
+ "ymm\000ymm-Latn-SO",
+ "ymn\000ymn-Latn-ID",
+ "ymo\000ymo-Latn-PG",
+ "ymp\000ymp-Latn-PG",
+ "yna\000yna-Plrd-CN",
+ "ynb\000ynb-Latn-PG",
+ "ynd\000ynd-Latn-AU",
+ "yng\000yng-Latn-CD",
+ "ynk\000ynk-Cyrl-RU",
+ "ynl\000ynl-Latn-PG",
+ "ynq\000ynq-Latn-NG",
+ "yns\000yns-Latn-CD",
+ "ynu\000ynu-Latn-CO",
+ "yo\000yo-Latn-NG",
+ "yob\000yob-Latn-PG",
+ "yog\000yog-Latn-PH",
+ "yoi\000yoi-Jpan-JP",
+ "yok\000yok-Latn-US",
+ "yol\000yol-Latn-IE",
+ "yom\000yom-Latn-CD",
+ "yon\000yon-Latn-PG",
+ "yot\000yot-Latn-NG",
+ "yoy\000yoy-Thai-TH",
+ "yra\000yra-Latn-PG",
+ "yrb\000yrb-Latn-PG",
+ "yre\000yre-Latn-CI",
+ "yrk\000yrk-Cyrl-RU",
+ "yrl\000yrl-Latn-BR",
+ "yrm\000yrm-Latn-AU",
+ "yro\000yro-Latn-BR",
+ "yrs\000yrs-Latn-ID",
+ "yrw\000yrw-Latn-PG",
+ "yry\000yry-Latn-AU",
+ "ysd\000ysd-Yiii-CN",
+ "ysn\000ysn-Yiii-CN",
+ "ysp\000ysp-Yiii-CN",
+ "ysr\000ysr-Cyrl-RU",
+ "yss\000yss-Latn-PG",
+ "ysy\000ysy-Plrd-CN",
+ "ytw\000ytw-Latn-PG",
+ "yty\000yty-Latn-AU",
+ "yua\000yua-Latn-MX",
+ "yub\000yub-Latn-AU",
+ "yuc\000yuc-Latn-US",
+ "yud\000yud-Hebr-IL",
+ "yue\000yue-Hant-HK",
+ "yue-CN\000yue-Hans-CN",
+ "yue-Hans\000yue-Hans-CN",
+ "yuf\000yuf-Latn-US",
+ "yug\000yug-Cyrl-RU",
+ "yui\000yui-Latn-CO",
+ "yuj\000yuj-Latn-PG",
+ "yul\000yul-Latn-CF",
+ "yum\000yum-Latn-US",
+ "yun\000yun-Latn-NG",
+ "yup\000yup-Latn-CO",
+ "yuq\000yuq-Latn-BO",
+ "yur\000yur-Latn-US",
+ "yut\000yut-Latn-PG",
+ "yuw\000yuw-Latn-PG",
+ "yux\000yux-Cyrl-RU",
+ "yuz\000yuz-Latn-BO",
+ "yva\000yva-Latn-ID",
+ "yvt\000yvt-Latn-VE",
+ "ywa\000ywa-Latn-PG",
+ "ywg\000ywg-Latn-AU",
+ "ywn\000ywn-Latn-BR",
+ "ywq\000ywq-Plrd-CN",
+ "ywr\000ywr-Latn-AU",
+ "ywu\000ywu-Plrd-CN",
+ "yww\000yww-Latn-AU",
+ "yxa\000yxa-Latn-AU",
+ "yxg\000yxg-Latn-AU",
+ "yxl\000yxl-Latn-AU",
+ "yxm\000yxm-Latn-AU",
+ "yxu\000yxu-Latn-AU",
+ "yxy\000yxy-Latn-AU",
+ "yyr\000yyr-Latn-AU",
+ "yyu\000yyu-Latn-PG",
+ "za\000za-Latn-CN",
+ "zaa\000zaa-Latn-MX",
+ "zab\000zab-Latn-MX",
+ "zac\000zac-Latn-MX",
+ "zad\000zad-Latn-MX",
+ "zae\000zae-Latn-MX",
+ "zaf\000zaf-Latn-MX",
+ "zag\000zag-Latn-SD",
+ "zah\000zah-Latn-NG",
+ "zaj\000zaj-Latn-TZ",
+ "zak\000zak-Latn-TZ",
+ "zam\000zam-Latn-MX",
+ "zao\000zao-Latn-MX",
+ "zap\000zap-Latn-MX",
+ "zaq\000zaq-Latn-MX",
+ "zar\000zar-Latn-MX",
+ "zas\000zas-Latn-MX",
+ "zat\000zat-Latn-MX",
+ "zau\000zau-Tibt-IN",
+ "zav\000zav-Latn-MX",
+ "zaw\000zaw-Latn-MX",
+ "zax\000zax-Latn-MX",
+ "zay\000zay-Latn-ET",
+ "zaz\000zaz-Latn-NG",
+ "zba\000zba-Arab-001",
+ "zbc\000zbc-Latn-MY",
+ "zbe\000zbe-Latn-MY",
+ "zbt\000zbt-Latn-ID",
+ "zbu\000zbu-Latn-NG",
+ "zbw\000zbw-Latn-MY",
+ "zca\000zca-Latn-MX",
+ "zch\000zch-Hani-CN",
+ "zdj\000zdj-Arab-KM",
+ "zea\000zea-Latn-NL",
+ "zeg\000zeg-Latn-PG",
+ "zeh\000zeh-Hani-CN",
+ "zem\000zem-Latn-NG",
+ "zen\000zen-Tfng-MR",
+ "zga\000zga-Latn-TZ",
+ "zgb\000zgb-Hani-CN",
+ "zgh\000zgh-Tfng-MA",
+ "zgm\000zgm-Hani-CN",
+ "zgn\000zgn-Hani-CN",
+ "zgr\000zgr-Latn-PG",
+ "zh\000zh-Hans-CN",
+ "zh-AU\000zh-Hant-AU",
+ "zh-BN\000zh-Hant-BN",
+ "zh-Bopo\000zh-Bopo-TW",
+ "zh-GB\000zh-Hant-GB",
+ "zh-GF\000zh-Hant-GF",
+ "zh-HK\000zh-Hant-HK",
+ "zh-Hanb\000zh-Hanb-TW",
+ "zh-Hant\000zh-Hant-TW",
+ "zh-ID\000zh-Hant-ID",
+ "zh-MO\000zh-Hant-MO",
+ "zh-PA\000zh-Hant-PA",
+ "zh-PF\000zh-Hant-PF",
+ "zh-PH\000zh-Hant-PH",
+ "zh-SR\000zh-Hant-SR",
+ "zh-TH\000zh-Hant-TH",
+ "zh-TW\000zh-Hant-TW",
+ "zh-US\000zh-Hant-US",
+ "zh-VN\000zh-Hant-VN",
+ "zhd\000zhd-Hani-CN",
+ "zhi\000zhi-Latn-NG",
+ "zhn\000zhn-Latn-CN",
+ "zhw\000zhw-Latn-CM",
+ "zia\000zia-Latn-PG",
+ "zik\000zik-Latn-PG",
+ "zil\000zil-Latn-GN",
+ "zim\000zim-Latn-TD",
+ "zin\000zin-Latn-TZ",
+ "ziw\000ziw-Latn-TZ",
+ "ziz\000ziz-Latn-NG",
+ "zka\000zka-Latn-ID",
+ "zkd\000zkd-Latn-MM",
+ "zko\000zko-Cyrl-RU",
+ "zkp\000zkp-Latn-BR",
+ "zkt\000zkt-Kits-CN",
+ "zku\000zku-Latn-AU",
+ "zkz\000zkz-Cyrl-RU",
+ "zla\000zla-Latn-CD",
+ "zlj\000zlj-Hani-CN",
+ "zlm\000zlm-Latn-MY",
+ "zln\000zln-Hani-CN",
+ "zlq\000zlq-Hani-CN",
+ "zlu\000zlu-Latn-NG",
+ "zma\000zma-Latn-AU",
+ "zmb\000zmb-Latn-CD",
+ "zmc\000zmc-Latn-AU",
+ "zmd\000zmd-Latn-AU",
+ "zme\000zme-Latn-AU",
+ "zmf\000zmf-Latn-CD",
+ "zmg\000zmg-Latn-AU",
+ "zmh\000zmh-Latn-PG",
+ "zmi\000zmi-Latn-MY",
+ "zmj\000zmj-Latn-AU",
+ "zmk\000zmk-Latn-AU",
+ "zml\000zml-Latn-AU",
+ "zmm\000zmm-Latn-AU",
+ "zmn\000zmn-Latn-GA",
+ "zmo\000zmo-Latn-SD",
+ "zmp\000zmp-Latn-CD",
+ "zmq\000zmq-Latn-CD",
+ "zmr\000zmr-Latn-AU",
+ "zms\000zms-Latn-CD",
+ "zmt\000zmt-Latn-AU",
+ "zmu\000zmu-Latn-AU",
+ "zmv\000zmv-Latn-AU",
+ "zmw\000zmw-Latn-CD",
+ "zmx\000zmx-Latn-CG",
+ "zmy\000zmy-Latn-AU",
+ "zmz\000zmz-Latn-CD",
+ "zna\000zna-Latn-TD",
+ "zne\000zne-Latn-CD",
+ "zng\000zng-Latn-VN",
+ "znk\000znk-Latn-AU",
+ "zns\000zns-Latn-NG",
+ "zoc\000zoc-Latn-MX",
+ "zoh\000zoh-Latn-MX",
+ "zom\000zom-Latn-IN",
+ "zoo\000zoo-Latn-MX",
+ "zoq\000zoq-Latn-MX",
+ "zor\000zor-Latn-MX",
+ "zos\000zos-Latn-MX",
+ "zpa\000zpa-Latn-MX",
+ "zpb\000zpb-Latn-MX",
+ "zpc\000zpc-Latn-MX",
+ "zpd\000zpd-Latn-MX",
+ "zpe\000zpe-Latn-MX",
+ "zpf\000zpf-Latn-MX",
+ "zpg\000zpg-Latn-MX",
+ "zph\000zph-Latn-MX",
+ "zpi\000zpi-Latn-MX",
+ "zpj\000zpj-Latn-MX",
+ "zpk\000zpk-Latn-MX",
+ "zpl\000zpl-Latn-MX",
+ "zpm\000zpm-Latn-MX",
+ "zpn\000zpn-Latn-MX",
+ "zpo\000zpo-Latn-MX",
+ "zpp\000zpp-Latn-MX",
+ "zpq\000zpq-Latn-MX",
+ "zpr\000zpr-Latn-MX",
+ "zps\000zps-Latn-MX",
+ "zpt\000zpt-Latn-MX",
+ "zpu\000zpu-Latn-MX",
+ "zpv\000zpv-Latn-MX",
+ "zpw\000zpw-Latn-MX",
+ "zpx\000zpx-Latn-MX",
+ "zpy\000zpy-Latn-MX",
+ "zpz\000zpz-Latn-MX",
+ "zqe\000zqe-Hani-CN",
+ "zrg\000zrg-Orya-IN",
+ "zrn\000zrn-Latn-TD",
+ "zro\000zro-Latn-EC",
+ "zrp\000zrp-Hebr-FR",
+ "zrs\000zrs-Latn-ID",
+ "zsa\000zsa-Latn-PG",
+ "zsr\000zsr-Latn-MX",
+ "zsu\000zsu-Latn-PG",
+ "zte\000zte-Latn-MX",
+ "ztg\000ztg-Latn-MX",
+ "ztl\000ztl-Latn-MX",
+ "ztm\000ztm-Latn-MX",
+ "ztn\000ztn-Latn-MX",
+ "ztp\000ztp-Latn-MX",
+ "ztq\000ztq-Latn-MX",
+ "zts\000zts-Latn-MX",
+ "ztt\000ztt-Latn-MX",
+ "ztu\000ztu-Latn-MX",
+ "ztx\000ztx-Latn-MX",
+ "zty\000zty-Latn-MX",
+ "zu\000zu-Latn-ZA",
+ "zuh\000zuh-Latn-PG",
+ "zum\000zum-Arab-OM",
+ "zun\000zun-Latn-US",
+ "zuy\000zuy-Latn-CM",
+ "zwa\000zwa-Ethi-ET",
+ "zyg\000zyg-Hani-CN",
+ "zyj\000zyj-Latn-CN",
+ "zyn\000zyn-Hani-CN",
+ "zyp\000zyp-Latn-MM",
+ "zza\000zza-Latn-TR",
+ "zzj\000zzj-Hani-CN",
+};
+const int likely_subtags_count = sizeof(likely_subtags_tab) / sizeof(likely_subtags_tab[0]);
+
+/* Calendar preference data: locale or region -> calendars by descending preference */
+const IntlPrefData cal_pref_tab[] = {
+ { "001", "gregorian" },
+ { "AE", "gregorian islamic-umalqura islamic islamic-civil islamic-tbla" },
+ { "AF", "persian gregorian islamic islamic-civil islamic-tbla" },
+ { "AL", "gregorian islamic-civil islamic-tbla" },
+ { "AZ", "gregorian islamic-civil islamic-tbla" },
+ { "BD", "gregorian islamic islamic-civil islamic-tbla" },
+ { "BH", "gregorian islamic-umalqura islamic islamic-civil islamic-tbla" },
+ { "CN", "gregorian chinese" },
+ { "CX", "gregorian chinese" },
+ { "DJ", "gregorian islamic islamic-civil islamic-tbla" },
+ { "DZ", "gregorian islamic islamic-civil islamic-tbla" },
+ { "EG", "gregorian coptic islamic islamic-civil islamic-tbla" },
+ { "EH", "gregorian islamic islamic-civil islamic-tbla" },
+ { "ER", "gregorian islamic islamic-civil islamic-tbla" },
+ { "ET", "gregorian ethiopic" },
+ { "HK", "gregorian chinese" },
+ { "ID", "gregorian islamic islamic-civil islamic-tbla" },
+ { "IL", "gregorian hebrew islamic islamic-civil islamic-tbla" },
+ { "IN", "gregorian indian" },
+ { "IQ", "gregorian islamic islamic-civil islamic-tbla" },
+ { "IR", "persian gregorian islamic islamic-civil islamic-tbla" },
+ { "JO", "gregorian islamic islamic-civil islamic-tbla" },
+ { "JP", "gregorian japanese" },
+ { "KM", "gregorian islamic islamic-civil islamic-tbla" },
+ { "KR", "gregorian dangi" },
+ { "KW", "gregorian islamic-umalqura islamic islamic-civil islamic-tbla" },
+ { "LB", "gregorian islamic islamic-civil islamic-tbla" },
+ { "LY", "gregorian islamic islamic-civil islamic-tbla" },
+ { "MA", "gregorian islamic islamic-civil islamic-tbla" },
+ { "MO", "gregorian chinese" },
+ { "MR", "gregorian islamic islamic-civil islamic-tbla" },
+ { "MV", "gregorian islamic-civil islamic-tbla" },
+ { "MY", "gregorian islamic islamic-civil islamic-tbla" },
+ { "NE", "gregorian islamic islamic-civil islamic-tbla" },
+ { "OM", "gregorian islamic islamic-civil islamic-tbla" },
+ { "PK", "gregorian islamic islamic-civil islamic-tbla" },
+ { "PS", "gregorian islamic islamic-civil islamic-tbla" },
+ { "QA", "gregorian islamic-umalqura islamic islamic-civil islamic-tbla" },
+ { "SA", "gregorian islamic-umalqura islamic islamic-rgsa" },
+ { "SD", "gregorian islamic islamic-civil islamic-tbla" },
+ { "SG", "gregorian chinese" },
+ { "SY", "gregorian islamic islamic-civil islamic-tbla" },
+ { "TD", "gregorian islamic islamic-civil islamic-tbla" },
+ { "TH", "buddhist gregorian" },
+ { "TJ", "gregorian islamic-civil islamic-tbla" },
+ { "TM", "gregorian islamic-civil islamic-tbla" },
+ { "TN", "gregorian islamic islamic-civil islamic-tbla" },
+ { "TR", "gregorian islamic-civil islamic-tbla" },
+ { "TW", "gregorian roc chinese" },
+ { "UZ", "gregorian islamic-civil islamic-tbla" },
+ { "XK", "gregorian islamic-civil islamic-tbla" },
+ { "YE", "gregorian islamic islamic-civil islamic-tbla" },
+};
+const int cal_pref_count = sizeof(cal_pref_tab) / sizeof(cal_pref_tab[0]);
+
+/* Time data: locale or region -> hour cycles by descending preference */
+const IntlPrefData time_data_tab[] = {
+ { "001", "h23 h12" },
+ { "419", "h12 h23" },
+ { "AC", "h23 h12" },
+ { "AD", "h23 h12" },
+ { "AE", "h12 h23" },
+ { "AF", "h23 h12" },
+ { "AG", "h12 h23" },
+ { "AI", "h23 h12" },
+ { "AL", "h12 h23" },
+ { "AM", "h23 h12" },
+ { "AO", "h23 h12" },
+ { "AR", "h12 h23" },
+ { "AS", "h12 h23" },
+ { "AT", "h23 h12" },
+ { "AU", "h12 h23" },
+ { "AW", "h23 h12" },
+ { "AX", "h23" },
+ { "AZ", "h23 h12" },
+ { "BA", "h23 h12" },
+ { "BB", "h12 h23" },
+ { "BD", "h12 h23" },
+ { "BE", "h23 h12" },
+ { "BF", "h23 h12" },
+ { "BG", "h23 h12" },
+ { "BH", "h12 h23" },
+ { "BI", "h23 h12" },
+ { "BJ", "h23 h12" },
+ { "BL", "h23 h12" },
+ { "BM", "h12 h23" },
+ { "BN", "h12 h23" },
+ { "BO", "h12 h23" },
+ { "BQ", "h23" },
+ { "BR", "h23 h12" },
+ { "BS", "h12 h23" },
+ { "BT", "h12 h23" },
+ { "BW", "h23 h12" },
+ { "BY", "h23 h12" },
+ { "BZ", "h23 h12" },
+ { "CA", "h12 h23" },
+ { "CC", "h23 h12" },
+ { "CD", "h23 h12" },
+ { "CF", "h23 h12" },
+ { "CG", "h23 h12" },
+ { "CH", "h23 h12" },
+ { "CI", "h23 h12" },
+ { "CK", "h23 h12" },
+ { "CL", "h12 h23" },
+ { "CM", "h23 h12" },
+ { "CN", "h23 h12" },
+ { "CO", "h12 h23" },
+ { "CP", "h23" },
+ { "CR", "h12 h23" },
+ { "CU", "h12 h23" },
+ { "CV", "h23 h12" },
+ { "CW", "h23 h12" },
+ { "CX", "h23 h12" },
+ { "CY", "h12 h23" },
+ { "CZ", "h23" },
+ { "DE", "h23 h12" },
+ { "DG", "h23 h12" },
+ { "DJ", "h12 h23" },
+ { "DK", "h23" },
+ { "DM", "h12 h23" },
+ { "DO", "h12 h23" },
+ { "DZ", "h12 h23" },
+ { "EA", "h23 h12" },
+ { "EC", "h12 h23" },
+ { "EE", "h23 h12" },
+ { "EG", "h12 h23" },
+ { "EH", "h12 h23" },
+ { "ER", "h12 h23" },
+ { "ES", "h23 h12" },
+ { "ET", "h12 h23" },
+ { "FI", "h23" },
+ { "FJ", "h12 h23" },
+ { "FK", "h23 h12" },
+ { "FM", "h12 h23" },
+ { "FO", "h23 h12" },
+ { "FR", "h23 h12" },
+ { "GA", "h23 h12" },
+ { "GB", "h23 h12" },
+ { "GD", "h12 h23" },
+ { "GE", "h23 h12" },
+ { "GF", "h23 h12" },
+ { "GG", "h23 h12" },
+ { "GH", "h12 h23" },
+ { "GI", "h23 h12" },
+ { "GL", "h23 h12" },
+ { "GM", "h12 h23" },
+ { "GN", "h23 h12" },
+ { "GP", "h23 h12" },
+ { "GQ", "h23 h12" },
+ { "GR", "h12 h23" },
+ { "GS", "h23 h12" },
+ { "GT", "h12 h23" },
+ { "GU", "h12 h23" },
+ { "GW", "h23 h12" },
+ { "GY", "h12 h23" },
+ { "HK", "h12 h23" },
+ { "HN", "h12 h23" },
+ { "HR", "h23 h12" },
+ { "HU", "h23 h12" },
+ { "IC", "h23 h12" },
+ { "ID", "h23" },
+ { "IE", "h23 h12" },
+ { "IL", "h23 h12" },
+ { "IM", "h23 h12" },
+ { "IN", "h12 h23" },
+ { "IO", "h23 h12" },
+ { "IQ", "h12 h23" },
+ { "IR", "h23 h12" },
+ { "IS", "h23" },
+ { "IT", "h23 h12" },
+ { "JE", "h23 h12" },
+ { "JM", "h12 h23" },
+ { "JO", "h12 h23" },
+ { "JP", "h23 h11 h12" },
+ { "KE", "h23 h12" },
+ { "KG", "h23 h12" },
+ { "KH", "h12 h23" },
+ { "KI", "h12 h23" },
+ { "KM", "h23 h12" },
+ { "KN", "h12 h23" },
+ { "KP", "h12 h23" },
+ { "KR", "h12 h23" },
+ { "KW", "h12 h23" },
+ { "KY", "h12 h23" },
+ { "KZ", "h23 h12" },
+ { "LA", "h23 h12" },
+ { "LB", "h12 h23" },
+ { "LC", "h12 h23" },
+ { "LI", "h23 h12" },
+ { "LK", "h23 h12" },
+ { "LR", "h12 h23" },
+ { "LS", "h12 h23" },
+ { "LT", "h23 h12" },
+ { "LU", "h23 h12" },
+ { "LV", "h23 h12" },
+ { "LY", "h12 h23" },
+ { "MA", "h23 h12" },
+ { "MC", "h23 h12" },
+ { "MD", "h23 h12" },
+ { "ME", "h23 h12" },
+ { "MF", "h23 h12" },
+ { "MG", "h23 h12" },
+ { "MH", "h12 h23" },
+ { "MK", "h23 h12" },
+ { "ML", "h23" },
+ { "MM", "h23 h12" },
+ { "MN", "h23 h12" },
+ { "MO", "h12 h23" },
+ { "MP", "h12 h23" },
+ { "MQ", "h23 h12" },
+ { "MR", "h12 h23" },
+ { "MS", "h23 h12" },
+ { "MT", "h23 h12" },
+ { "MU", "h23 h12" },
+ { "MV", "h23 h12" },
+ { "MW", "h12 h23" },
+ { "MX", "h12 h23" },
+ { "MY", "h12 h23" },
+ { "MZ", "h23 h12" },
+ { "NA", "h12 h23" },
+ { "NC", "h23 h12" },
+ { "NE", "h23" },
+ { "NF", "h23 h12" },
+ { "NG", "h23 h12" },
+ { "NI", "h12 h23" },
+ { "NL", "h23 h12" },
+ { "NO", "h23 h12" },
+ { "NP", "h23 h12" },
+ { "NR", "h23 h12" },
+ { "NU", "h23 h12" },
+ { "NZ", "h12 h23" },
+ { "OM", "h12 h23" },
+ { "PA", "h12 h23" },
+ { "PE", "h12 h23" },
+ { "PF", "h23 h12" },
+ { "PG", "h12 h23" },
+ { "PH", "h12 h23" },
+ { "PK", "h12 h23" },
+ { "PL", "h23 h12" },
+ { "PM", "h23 h12" },
+ { "PN", "h23 h12" },
+ { "PR", "h12 h23" },
+ { "PS", "h12 h23" },
+ { "PT", "h23 h12" },
+ { "PW", "h12 h23" },
+ { "PY", "h12 h23" },
+ { "QA", "h12 h23" },
+ { "RE", "h23 h12" },
+ { "RO", "h23 h12" },
+ { "RS", "h23 h12" },
+ { "RU", "h23" },
+ { "RW", "h23 h12" },
+ { "SA", "h12 h23" },
+ { "SB", "h12 h23" },
+ { "SC", "h23 h12" },
+ { "SD", "h12 h23" },
+ { "SE", "h23" },
+ { "SG", "h12 h23" },
+ { "SH", "h23 h12" },
+ { "SI", "h23 h12" },
+ { "SJ", "h23" },
+ { "SK", "h23" },
+ { "SL", "h12 h23" },
+ { "SM", "h23 h12" },
+ { "SN", "h23 h12" },
+ { "SO", "h12 h23" },
+ { "SR", "h23 h12" },
+ { "SS", "h12 h23" },
+ { "ST", "h23 h12" },
+ { "SV", "h12 h23" },
+ { "SX", "h23 h12" },
+ { "SY", "h12 h23" },
+ { "SZ", "h12 h23" },
+ { "TA", "h23 h12" },
+ { "TC", "h12 h23" },
+ { "TD", "h12 h23" },
+ { "TF", "h23 h12" },
+ { "TG", "h23 h12" },
+ { "TH", "h23 h12" },
+ { "TJ", "h23 h12" },
+ { "TL", "h23 h12" },
+ { "TM", "h23 h12" },
+ { "TN", "h12 h23" },
+ { "TO", "h12 h23" },
+ { "TR", "h23 h12" },
+ { "TT", "h12 h23" },
+ { "TW", "h12 h23" },
+ { "TZ", "h23 h12" },
+ { "UA", "h23 h12" },
+ { "UG", "h23 h12" },
+ { "UM", "h12 h23" },
+ { "US", "h12 h23" },
+ { "UY", "h12 h23" },
+ { "UZ", "h23 h12" },
+ { "VA", "h23 h12" },
+ { "VC", "h12 h23" },
+ { "VE", "h12 h23" },
+ { "VG", "h12 h23" },
+ { "VI", "h12 h23" },
+ { "VN", "h23 h12" },
+ { "VU", "h12 h23" },
+ { "WF", "h23 h12" },
+ { "WS", "h12 h23" },
+ { "XK", "h23 h12" },
+ { "YE", "h12 h23" },
+ { "YT", "h23 h12" },
+ { "ZA", "h23 h12" },
+ { "ZM", "h12 h23" },
+ { "ZW", "h23 h12" },
+ { "af-ZA", "h23 h12" },
+ { "ar-001", "h12 h23" },
+ { "ca-ES", "h23 h12" },
+ { "en-001", "h12 h23" },
+ { "en-HK", "h12 h23" },
+ { "en-IL", "h23 h12" },
+ { "en-MY", "h12 h23" },
+ { "es-BR", "h23 h12" },
+ { "es-ES", "h23 h12" },
+ { "es-GQ", "h23 h12" },
+ { "fr-CA", "h23 h12" },
+ { "gl-ES", "h23 h12" },
+ { "gu-IN", "h12 h23" },
+ { "hi-IN", "h12 h23" },
+ { "it-CH", "h23 h12" },
+ { "it-IT", "h23 h12" },
+ { "kn-IN", "h12 h23" },
+ { "ku-SY", "h23 h12" },
+ { "ml-IN", "h12 h23" },
+ { "mr-IN", "h12 h23" },
+ { "pa-IN", "h12 h23" },
+ { "ta-IN", "h12 h23" },
+ { "te-IN", "h12 h23" },
+ { "zu-ZA", "h23 h12" },
+};
+const int time_data_count = sizeof(time_data_tab) / sizeof(time_data_tab[0]);
+
+/* Week data: region -> first day of week and weekend range (ISO 8601 days) */
+const IntlWeekData week_data_tab[] = {
+ { "001", 1, 6, 7 },
+ { "AD", 1, 6, 7 },
+ { "AE", 1, 6, 7 },
+ { "AF", 6, 4, 5 },
+ { "AG", 7, 6, 7 },
+ { "AI", 1, 6, 7 },
+ { "AL", 1, 6, 7 },
+ { "AM", 1, 6, 7 },
+ { "AN", 1, 6, 7 },
+ { "AR", 1, 6, 7 },
+ { "AS", 7, 6, 7 },
+ { "AT", 1, 6, 7 },
+ { "AU", 1, 6, 7 },
+ { "AX", 1, 6, 7 },
+ { "AZ", 1, 6, 7 },
+ { "BA", 1, 6, 7 },
+ { "BD", 7, 6, 7 },
+ { "BE", 1, 6, 7 },
+ { "BG", 1, 6, 7 },
+ { "BH", 6, 5, 6 },
+ { "BM", 1, 6, 7 },
+ { "BN", 1, 6, 7 },
+ { "BR", 7, 6, 7 },
+ { "BS", 7, 6, 7 },
+ { "BT", 7, 6, 7 },
+ { "BW", 7, 6, 7 },
+ { "BY", 1, 6, 7 },
+ { "BZ", 7, 6, 7 },
+ { "CA", 7, 6, 7 },
+ { "CH", 1, 6, 7 },
+ { "CL", 1, 6, 7 },
+ { "CM", 1, 6, 7 },
+ { "CN", 1, 6, 7 },
+ { "CO", 7, 6, 7 },
+ { "CR", 1, 6, 7 },
+ { "CY", 1, 6, 7 },
+ { "CZ", 1, 6, 7 },
+ { "DE", 1, 6, 7 },
+ { "DJ", 6, 6, 7 },
+ { "DK", 1, 6, 7 },
+ { "DM", 7, 6, 7 },
+ { "DO", 7, 6, 7 },
+ { "DZ", 6, 5, 6 },
+ { "EC", 1, 6, 7 },
+ { "EE", 1, 6, 7 },
+ { "EG", 6, 5, 6 },
+ { "ES", 1, 6, 7 },
+ { "ET", 7, 6, 7 },
+ { "FI", 1, 6, 7 },
+ { "FJ", 1, 6, 7 },
+ { "FO", 1, 6, 7 },
+ { "FR", 1, 6, 7 },
+ { "GB", 1, 6, 7 },
+ { "GE", 1, 6, 7 },
+ { "GF", 1, 6, 7 },
+ { "GP", 1, 6, 7 },
+ { "GR", 1, 6, 7 },
+ { "GT", 7, 6, 7 },
+ { "GU", 7, 6, 7 },
+ { "HK", 7, 6, 7 },
+ { "HN", 7, 6, 7 },
+ { "HR", 1, 6, 7 },
+ { "HU", 1, 6, 7 },
+ { "ID", 7, 6, 7 },
+ { "IE", 1, 6, 7 },
+ { "IL", 7, 5, 6 },
+ { "IN", 7, 7, 7 },
+ { "IQ", 6, 5, 6 },
+ { "IR", 6, 5, 5 },
+ { "IS", 7, 6, 7 },
+ { "IT", 1, 6, 7 },
+ { "JM", 7, 6, 7 },
+ { "JO", 6, 5, 6 },
+ { "JP", 7, 6, 7 },
+ { "KE", 7, 6, 7 },
+ { "KG", 1, 6, 7 },
+ { "KH", 7, 6, 7 },
+ { "KR", 7, 6, 7 },
+ { "KW", 6, 5, 6 },
+ { "KZ", 1, 6, 7 },
+ { "LA", 7, 6, 7 },
+ { "LB", 1, 6, 7 },
+ { "LI", 1, 6, 7 },
+ { "LK", 1, 6, 7 },
+ { "LT", 1, 6, 7 },
+ { "LU", 1, 6, 7 },
+ { "LV", 1, 6, 7 },
+ { "LY", 6, 5, 6 },
+ { "MC", 1, 6, 7 },
+ { "MD", 1, 6, 7 },
+ { "ME", 1, 6, 7 },
+ { "MH", 7, 6, 7 },
+ { "MK", 1, 6, 7 },
+ { "MM", 7, 6, 7 },
+ { "MN", 1, 6, 7 },
+ { "MO", 7, 6, 7 },
+ { "MQ", 1, 6, 7 },
+ { "MT", 7, 6, 7 },
+ { "MV", 5, 6, 7 },
+ { "MX", 7, 6, 7 },
+ { "MY", 1, 6, 7 },
+ { "MZ", 7, 6, 7 },
+ { "NI", 7, 6, 7 },
+ { "NL", 1, 6, 7 },
+ { "NO", 1, 6, 7 },
+ { "NP", 7, 6, 7 },
+ { "NZ", 1, 6, 7 },
+ { "OM", 6, 5, 6 },
+ { "PA", 7, 6, 7 },
+ { "PE", 7, 6, 7 },
+ { "PH", 7, 6, 7 },
+ { "PK", 7, 6, 7 },
+ { "PL", 1, 6, 7 },
+ { "PR", 7, 6, 7 },
+ { "PT", 7, 6, 7 },
+ { "PY", 7, 6, 7 },
+ { "QA", 6, 5, 6 },
+ { "RE", 1, 6, 7 },
+ { "RO", 1, 6, 7 },
+ { "RS", 1, 6, 7 },
+ { "RU", 1, 6, 7 },
+ { "SA", 7, 5, 6 },
+ { "SD", 6, 5, 6 },
+ { "SE", 1, 6, 7 },
+ { "SG", 7, 6, 7 },
+ { "SI", 1, 6, 7 },
+ { "SK", 1, 6, 7 },
+ { "SM", 1, 6, 7 },
+ { "SV", 7, 6, 7 },
+ { "SY", 6, 5, 6 },
+ { "TH", 7, 6, 7 },
+ { "TJ", 1, 6, 7 },
+ { "TM", 1, 6, 7 },
+ { "TR", 1, 6, 7 },
+ { "TT", 7, 6, 7 },
+ { "TW", 7, 6, 7 },
+ { "UA", 1, 6, 7 },
+ { "UG", 1, 7, 7 },
+ { "UM", 7, 6, 7 },
+ { "US", 7, 6, 7 },
+ { "UY", 1, 6, 7 },
+ { "UZ", 1, 6, 7 },
+ { "VA", 1, 6, 7 },
+ { "VE", 7, 6, 7 },
+ { "VI", 7, 6, 7 },
+ { "VN", 1, 6, 7 },
+ { "WS", 7, 6, 7 },
+ { "XK", 1, 6, 7 },
+ { "YE", 7, 5, 6 },
+ { "ZA", 7, 6, 7 },
+ { "ZW", 7, 6, 7 },
+};
+const int week_data_count = sizeof(week_data_tab) / sizeof(week_data_tab[0]);
+
+/* Script direction: script -> 0 for left-to-right, 1 for right-to-left */
+const IntlScriptDir script_dir_tab[] = {
+ { "Adlm", 1 },
+ { "Aghb", 0 },
+ { "Ahom", 0 },
+ { "Arab", 1 },
+ { "Armi", 1 },
+ { "Armn", 0 },
+ { "Avst", 1 },
+ { "Bali", 0 },
+ { "Bamu", 0 },
+ { "Bass", 0 },
+ { "Batk", 0 },
+ { "Beng", 0 },
+ { "Berf", 0 },
+ { "Bhks", 0 },
+ { "Bopo", 0 },
+ { "Brah", 0 },
+ { "Bugi", 0 },
+ { "Buhd", 0 },
+ { "Cakm", 0 },
+ { "Cans", 0 },
+ { "Cari", 0 },
+ { "Cham", 0 },
+ { "Cher", 0 },
+ { "Chrs", 1 },
+ { "Copt", 0 },
+ { "Cpmn", 0 },
+ { "Cprt", 1 },
+ { "Cyrl", 0 },
+ { "Deva", 0 },
+ { "Diak", 0 },
+ { "Dogr", 0 },
+ { "Dsrt", 0 },
+ { "Dupl", 0 },
+ { "Egyp", 0 },
+ { "Elba", 0 },
+ { "Elym", 1 },
+ { "Ethi", 0 },
+ { "Gara", 1 },
+ { "Geor", 0 },
+ { "Glag", 0 },
+ { "Gong", 0 },
+ { "Gonm", 0 },
+ { "Goth", 0 },
+ { "Gran", 0 },
+ { "Grek", 0 },
+ { "Gujr", 0 },
+ { "Gukh", 0 },
+ { "Guru", 0 },
+ { "Hanb", 0 },
+ { "Hang", 0 },
+ { "Hani", 0 },
+ { "Hano", 0 },
+ { "Hans", 0 },
+ { "Hant", 0 },
+ { "Hatr", 1 },
+ { "Hebr", 1 },
+ { "Hira", 0 },
+ { "Hluw", 0 },
+ { "Hmng", 0 },
+ { "Hmnp", 0 },
+ { "Hung", 1 },
+ { "Ital", 0 },
+ { "Jamo", 0 },
+ { "Java", 0 },
+ { "Jpan", 0 },
+ { "Kali", 0 },
+ { "Kana", 0 },
+ { "Kawi", 0 },
+ { "Khar", 1 },
+ { "Khmr", 0 },
+ { "Khoj", 0 },
+ { "Kits", 0 },
+ { "Knda", 0 },
+ { "Kore", 0 },
+ { "Krai", 0 },
+ { "Kthi", 0 },
+ { "Lana", 0 },
+ { "Laoo", 0 },
+ { "Latn", 0 },
+ { "Lepc", 0 },
+ { "Limb", 0 },
+ { "Lina", 0 },
+ { "Linb", 0 },
+ { "Lisu", 0 },
+ { "Lyci", 0 },
+ { "Lydi", 1 },
+ { "Mahj", 0 },
+ { "Maka", 0 },
+ { "Mand", 1 },
+ { "Mani", 1 },
+ { "Marc", 0 },
+ { "Medf", 0 },
+ { "Mend", 1 },
+ { "Merc", 1 },
+ { "Mero", 1 },
+ { "Mlym", 0 },
+ { "Modi", 0 },
+ { "Mong", 0 },
+ { "Mroo", 0 },
+ { "Mtei", 0 },
+ { "Mult", 0 },
+ { "Mymr", 0 },
+ { "Nagm", 0 },
+ { "Nand", 0 },
+ { "Narb", 1 },
+ { "Nbat", 1 },
+ { "Newa", 0 },
+ { "Nkoo", 1 },
+ { "Nshu", 0 },
+ { "Ogam", 0 },
+ { "Olck", 0 },
+ { "Onao", 0 },
+ { "Orkh", 1 },
+ { "Orya", 0 },
+ { "Osge", 0 },
+ { "Osma", 0 },
+ { "Ougr", 1 },
+ { "Palm", 1 },
+ { "Pauc", 0 },
+ { "Perm", 0 },
+ { "Phag", 0 },
+ { "Phli", 1 },
+ { "Phlp", 1 },
+ { "Phnx", 1 },
+ { "Plrd", 0 },
+ { "Prti", 1 },
+ { "Rjng", 0 },
+ { "Rohg", 1 },
+ { "Runr", 0 },
+ { "Samr", 1 },
+ { "Sarb", 1 },
+ { "Saur", 0 },
+ { "Sgnw", 0 },
+ { "Shaw", 0 },
+ { "Shrd", 0 },
+ { "Sidd", 0 },
+ { "Sidt", 1 },
+ { "Sind", 0 },
+ { "Sinh", 0 },
+ { "Sogd", 1 },
+ { "Sogo", 1 },
+ { "Sora", 0 },
+ { "Soyo", 0 },
+ { "Sund", 0 },
+ { "Sunu", 0 },
+ { "Sylo", 0 },
+ { "Syrc", 1 },
+ { "Tagb", 0 },
+ { "Takr", 0 },
+ { "Tale", 0 },
+ { "Talu", 0 },
+ { "Taml", 0 },
+ { "Tang", 0 },
+ { "Tavt", 0 },
+ { "Tayo", 0 },
+ { "Telu", 0 },
+ { "Tfng", 0 },
+ { "Tglg", 0 },
+ { "Thaa", 1 },
+ { "Thai", 0 },
+ { "Tibt", 0 },
+ { "Tirh", 0 },
+ { "Tnsa", 0 },
+ { "Todr", 0 },
+ { "Tols", 0 },
+ { "Toto", 0 },
+ { "Tutg", 0 },
+ { "Ugar", 0 },
+ { "Vaii", 0 },
+ { "Vith", 0 },
+ { "Wara", 0 },
+ { "Wcho", 0 },
+ { "Xpeo", 0 },
+ { "Xsux", 0 },
+ { "Yezi", 1 },
+ { "Yiii", 0 },
+ { "Zanb", 0 },
+};
+const int script_dir_count = sizeof(script_dir_tab) / sizeof(script_dir_tab[0]);
+
const char *intl_supported_currencies[] = {
"ADP",
"AED",
#include "../quickjs.h"
#include "../cutils.h"
+#include "../temporal/temporal_private.h"
#include "intl_private.h"
static JSClassID js_locale_class_id;
if (!strcasecmp(key, "ca")) {
if (!strcasecmp(value, "islamicc")) return "islamic-civil";
if (!strcasecmp(value, "ethiopic-amete-alem")) return "ethioaa";
+ if (!strcasecmp(value, "gregorian")) return "gregory";
}
return value;
}
return JS_UNDEFINED;
}
-static JSValue js_locale_getCalendars(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+/* Split locale into base (before first extension singleton) and suffix */
+static void locale_split_base_suffix(const char *locale, char *base, int base_size, char *suffix, int suffix_size)
{
- JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
- if (!s)
- return JS_EXCEPTION;
- {
- JSValue arr = JS_NewArray(ctx);
- if (JS_IsException(arr))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, arr, 0, JS_NewString(ctx, "gregory"),
- JS_PROP_C_W_E);
- return arr;
+ int len = (int)strlen(locale);
+ int i = 0;
+ int ext_pos = -1;
+ base[0] = '\0';
+ suffix[0] = '\0';
+ while (i < len) {
+ int j = i;
+ while (j < len && locale[j] != '-') j++;
+ int slen = j - i;
+ if (slen == 1 && isalpha((unsigned char)locale[i]) && i > 0) {
+ ext_pos = i - 1; /* include leading dash */
+ break;
+ }
+ i = j + 1;
}
-}
-
-static JSValue js_locale_getTimeZones(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
-{
- JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
- if (!s)
- return JS_EXCEPTION;
- if (!s->region)
- return JS_UNDEFINED;
- {
- JSValue arr = JS_NewArray(ctx);
- if (JS_IsException(arr))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, arr, 0, JS_NewString(ctx, "UTC"),
- JS_PROP_C_W_E);
- return arr;
+ if (ext_pos >= 0) {
+ pstrcpy(base, base_size, locale);
+ base[ext_pos] = '\0';
+ pstrcpy(suffix, suffix_size, locale + ext_pos);
+ } else {
+ pstrcpy(base, base_size, locale);
}
}
-static int weekday_name_to_number(const char *s)
+/* --------------------------------------------------------------------- */
+/* UTS 35 likely subtags */
+/* --------------------------------------------------------------------- */
+
+static BOOL is_script_subtag(const char *s)
{
- if (!strcmp(s, "mon") || !strcmp(s, "1")) return 1;
- if (!strcmp(s, "tue") || !strcmp(s, "2")) return 2;
- if (!strcmp(s, "wed") || !strcmp(s, "3")) return 3;
- if (!strcmp(s, "thu") || !strcmp(s, "4")) return 4;
- if (!strcmp(s, "fri") || !strcmp(s, "5")) return 5;
- if (!strcmp(s, "sat") || !strcmp(s, "6")) return 6;
- if (!strcmp(s, "sun") || !strcmp(s, "7") || !strcmp(s, "0")) return 7;
- return 7;
+ int i, len = (int)strlen(s);
+ if (len != 4)
+ return FALSE;
+ for (i = 0; i < 4; i++) {
+ if (!isalpha((unsigned char)s[i]))
+ return FALSE;
+ }
+ return TRUE;
}
-static JSValue js_locale_getTextInfo(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+static BOOL is_region_subtag(const char *s)
{
- JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
- if (!s)
- return JS_EXCEPTION;
- {
- JSValue obj = JS_NewObject(ctx);
- if (JS_IsException(obj))
- return JS_EXCEPTION;
- {
- const char *dir = "ltr";
- if (s->language && (!strcmp(s->language, "ar") ||
- !strcmp(s->language, "he") ||
- !strcmp(s->language, "fa") ||
- !strcmp(s->language, "ur")))
- dir = "rtl";
- JS_DefinePropertyValueStr(ctx, obj, "direction",
- JS_NewString(ctx, dir), JS_PROP_C_W_E);
+ int i, len = (int)strlen(s);
+ if (len == 2) {
+ for (i = 0; i < 2; i++) {
+ if (!isalpha((unsigned char)s[i]))
+ return FALSE;
+ }
+ return TRUE;
+ }
+ if (len == 3) {
+ for (i = 0; i < 3; i++) {
+ if (!isdigit((unsigned char)s[i]))
+ return FALSE;
}
- return obj;
+ return TRUE;
}
+ return FALSE;
}
-static JSValue js_locale_getCollations(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+static BOOL is_alphanum_len(const char *s, int min_len, int max_len)
{
- if (!JS_GetOpaque2(ctx, this_val, js_locale_class_id))
- return JS_EXCEPTION;
- {
- JSValue arr = JS_NewArray(ctx);
- if (JS_IsException(arr))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, arr, 0, JS_NewString(ctx, "default"),
- JS_PROP_C_W_E);
- return arr;
+ int i, len = (int)strlen(s);
+ if (len < min_len || len > max_len)
+ return FALSE;
+ for (i = 0; i < len; i++) {
+ if (!isalnum((unsigned char)s[i]))
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/* Look up a key in the likely subtags data. Returns the associated
+ language-script-region value, or NULL if the key is unknown. */
+static const char *likely_subtags_lookup(const char *key)
+{
+ int lo = 0, hi = likely_subtags_count - 1;
+ while (lo <= hi) {
+ int mid = lo + (hi - lo) / 2;
+ const char *entry = likely_subtags_tab[mid];
+ int c = strcmp(entry, key);
+ if (c == 0)
+ return entry + strlen(entry) + 1;
+ if (c < 0)
+ lo = mid + 1;
+ else
+ hi = mid - 1;
}
+ return NULL;
}
-static JSValue js_locale_getHourCycles(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+/* Add Likely Subtags (UTS 35). Store the maximized form of the language,
+ script and region subtags in buf. The subtags which are present are kept,
+ the missing ones are taken from the matched entry. Returns 0 on success,
+ or -1 if no data matches (an error is signaled by the caller). */
+static int locale_add_likely_subtags(const char *lang, const char *script,
+ const char *region, char *buf, int buf_size)
{
- if (!JS_GetOpaque2(ctx, this_val, js_locale_class_id))
- return JS_EXCEPTION;
- {
- JSValue arr = JS_NewArray(ctx);
- if (JS_IsException(arr))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, arr, 0, JS_NewString(ctx, "h12"),
- JS_PROP_C_W_E);
- return arr;
+ char key[64], value[64], *vsubtags[4];
+ const char *found = NULL;
+ const char *prefix, *sc, *rg;
+ BOOL has_lang = lang && *lang && strcmp(lang, "und") != 0;
+ BOOL has_script = script && *script && strcmp(script, "Zzzz") != 0;
+ BOOL has_region = region && *region && strcmp(region, "ZZ") != 0;
+ int n;
+
+ prefix = has_lang ? lang : "und";
+ if (has_lang && has_script && has_region) {
+ /* already in maximal form */
+ snprintf(buf, buf_size, "%s-%s-%s", lang, script, region);
+ return 0;
+ }
+ /* Try the keys built from the subtags which are present, longest first */
+ if (!has_lang && has_script && has_region) {
+ snprintf(key, sizeof(key), "und-%s-%s", script, region);
+ found = likely_subtags_lookup(key);
+ }
+ if (!found && has_script) {
+ snprintf(key, sizeof(key), "%s-%s", prefix, script);
+ found = likely_subtags_lookup(key);
+ }
+ if (!found && has_region) {
+ snprintf(key, sizeof(key), "%s-%s", prefix, region);
+ found = likely_subtags_lookup(key);
+ }
+ if (!found) {
+ snprintf(key, sizeof(key), "%s", prefix);
+ found = likely_subtags_lookup(key);
+ }
+ if (!found)
+ return -1;
+ pstrcpy(value, sizeof(value), found);
+ n = locale_split_subtags(value, vsubtags, 4);
+ if (n != 3)
+ return -1;
+ sc = has_script ? script : vsubtags[1];
+ rg = has_region ? region : vsubtags[2];
+ snprintf(buf, buf_size, "%s", has_lang ? lang : vsubtags[0]);
+ if (*sc) {
+ pstrcat(buf, buf_size, "-");
+ pstrcat(buf, buf_size, sc);
+ }
+ if (*rg) {
+ pstrcat(buf, buf_size, "-");
+ pstrcat(buf, buf_size, rg);
}
+ return 0;
}
-static JSValue js_locale_getNumberingSystems(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+/* A locale base name split into its language, script, region and variant
+ subtags. The subtag pointers point into storage. */
+typedef struct {
+ char storage[256];
+ char *subtags[16];
+ int count;
+ const char *lang;
+ const char *script;
+ const char *region;
+ int first_variant;
+} LocaleNameParts;
+
+static int locale_parse_name(const char *name, LocaleNameParts *p)
{
- if (!JS_GetOpaque2(ctx, this_val, js_locale_class_id))
- return JS_EXCEPTION;
- {
- JSValue arr = JS_NewArray(ctx);
- if (JS_IsException(arr))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, arr, 0, JS_NewString(ctx, "latn"),
- JS_PROP_C_W_E);
- return arr;
+ memset(p, 0, sizeof(*p));
+ pstrcpy(p->storage, sizeof(p->storage), name);
+ p->count = locale_split_subtags(p->storage, p->subtags, 16);
+ if (p->count == 0)
+ return -1;
+ p->lang = p->subtags[0];
+ p->first_variant = 1;
+ if (p->count > 1 && is_script_subtag(p->subtags[1])) {
+ p->script = p->subtags[1];
+ p->first_variant = 2;
+ }
+ if (p->count > p->first_variant &&
+ is_region_subtag(p->subtags[p->first_variant])) {
+ p->region = p->subtags[p->first_variant];
+ p->first_variant++;
}
+ return 0;
}
-static JSValue js_locale_getWeekInfo(JSContext *ctx, JSValueConst this_val,
- int argc, JSValueConst *argv)
+/* Apply Add Likely Subtags to lang/script/region and append the variants of
+ name. Returns 0 on success, or -1 if an error is signaled. */
+static int locale_maximize_parts(const LocaleNameParts *name, const char *lang,
+ const char *script, const char *region,
+ char *out, int out_size)
{
- JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
- if (!s)
- return JS_EXCEPTION;
- {
- JSValue obj = JS_NewObject(ctx);
- int firstDay = 7;
- if (JS_IsException(obj))
- return JS_EXCEPTION;
- if (s->firstDayOfWeek)
- firstDay = weekday_name_to_number(s->firstDayOfWeek);
- JS_DefinePropertyValueStr(ctx, obj, "firstDay",
- JS_NewInt32(ctx, firstDay), JS_PROP_C_W_E);
- {
- JSValue weekend = JS_NewArray(ctx);
- if (JS_IsException(weekend))
- return JS_EXCEPTION;
- JS_DefinePropertyValueUint32(ctx, weekend, 0, JS_NewInt32(ctx, 6),
- JS_PROP_C_W_E);
- JS_DefinePropertyValueUint32(ctx, weekend, 1, JS_NewInt32(ctx, 7),
- JS_PROP_C_W_E);
- JS_DefinePropertyValueStr(ctx, obj, "weekend", weekend, JS_PROP_C_W_E);
- }
- return obj;
+ char res[256];
+ int i;
+ if (locale_add_likely_subtags(lang, script, region, res, sizeof(res)) < 0)
+ return -1;
+ pstrcpy(out, out_size, res);
+ for (i = name->first_variant; i < name->count; i++) {
+ pstrcat(out, out_size, "-");
+ pstrcat(out, out_size, name->subtags[i]);
}
+ return 0;
}
-/* Split locale into base (before first extension singleton) and suffix */
-static void locale_split_base_suffix(const char *locale, char *base, int base_size, char *suffix, int suffix_size)
+/* Build a locale from the given subtags, appending the variants of name. */
+static void locale_join_parts(const LocaleNameParts *name, const char *lang,
+ const char *script, const char *region,
+ char *out, int out_size)
{
- int len = (int)strlen(locale);
- int i = 0;
- int ext_pos = -1;
- base[0] = '\0';
- suffix[0] = '\0';
- while (i < len) {
- int j = i;
- while (j < len && locale[j] != '-') j++;
- int slen = j - i;
- if (slen == 1 && isalpha((unsigned char)locale[i]) && i > 0) {
- ext_pos = i - 1; /* include leading dash */
- break;
- }
- i = j + 1;
+ int i;
+ pstrcpy(out, out_size, lang);
+ if (script && *script) {
+ pstrcat(out, out_size, "-");
+ pstrcat(out, out_size, script);
}
- if (ext_pos >= 0) {
- pstrcpy(base, base_size, locale);
- base[ext_pos] = '\0';
- pstrcpy(suffix, suffix_size, locale + ext_pos);
- } else {
- pstrcpy(base, base_size, locale);
+ if (region && *region) {
+ pstrcat(out, out_size, "-");
+ pstrcat(out, out_size, region);
+ }
+ for (i = name->first_variant; i < name->count; i++) {
+ pstrcat(out, out_size, "-");
+ pstrcat(out, out_size, name->subtags[i]);
}
}
-/* Hard-coded likely subtags for common locales */
-static const char *locale_get_likely_subtags(const char *lang, const char *script, const char *region)
-{
- if (!lang[0]) return NULL;
- if (!strcmp(lang, "und")) {
- if (script && !strcmp(script, "Thai")) return "th-Thai-TH";
- if (region && !strcmp(region, "419")) return "es-Latn-419";
- if (region && !strcmp(region, "150")) return "en-Latn-150";
- if (region && !strcmp(region, "AT")) return "de-Latn-AT";
- if (region && !strcmp(region, "AQ")) return "en-Latn-AQ";
- if (script && !strcmp(script, "Cyrl") && region && !strcmp(region, "RO")) return "bg-Cyrl-RO";
- if (region && !strcmp(region, "CW")) return "pap";
- return "en-Latn-US";
- }
- if (!strcmp(lang, "en")) {
- if (script && !strcmp(script, "Shaw")) return "en-Shaw-GB";
- if (script && !strcmp(script, "Arab")) return "en-Arab-US";
- if (!script && region && !strcmp(region, "150")) return "en-Latn-150";
- if (script && !strcmp(script, "Latn") && region && !strcmp(region, "150")) return "en-Latn-150";
- if (!script && region && !strcmp(region, "AQ")) return "en-Latn-AQ";
- if (script && !strcmp(script, "Latn") && region && !strcmp(region, "AQ")) return "en-Latn-AQ";
- if (region && !strcmp(region, "GB")) return "en-Latn-GB";
- if (region && !strcmp(region, "FR")) return "en-Latn-FR";
- if (region && !strcmp(region, "US")) return "en-Latn-US";
- if (script && !strcmp(script, "Latn")) return "en-Latn-US";
- return "en-Latn-US";
- }
- if (!strcmp(lang, "sr")) return "sr-Cyrl-RS";
- if (!strcmp(lang, "zh")) {
- if (script && !strcmp(script, "Hant")) return "zh-Hant-TW";
- if (!script && region && !strcmp(region, "TW")) return "zh-Hant-TW";
- if (!script && region && !strcmp(region, "CN")) return "zh-Hans-CN";
- if (script && !strcmp(script, "Hans") && !region) return "zh-Hans-CN";
- if (!script && !region) return "zh-Hans-CN";
- }
- if (!strcmp(lang, "ja")) return "ja-Jpan-JP";
- if (!strcmp(lang, "jbo")) {
- if (!script && !region) return "jbo-Latn-001";
- if (script && !strcmp(script, "Latn") && !region) return "jbo-Latn-001";
- if (!script && region && !strcmp(region, "001")) return "jbo-Latn-001";
- }
- if (!strcmp(lang, "ro")) return "ro-Latn-RO";
- if (!strcmp(lang, "de")) {
- if (region && !strcmp(region, "AT")) return "de-Latn-AT";
- return "de-Latn-DE";
- }
- if (!strcmp(lang, "it")) {
- if (script && !strcmp(script, "Kana") && region && !strcmp(region, "CA")) return "it-Kana-CA";
- }
- if (!strcmp(lang, "ar")) {
- if (!script && !region) return "ar-Arab-EG";
- if (script && !strcmp(script, "Arab") && !region) return "ar-Arab-EG";
- if (!script && region && !strcmp(region, "EG")) return "ar-Arab-EG";
- }
- if (!strcmp(lang, "th")) {
- if (!script && !region) return "th-Thai-TH";
- if (!script && region && !strcmp(region, "TH")) return "th-Thai-TH";
- }
- if (!strcmp(lang, "es")) {
- if (!script && !region) return "es-Latn-ES";
- if (!script && region && !strcmp(region, "ES")) return "es-Latn-ES";
- if (!script && region && !strcmp(region, "419")) return "es-Latn-419";
- if (script && !strcmp(script, "Latn") && region && !strcmp(region, "419")) return "es-Latn-419";
- }
- if (!strcmp(lang, "fr")) {
- if (!script && !region) return "fr-Latn-FR";
- if (!script && region && !strcmp(region, "FR")) return "fr-Latn-FR";
- }
- if (!strcmp(lang, "pt")) {
- if (!script && !region) return "pt-Latn-PT";
- if (!script && region && !strcmp(region, "BR")) return "pt-Latn-BR";
- if (!script && region && !strcmp(region, "PT")) return "pt-Latn-PT";
- }
- if (!strcmp(lang, "ru")) {
- if (!script && !region) return "ru-Cyrl-RU";
- if (!script && region && !strcmp(region, "RU")) return "ru-Cyrl-RU";
- }
- if (!strcmp(lang, "bg")) {
- if (!script && !region) return "bg-Cyrl-BG";
- if (!script && region && !strcmp(region, "RO")) return "bg-Cyrl-RO";
- }
- if (!strcmp(lang, "uz")) {
- if (!script && !region) return "uz-Latn-UZ";
- if (!script && region && !strcmp(region, "UZ")) return "uz-Latn-UZ";
- }
- if (!strcmp(lang, "hi")) {
- if (!script && !region) return "hi-Deva-IN";
- }
- if (!strcmp(lang, "aa")) {
- if (!script && !region) return "aa-Latn-ET";
- }
- if (!strcmp(lang, "he")) {
- if (!script && !region) return "he-Hebr-IL";
- }
- if (!strcmp(lang, "cs")) {
- if (!script && !region) return "cs-Latn-CZ";
- }
- if (!strcmp(lang, "hy")) {
- if (!script && !region) return "hy-Armn-AM";
- }
- if (!strcmp(lang, "hyw")) {
- if (!script && !region) return "hyw-Armn-AM";
- }
- if (!strcmp(lang, "hak")) {
- if (!script && !region) return "hak-Hans-CN";
- if (script && !strcmp(script, "Hans") && !region) return "hak-Hans-CN";
- if (!script && region && !strcmp(region, "CN")) return "hak-Hans-CN";
- }
- if (!strcmp(lang, "hsn")) {
- if (!script && !region) return "hsn-Hans-CN";
- if (script && !strcmp(script, "Hans") && !region) return "hsn-Hans-CN";
- if (!script && region && !strcmp(region, "CN")) return "hsn-Hans-CN";
- }
- if (!strcmp(lang, "aae")) {
- if (!script && !region) return "aae-Latn-IT";
- if (script && !strcmp(script, "Latn") && !region) return "aae-Latn-IT";
- }
- if (!strcmp(lang, "und")) {
- if (region && !strcmp(region, "CW")) return "pap";
- }
- if (!strcmp(lang, "pap")) {
- return "pap";
- }
- return NULL;
+/* Maximize a locale base name. Returns 0 and stores the result in out, or
+ -1 if the Add Likely Subtags algorithm signaled an error. */
+static int locale_maximize_to(const char *base, char *out, int out_size)
+{
+ LocaleNameParts name;
+ if (locale_parse_name(base, &name) < 0)
+ return -1;
+ return locale_maximize_parts(&name, name.lang, name.script, name.region,
+ out, out_size);
}
static char *locale_maximize_base(JSContext *ctx, const char *base)
{
- char buf[256];
- char *subtags[16];
- int n = 0;
- const char *likely;
- int idx;
- DynBuf db;
- pstrcpy(buf, sizeof(buf), base);
- n = locale_split_subtags(buf, subtags, 16);
- if (n == 0) return NULL;
- {
- const char *lang = subtags[0];
- const char *script = NULL;
- const char *region = NULL;
- idx = 1;
- if (idx < n && strlen(subtags[idx]) == 4 &&
- isalpha((unsigned char)subtags[idx][0])) {
- script = subtags[idx++];
- }
- if (idx < n && (strlen(subtags[idx]) == 2 || strlen(subtags[idx]) == 3)) {
- int is_region = 1;
- int j;
- for (j = 0; j < (int)strlen(subtags[idx]); j++) {
- if (strlen(subtags[idx]) == 2 && !isalpha((unsigned char)subtags[idx][j])) is_region = 0;
- if (strlen(subtags[idx]) == 3 && !isdigit((unsigned char)subtags[idx][j])) is_region = 0;
- }
- if (is_region) region = subtags[idx++];
- }
- likely = locale_get_likely_subtags(lang, script, region);
- if (likely) {
- js_intl_dbuf_init(ctx, &db);
- dbuf_putstr(&db, likely);
- /* append remaining variants */
- for (; idx < n; idx++) {
- dbuf_putc(&db, (uint8_t)'-');
- dbuf_putstr(&db, subtags[idx]);
- }
- dbuf_putc(&db, '\0');
- if (dbuf_error(&db)) {
- dbuf_free(&db);
- return NULL;
- }
- return (char *)db.buf;
- }
- }
+ char res[256];
+ if (locale_maximize_to(base, res, sizeof(res)) == 0)
+ return js_strdup(ctx, res);
return js_strdup(ctx, base);
}
static char *locale_minimize_base(JSContext *ctx, const char *base)
{
- char *max_full = locale_maximize_base(ctx, base);
- char current[256];
- int changed;
- const char *max_lang;
- if (!max_full) return js_strdup(ctx, base);
- pstrcpy(current, sizeof(current), base);
- /* Hard-coded special cases for minimize */
- if (!strcmp(current, "zh-Hant")) {
- js_free(ctx, max_full);
- return js_strdup(ctx, "zh-TW");
- }
- /* First, replace und with likely language */
- max_lang = max_full;
- {
- char *dash = strchr(max_full, '-');
- if (dash) {
- static char mb[256];
- pstrcpy(mb, sizeof(mb), max_full);
- mb[dash - max_full] = '\0';
- max_lang = mb;
- }
- }
- if (!strncmp(current, "und", 3) && (current[3] == '\0' || current[3] == '-') &&
- strcmp(max_lang, "und")) {
- char replaced[256];
- replaced[0] = '\0';
- pstrcpy(replaced, sizeof(replaced), max_lang);
- if (current[3] == '-') {
- pstrcat(replaced, sizeof(replaced), current + 3);
- }
- pstrcpy(current, sizeof(current), replaced);
- }
- /* Try removing region, then script, restarting from region after each success */
- do {
- char tb[256];
- char *ts[16];
- int tn;
- char without[256];
- char *max_without;
- changed = 0;
- pstrcpy(tb, sizeof(tb), current);
- tn = locale_split_subtags(tb, ts, 16);
- /* Try removing region */
- if (tn >= 2) {
- int has_script = (strlen(ts[1]) == 4 && isalpha((unsigned char)ts[1][0]));
- int is_region = 1;
- int j;
- int ridx = has_script ? 2 : 1;
- if (ridx < tn) {
- for (j = 0; j < (int)strlen(ts[ridx]); j++) {
- if (strlen(ts[ridx]) == 2 && !isalpha((unsigned char)ts[ridx][j])) is_region = 0;
- if (strlen(ts[ridx]) == 3 && !isdigit((unsigned char)ts[ridx][j])) is_region = 0;
- }
- if (is_region) {
- without[0] = '\0';
- pstrcpy(without, sizeof(without), ts[0]);
- if (has_script) {
- pstrcat(without, sizeof(without), "-");
- pstrcat(without, sizeof(without), ts[1]);
- }
- {
- int k = ridx + 1;
- for (; k < tn; k++) {
- pstrcat(without, sizeof(without), "-");
- pstrcat(without, sizeof(without), ts[k]);
- }
- }
- max_without = locale_maximize_base(ctx, without);
- if (max_without && !strcmp(max_without, max_full)) {
- pstrcpy(current, sizeof(current), without);
- changed = 1;
- }
- js_free(ctx, max_without);
- }
- }
- }
- if (changed) continue;
- /* Try removing script */
- if (tn >= 2 && strlen(ts[1]) == 4 && isalpha((unsigned char)ts[1][0])) {
- without[0] = '\0';
- pstrcpy(without, sizeof(without), ts[0]);
- {
- int k = 2;
- for (; k < tn; k++) {
- pstrcat(without, sizeof(without), "-");
- pstrcat(without, sizeof(without), ts[k]);
- }
- }
- max_without = locale_maximize_base(ctx, without);
- if (max_without && !strcmp(max_without, max_full)) {
- pstrcpy(current, sizeof(current), without);
- changed = 1;
- }
- js_free(ctx, max_without);
- }
- } while (changed);
- js_free(ctx, max_full);
- return js_strdup(ctx, current);
+ LocaleNameParts name, maximal;
+ char max[256], test[256], res[256];
+
+ if (locale_parse_name(base, &name) < 0)
+ return js_strdup(ctx, base);
+ if (locale_maximize_parts(&name, name.lang, name.script, name.region,
+ max, sizeof(max)) < 0)
+ return js_strdup(ctx, base);
+ if (locale_parse_name(max, &maximal) < 0)
+ return js_strdup(ctx, max);
+ /* Remove Likely Subtags: try to remove the script and the region first,
+ then the script only, then the region only. A subtag is removed only
+ if the result still maximizes back to the maximal form. */
+ if (locale_maximize_parts(&maximal, maximal.lang, NULL, NULL,
+ test, sizeof(test)) == 0 &&
+ !strcmp(test, max)) {
+ locale_join_parts(&maximal, maximal.lang, NULL, NULL, res, sizeof(res));
+ return js_strdup(ctx, res);
+ }
+ if (maximal.region &&
+ locale_maximize_parts(&maximal, maximal.lang, NULL, maximal.region,
+ test, sizeof(test)) == 0 &&
+ !strcmp(test, max)) {
+ locale_join_parts(&maximal, maximal.lang, NULL, maximal.region,
+ res, sizeof(res));
+ return js_strdup(ctx, res);
+ }
+ if (maximal.script &&
+ locale_maximize_parts(&maximal, maximal.lang, maximal.script, NULL,
+ test, sizeof(test)) == 0 &&
+ !strcmp(test, max)) {
+ locale_join_parts(&maximal, maximal.lang, maximal.script, NULL,
+ res, sizeof(res));
+ return js_strdup(ctx, res);
+ }
+ return js_strdup(ctx, max);
}
static JSValue js_locale_minimize(JSContext *ctx, JSValueConst this_val,
return JS_DupValue(ctx, this_val);
}
+/* --------------------------------------------------------------------- */
+/* Intl.Locale info methods (ECMA-402) */
+/* --------------------------------------------------------------------- */
+
+/* Create an Array holding the n first strings of items. */
+static JSValue locale_new_string_array(JSContext *ctx, const char *const *items, int n)
+{
+ JSValue arr = JS_NewArray(ctx);
+ int i;
+ if (JS_IsException(arr))
+ return arr;
+ for (i = 0; i < n; i++) {
+ if (JS_DefinePropertyValueUint32(ctx, arr, (uint32_t)i,
+ JS_NewString(ctx, items[i]),
+ JS_PROP_C_W_E) < 0) {
+ JS_FreeValue(ctx, arr);
+ return JS_EXCEPTION;
+ }
+ }
+ return arr;
+}
+
+/* Split a space separated list, modifying buf. */
+static int locale_split_list(char *buf, char **items, int max_items)
+{
+ int n = 0;
+ char *p = buf;
+ while (*p && n < max_items) {
+ char *start = p;
+ while (*p && *p != ' ')
+ p++;
+ items[n++] = start;
+ if (*p == ' ') {
+ *p = '\0';
+ p++;
+ }
+ }
+ return n;
+}
+
+static int cmp_string(const void *a, const void *b)
+{
+ return strcmp(*(const char *const *)a, *(const char *const *)b);
+}
+
+/* Find the entry matching key in a table sorted by key. */
+static const IntlPrefData *locale_find_pref(const IntlPrefData *tab, int count,
+ const char *key)
+{
+ int lo = 0, hi = count - 1;
+ while (lo <= hi) {
+ int mid = lo + (hi - lo) / 2;
+ int c = strcmp(tab[mid].key, key);
+ if (c == 0)
+ return &tab[mid];
+ if (c < 0)
+ lo = mid + 1;
+ else
+ hi = mid - 1;
+ }
+ return NULL;
+}
+
+static const IntlWeekData *locale_find_week(const char *region)
+{
+ int lo = 0, hi = week_data_count - 1;
+ while (lo <= hi) {
+ int mid = lo + (hi - lo) / 2;
+ int c = strcmp(week_data_tab[mid].region, region);
+ if (c == 0)
+ return &week_data_tab[mid];
+ if (c < 0)
+ lo = mid + 1;
+ else
+ hi = mid - 1;
+ }
+ return NULL;
+}
+
+/* LookupMatchingLocaleByPrefix: return the locale data matching the
+ unicode_language_id of locale, or NULL if there is no match. */
+static const LocaleData *locale_match_data(const char *locale)
+{
+ char base[256], suffix[256];
+ int i;
+ locale_split_base_suffix(locale, base, sizeof(base), suffix, sizeof(suffix));
+ for (i = 0; i < locale_data_count; i++) {
+ if (!strcmp(locale_data_table[i].locale, base))
+ return &locale_data_table[i];
+ }
+ for (i = 0; i < locale_data_count; i++) {
+ const char *p = locale_data_table[i].locale;
+ int len = (int)strlen(p);
+ if (!strncmp(base, p, (size_t)len) && (base[len] == '\0' || base[len] == '-'))
+ return &locale_data_table[i];
+ }
+ return NULL;
+}
+
+/* CanonicalUnicodeSubdivision (ECMA-402): return the region carried by the
+ "sd" or "rg" keyword of the locale, or NULL. */
+static char *locale_canonical_subdivision(JSContext *ctx, const char *locale,
+ const char *key)
+{
+ char *value = js_intl_locale_get_unicode_key(ctx, locale, key);
+ char buf[64], *parts[3], rbuf[8];
+ int n, i, len;
+
+ if (!value)
+ return NULL;
+ pstrcpy(buf, sizeof(buf), value);
+ js_free(ctx, value);
+ /* unicode_subdivision_id = [unicode_region_subtag "-"] unicode_subdivision_subtag */
+ n = locale_split_subtags(buf, parts, 3);
+ rbuf[0] = '\0';
+ if (n == 2) {
+ if (is_region_subtag(parts[0]) && is_alphanum_len(parts[1], 4, 8))
+ pstrcpy(rbuf, sizeof(rbuf), parts[0]);
+ } else if (n == 1 && is_alphanum_len(parts[0], 4, 8)) {
+ /* the region is the longest prefix matching unicode_region_subtag */
+ len = (int)strlen(parts[0]);
+ for (i = 3; i >= 2; i--) {
+ if (len < i)
+ continue;
+ pstrcpy(rbuf, sizeof(rbuf), parts[0]);
+ rbuf[i] = '\0';
+ if (is_region_subtag(rbuf))
+ break;
+ rbuf[0] = '\0';
+ }
+ }
+ if (!rbuf[0])
+ return NULL;
+ for (i = 0; rbuf[i]; i++)
+ rbuf[i] = toupper((unsigned char)rbuf[i]);
+ return js_strdup(ctx, rbuf);
+}
+
+/* RegionPreference (ECMA-402): compute the region used to look up the
+ calendar, time and week preference data, and the "rg" region override.
+ The override must be freed by the caller. */
+static void locale_region_preference(JSContext *ctx, JSLocaleData *s,
+ char *region, int region_size, char **override)
+{
+ char base[256], suffix[256], max[256];
+ char *sd;
+ LocaleNameParts name;
+
+ region[0] = '\0';
+ *override = locale_canonical_subdivision(ctx, s->locale, "rg");
+ if (s->region)
+ pstrcpy(region, region_size, s->region);
+ if (!region[0]) {
+ sd = locale_canonical_subdivision(ctx, s->locale, "sd");
+ if (sd) {
+ pstrcpy(region, region_size, sd);
+ js_free(ctx, sd);
+ }
+ }
+ if (!region[0]) {
+ locale_split_base_suffix(s->locale, base, sizeof(base), suffix, sizeof(suffix));
+ if (locale_maximize_to(base, max, sizeof(max)) == 0 &&
+ locale_parse_name(max, &name) == 0 && name.region)
+ pstrcpy(region, region_size, name.region);
+ }
+ if (!region[0])
+ pstrcpy(region, region_size, "001");
+}
+
+static BOOL calendar_is_available(const char *name)
+{
+ int i;
+ for (i = 0; i < CAL_COUNT; i++) {
+ const char *c = ti_calendar_enum_to_string(i);
+ if (c && !strcmp(c, name))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* WeekdayUValueToNumber (ECMA-402): convert a Unicode First Day Identifier
+ to an ISO 8601 day of week, or -1. */
+static int weekday_u_value_to_number(const char *s)
+{
+ static const char *const names[7] = {
+ "mon", "tue", "wed", "thu", "fri", "sat", "sun"
+ };
+ int i;
+ for (i = 0; i < 7; i++) {
+ if (!strcmp(s, names[i]))
+ return i + 1;
+ }
+ return -1;
+}
+
+static JSValue js_locale_getCalendars(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const char *language, *items[16];
+ const IntlPrefData *entry = NULL;
+ const char *regions[2];
+ char region[16], *override, key[64], list[128], id[32];
+ char *parts[16], ids[16][32];
+ int i, j, n = 0, nregions, nparts;
+
+ if (!s)
+ return JS_EXCEPTION;
+ if (s->calendar) {
+ items[0] = s->calendar;
+ return locale_new_string_array(ctx, items, 1);
+ }
+ locale_region_preference(ctx, s, region, sizeof(region), &override);
+ language = s->language ? s->language : "und";
+ nregions = 0;
+ if (override && locale_find_pref(cal_pref_tab, cal_pref_count, override))
+ regions[nregions++] = override;
+ regions[nregions++] = region;
+ for (i = 0; i < nregions && !entry; i++) {
+ snprintf(key, sizeof(key), "%s-%s", language, regions[i]);
+ entry = locale_find_pref(cal_pref_tab, cal_pref_count, key);
+ if (!entry)
+ entry = locale_find_pref(cal_pref_tab, cal_pref_count, regions[i]);
+ }
+ js_free(ctx, override);
+ if (entry) {
+ pstrcpy(list, sizeof(list), entry->value);
+ nparts = locale_split_list(list, parts, 16);
+ for (i = 0; i < nparts; i++) {
+ const char *canon;
+ pstrcpy(id, sizeof(id), parts[i]);
+ to_lower_case(id);
+ canon = canonicalize_keyword_value("ca", id);
+ if (!calendar_is_available(canon))
+ continue;
+ for (j = 0; j < n; j++) {
+ if (!strcmp(items[j], canon))
+ break;
+ }
+ if (j == n && n < 16) {
+ pstrcpy(ids[n], sizeof(ids[0]), canon);
+ items[n] = ids[n];
+ n++;
+ }
+ }
+ }
+ if (n == 0)
+ items[n++] = "gregory";
+ return locale_new_string_array(ctx, items, n);
+}
+
+/* The canonical zone identifiers commonly used in region, sorted. */
+static JSValue locale_region_time_zones(JSContext *ctx, const char *region)
+{
+ JSValue arr;
+ const char *p;
+ int lo = 0, hi = ti_tz_region_count - 1, idx = -1, n = 0;
+
+ while (lo <= hi) {
+ int mid = lo + (hi - lo) / 2;
+ int c = strcmp(ti_tz_region_tab[mid].region, region);
+ if (c == 0) {
+ idx = mid;
+ break;
+ }
+ if (c < 0)
+ lo = mid + 1;
+ else
+ hi = mid - 1;
+ }
+ arr = JS_NewArray(ctx);
+ if (JS_IsException(arr))
+ return arr;
+ if (idx >= 0) {
+ for (p = ti_tz_region_tab[idx].zones; *p; ) {
+ const char *end = p + strlen(p);
+ if (JS_DefinePropertyValueUint32(ctx, arr, (uint32_t)n,
+ JS_NewStringLen(ctx, p, end - p),
+ JS_PROP_C_W_E) < 0) {
+ JS_FreeValue(ctx, arr);
+ return JS_EXCEPTION;
+ }
+ n++;
+ if (!*end)
+ break;
+ p = end + 1;
+ }
+ }
+ return arr;
+}
+
+static JSValue js_locale_getTimeZones(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ if (!s)
+ return JS_EXCEPTION;
+ /* TimeZonesOfLocale returns undefined if the locale has no region subtag */
+ if (!s->region)
+ return JS_UNDEFINED;
+ return locale_region_time_zones(ctx, s->region);
+}
+
+static JSValue js_locale_getTextInfo(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const char *script;
+ char base[256], suffix[256], max[256];
+ LocaleNameParts name;
+ JSValue obj;
+ int i;
+
+ if (!s)
+ return JS_EXCEPTION;
+ script = s->script;
+ obj = JS_NewObject(ctx);
+ if (JS_IsException(obj))
+ return JS_EXCEPTION;
+ if (!script) {
+ /* the script comes from the Add Likely Subtags algorithm */
+ locale_split_base_suffix(s->locale, base, sizeof(base), suffix, sizeof(suffix));
+ if (locale_maximize_to(base, max, sizeof(max)) == 0 &&
+ locale_parse_name(max, &name) == 0)
+ script = name.script;
+ }
+ for (i = 0; script && i < script_dir_count; i++) {
+ if (!strcmp(script_dir_tab[i].script, script)) {
+ JS_DefinePropertyValueStr(ctx, obj, "direction",
+ JS_NewString(ctx, script_dir_tab[i].dir ? "rtl" : "ltr"),
+ JS_PROP_C_W_E);
+ return obj;
+ }
+ }
+ /* the direction of an unknown script cannot be determined */
+ JS_DefinePropertyValueStr(ctx, obj, "direction", JS_UNDEFINED, JS_PROP_C_W_E);
+ return obj;
+}
+
+static JSValue js_locale_getCollations(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const LocaleData *ld;
+ const char *items[8];
+ int i, n = 0;
+
+ if (!s)
+ return JS_EXCEPTION;
+ if (s->collation) {
+ items[0] = s->collation;
+ return locale_new_string_array(ctx, items, 1);
+ }
+ /* [[SortLocaleData]].[[co]] starts with the default collation, which is
+ null and not part of the returned list, followed by the collations
+ available for the locale. The root collations are inherited by every
+ locale; if the locale does not match any locale data, only the root
+ collations are returned. */
+ ld = locale_match_data(s->locale);
+ items[n++] = "emoji";
+ items[n++] = "eor";
+ for (i = 0; ld && i < intl_supported_collations_count; i++) {
+ const char *c = intl_supported_collations[i];
+ int j;
+ if (!js_intl_collation_is_supported(c, ld->locale))
+ continue;
+ for (j = 0; j < n; j++) {
+ if (!strcmp(items[j], c))
+ break;
+ }
+ if (j == n && n < 8)
+ items[n++] = c;
+ }
+ qsort(items, n, sizeof(items[0]), cmp_string);
+ return locale_new_string_array(ctx, items, n);
+}
+
+static JSValue js_locale_getHourCycles(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const IntlPrefData *entry = NULL;
+ const char *language, *regions[2], *items[8];
+ char region[16], *override, key[64], list[64];
+ char *parts[8];
+ int i, n = 0, nregions, nparts;
+
+ if (!s)
+ return JS_EXCEPTION;
+ if (s->hourCycle) {
+ items[0] = s->hourCycle;
+ return locale_new_string_array(ctx, items, 1);
+ }
+ locale_region_preference(ctx, s, region, sizeof(region), &override);
+ language = s->language ? s->language : "und";
+ nregions = 0;
+ if (override && locale_find_pref(time_data_tab, time_data_count, override))
+ regions[nregions++] = override;
+ regions[nregions++] = region;
+ for (i = 0; i < nregions && !entry; i++) {
+ snprintf(key, sizeof(key), "%s-%s", language, regions[i]);
+ entry = locale_find_pref(time_data_tab, time_data_count, key);
+ if (!entry)
+ entry = locale_find_pref(time_data_tab, time_data_count, regions[i]);
+ }
+ js_free(ctx, override);
+ if (!entry) {
+ items[n++] = "h23";
+ } else {
+ pstrcpy(list, sizeof(list), entry->value);
+ nparts = locale_split_list(list, parts, 8);
+ for (i = 0; i < nparts && n < 8; i++)
+ items[n++] = parts[i];
+ }
+ return locale_new_string_array(ctx, items, n);
+}
+
+static JSValue js_locale_getNumberingSystems(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const char *items[1];
+
+ if (!s)
+ return JS_EXCEPTION;
+ if (s->numberingSystem) {
+ items[0] = s->numberingSystem;
+ return locale_new_string_array(ctx, items, 1);
+ }
+ /* The first numbering system ([[nu]][0]) of the matched NumberFormat
+ locale data, or "latn" if there is no match. Our number formatter uses
+ "latn" as the default numbering system of every locale. */
+ items[0] = "latn";
+ return locale_new_string_array(ctx, items, 1);
+}
+
+static JSValue js_locale_getWeekInfo(JSContext *ctx, JSValueConst this_val,
+ int argc, JSValueConst *argv)
+{
+ JSLocaleData *s = JS_GetOpaque2(ctx, this_val, js_locale_class_id);
+ const IntlWeekData *wd = NULL;
+ char region[16], *override;
+ int firstDay, weekendStart, weekendEnd, days[7], ndays;
+ int i;
+ JSValue obj, weekend;
+
+ if (!s)
+ return JS_EXCEPTION;
+ locale_region_preference(ctx, s, region, sizeof(region), &override);
+ if (override)
+ wd = locale_find_week(override);
+ if (!wd)
+ wd = locale_find_week(region);
+ if (!wd)
+ wd = locale_find_week("001");
+ js_free(ctx, override);
+ firstDay = wd ? wd->firstDay : 1;
+ weekendStart = wd ? wd->weekendStart : 6;
+ weekendEnd = wd ? wd->weekendEnd : 7;
+ if (s->firstDayOfWeek) {
+ int d = weekday_u_value_to_number(s->firstDayOfWeek);
+ if (d > 0)
+ firstDay = d;
+ }
+ obj = JS_NewObject(ctx);
+ if (JS_IsException(obj))
+ return JS_EXCEPTION;
+ JS_DefinePropertyValueStr(ctx, obj, "firstDay", JS_NewInt32(ctx, firstDay),
+ JS_PROP_C_W_E);
+ /* the weekend runs from weekendStart to weekendEnd, wrapping around */
+ ndays = 0;
+ for (;;) {
+ days[ndays++] = weekendStart;
+ if (weekendStart == weekendEnd)
+ break;
+ weekendStart = weekendStart % 7 + 1;
+ }
+ /* sorted in ascending numeric order */
+ for (i = 0; i < ndays; i++) {
+ int j, v = days[i];
+ for (j = i; j > 0 && days[j - 1] > v; j--)
+ days[j] = days[j - 1];
+ days[j] = v;
+ }
+ weekend = JS_NewArray(ctx);
+ if (JS_IsException(weekend)) {
+ JS_FreeValue(ctx, obj);
+ return JS_EXCEPTION;
+ }
+ for (i = 0; i < ndays; i++) {
+ JS_DefinePropertyValueUint32(ctx, weekend, (uint32_t)i,
+ JS_NewInt32(ctx, days[i]), JS_PROP_C_W_E);
+ }
+ JS_DefinePropertyValueStr(ctx, obj, "weekend", weekend, JS_PROP_C_W_E);
+ return obj;
+}
+
static JSValue js_locale_toString(JSContext *ctx, JSValueConst this_val,
int argc, JSValueConst *argv)
{
extern const char * const ti_tz_names[];
extern const int ti_tz_name_count;
+typedef struct {
+ const char *region;
+ const char *zones; /* zone names, zero separated, sorted */
+} TiTzRegion;
+extern const TiTzRegion ti_tz_region_tab[];
+extern const int ti_tz_region_count;
+
/* Lookup functions */
int ti_tz_find_id(const char *name);
int ti_tz_offset_at_sec(int tz_id, int64_t epoch_sec);
"Zulu",
};
const int ti_tz_name_count = countof(ti_tz_names);
+
+/* Zone identifiers commonly used in each region, sorted and zero separated */
+const TiTzRegion ti_tz_region_tab[] = {
+ { "AD", "Europe/Andorra" },
+ { "AE", "Asia/Dubai" },
+ { "AF", "Asia/Kabul" },
+ { "AG", "America/Antigua" },
+ { "AI", "America/Anguilla" },
+ { "AL", "Europe/Tirane" },
+ { "AM", "Asia/Yerevan" },
+ { "AO", "Africa/Luanda" },
+ { "AQ", "Antarctica/Casey\000Antarctica/Davis\000Antarctica/DumontDUrville\000Antarctica/Mawson\000Antarctica/McMurdo\000Antarctica/Palmer\000Antarctica/Rothera\000Antarctica/Syowa\000Antarctica/Troll\000Antarctica/Vostok" },
+ { "AR", "America/Argentina/Buenos_Aires\000America/Argentina/Catamarca\000America/Argentina/Cordoba\000America/Argentina/Jujuy\000America/Argentina/La_Rioja\000America/Argentina/Mendoza\000America/Argentina/Rio_Gallegos\000America/Argentina/Salta\000America/Argentina/San_Juan\000America/Argentina/San_Luis\000America/Argentina/Tucuman\000America/Argentina/Ushuaia" },
+ { "AS", "Pacific/Pago_Pago" },
+ { "AT", "Europe/Vienna" },
+ { "AU", "Antarctica/Macquarie\000Australia/Adelaide\000Australia/Brisbane\000Australia/Broken_Hill\000Australia/Darwin\000Australia/Eucla\000Australia/Hobart\000Australia/Lindeman\000Australia/Lord_Howe\000Australia/Melbourne\000Australia/Perth\000Australia/Sydney" },
+ { "AW", "America/Aruba" },
+ { "AX", "Europe/Mariehamn" },
+ { "AZ", "Asia/Baku" },
+ { "BA", "Europe/Sarajevo" },
+ { "BB", "America/Barbados" },
+ { "BD", "Asia/Dhaka" },
+ { "BE", "Europe/Brussels" },
+ { "BF", "Africa/Ouagadougou" },
+ { "BG", "Europe/Sofia" },
+ { "BH", "Asia/Bahrain" },
+ { "BI", "Africa/Bujumbura" },
+ { "BJ", "Africa/Porto-Novo" },
+ { "BL", "America/St_Barthelemy" },
+ { "BM", "Atlantic/Bermuda" },
+ { "BN", "Asia/Brunei" },
+ { "BO", "America/La_Paz" },
+ { "BQ", "America/Kralendijk" },
+ { "BR", "America/Araguaina\000America/Bahia\000America/Belem\000America/Boa_Vista\000America/Campo_Grande\000America/Cuiaba\000America/Eirunepe\000America/Fortaleza\000America/Maceio\000America/Manaus\000America/Noronha\000America/Porto_Velho\000America/Recife\000America/Rio_Branco\000America/Santarem\000America/Sao_Paulo" },
+ { "BS", "America/Nassau" },
+ { "BT", "Asia/Thimphu" },
+ { "BW", "Africa/Gaborone" },
+ { "BY", "Europe/Minsk" },
+ { "BZ", "America/Belize" },
+ { "CA", "America/Atikokan\000America/Blanc-Sablon\000America/Cambridge_Bay\000America/Creston\000America/Dawson\000America/Dawson_Creek\000America/Edmonton\000America/Fort_Nelson\000America/Glace_Bay\000America/Goose_Bay\000America/Halifax\000America/Inuvik\000America/Iqaluit\000America/Moncton\000America/Rankin_Inlet\000America/Regina\000America/Resolute\000America/St_Johns\000America/Swift_Current\000America/Toronto\000America/Vancouver\000America/Whitehorse\000America/Winnipeg" },
+ { "CC", "Indian/Cocos" },
+ { "CD", "Africa/Kinshasa\000Africa/Lubumbashi" },
+ { "CF", "Africa/Bangui" },
+ { "CG", "Africa/Brazzaville" },
+ { "CH", "Europe/Zurich" },
+ { "CI", "Africa/Abidjan" },
+ { "CK", "Pacific/Rarotonga" },
+ { "CL", "America/Coyhaique\000America/Punta_Arenas\000America/Santiago\000Pacific/Easter" },
+ { "CM", "Africa/Douala" },
+ { "CN", "Asia/Shanghai\000Asia/Urumqi" },
+ { "CO", "America/Bogota" },
+ { "CR", "America/Costa_Rica" },
+ { "CU", "America/Havana" },
+ { "CV", "Atlantic/Cape_Verde" },
+ { "CW", "America/Curacao" },
+ { "CX", "Indian/Christmas" },
+ { "CY", "Asia/Famagusta\000Asia/Nicosia" },
+ { "CZ", "Europe/Prague" },
+ { "DE", "Europe/Berlin\000Europe/Busingen" },
+ { "DJ", "Africa/Djibouti" },
+ { "DK", "Europe/Copenhagen" },
+ { "DM", "America/Dominica" },
+ { "DO", "America/Santo_Domingo" },
+ { "DZ", "Africa/Algiers" },
+ { "EC", "America/Guayaquil\000Pacific/Galapagos" },
+ { "EE", "Europe/Tallinn" },
+ { "EG", "Africa/Cairo" },
+ { "EH", "Africa/El_Aaiun" },
+ { "ER", "Africa/Asmara" },
+ { "ES", "Africa/Ceuta\000Atlantic/Canary\000Europe/Madrid" },
+ { "ET", "Africa/Addis_Ababa" },
+ { "FI", "Europe/Helsinki" },
+ { "FJ", "Pacific/Fiji" },
+ { "FK", "Atlantic/Stanley" },
+ { "FM", "Pacific/Chuuk\000Pacific/Kosrae\000Pacific/Pohnpei" },
+ { "FO", "Atlantic/Faroe" },
+ { "FR", "Europe/Paris" },
+ { "GA", "Africa/Libreville" },
+ { "GB", "Europe/London" },
+ { "GD", "America/Grenada" },
+ { "GE", "Asia/Tbilisi" },
+ { "GF", "America/Cayenne" },
+ { "GG", "Europe/Guernsey" },
+ { "GH", "Africa/Accra" },
+ { "GI", "Europe/Gibraltar" },
+ { "GL", "America/Danmarkshavn\000America/Nuuk\000America/Scoresbysund\000America/Thule" },
+ { "GM", "Africa/Banjul" },
+ { "GN", "Africa/Conakry" },
+ { "GP", "America/Guadeloupe" },
+ { "GQ", "Africa/Malabo" },
+ { "GR", "Europe/Athens" },
+ { "GS", "Atlantic/South_Georgia" },
+ { "GT", "America/Guatemala" },
+ { "GU", "Pacific/Guam" },
+ { "GW", "Africa/Bissau" },
+ { "GY", "America/Guyana" },
+ { "HK", "Asia/Hong_Kong" },
+ { "HN", "America/Tegucigalpa" },
+ { "HR", "Europe/Zagreb" },
+ { "HT", "America/Port-au-Prince" },
+ { "HU", "Europe/Budapest" },
+ { "ID", "Asia/Jakarta\000Asia/Jayapura\000Asia/Makassar\000Asia/Pontianak" },
+ { "IE", "Europe/Dublin" },
+ { "IL", "Asia/Jerusalem" },
+ { "IM", "Europe/Isle_of_Man" },
+ { "IN", "Asia/Kolkata" },
+ { "IO", "Indian/Chagos" },
+ { "IQ", "Asia/Baghdad" },
+ { "IR", "Asia/Tehran" },
+ { "IS", "Atlantic/Reykjavik" },
+ { "IT", "Europe/Rome" },
+ { "JE", "Europe/Jersey" },
+ { "JM", "America/Jamaica" },
+ { "JO", "Asia/Amman" },
+ { "JP", "Asia/Tokyo" },
+ { "KE", "Africa/Nairobi" },
+ { "KG", "Asia/Bishkek" },
+ { "KH", "Asia/Phnom_Penh" },
+ { "KI", "Pacific/Kanton\000Pacific/Kiritimati\000Pacific/Tarawa" },
+ { "KM", "Indian/Comoro" },
+ { "KN", "America/St_Kitts" },
+ { "KP", "Asia/Pyongyang" },
+ { "KR", "Asia/Seoul" },
+ { "KW", "Asia/Kuwait" },
+ { "KY", "America/Cayman" },
+ { "KZ", "Asia/Almaty\000Asia/Aqtau\000Asia/Aqtobe\000Asia/Atyrau\000Asia/Oral\000Asia/Qostanay\000Asia/Qyzylorda" },
+ { "LA", "Asia/Vientiane" },
+ { "LB", "Asia/Beirut" },
+ { "LC", "America/St_Lucia" },
+ { "LI", "Europe/Vaduz" },
+ { "LK", "Asia/Colombo" },
+ { "LR", "Africa/Monrovia" },
+ { "LS", "Africa/Maseru" },
+ { "LT", "Europe/Vilnius" },
+ { "LU", "Europe/Luxembourg" },
+ { "LV", "Europe/Riga" },
+ { "LY", "Africa/Tripoli" },
+ { "MA", "Africa/Casablanca" },
+ { "MC", "Europe/Monaco" },
+ { "MD", "Europe/Chisinau" },
+ { "ME", "Europe/Podgorica" },
+ { "MF", "America/Marigot" },
+ { "MG", "Indian/Antananarivo" },
+ { "MH", "Pacific/Kwajalein\000Pacific/Majuro" },
+ { "MK", "Europe/Skopje" },
+ { "ML", "Africa/Bamako" },
+ { "MM", "Asia/Yangon" },
+ { "MN", "Asia/Hovd\000Asia/Ulaanbaatar" },
+ { "MO", "Asia/Macau" },
+ { "MP", "Pacific/Saipan" },
+ { "MQ", "America/Martinique" },
+ { "MR", "Africa/Nouakchott" },
+ { "MS", "America/Montserrat" },
+ { "MT", "Europe/Malta" },
+ { "MU", "Indian/Mauritius" },
+ { "MV", "Indian/Maldives" },
+ { "MW", "Africa/Blantyre" },
+ { "MX", "America/Bahia_Banderas\000America/Cancun\000America/Chihuahua\000America/Ciudad_Juarez\000America/Hermosillo\000America/Matamoros\000America/Mazatlan\000America/Merida\000America/Mexico_City\000America/Monterrey\000America/Ojinaga\000America/Tijuana" },
+ { "MY", "Asia/Kuala_Lumpur\000Asia/Kuching" },
+ { "MZ", "Africa/Maputo" },
+ { "NA", "Africa/Windhoek" },
+ { "NC", "Pacific/Noumea" },
+ { "NE", "Africa/Niamey" },
+ { "NF", "Pacific/Norfolk" },
+ { "NG", "Africa/Lagos" },
+ { "NI", "America/Managua" },
+ { "NL", "Europe/Amsterdam" },
+ { "NO", "Europe/Oslo" },
+ { "NP", "Asia/Kathmandu" },
+ { "NR", "Pacific/Nauru" },
+ { "NU", "Pacific/Niue" },
+ { "NZ", "Pacific/Auckland\000Pacific/Chatham" },
+ { "OM", "Asia/Muscat" },
+ { "PA", "America/Panama" },
+ { "PE", "America/Lima" },
+ { "PF", "Pacific/Gambier\000Pacific/Marquesas\000Pacific/Tahiti" },
+ { "PG", "Pacific/Bougainville\000Pacific/Port_Moresby" },
+ { "PH", "Asia/Manila" },
+ { "PK", "Asia/Karachi" },
+ { "PL", "Europe/Warsaw" },
+ { "PM", "America/Miquelon" },
+ { "PN", "Pacific/Pitcairn" },
+ { "PR", "America/Puerto_Rico" },
+ { "PS", "Asia/Gaza\000Asia/Hebron" },
+ { "PT", "Atlantic/Azores\000Atlantic/Madeira\000Europe/Lisbon" },
+ { "PW", "Pacific/Palau" },
+ { "PY", "America/Asuncion" },
+ { "QA", "Asia/Qatar" },
+ { "RE", "Indian/Reunion" },
+ { "RO", "Europe/Bucharest" },
+ { "RS", "Europe/Belgrade" },
+ { "RU", "Asia/Anadyr\000Asia/Barnaul\000Asia/Chita\000Asia/Irkutsk\000Asia/Kamchatka\000Asia/Khandyga\000Asia/Krasnoyarsk\000Asia/Magadan\000Asia/Novokuznetsk\000Asia/Novosibirsk\000Asia/Omsk\000Asia/Sakhalin\000Asia/Srednekolymsk\000Asia/Tomsk\000Asia/Ust-Nera\000Asia/Vladivostok\000Asia/Yakutsk\000Asia/Yekaterinburg\000Europe/Astrakhan\000Europe/Kaliningrad\000Europe/Kirov\000Europe/Moscow\000Europe/Samara\000Europe/Saratov\000Europe/Ulyanovsk\000Europe/Volgograd" },
+ { "RW", "Africa/Kigali" },
+ { "SA", "Asia/Riyadh" },
+ { "SB", "Pacific/Guadalcanal" },
+ { "SC", "Indian/Mahe" },
+ { "SD", "Africa/Khartoum" },
+ { "SE", "Europe/Stockholm" },
+ { "SG", "Asia/Singapore" },
+ { "SH", "Atlantic/St_Helena" },
+ { "SI", "Europe/Ljubljana" },
+ { "SJ", "Arctic/Longyearbyen" },
+ { "SK", "Europe/Bratislava" },
+ { "SL", "Africa/Freetown" },
+ { "SM", "Europe/San_Marino" },
+ { "SN", "Africa/Dakar" },
+ { "SO", "Africa/Mogadishu" },
+ { "SR", "America/Paramaribo" },
+ { "SS", "Africa/Juba" },
+ { "ST", "Africa/Sao_Tome" },
+ { "SV", "America/El_Salvador" },
+ { "SX", "America/Lower_Princes" },
+ { "SY", "Asia/Damascus" },
+ { "SZ", "Africa/Mbabane" },
+ { "TC", "America/Grand_Turk" },
+ { "TD", "Africa/Ndjamena" },
+ { "TF", "Indian/Kerguelen" },
+ { "TG", "Africa/Lome" },
+ { "TH", "Asia/Bangkok" },
+ { "TJ", "Asia/Dushanbe" },
+ { "TK", "Pacific/Fakaofo" },
+ { "TL", "Asia/Dili" },
+ { "TM", "Asia/Ashgabat" },
+ { "TN", "Africa/Tunis" },
+ { "TO", "Pacific/Tongatapu" },
+ { "TR", "Europe/Istanbul" },
+ { "TT", "America/Port_of_Spain" },
+ { "TV", "Pacific/Funafuti" },
+ { "TW", "Asia/Taipei" },
+ { "TZ", "Africa/Dar_es_Salaam" },
+ { "UA", "Europe/Kyiv\000Europe/Simferopol" },
+ { "UG", "Africa/Kampala" },
+ { "UM", "Pacific/Midway\000Pacific/Wake" },
+ { "US", "America/Adak\000America/Anchorage\000America/Boise\000America/Chicago\000America/Denver\000America/Detroit\000America/Indiana/Indianapolis\000America/Indiana/Knox\000America/Indiana/Marengo\000America/Indiana/Petersburg\000America/Indiana/Tell_City\000America/Indiana/Vevay\000America/Indiana/Vincennes\000America/Indiana/Winamac\000America/Juneau\000America/Kentucky/Louisville\000America/Kentucky/Monticello\000America/Los_Angeles\000America/Menominee\000America/Metlakatla\000America/New_York\000America/Nome\000America/North_Dakota/Beulah\000America/North_Dakota/Center\000America/North_Dakota/New_Salem\000America/Phoenix\000America/Sitka\000America/Yakutat\000Pacific/Honolulu" },
+ { "UY", "America/Montevideo" },
+ { "UZ", "Asia/Samarkand\000Asia/Tashkent" },
+ { "VA", "Europe/Vatican" },
+ { "VC", "America/St_Vincent" },
+ { "VE", "America/Caracas" },
+ { "VG", "America/Tortola" },
+ { "VI", "America/St_Thomas" },
+ { "VN", "Asia/Ho_Chi_Minh" },
+ { "VU", "Pacific/Efate" },
+ { "WF", "Pacific/Wallis" },
+ { "WS", "Pacific/Apia" },
+ { "YE", "Asia/Aden" },
+ { "YT", "Indian/Mayotte" },
+ { "ZA", "Africa/Johannesburg" },
+ { "ZM", "Africa/Lusaka" },
+ { "ZW", "Africa/Harare" },
+};
+const int ti_tz_region_count = countof(ti_tz_region_tab);
-test262/test/intl402/Locale/prototype/getCalendars/likely-subtags-region.js:42: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getCalendars/region-override.js:41: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getCalendars/region-priority.js:60: Test262Error: Inconclusive: the "rg" region override and the region subtag select regions with identical calendars in this implementation. Consider updating the test data
-test262/test/intl402/Locale/prototype/getCalendars/subdivision-region.js:35: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getCollations/collation-keyword.js:28: Test262Error: Actual [default] and expected [phonebk] should have the same contents. getCollations() for en-u-co-phonebk returns only phonebk
-test262/test/intl402/Locale/prototype/getCollations/und-language.js:53: Test262Error: Actual [default] and expected [emoji, eor] should have the same contents. getCollations() for und must return the root collations
-test262/test/intl402/Locale/prototype/getHourCycles/language-priority.js:47: Test262Error: Either the feature is not implemented correctly, or no suitable test data found in this implementation. If the latter, consider updating the candidate list
-test262/test/intl402/Locale/prototype/getHourCycles/likely-subtags-region.js:42: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getHourCycles/region-override.js:41: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getHourCycles/region-priority.js:59: Test262Error: Inconclusive: the "rg" region override and the region subtag select regions with identical hour cycles in this implementation. Consider updating the test data
-test262/test/intl402/Locale/prototype/getHourCycles/subdivision-region.js:35: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getWeekInfo/likely-subtags-region.js:46: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getWeekInfo/region-override.js:45: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
-test262/test/intl402/Locale/prototype/getWeekInfo/region-priority.js:59: Test262Error: Inconclusive: the "rg" region override and the region subtag selected regions with identical week info in this implementation. Consider updating the test data
-test262/test/intl402/Locale/prototype/getWeekInfo/subdivision-region.js:39: Test262Error: No suitable test data found in this implementation. Consider updating the candidate list
test262/test/language/statements/await-using/initializer-Symbol.asyncDispose-disposed-at-end-of-imported-module.js:11: SyntaxError: exported variable 'resource' does not exist
test262/test/language/statements/await-using/initializer-Symbol.dispose-disposed-at-end-of-imported-module.js:11: SyntaxError: exported variable 'resource' does not exist
test262/test/language/statements/using/initializer-disposed-at-end-of-imported-module.js:11: SyntaxError: exported variable 'resource' does not exist