From a25696fd90576013db59cad66e8f1290c98dfa7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Thu, 13 Mar 2025 23:09:36 +0200 Subject: [PATCH] ICU4C: Update to version 77.1 --- thirdparty/README.md | 4 +- thirdparty/icu4c/LICENSE | 2 +- thirdparty/icu4c/common/brkiter.cpp | 59 +- thirdparty/icu4c/common/charstr.cpp | 11 +- thirdparty/icu4c/common/charstr.h | 3 +- thirdparty/icu4c/common/localefallback_data.h | 2311 +++++++++-------- thirdparty/icu4c/common/locbased.cpp | 72 +- thirdparty/icu4c/common/locbased.h | 64 +- thirdparty/icu4c/common/locdispnames.cpp | 8 +- thirdparty/icu4c/common/locid.cpp | 43 +- thirdparty/icu4c/common/loclikely.cpp | 16 +- thirdparty/icu4c/common/loclikelysubtags.cpp | 2 +- thirdparty/icu4c/common/locresdata.cpp | 3 + thirdparty/icu4c/common/punycode.cpp | 2 +- thirdparty/icu4c/common/putil.cpp | 2 +- thirdparty/icu4c/common/rbbinode.cpp | 118 +- thirdparty/icu4c/common/rbbinode.h | 8 +- thirdparty/icu4c/common/rbbiscan.cpp | 15 +- thirdparty/icu4c/common/rbbisetb.cpp | 12 +- thirdparty/icu4c/common/rbbitblb.cpp | 28 +- thirdparty/icu4c/common/resbund.cpp | 2 +- thirdparty/icu4c/common/ucnvmbcs.cpp | 5 +- thirdparty/icu4c/common/ucurr.cpp | 17 +- thirdparty/icu4c/common/uloc.cpp | 551 ++-- thirdparty/icu4c/common/uloc_tag.cpp | 25 +- thirdparty/icu4c/common/ulocale.cpp | 5 +- thirdparty/icu4c/common/ulocimp.h | 32 +- thirdparty/icu4c/common/umapfile.cpp | 7 +- thirdparty/icu4c/common/unicode/brkiter.h | 8 +- thirdparty/icu4c/common/unicode/char16ptr.h | 77 +- thirdparty/icu4c/common/unicode/locid.h | 9 +- thirdparty/icu4c/common/unicode/resbund.h | 2 +- thirdparty/icu4c/common/unicode/uchar.h | 48 +- thirdparty/icu4c/common/unicode/uniset.h | 11 +- thirdparty/icu4c/common/unicode/uset.h | 92 +- thirdparty/icu4c/common/unicode/utf8.h | 4 +- thirdparty/icu4c/common/unicode/utypes.h | 3 +- thirdparty/icu4c/common/unicode/uvernum.h | 10 +- thirdparty/icu4c/common/unicode/uversion.h | 19 +- thirdparty/icu4c/common/unistr.cpp | 7 + thirdparty/icu4c/common/uresbund.cpp | 8 +- thirdparty/icu4c/common/uscript.cpp | 3 + thirdparty/icu4c/common/ushape.cpp | 5 + thirdparty/icu4c/common/usprep.cpp | 2 +- thirdparty/icu4c/common/utf_impl.cpp | 6 +- thirdparty/icu4c/common/utypes.cpp | 3 +- thirdparty/icu4c/i18n/scriptset.cpp | 6 +- thirdparty/icu4c/i18n/scriptset.h | 2 +- thirdparty/icu4c/i18n/ucln_in.h | 2 + thirdparty/icu4c/icudt_godot.dat | Bin 4805392 -> 4784480 bytes 50 files changed, 2086 insertions(+), 1668 deletions(-) diff --git a/thirdparty/README.md b/thirdparty/README.md index b6a4a037498..e822850dd92 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -420,13 +420,13 @@ Files extracted from upstream source: ## icu4c - Upstream: https://github.com/unicode-org/icu -- Version: 76.1 (8eca245c7484ac6cc179e3e5f7c1ea7680810f39, 2024) +- Version: 77.1 (457157a92aa053e632cc7fcfd0e12f8a943b2d11, 2025) - License: Unicode Files extracted from upstream source: - The `common` folder -- `scriptset.*`, `ucln_in.*`, `uspoof.cpp"` and `uspoof_impl.cpp` from the `i18n` folder +- `scriptset.*`, `ucln_in.*`, `uspoof.cpp` and `uspoof_impl.*` from the `i18n` folder - `uspoof.h` from the `i18n/unicode` folder - `LICENSE` diff --git a/thirdparty/icu4c/LICENSE b/thirdparty/icu4c/LICENSE index 180db98fcc6..0b9efcd9092 100644 --- a/thirdparty/icu4c/LICENSE +++ b/thirdparty/icu4c/LICENSE @@ -2,7 +2,7 @@ UNICODE LICENSE V3 COPYRIGHT AND PERMISSION NOTICE -Copyright © 2016-2024 Unicode, Inc. +Copyright © 2016-2025 Unicode, Inc. NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR diff --git a/thirdparty/icu4c/common/brkiter.cpp b/thirdparty/icu4c/common/brkiter.cpp index 4d945cc17e2..44a13ee6a2a 100644 --- a/thirdparty/icu4c/common/brkiter.cpp +++ b/thirdparty/icu4c/common/brkiter.cpp @@ -59,7 +59,7 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st { char fnbuff[256]; char ext[4]={'\0'}; - CharString actualLocale; + CharString actual; int32_t size; const char16_t* brkfname = nullptr; UResourceBundle brkRulesStack; @@ -94,7 +94,7 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st // Use the string if we found it if (U_SUCCESS(status) && brkfname) { - actualLocale.append(ures_getLocaleInternal(brkName, &status), -1, status); + actual.append(ures_getLocaleInternal(brkName, &status), -1, status); char16_t* extStart=u_strchr(brkfname, 0x002e); int len = 0; @@ -123,10 +123,9 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st if (U_SUCCESS(status) && result != nullptr) { U_LOCALE_BASED(locBased, *(BreakIterator*)result); - locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), - actualLocale.data()); - uprv_strncpy(result->requestLocale, loc.getName(), ULOC_FULLNAME_CAPACITY); - result->requestLocale[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate + locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), + actual.data(), status); + LocaleBased::setLocaleID(loc.getName(), result->requestLocale, status); } ures_close(b); @@ -206,26 +205,32 @@ BreakIterator::getAvailableLocales(int32_t& count) BreakIterator::BreakIterator() { - *validLocale = *actualLocale = *requestLocale = 0; } BreakIterator::BreakIterator(const BreakIterator &other) : UObject(other) { - uprv_strncpy(actualLocale, other.actualLocale, sizeof(actualLocale)); - uprv_strncpy(validLocale, other.validLocale, sizeof(validLocale)); - uprv_strncpy(requestLocale, other.requestLocale, sizeof(requestLocale)); + UErrorCode status = U_ZERO_ERROR; + U_LOCALE_BASED(locBased, *this); + locBased.setLocaleIDs(other.validLocale, other.actualLocale, status); + LocaleBased::setLocaleID(other.requestLocale, requestLocale, status); + U_ASSERT(U_SUCCESS(status)); } BreakIterator &BreakIterator::operator =(const BreakIterator &other) { if (this != &other) { - uprv_strncpy(actualLocale, other.actualLocale, sizeof(actualLocale)); - uprv_strncpy(validLocale, other.validLocale, sizeof(validLocale)); - uprv_strncpy(requestLocale, other.requestLocale, sizeof(requestLocale)); + UErrorCode status = U_ZERO_ERROR; + U_LOCALE_BASED(locBased, *this); + locBased.setLocaleIDs(other.validLocale, other.actualLocale, status); + LocaleBased::setLocaleID(other.requestLocale, requestLocale, status); + U_ASSERT(U_SUCCESS(status)); } return *this; } BreakIterator::~BreakIterator() { + delete validLocale; + delete actualLocale; + delete requestLocale; } // ------------------------------------------ @@ -394,7 +399,7 @@ BreakIterator::createInstance(const Locale& loc, int32_t kind, UErrorCode& statu // revisit this in ICU 3.0 and clean it up/fix it/remove it. if (U_SUCCESS(status) && (result != nullptr) && *actualLoc.getName() != 0) { U_LOCALE_BASED(locBased, *result); - locBased.setLocaleIDs(actualLoc.getName(), actualLoc.getName()); + locBased.setLocaleIDs(actualLoc.getName(), actualLoc.getName(), status); } return result; } @@ -488,6 +493,7 @@ BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status) } if (U_FAILURE(status)) { + delete result; return nullptr; } @@ -496,20 +502,25 @@ BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status) Locale BreakIterator::getLocale(ULocDataLocaleType type, UErrorCode& status) const { - if (type == ULOC_REQUESTED_LOCALE) { - return {requestLocale}; + if (U_FAILURE(status)) { + return Locale::getRoot(); } - U_LOCALE_BASED(locBased, *this); - return locBased.getLocale(type, status); + if (type == ULOC_REQUESTED_LOCALE) { + return requestLocale == nullptr ? + Locale::getRoot() : Locale(requestLocale->data()); + } + return LocaleBased::getLocale(validLocale, actualLocale, type, status); } const char * BreakIterator::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { - if (type == ULOC_REQUESTED_LOCALE) { - return requestLocale; + if (U_FAILURE(status)) { + return nullptr; } - U_LOCALE_BASED(locBased, *this); - return locBased.getLocaleID(type, status); + if (type == ULOC_REQUESTED_LOCALE) { + return requestLocale == nullptr ? "" : requestLocale->data(); + } + return LocaleBased::getLocaleID(validLocale, actualLocale, type, status); } @@ -536,8 +547,10 @@ int32_t BreakIterator::getRuleStatusVec(int32_t *fillInVec, int32_t capacity, UE } BreakIterator::BreakIterator (const Locale& valid, const Locale& actual) { + UErrorCode status = U_ZERO_ERROR; U_LOCALE_BASED(locBased, (*this)); - locBased.setLocaleIDs(valid, actual); + locBased.setLocaleIDs(valid.getName(), actual.getName(), status); + U_ASSERT(U_SUCCESS(status)); } U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/charstr.cpp b/thirdparty/icu4c/common/charstr.cpp index f76cc8a4dc9..dadc829b0b5 100644 --- a/thirdparty/icu4c/common/charstr.cpp +++ b/thirdparty/icu4c/common/charstr.cpp @@ -70,6 +70,15 @@ CharString &CharString::copyFrom(const CharString &s, UErrorCode &errorCode) { return *this; } +CharString &CharString::copyFrom(StringPiece s, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { + return *this; + } + len = 0; + append(s, errorCode); + return *this; +} + int32_t CharString::lastIndexOf(char c) const { for(int32_t i=len; i>0;) { if(buffer[--i]==c) { @@ -143,7 +152,7 @@ CharString &CharString::append(const char *s, int32_t sLength, UErrorCode &error return *this; } -CharString &CharString::appendNumber(int32_t number, UErrorCode &status) { +CharString &CharString::appendNumber(int64_t number, UErrorCode &status) { if (number < 0) { this->append('-', status); if (U_FAILURE(status)) { diff --git a/thirdparty/icu4c/common/charstr.h b/thirdparty/icu4c/common/charstr.h index 08283ca452c..ea54ede735c 100644 --- a/thirdparty/icu4c/common/charstr.h +++ b/thirdparty/icu4c/common/charstr.h @@ -74,6 +74,7 @@ public: * use a UErrorCode where memory allocations might be needed. */ CharString ©From(const CharString &other, UErrorCode &errorCode); + CharString ©From(StringPiece s, UErrorCode &errorCode); UBool isEmpty() const { return len==0; } int32_t length() const { return len; } @@ -135,7 +136,7 @@ public: } CharString &append(const char *s, int32_t sLength, UErrorCode &status); - CharString &appendNumber(int32_t number, UErrorCode &status); + CharString &appendNumber(int64_t number, UErrorCode &status); /** * Returns a writable buffer for appending and writes the buffer's capacity to diff --git a/thirdparty/icu4c/common/localefallback_data.h b/thirdparty/icu4c/common/localefallback_data.h index 0accf0324d7..3b8ad8a3f39 100644 --- a/thirdparty/icu4c/common/localefallback_data.h +++ b/thirdparty/icu4c/common/localefallback_data.h @@ -11,11 +11,11 @@ //====================================================================== // Default script table const char scriptCodeChars[] = - "Aghb\0Ahom\0Arab\0Armi\0Armn\0Avst\0Bamu\0Bass\0Batk\0Beng\0Bopo\0" - "Brah\0Cakm\0Cans\0Cari\0Cham\0Cher\0Chrs\0Copt\0Cprt\0Cyrl\0Deva\0" - "Egyp\0Elym\0Ethi\0Geor\0Gong\0Gonm\0Goth\0Gran\0Grek\0Gujr\0Guru\0" - "Hang\0Hani\0Hans\0Hant\0Hebr\0Hluw\0Hmnp\0Ital\0Java\0Jpan\0Kali\0" - "Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Latf\0Latg\0" + "Aghb\0Ahom\0Arab\0Armi\0Armn\0Avst\0Bali\0Bamu\0Bass\0Batk\0Beng\0" + "Bopo\0Brah\0Cakm\0Cans\0Cari\0Cham\0Cher\0Chrs\0Copt\0Cprt\0Cyrl\0" + "Deva\0Egyp\0Elym\0Ethi\0Geor\0Gong\0Gonm\0Goth\0Gran\0Grek\0Gujr\0" + "Guru\0Hang\0Hani\0Hans\0Hant\0Hebr\0Hluw\0Hmnp\0Ital\0Java\0Jpan\0" + "Kali\0Kana\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Latf\0Latg\0" "Lepc\0Lina\0Linb\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Marc\0Medf\0Merc\0" "Mlym\0Modi\0Mong\0Mroo\0Mtei\0Mymr\0Narb\0Newa\0Nkoo\0Nshu\0Ogam\0" "Olck\0Orkh\0Orya\0Osge\0Ougr\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rjng\0" @@ -48,70 +48,71 @@ const char dsLocaleIDChars[] = "gbz\0gdb\0gdo\0gdx\0gez\0ggg\0gha\0ghe\0gho\0ghr\0ght\0gig\0gin\0" "gjk\0gju\0gld\0glh\0glk\0gml\0gmv\0gmy\0goe\0gof\0goj\0gok\0gon\0" "got\0gra\0grc\0grt\0gru\0gu\0gvr\0gwc\0gwf\0gwt\0gyo\0gzi\0ha_CM\0" - "ha_SD\0hac\0hak\0har\0haz\0hbo\0hdy\0he\0hi\0hif\0hii\0hit\0hkh\0" - "hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hno\0hoc\0hoh\0hoj\0how\0" - "hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0huy\0huz\0hy\0hyw\0ii\0" - "imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0iu\0iw\0ja\0jad\0jat\0" - "jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0ji\0jje\0jkm\0jml\0jna\0" - "jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jul\0jun\0juy\0jya\0jye\0ka\0" - "kaa\0kap\0kaw\0kbd\0kbg\0kbu\0kby\0kca\0kcy\0kdq\0kdt\0ket\0kev\0" - "kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfg\0kfh\0kfi\0kfk\0kfm\0kfp\0" - "kfq\0kfr\0kfs\0kfu\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0khn\0kho\0" - "kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0kjt\0kjz\0" - "kk\0kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0klj\0klr\0" - "km\0kmj\0kmz\0kn\0knn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0kqy\0kra\0" - "krc\0krk\0krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0kte\0ktl\0ktp\0" - "ku_LB\0kuf\0kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0kxk\0kxm\0" - "kxp\0ky\0ky_CN\0kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0lbe\0lbf\0" - "lbj\0lbm\0lbo\0lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0lkh\0lki\0" - "lmh\0lmn\0lo\0loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0ltc\0luk\0" - "luu\0luv\0luz\0lwl\0lwm\0lya\0lzh\0mag\0mai\0man_GN\0mby\0mde\0" - "mdf\0mdx\0mdy\0mfa\0mfi\0mga\0mgp\0mhj\0mid\0mjl\0mjq\0mjr\0mjt\0" - "mju\0mjv\0mjz\0mk\0mkb\0mke\0mki\0mkm\0ml\0mlf\0mn\0mn_CN\0mnc\0" - "mni\0mnj\0mns\0mnw\0mpz\0mr\0mra\0mrd\0mrj\0mro\0mrr\0ms_CC\0" - "mtm\0mtr\0mud\0muk\0mut\0muv\0muz\0mve\0mvf\0mvy\0mvz\0mwr\0mwt\0" - "mww\0my\0mym\0myv\0myz\0mzn\0nan\0nao\0ncd\0ncq\0ndf\0ne\0neg\0" - "neh\0nei\0new\0ngt\0nio\0nit\0niv\0nli\0nlm\0nlx\0nmm\0nnp\0nod\0" - "noe\0nog\0noi\0non\0nos\0npb\0nqo\0nrn\0nsd\0nsf\0nsk\0nst\0nsv\0" - "nty\0ntz\0nwc\0nwx\0nyl\0nyq\0nyw\0oaa\0oac\0oar\0oav\0obm\0obr\0" - "odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0ole\0omk\0omp\0omr\0omx\0" - "oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0osi\0ota\0otb\0otk\0oty\0" - "oui\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0pce\0pcf\0pcg\0pch\0pci\0" - "pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0phk\0phl\0phn\0pho\0phr\0" - "pht\0phu\0phv\0phw\0pi\0pka\0pkr\0plk\0pll\0pmh\0pnt\0pra\0prc\0" - "prd\0prt\0prx\0ps\0psh\0psi\0pst\0psu\0pum\0pwo\0pwr\0pww\0pyx\0" - "qxq\0raa\0rab\0raf\0rah\0raj\0rav\0rbb\0rdb\0rei\0rhg\0rji\0rjs\0" - "rka\0rki\0rkt\0rmi\0rmt\0rmz\0rsk\0rtw\0ru\0rue\0rut\0rwr\0ryu\0" - "sa\0sah\0sam\0sat\0saz\0sbn\0sbu\0sck\0scl\0scp\0sct\0scu\0scx\0" - "sd\0sd_IN\0sdb\0sdf\0sdg\0sdh\0sdr\0sds\0sel\0sfm\0sga\0sgh\0" - "sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0shm\0shn\0shu\0shv\0si\0sia\0" - "sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0skj\0skr\0smh\0smp\0smu\0smy\0" - "soa\0sog\0soi\0sou\0spt\0spv\0sqo\0sqq\0sqt\0sr\0srb\0srh\0srx\0" - "srz\0ssh\0sss\0sts\0stv\0sty\0suz\0sva\0swb\0swi\0swv\0sxu\0syc\0" - "syl\0syn\0syr\0syw\0ta\0tab\0taj\0tbk\0tcn\0tco\0tcx\0tcy\0tda\0" - "tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0tg_PK\0tge\0tgf\0th\0the\0thf\0" - "thi\0thl\0thm\0thq\0thr\0ths\0ti\0tig\0tij\0tin\0tjl\0tjo\0tkb\0" - "tks\0tkt\0tmr\0tnv\0tov\0tpu\0tra\0trg\0trm\0trw\0tsd\0tsj\0tt\0" - "tth\0tto\0tts\0ttz\0tvn\0twm\0txg\0txo\0tyr\0tyv\0ude\0udg\0udi\0" - "udm\0ug\0ug_KZ\0ug_MN\0uga\0ugh\0ugo\0uk\0uki\0ulc\0unr\0unr_NP\0" - "unx\0ur\0urk\0ush\0uum\0uz_AF\0uz_CN\0uzs\0vaa\0vaf\0vah\0vai\0" - "vas\0vav\0vay\0vgr\0vjk\0vmd\0vmh\0wal\0wbk\0wbq\0wbr\0wle\0wlo\0" - "wme\0wne\0wni\0wsg\0wsv\0wtm\0wuu\0xag\0xal\0xan\0xas\0xco\0xcr\0" - "xdq\0xhe\0xhm\0xis\0xka\0xkc\0xkf\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0" - "xmn\0xmr\0xna\0xnr\0xpg\0xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xtq\0" - "xub\0xuj\0xve\0xvi\0xwo\0xzh\0yai\0ybh\0ybi\0ydg\0yea\0yej\0yeu\0" - "ygp\0yhd\0yi\0yig\0yih\0yiv\0ykg\0ykh\0yna\0ynk\0yoi\0yoy\0yrk\0" - "ysd\0ysn\0ysp\0ysr\0ysy\0yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0" - "zau\0zba\0zch\0zdj\0zeh\0zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0" - "zh_BN\0zh_GB\0zh_GF\0zh_HK\0zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0" - "zh_SR\0zh_TH\0zh_TW\0zh_US\0zh_VN\0zhd\0zhx\0zko\0zkt\0zkz\0zlj\0" - "zln\0zlq\0zqe\0zrg\0zrp\0zum\0zwa\0zyg\0zyn\0zzj\0"; + "ha_SD\0hac\0hak\0hak_TW\0har\0haz\0hbo\0hdy\0he\0hi\0hif\0hii\0" + "hit\0hkh\0hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hno\0hoc\0hoh\0" + "hoj\0how\0hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0huy\0huz\0hy\0" + "hyw\0ii\0imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0iu\0iw\0ja\0" + "jad\0jat\0jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0ji\0jje\0jkm\0" + "jml\0jna\0jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jul\0jun\0juy\0jya\0" + "jye\0ka\0kaa\0kap\0kaw\0kbd\0kbg\0kbu\0kby\0kca\0kcy\0kdq\0kdt\0" + "ket\0kev\0kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfg\0kfh\0kfi\0kfk\0" + "kfm\0kfp\0kfq\0kfr\0kfs\0kfu\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0" + "khn\0kho\0kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0" + "kjt\0kjz\0kk\0kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0" + "klj\0klr\0km\0kmj\0kmz\0kn\0knn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0" + "kqy\0kra\0krc\0krk\0krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0kte\0" + "ktl\0ktp\0ku_LB\0kuf\0kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0" + "kxk\0kxm\0kxp\0ky\0ky_CN\0kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0" + "lbe\0lbf\0lbj\0lbm\0lbo\0lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0" + "lkh\0lki\0lmh\0lmn\0lo\0loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0" + "ltc\0luk\0luu\0luv\0luz\0lwl\0lwm\0lya\0lzh\0lzz_GE\0mag\0mai\0" + "mby\0mde\0mdf\0mdx\0mdy\0mfa\0mfi\0mga\0mgp\0mhj\0mid\0mjl\0mjq\0" + "mjr\0mjt\0mju\0mjv\0mjz\0mk\0mkb\0mke\0mki\0mkm\0ml\0mlf\0mn\0" + "mn_CN\0mnc\0mni\0mnj\0mns\0mnw\0mpz\0mr\0mra\0mrd\0mrj\0mro\0" + "mrr\0ms_CC\0mtm\0mtr\0mud\0muk\0mut\0muv\0muz\0mve\0mvf\0mvy\0" + "mvz\0mwr\0mwt\0mww\0my\0mym\0myv\0myz\0mzn\0nan\0nan_TW\0nao\0" + "ncd\0ncq\0ndf\0ne\0neg\0neh\0nei\0new\0ngt\0nio\0nit\0niv\0nli\0" + "nlm\0nlx\0nmm\0nnp\0nod\0noe\0nog\0noi\0non\0nos\0npb\0nqo\0nrn\0" + "nsd\0nsf\0nsk\0nst\0nsv\0nty\0ntz\0nwc\0nwx\0nyl\0nyq\0nyw\0oaa\0" + "oac\0oar\0oav\0obm\0obr\0odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0" + "ole\0omk\0omp\0omr\0omx\0oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0" + "osi\0ota\0otb\0otk\0oty\0oui\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0" + "pce\0pcf\0pcg\0pch\0pci\0pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0" + "phk\0phl\0phn\0pho\0phr\0pht\0phu\0phv\0phw\0pi\0pka\0pkr\0plk\0" + "pll\0pmh\0pnt\0pnt_RU\0pra\0prc\0prd\0prt\0prx\0ps\0psh\0psi\0" + "pst\0psu\0pum\0pwo\0pwr\0pww\0pyx\0qxq\0raa\0rab\0raf\0rah\0raj\0" + "rav\0rbb\0rdb\0rei\0rhg\0rji\0rjs\0rka\0rki\0rkt\0rmi\0rmt\0rmz\0" + "rsk\0rtw\0ru\0rue\0rut\0rwr\0ryu\0sa\0sah\0sam\0sat\0saz\0sbn\0" + "sbu\0sck\0scl\0scp\0sct\0scu\0scx\0sd\0sd_IN\0sdb\0sdf\0sdg\0" + "sdh\0sdr\0sds\0sel\0sfm\0sgh\0sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0" + "shm\0shn\0shu\0shv\0si\0sia\0sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0" + "skj\0skr\0smh\0smp\0smu\0smy\0soa\0sog\0soi\0sou\0spt\0spv\0sqo\0" + "sqq\0sqt\0sr\0srb\0srh\0srx\0srz\0ssh\0sss\0sts\0stv\0sty\0suz\0" + "sva\0swb\0swi\0swv\0sxu\0syc\0syl\0syn\0syr\0syw\0ta\0tab\0taj\0" + "tbk\0tcn\0tco\0tcx\0tcy\0tda\0tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0" + "tg_PK\0tge\0tgf\0th\0the\0thf\0thi\0thl\0thm\0thq\0thr\0ths\0" + "ti\0tig\0tij\0tin\0tjl\0tjo\0tkb\0tks\0tkt\0tmr\0tnv\0tov\0tpu\0" + "tra\0trg\0trm\0trw\0tsd\0tsj\0tt\0tth\0tto\0tts\0ttz\0tvn\0twm\0" + "txg\0txo\0tyr\0tyv\0ude\0udg\0udi\0udm\0ug\0ug_KZ\0ug_MN\0uga\0" + "ugh\0ugo\0uk\0uki\0ulc\0unr\0unr_NP\0unx\0ur\0urk\0ush\0uum\0" + "uz_AF\0uz_CN\0uzs\0vaa\0vaf\0vah\0vai\0vas\0vav\0vay\0vgr\0vjk\0" + "vmd\0vmh\0wal\0wbk\0wbq\0wbr\0wle\0wlo\0wme\0wne\0wni\0wsg\0wsv\0" + "wtm\0wuu\0xag\0xal\0xan\0xas\0xco\0xcr\0xdq\0xhe\0xhm\0xis\0xka\0" + "xkc\0xkf\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0xmn\0xmr\0xna\0xnr\0xpg\0" + "xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xtq\0xub\0xuj\0xve\0xvi\0xwo\0" + "xzh\0yai\0ybh\0ybi\0ydg\0yea\0yej\0yeu\0ygp\0yhd\0yi\0yig\0yih\0" + "yiv\0ykg\0ykh\0yna\0ynk\0yoi\0yoy\0yrk\0ysd\0ysn\0ysp\0ysr\0ysy\0" + "yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0zau\0zba\0zch\0zdj\0zeh\0" + "zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0zh_BN\0zh_GB\0zh_GF\0zh_HK\0" + "zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0zh_SR\0zh_TH\0zh_TW\0zh_US\0" + "zh_VN\0zhd\0zhx\0zko\0zkt\0zkz\0zlj\0zln\0zlq\0zqe\0zrg\0zrp\0" + "zum\0zwa\0zyg\0zyn\0zzj\0"; const int32_t defaultScriptTable[] = { 0, 330, // aaf -> Mlym 4, 10, // aao -> Arab - 8, 150, // aat -> Grek - 12, 100, // ab -> Cyrl + 8, 155, // aat -> Grek + 12, 105, // ab -> Cyrl 15, 10, // abh -> Arab 19, 435, // abl -> Rjng 23, 10, // abv -> Arab @@ -121,64 +122,64 @@ const int32_t defaultScriptTable[] = { 39, 10, // acx -> Arab 43, 10, // adf -> Arab 47, 555, // adx -> Tibt - 51, 100, // ady -> Cyrl + 51, 105, // ady -> Cyrl 55, 25, // ae -> Avst 58, 10, // aeb -> Arab 62, 10, // aec -> Arab 66, 10, // aee -> Arab 70, 10, // aeq -> Arab 74, 10, // afb -> Arab - 78, 105, // agi -> Deva - 82, 120, // agj -> Ethi - 86, 100, // agx -> Cyrl - 90, 120, // ahg -> Ethi + 78, 110, // agi -> Deva + 82, 125, // agj -> Ethi + 86, 105, // agx -> Cyrl + 90, 125, // ahg -> Ethi 94, 5, // aho -> Ahom - 98, 105, // ahr -> Deva + 98, 110, // ahr -> Deva 102, 10, // aib -> Arab 106, 495, // aii -> Syrc - 110, 185, // aij -> Hebr - 114, 220, // ain -> Kana + 110, 190, // aij -> Hebr + 114, 225, // ain -> Kana 118, 355, // aio -> Mymr 122, 10, // aiq -> Arab 126, 590, // akk -> Xsux - 130, 100, // akv -> Cyrl + 130, 105, // akv -> Cyrl 134, 260, // alk -> Laoo 138, 330, // all -> Mlym - 142, 100, // alr -> Cyrl - 146, 100, // alt -> Cyrl - 150, 120, // alw -> Ethi - 154, 120, // am -> Ethi - 157, 210, // ams -> Jpan + 142, 105, // alr -> Cyrl + 146, 105, // alt -> Cyrl + 150, 125, // alw -> Ethi + 154, 125, // am -> Ethi + 157, 215, // ams -> Jpan 161, 495, // amw -> Syrc - 165, 100, // ani -> Cyrl - 169, 105, // anp -> Deva - 173, 105, // anq -> Deva - 177, 105, // anr -> Deva - 181, 120, // anu -> Ethi - 185, 45, // aot -> Beng + 165, 105, // ani -> Cyrl + 169, 110, // anp -> Deva + 173, 110, // anq -> Deva + 177, 110, // anr -> Deva + 181, 125, // anu -> Ethi + 185, 50, // aot -> Beng 189, 10, // apc -> Arab 193, 10, // apd -> Arab - 197, 105, // aph -> Deva - 201, 100, // aqc -> Cyrl + 197, 110, // aph -> Deva + 201, 105, // aqc -> Cyrl 205, 10, // ar -> Arab 208, 15, // arc -> Armi 212, 10, // arq -> Arab 216, 10, // ars -> Arab 220, 10, // ary -> Arab 224, 10, // arz -> Arab - 228, 45, // as -> Beng + 228, 50, // as -> Beng 231, 465, // ase -> Sgnw 235, 10, // ask -> Arab - 239, 105, // asr -> Deva + 239, 110, // asr -> Deva 243, 10, // atn -> Arab - 247, 100, // atv -> Cyrl + 247, 105, // atv -> Cyrl 251, 10, // auj -> Arab 255, 10, // auz -> Arab - 259, 100, // av -> Cyrl + 259, 105, // av -> Cyrl 262, 10, // avd -> Arab 266, 10, // avl -> Arab - 270, 105, // awa -> Deva - 274, 120, // awn -> Ethi + 270, 110, // awa -> Deva + 274, 125, // awn -> Ethi 278, 20, // axm -> Armn 282, 10, // ayh -> Arab 286, 10, // ayl -> Arab @@ -186,971 +187,973 @@ const int32_t defaultScriptTable[] = { 294, 10, // ayp -> Arab 298, 10, // az_IQ -> Arab 304, 10, // az_IR -> Arab - 310, 100, // az_RU -> Cyrl + 310, 105, // az_RU -> Cyrl 316, 10, // azb -> Arab - 320, 100, // ba -> Cyrl + 320, 105, // ba -> Cyrl 323, 10, // bal -> Arab - 327, 105, // bap -> Deva - 331, 30, // bax -> Bamu - 335, 125, // bbl -> Geor - 339, 120, // bcq -> Ethi + 327, 110, // bap -> Deva + 331, 35, // bax -> Bamu + 335, 130, // bbl -> Geor + 339, 125, // bcq -> Ethi 343, 395, // bdv -> Orya 347, 10, // bdz -> Arab - 351, 100, // be -> Cyrl - 354, 105, // bee -> Deva + 351, 105, // be -> Cyrl + 354, 110, // bee -> Deva 358, 10, // bej -> Arab - 362, 105, // bfb -> Deva + 362, 110, // bfb -> Deva 366, 520, // bfq -> Taml 370, 10, // bft -> Arab 374, 555, // bfu -> Tibt 378, 395, // bfw -> Orya - 382, 105, // bfy -> Deva - 386, 105, // bfz -> Deva - 390, 100, // bg -> Cyrl - 393, 105, // bgc -> Deva - 397, 105, // bgd -> Deva + 382, 110, // bfy -> Deva + 386, 110, // bfz -> Deva + 390, 105, // bg -> Cyrl + 393, 110, // bgc -> Deva + 397, 110, // bgd -> Deva 401, 10, // bgn -> Arab 405, 10, // bgp -> Arab - 409, 105, // bgq -> Deva - 413, 105, // bgw -> Deva - 417, 150, // bgx -> Grek - 421, 105, // bha -> Deva - 425, 105, // bhb -> Deva - 429, 105, // bhd -> Deva + 409, 110, // bgq -> Deva + 413, 110, // bgw -> Deva + 417, 155, // bgx -> Grek + 421, 110, // bha -> Deva + 425, 110, // bhb -> Deva + 429, 110, // bhd -> Deva 433, 10, // bhe -> Arab - 437, 100, // bhh -> Cyrl - 441, 105, // bhi -> Deva - 445, 105, // bhj -> Deva + 437, 105, // bhh -> Cyrl + 441, 110, // bhi -> Deva + 445, 110, // bhj -> Deva 449, 10, // bhm -> Arab 453, 495, // bhn -> Syrc - 457, 105, // bho -> Deva - 461, 105, // bht -> Deva - 465, 105, // bhu -> Deva - 469, 105, // biy -> Deva + 457, 110, // bho -> Deva + 461, 110, // bht -> Deva + 465, 110, // bhu -> Deva + 469, 110, // biy -> Deva 473, 495, // bjf -> Syrc - 477, 105, // bjj -> Deva + 477, 110, // bjj -> Deva 481, 10, // bjm -> Arab 485, 555, // bkk -> Tibt 489, 355, // blk -> Mymr 493, 530, // blt -> Tavt - 497, 105, // bmj -> Deva - 501, 45, // bn -> Beng - 504, 105, // bns -> Deva + 497, 110, // bmj -> Deva + 501, 50, // bn -> Beng + 504, 110, // bns -> Deva 508, 555, // bo -> Tibt - 511, 100, // bph -> Cyrl - 515, 105, // bpx -> Deva - 519, 45, // bpy -> Beng + 511, 105, // bph -> Cyrl + 515, 110, // bpx -> Deva + 519, 50, // bpy -> Beng 523, 10, // bqi -> Arab - 527, 105, // bra -> Deva + 527, 110, // bra -> Deva 531, 235, // brb -> Khmr - 535, 105, // brd -> Deva + 535, 110, // brd -> Deva 539, 10, // brh -> Arab 543, 10, // brk -> Arab 547, 555, // bro -> Tibt 551, 260, // brv -> Laoo 555, 245, // brw -> Knda - 559, 105, // brx -> Deva + 559, 110, // brx -> Deva 563, 10, // bsh -> Arab 567, 10, // bsk -> Arab - 571, 35, // bsq -> Bass - 575, 120, // bst -> Ethi - 579, 40, // btd -> Batk - 583, 40, // btm -> Batk - 587, 105, // btv -> Deva - 591, 100, // bua -> Cyrl + 571, 40, // bsq -> Bass + 575, 125, // bst -> Ethi + 579, 45, // btd -> Batk + 583, 45, // btm -> Batk + 587, 110, // btv -> Deva + 591, 105, // bua -> Cyrl 595, 355, // bwe -> Mymr - 599, 100, // bxm -> Cyrl + 599, 105, // bxm -> Cyrl 603, 340, // bxu -> Mong - 607, 105, // byh -> Deva - 611, 120, // byn -> Ethi - 615, 105, // byw -> Deva + 607, 110, // byh -> Deva + 611, 125, // byn -> Ethi + 615, 110, // byw -> Deva 619, 550, // bzi -> Thai 623, 550, // cbn -> Thai - 627, 60, // ccp -> Cakm + 627, 65, // ccp -> Cakm 631, 535, // cde -> Telu - 635, 105, // cdh -> Deva - 639, 155, // cdi -> Gujr - 643, 105, // cdj -> Deva - 647, 105, // cdm -> Deva - 651, 175, // cdo -> Hans - 655, 45, // cdz -> Beng - 659, 100, // ce -> Cyrl + 635, 110, // cdh -> Deva + 639, 160, // cdi -> Gujr + 643, 110, // cdj -> Deva + 647, 110, // cdm -> Deva + 651, 180, // cdo -> Hans + 655, 50, // cdz -> Beng + 659, 105, // ce -> Cyrl 662, 555, // cgk -> Tibt 666, 10, // chg -> Arab - 670, 100, // chm -> Cyrl - 674, 80, // chr -> Cher - 678, 105, // chx -> Deva - 682, 105, // cih -> Deva + 670, 105, // chm -> Cyrl + 674, 85, // chr -> Cher + 678, 110, // chx -> Deva + 682, 110, // cih -> Deva 686, 10, // cja -> Arab - 690, 100, // cji -> Cyrl - 694, 75, // cjm -> Cham - 698, 175, // cjy -> Hans + 690, 105, // cji -> Cyrl + 694, 80, // cjm -> Cham + 698, 180, // cjy -> Hans 702, 10, // ckb -> Arab - 706, 100, // ckt -> Cyrl + 706, 105, // ckt -> Cyrl 710, 10, // clh -> Arab - 714, 100, // clw -> Cyrl + 714, 105, // clw -> Cyrl 718, 485, // cmg -> Soyo 722, 555, // cna -> Tibt - 726, 175, // cnp -> Hans + 726, 180, // cnp -> Hans 730, 550, // cog -> Thai - 734, 90, // cop -> Copt - 738, 150, // cpg -> Grek - 742, 65, // cr -> Cans - 745, 100, // crh -> Cyrl - 749, 65, // crj -> Cans - 753, 65, // crk -> Cans - 757, 65, // crl -> Cans - 761, 65, // crm -> Cans + 734, 95, // cop -> Copt + 738, 155, // cpg -> Grek + 742, 70, // cr -> Cans + 745, 105, // crh -> Cyrl + 749, 70, // crj -> Cans + 753, 70, // crk -> Cans + 757, 70, // crl -> Cans + 761, 70, // crm -> Cans 765, 355, // csh -> Mymr - 769, 175, // csp -> Hans - 773, 65, // csw -> Cans + 769, 180, // csp -> Hans + 773, 70, // csw -> Cans 777, 410, // ctd -> Pauc - 781, 45, // ctg -> Beng - 785, 105, // ctn -> Deva + 781, 50, // ctg -> Beng + 785, 110, // ctn -> Deva 789, 520, // ctt -> Taml 793, 520, // cty -> Taml - 797, 100, // cu -> Cyrl + 797, 105, // cu -> Cyrl 800, 255, // cuu -> Lana - 804, 100, // cv -> Cyrl - 807, 175, // czh -> Hans - 811, 185, // czk -> Hebr - 815, 105, // daq -> Deva - 819, 100, // dar -> Cyrl + 804, 105, // cv -> Cyrl + 807, 180, // czh -> Hans + 811, 190, // czk -> Hebr + 815, 110, // daq -> Deva + 819, 105, // dar -> Cyrl 823, 10, // dcc -> Arab - 827, 100, // ddo -> Cyrl + 827, 105, // ddo -> Cyrl 831, 10, // def -> Arab 835, 10, // deh -> Arab - 839, 45, // der -> Beng + 839, 50, // der -> Beng 843, 10, // dgl -> Arab - 847, 105, // dhi -> Deva - 851, 155, // dhn -> Gujr - 855, 105, // dho -> Deva - 859, 105, // dhw -> Deva + 847, 110, // dhi -> Deva + 851, 160, // dhn -> Gujr + 855, 110, // dho -> Deva + 859, 110, // dhw -> Deva 863, 555, // dka -> Tibt - 867, 100, // dlg -> Cyrl + 867, 105, // dlg -> Cyrl 871, 320, // dmf -> Medf 875, 10, // dmk -> Arab 879, 10, // dml -> Arab - 883, 100, // dng -> Cyrl + 883, 105, // dng -> Cyrl 887, 355, // dnu -> Mymr 891, 355, // dnv -> Mymr - 895, 105, // doi -> Deva - 899, 120, // dox -> Ethi + 895, 110, // doi -> Deva + 899, 125, // dox -> Ethi 903, 555, // dre -> Tibt - 907, 105, // drq -> Deva - 911, 120, // drs -> Ethi - 915, 105, // dry -> Deva + 907, 110, // drq -> Deva + 911, 125, // drs -> Ethi + 915, 110, // dry -> Deva 919, 395, // dso -> Orya - 923, 105, // dty -> Deva - 927, 155, // dub -> Gujr - 931, 105, // duh -> Deva - 935, 105, // dus -> Deva + 923, 110, // dty -> Deva + 927, 160, // dub -> Gujr + 931, 110, // duh -> Deva + 935, 110, // dus -> Deva 939, 545, // dv -> Thaa 942, 395, // dwk -> Orya - 946, 105, // dwz -> Deva + 946, 110, // dwz -> Deva 950, 555, // dz -> Tibt 953, 555, // dzl -> Tibt - 957, 150, // ecr -> Grek - 961, 95, // ecy -> Cprt - 965, 110, // egy -> Egyp - 969, 215, // eky -> Kali - 973, 150, // el -> Grek - 976, 105, // emg -> Deva - 980, 105, // emu -> Deva - 984, 100, // enf -> Cyrl - 988, 100, // enh -> Cyrl + 957, 155, // ecr -> Grek + 961, 100, // ecy -> Cprt + 965, 115, // egy -> Egyp + 969, 220, // eky -> Kali + 973, 155, // el -> Grek + 976, 110, // emg -> Deva + 980, 110, // emu -> Deva + 984, 105, // enf -> Cyrl + 988, 105, // enh -> Cyrl 992, 520, // era -> Taml - 996, 135, // esg -> Gonm + 996, 140, // esg -> Gonm 1000, 10, // esh -> Arab - 1004, 200, // ett -> Ital - 1008, 100, // eve -> Cyrl - 1012, 100, // evn -> Cyrl + 1004, 205, // ett -> Ital + 1008, 105, // eve -> Cyrl + 1012, 105, // evn -> Cyrl 1016, 10, // fa -> Arab 1019, 10, // fay -> Arab 1023, 10, // faz -> Arab 1027, 10, // fia -> Arab - 1031, 105, // fmu -> Deva + 1031, 110, // fmu -> Deva 1035, 10, // fub -> Arab - 1039, 175, // gan -> Hans + 1039, 180, // gan -> Hans 1043, 395, // gaq -> Orya - 1047, 155, // gas -> Gujr + 1047, 160, // gas -> Gujr 1051, 535, // gau -> Telu 1055, 395, // gbj -> Orya - 1059, 105, // gbk -> Deva - 1063, 155, // gbl -> Gujr - 1067, 105, // gbm -> Deva + 1059, 110, // gbk -> Deva + 1063, 160, // gbl -> Gujr + 1067, 110, // gbm -> Deva 1071, 10, // gbz -> Arab 1075, 395, // gdb -> Orya - 1079, 100, // gdo -> Cyrl - 1083, 105, // gdx -> Deva - 1087, 120, // gez -> Ethi + 1079, 105, // gdo -> Cyrl + 1083, 110, // gdx -> Deva + 1087, 125, // gez -> Ethi 1091, 10, // ggg -> Arab 1095, 10, // gha -> Arab - 1099, 105, // ghe -> Deva + 1099, 110, // ghe -> Deva 1103, 540, // gho -> Tfng 1107, 10, // ghr -> Arab 1111, 555, // ght -> Tibt 1115, 10, // gig -> Arab - 1119, 100, // gin -> Cyrl + 1119, 105, // gin -> Cyrl 1123, 10, // gjk -> Arab 1127, 10, // gju -> Arab - 1131, 100, // gld -> Cyrl + 1131, 105, // gld -> Cyrl 1135, 10, // glh -> Arab 1139, 10, // glk -> Arab 1143, 265, // gml -> Latf - 1147, 120, // gmv -> Ethi + 1147, 125, // gmv -> Ethi 1151, 285, // gmy -> Linb 1155, 555, // goe -> Tibt - 1159, 120, // gof -> Ethi - 1163, 105, // goj -> Deva - 1167, 105, // gok -> Deva - 1171, 105, // gon -> Deva - 1175, 140, // got -> Goth - 1179, 105, // gra -> Deva - 1183, 95, // grc -> Cprt - 1187, 45, // grt -> Beng - 1191, 120, // gru -> Ethi - 1195, 155, // gu -> Gujr - 1198, 105, // gvr -> Deva + 1159, 125, // gof -> Ethi + 1163, 110, // goj -> Deva + 1167, 110, // gok -> Deva + 1171, 110, // gon -> Deva + 1175, 145, // got -> Goth + 1179, 110, // gra -> Deva + 1183, 155, // grc -> Grek + 1187, 50, // grt -> Beng + 1191, 125, // gru -> Ethi + 1195, 160, // gu -> Gujr + 1198, 110, // gvr -> Deva 1202, 10, // gwc -> Arab 1206, 10, // gwf -> Arab 1210, 10, // gwt -> Arab - 1214, 105, // gyo -> Deva + 1214, 110, // gyo -> Deva 1218, 10, // gzi -> Arab 1222, 10, // ha_CM -> Arab 1228, 10, // ha_SD -> Arab 1234, 10, // hac -> Arab - 1238, 175, // hak -> Hans - 1242, 120, // har -> Ethi - 1246, 10, // haz -> Arab - 1250, 185, // hbo -> Hebr - 1254, 120, // hdy -> Ethi - 1258, 185, // he -> Hebr - 1261, 105, // hi -> Deva - 1264, 105, // hif -> Deva - 1268, 505, // hii -> Takr - 1272, 590, // hit -> Xsux - 1276, 10, // hkh -> Arab - 1280, 105, // hlb -> Deva - 1284, 190, // hlu -> Hluw - 1288, 425, // hmd -> Plrd - 1292, 50, // hmj -> Bopo - 1296, 50, // hmq -> Bopo - 1300, 10, // hnd -> Arab - 1304, 105, // hne -> Deva - 1308, 195, // hnj -> Hmnp - 1312, 10, // hno -> Arab - 1316, 105, // hoc -> Deva - 1320, 10, // hoh -> Arab - 1324, 105, // hoj -> Deva - 1328, 170, // how -> Hani - 1332, 105, // hoy -> Deva - 1336, 355, // hpo -> Mymr - 1340, 495, // hrt -> Syrc - 1344, 10, // hrz -> Arab - 1348, 175, // hsn -> Hans - 1352, 10, // hss -> Arab - 1356, 590, // htx -> Xsux - 1360, 105, // hut -> Deva - 1364, 185, // huy -> Hebr - 1368, 100, // huz -> Cyrl - 1372, 20, // hy -> Armn - 1375, 20, // hyw -> Armn - 1379, 595, // ii -> Yiii - 1382, 295, // imy -> Lyci - 1386, 100, // inh -> Cyrl - 1390, 355, // int -> Mymr - 1394, 120, // ior -> Ethi - 1398, 520, // iru -> Taml - 1402, 10, // isk -> Arab - 1406, 185, // itk -> Hebr - 1410, 100, // itl -> Cyrl - 1414, 65, // iu -> Cans - 1417, 185, // iw -> Hebr - 1420, 210, // ja -> Jpan - 1423, 10, // jad -> Arab - 1427, 10, // jat -> Arab - 1431, 185, // jbe -> Hebr - 1435, 10, // jbn -> Arab - 1439, 100, // jct -> Cyrl - 1443, 555, // jda -> Tibt - 1447, 10, // jdg -> Arab - 1451, 100, // jdt -> Cyrl - 1455, 105, // jee -> Deva - 1459, 125, // jge -> Geor - 1463, 185, // ji -> Hebr - 1466, 165, // jje -> Hang - 1470, 355, // jkm -> Mymr - 1474, 105, // jml -> Deva - 1478, 505, // jna -> Takr - 1482, 10, // jnd -> Arab - 1486, 105, // jnl -> Deva - 1490, 105, // jns -> Deva - 1494, 10, // jog -> Arab - 1498, 185, // jpa -> Hebr - 1502, 185, // jpr -> Hebr - 1506, 185, // jrb -> Hebr - 1510, 105, // jul -> Deva - 1514, 395, // jun -> Orya - 1518, 395, // juy -> Orya - 1522, 555, // jya -> Tibt - 1526, 185, // jye -> Hebr - 1530, 125, // ka -> Geor - 1533, 100, // kaa -> Cyrl - 1537, 100, // kap -> Cyrl - 1541, 225, // kaw -> Kawi - 1545, 100, // kbd -> Cyrl - 1549, 555, // kbg -> Tibt - 1553, 10, // kbu -> Arab - 1557, 10, // kby -> Arab - 1561, 100, // kca -> Cyrl - 1565, 10, // kcy -> Arab - 1569, 45, // kdq -> Beng - 1573, 550, // kdt -> Thai - 1577, 100, // ket -> Cyrl - 1581, 330, // kev -> Mlym - 1585, 105, // kex -> Deva - 1589, 535, // key -> Telu - 1593, 245, // kfa -> Knda - 1597, 105, // kfb -> Deva - 1601, 535, // kfc -> Telu - 1605, 245, // kfd -> Knda - 1609, 520, // kfe -> Taml - 1613, 245, // kfg -> Knda - 1617, 330, // kfh -> Mlym - 1621, 520, // kfi -> Taml - 1625, 105, // kfk -> Deva - 1629, 10, // kfm -> Arab - 1633, 105, // kfp -> Deva - 1637, 105, // kfq -> Deva - 1641, 105, // kfr -> Deva - 1645, 105, // kfs -> Deva - 1649, 105, // kfu -> Deva - 1653, 105, // kfx -> Deva - 1657, 105, // kfy -> Deva - 1661, 105, // kgj -> Deva - 1665, 105, // kgy -> Deva - 1669, 515, // khb -> Talu - 1673, 550, // khf -> Thai - 1677, 555, // khg -> Tibt - 1681, 105, // khn -> Deva - 1685, 55, // kho -> Brah - 1689, 355, // kht -> Mymr - 1693, 100, // khv -> Cyrl - 1697, 10, // khw -> Arab - 1701, 105, // kif -> Deva - 1705, 100, // kim -> Cyrl - 1709, 105, // kip -> Deva - 1713, 260, // kjg -> Laoo - 1717, 100, // kjh -> Cyrl - 1721, 105, // kjl -> Deva - 1725, 105, // kjo -> Deva - 1729, 355, // kjp -> Mymr - 1733, 550, // kjt -> Thai - 1737, 555, // kjz -> Tibt - 1741, 100, // kk -> Cyrl - 1744, 10, // kk_AF -> Arab - 1750, 10, // kk_CN -> Arab - 1756, 10, // kk_IR -> Arab - 1762, 10, // kk_MN -> Arab - 1768, 555, // kkf -> Tibt - 1772, 255, // kkh -> Lana - 1776, 105, // kkt -> Deva - 1780, 105, // kle -> Deva - 1784, 10, // klj -> Arab - 1788, 105, // klr -> Deva - 1792, 235, // km -> Khmr - 1795, 105, // kmj -> Deva - 1799, 10, // kmz -> Arab - 1803, 245, // kn -> Knda - 1806, 105, // knn -> Deva - 1810, 250, // ko -> Kore - 1813, 100, // koi -> Cyrl - 1817, 105, // kok -> Deva - 1821, 100, // kpt -> Cyrl - 1825, 100, // kpy -> Cyrl - 1829, 495, // kqd -> Syrc - 1833, 120, // kqy -> Ethi - 1837, 105, // kra -> Deva - 1841, 100, // krc -> Cyrl - 1845, 100, // krk -> Cyrl - 1849, 235, // krr -> Khmr - 1853, 105, // kru -> Deva - 1857, 235, // krv -> Khmr - 1861, 10, // ks -> Arab - 1864, 355, // ksu -> Mymr - 1868, 355, // ksw -> Mymr - 1872, 105, // ksz -> Deva - 1876, 120, // ktb -> Ethi - 1880, 105, // kte -> Deva - 1884, 10, // ktl -> Arab - 1888, 425, // ktp -> Plrd - 1892, 10, // ku_LB -> Arab - 1898, 260, // kuf -> Laoo - 1902, 100, // kum -> Cyrl - 1906, 100, // kv -> Cyrl - 1909, 100, // kva -> Cyrl - 1913, 355, // kvq -> Mymr - 1917, 355, // kvt -> Mymr - 1921, 10, // kvx -> Arab - 1925, 215, // kvy -> Kali - 1929, 355, // kxf -> Mymr - 1933, 355, // kxk -> Mymr - 1937, 550, // kxm -> Thai - 1941, 10, // kxp -> Arab - 1945, 100, // ky -> Cyrl - 1948, 10, // ky_CN -> Arab - 1954, 215, // kyu -> Kali - 1958, 105, // kyv -> Deva - 1962, 105, // kyw -> Deva - 1966, 280, // lab -> Lina - 1970, 185, // lad -> Hebr - 1974, 105, // lae -> Deva - 1978, 10, // lah -> Arab - 1982, 100, // lbe -> Cyrl - 1986, 105, // lbf -> Deva - 1990, 555, // lbj -> Tibt - 1994, 105, // lbm -> Deva - 1998, 260, // lbo -> Laoo - 2002, 105, // lbr -> Deva - 2006, 550, // lcp -> Thai - 2010, 275, // lep -> Lepc - 2014, 100, // lez -> Cyrl - 2018, 105, // lhm -> Deva - 2022, 495, // lhs -> Syrc - 2026, 105, // lif -> Deva - 2030, 290, // lis -> Lisu - 2034, 555, // lkh -> Tibt - 2038, 10, // lki -> Arab - 2042, 105, // lmh -> Deva - 2046, 535, // lmn -> Telu - 2050, 260, // lo -> Laoo - 2053, 105, // loy -> Deva - 2057, 425, // lpo -> Plrd - 2061, 10, // lrc -> Arab - 2065, 10, // lrk -> Arab - 2069, 10, // lrl -> Arab - 2073, 10, // lsa -> Arab - 2077, 185, // lsd -> Hebr - 2081, 10, // lss -> Arab - 2085, 180, // ltc -> Hant - 2089, 555, // luk -> Tibt - 2093, 105, // luu -> Deva - 2097, 10, // luv -> Arab - 2101, 10, // luz -> Arab - 2105, 550, // lwl -> Thai - 2109, 550, // lwm -> Thai - 2113, 555, // lya -> Tibt - 2117, 175, // lzh -> Hans - 2121, 105, // mag -> Deva - 2125, 105, // mai -> Deva - 2129, 370, // man_GN -> Nkoo - 2136, 10, // mby -> Arab - 2140, 10, // mde -> Arab - 2144, 100, // mdf -> Cyrl - 2148, 120, // mdx -> Ethi - 2152, 120, // mdy -> Ethi - 2156, 10, // mfa -> Arab - 2160, 10, // mfi -> Arab - 2164, 270, // mga -> Latg - 2168, 105, // mgp -> Deva - 2172, 10, // mhj -> Arab - 2176, 305, // mid -> Mand - 2180, 105, // mjl -> Deva - 2184, 330, // mjq -> Mlym - 2188, 330, // mjr -> Mlym - 2192, 105, // mjt -> Deva - 2196, 535, // mju -> Telu - 2200, 330, // mjv -> Mlym - 2204, 105, // mjz -> Deva - 2208, 100, // mk -> Cyrl - 2211, 105, // mkb -> Deva - 2215, 105, // mke -> Deva - 2219, 10, // mki -> Arab - 2223, 550, // mkm -> Thai - 2227, 330, // ml -> Mlym - 2230, 550, // mlf -> Thai - 2234, 100, // mn -> Cyrl - 2237, 340, // mn_CN -> Mong - 2243, 340, // mnc -> Mong - 2247, 45, // mni -> Beng - 2251, 10, // mnj -> Arab - 2255, 100, // mns -> Cyrl - 2259, 355, // mnw -> Mymr - 2263, 550, // mpz -> Thai - 2267, 105, // mr -> Deva - 2270, 550, // mra -> Thai - 2274, 105, // mrd -> Deva - 2278, 100, // mrj -> Cyrl - 2282, 345, // mro -> Mroo - 2286, 105, // mrr -> Deva - 2290, 10, // ms_CC -> Arab - 2296, 100, // mtm -> Cyrl - 2300, 105, // mtr -> Deva - 2304, 100, // mud -> Cyrl - 2308, 555, // muk -> Tibt - 2312, 105, // mut -> Deva - 2316, 520, // muv -> Taml - 2320, 120, // muz -> Ethi - 2324, 10, // mve -> Arab - 2328, 340, // mvf -> Mong - 2332, 10, // mvy -> Arab - 2336, 120, // mvz -> Ethi - 2340, 105, // mwr -> Deva - 2344, 355, // mwt -> Mymr - 2348, 195, // mww -> Hmnp - 2352, 355, // my -> Mymr - 2355, 120, // mym -> Ethi - 2359, 100, // myv -> Cyrl - 2363, 305, // myz -> Mand - 2367, 10, // mzn -> Arab - 2371, 175, // nan -> Hans - 2375, 105, // nao -> Deva - 2379, 105, // ncd -> Deva - 2383, 260, // ncq -> Laoo - 2387, 100, // ndf -> Cyrl - 2391, 105, // ne -> Deva - 2394, 100, // neg -> Cyrl - 2398, 555, // neh -> Tibt - 2402, 590, // nei -> Xsux - 2406, 105, // new -> Deva - 2410, 260, // ngt -> Laoo - 2414, 100, // nio -> Cyrl - 2418, 535, // nit -> Telu - 2422, 100, // niv -> Cyrl - 2426, 10, // nli -> Arab - 2430, 10, // nlm -> Arab - 2434, 105, // nlx -> Deva - 2438, 105, // nmm -> Deva - 2442, 580, // nnp -> Wcho - 2446, 255, // nod -> Lana - 2450, 105, // noe -> Deva - 2454, 100, // nog -> Cyrl - 2458, 105, // noi -> Deva - 2462, 445, // non -> Runr - 2466, 595, // nos -> Yiii - 2470, 555, // npb -> Tibt - 2474, 370, // nqo -> Nkoo - 2478, 445, // nrn -> Runr - 2482, 595, // nsd -> Yiii - 2486, 595, // nsf -> Yiii - 2490, 65, // nsk -> Cans - 2494, 560, // nst -> Tnsa - 2498, 595, // nsv -> Yiii - 2502, 595, // nty -> Yiii - 2506, 10, // ntz -> Arab - 2510, 365, // nwc -> Newa - 2514, 105, // nwx -> Deva - 2518, 550, // nyl -> Thai - 2522, 10, // nyq -> Arab - 2526, 550, // nyw -> Thai - 2530, 100, // oaa -> Cyrl - 2534, 100, // oac -> Cyrl - 2538, 495, // oar -> Syrc - 2542, 125, // oav -> Geor - 2546, 420, // obm -> Phnx - 2550, 355, // obr -> Mymr - 2554, 10, // odk -> Arab - 2558, 590, // oht -> Xsux - 2562, 65, // oj -> Cans - 2565, 65, // ojs -> Cans - 2569, 165, // okm -> Hang - 2573, 170, // oko -> Hani - 2577, 235, // okz -> Khmr - 2581, 105, // ola -> Deva - 2585, 555, // ole -> Tibt - 2589, 100, // omk -> Cyrl - 2593, 350, // omp -> Mtei - 2597, 335, // omr -> Modi - 2601, 355, // omx -> Mymr - 2605, 105, // oon -> Deva - 2609, 395, // or -> Orya - 2612, 535, // ort -> Telu - 2616, 10, // oru -> Arab - 2620, 100, // orv -> Cyrl - 2624, 100, // os -> Cyrl - 2627, 400, // osa -> Osge - 2631, 200, // osc -> Ital - 2635, 205, // osi -> Java - 2639, 10, // ota -> Arab - 2643, 555, // otb -> Tibt - 2647, 390, // otk -> Orkh - 2651, 145, // oty -> Gran - 2655, 405, // oui -> Ougr - 2659, 160, // pa -> Guru - 2662, 10, // pa_PK -> Arab - 2668, 415, // pal -> Phli - 2672, 100, // paq -> Cyrl - 2676, 10, // pbt -> Arab - 2680, 235, // pcb -> Khmr - 2684, 355, // pce -> Mymr - 2688, 330, // pcf -> Mlym - 2692, 330, // pcg -> Mlym - 2696, 105, // pch -> Deva - 2700, 105, // pci -> Deva - 2704, 535, // pcj -> Telu - 2708, 395, // peg -> Orya - 2712, 585, // peo -> Xpeo - 2716, 230, // pgd -> Khar - 2720, 105, // pgg -> Deva - 2724, 380, // pgl -> Ogam - 2728, 200, // pgn -> Ital - 2732, 105, // phd -> Deva - 2736, 355, // phk -> Mymr - 2740, 10, // phl -> Arab - 2744, 420, // phn -> Phnx - 2748, 260, // pho -> Laoo - 2752, 10, // phr -> Arab - 2756, 550, // pht -> Thai - 2760, 550, // phu -> Thai - 2764, 10, // phv -> Arab - 2768, 105, // phw -> Deva - 2772, 470, // pi -> Sinh - 2775, 55, // pka -> Brah - 2779, 330, // pkr -> Mlym - 2783, 10, // plk -> Arab - 2787, 355, // pll -> Mymr - 2791, 55, // pmh -> Brah - 2795, 150, // pnt -> Grek - 2799, 230, // pra -> Khar - 2803, 10, // prc -> Arab - 2807, 10, // prd -> Arab - 2811, 550, // prt -> Thai - 2815, 10, // prx -> Arab - 2819, 10, // ps -> Arab - 2822, 10, // psh -> Arab - 2826, 10, // psi -> Arab - 2830, 10, // pst -> Arab - 2834, 55, // psu -> Brah - 2838, 105, // pum -> Deva - 2842, 355, // pwo -> Mymr - 2846, 105, // pwr -> Deva - 2850, 550, // pww -> Thai - 2854, 355, // pyx -> Mymr - 2858, 10, // qxq -> Arab - 2862, 105, // raa -> Deva - 2866, 105, // rab -> Deva - 2870, 105, // raf -> Deva - 2874, 45, // rah -> Beng - 2878, 105, // raj -> Deva - 2882, 105, // rav -> Deva - 2886, 355, // rbb -> Mymr - 2890, 10, // rdb -> Arab - 2894, 395, // rei -> Orya - 2898, 440, // rhg -> Rohg - 2902, 105, // rji -> Deva - 2906, 105, // rjs -> Deva - 2910, 235, // rka -> Khmr - 2914, 355, // rki -> Mymr - 2918, 45, // rkt -> Beng - 2922, 20, // rmi -> Armn - 2926, 10, // rmt -> Arab - 2930, 355, // rmz -> Mymr - 2934, 100, // rsk -> Cyrl - 2938, 105, // rtw -> Deva - 2942, 100, // ru -> Cyrl - 2945, 100, // rue -> Cyrl - 2949, 100, // rut -> Cyrl - 2953, 105, // rwr -> Deva - 2957, 220, // ryu -> Kana - 2961, 105, // sa -> Deva - 2964, 100, // sah -> Cyrl - 2968, 450, // sam -> Samr - 2972, 385, // sat -> Olck - 2976, 460, // saz -> Saur - 2980, 10, // sbn -> Arab - 2984, 555, // sbu -> Tibt - 2988, 105, // sck -> Deva - 2992, 10, // scl -> Arab - 2996, 105, // scp -> Deva - 3000, 260, // sct -> Laoo - 3004, 505, // scu -> Takr - 3008, 150, // scx -> Grek - 3012, 10, // sd -> Arab - 3015, 105, // sd_IN -> Deva - 3021, 10, // sdb -> Arab - 3025, 10, // sdf -> Arab - 3029, 10, // sdg -> Arab - 3033, 10, // sdh -> Arab - 3037, 45, // sdr -> Beng - 3041, 10, // sds -> Arab - 3045, 100, // sel -> Cyrl - 3049, 425, // sfm -> Plrd - 3053, 380, // sga -> Ogam - 3057, 100, // sgh -> Cyrl - 3061, 105, // sgj -> Deva - 3065, 10, // sgr -> Arab - 3069, 555, // sgt -> Tibt - 3073, 120, // sgw -> Ethi - 3077, 10, // sgy -> Arab - 3081, 10, // shd -> Arab - 3085, 540, // shi -> Tfng - 3089, 10, // shm -> Arab - 3093, 355, // shn -> Mymr - 3097, 10, // shu -> Arab - 3101, 10, // shv -> Arab - 3105, 470, // si -> Sinh - 3108, 100, // sia -> Cyrl - 3112, 555, // sip -> Tibt - 3116, 10, // siy -> Arab - 3120, 10, // siz -> Arab - 3124, 100, // sjd -> Cyrl - 3128, 105, // sjp -> Deva - 3132, 100, // sjt -> Cyrl - 3136, 550, // skb -> Thai - 3140, 105, // skj -> Deva - 3144, 10, // skr -> Arab - 3148, 595, // smh -> Yiii - 3152, 450, // smp -> Samr - 3156, 235, // smu -> Khmr - 3160, 10, // smy -> Arab - 3164, 530, // soa -> Tavt - 3168, 475, // sog -> Sogd - 3172, 105, // soi -> Deva - 3176, 550, // sou -> Thai - 3180, 555, // spt -> Tibt - 3184, 395, // spv -> Orya - 3188, 10, // sqo -> Arab - 3192, 260, // sqq -> Laoo - 3196, 10, // sqt -> Arab - 3200, 100, // sr -> Cyrl - 3203, 480, // srb -> Sora - 3207, 10, // srh -> Arab - 3211, 105, // srx -> Deva - 3215, 10, // srz -> Arab - 3219, 10, // ssh -> Arab - 3223, 260, // sss -> Laoo - 3227, 10, // sts -> Arab - 3231, 120, // stv -> Ethi - 3235, 100, // sty -> Cyrl - 3239, 490, // suz -> Sunu - 3243, 125, // sva -> Geor - 3247, 10, // swb -> Arab - 3251, 170, // swi -> Hani - 3255, 105, // swv -> Deva - 3259, 445, // sxu -> Runr - 3263, 495, // syc -> Syrc - 3267, 45, // syl -> Beng - 3271, 495, // syn -> Syrc - 3275, 495, // syr -> Syrc - 3279, 105, // syw -> Deva - 3283, 520, // ta -> Taml - 3286, 100, // tab -> Cyrl - 3290, 105, // taj -> Deva - 3294, 500, // tbk -> Tagb - 3298, 555, // tcn -> Tibt - 3302, 355, // tco -> Mymr - 3306, 520, // tcx -> Taml - 3310, 245, // tcy -> Knda - 3314, 540, // tda -> Tfng - 3318, 105, // tdb -> Deva - 3322, 510, // tdd -> Tale - 3326, 105, // tdg -> Deva - 3330, 105, // tdh -> Deva - 3334, 535, // te -> Telu - 3337, 205, // tes -> Java - 3341, 100, // tg -> Cyrl - 3344, 10, // tg_PK -> Arab - 3350, 105, // tge -> Deva - 3354, 555, // tgf -> Tibt - 3358, 550, // th -> Thai - 3361, 105, // the -> Deva - 3365, 105, // thf -> Deva - 3369, 510, // thi -> Tale - 3373, 105, // thl -> Deva - 3377, 550, // thm -> Thai - 3381, 105, // thq -> Deva - 3385, 105, // thr -> Deva - 3389, 105, // ths -> Deva - 3393, 120, // ti -> Ethi - 3396, 120, // tig -> Ethi - 3400, 105, // tij -> Deva - 3404, 100, // tin -> Cyrl - 3408, 355, // tjl -> Mymr - 3412, 10, // tjo -> Arab - 3416, 105, // tkb -> Deva - 3420, 10, // tks -> Arab - 3424, 105, // tkt -> Deva - 3428, 495, // tmr -> Syrc - 3432, 60, // tnv -> Cakm - 3436, 10, // tov -> Arab - 3440, 235, // tpu -> Khmr - 3444, 10, // tra -> Arab - 3448, 185, // trg -> Hebr - 3452, 10, // trm -> Arab - 3456, 10, // trw -> Arab - 3460, 150, // tsd -> Grek - 3464, 555, // tsj -> Tibt - 3468, 100, // tt -> Cyrl - 3471, 260, // tth -> Laoo - 3475, 260, // tto -> Laoo - 3479, 550, // tts -> Thai - 3483, 105, // ttz -> Deva - 3487, 355, // tvn -> Mymr - 3491, 105, // twm -> Deva - 3495, 525, // txg -> Tang - 3499, 565, // txo -> Toto - 3503, 530, // tyr -> Tavt - 3507, 100, // tyv -> Cyrl - 3511, 100, // ude -> Cyrl - 3515, 330, // udg -> Mlym - 3519, 100, // udi -> Cyrl - 3523, 100, // udm -> Cyrl - 3527, 10, // ug -> Arab - 3530, 100, // ug_KZ -> Cyrl - 3536, 100, // ug_MN -> Cyrl - 3542, 570, // uga -> Ugar - 3546, 100, // ugh -> Cyrl - 3550, 550, // ugo -> Thai - 3554, 100, // uk -> Cyrl - 3557, 395, // uki -> Orya - 3561, 100, // ulc -> Cyrl - 3565, 45, // unr -> Beng - 3569, 105, // unr_NP -> Deva - 3576, 45, // unx -> Beng - 3580, 10, // ur -> Arab - 3583, 550, // urk -> Thai - 3587, 10, // ush -> Arab - 3591, 150, // uum -> Grek - 3595, 10, // uz_AF -> Arab - 3601, 100, // uz_CN -> Cyrl - 3607, 10, // uzs -> Arab - 3611, 520, // vaa -> Taml - 3615, 10, // vaf -> Arab - 3619, 105, // vah -> Deva - 3623, 575, // vai -> Vaii - 3627, 105, // vas -> Deva - 3631, 105, // vav -> Deva - 3635, 105, // vay -> Deva - 3639, 10, // vgr -> Arab - 3643, 105, // vjk -> Deva - 3647, 245, // vmd -> Knda - 3651, 10, // vmh -> Arab - 3655, 120, // wal -> Ethi - 3659, 10, // wbk -> Arab - 3663, 535, // wbq -> Telu - 3667, 105, // wbr -> Deva - 3671, 120, // wle -> Ethi - 3675, 10, // wlo -> Arab - 3679, 105, // wme -> Deva - 3683, 10, // wne -> Arab - 3687, 10, // wni -> Arab - 3691, 130, // wsg -> Gong - 3695, 10, // wsv -> Arab - 3699, 105, // wtm -> Deva - 3703, 175, // wuu -> Hans - 3707, 0, // xag -> Aghb - 3711, 100, // xal -> Cyrl - 3715, 120, // xan -> Ethi - 3719, 100, // xas -> Cyrl - 3723, 85, // xco -> Chrs - 3727, 70, // xcr -> Cari - 3731, 100, // xdq -> Cyrl - 3735, 10, // xhe -> Arab - 3739, 235, // xhm -> Khmr - 3743, 395, // xis -> Orya - 3747, 10, // xka -> Arab - 3751, 10, // xkc -> Arab - 3755, 555, // xkf -> Tibt - 3759, 10, // xkj -> Arab - 3763, 10, // xkp -> Arab - 3767, 295, // xlc -> Lyci - 3771, 300, // xld -> Lydi - 3775, 115, // xly -> Elym - 3779, 125, // xmf -> Geor - 3783, 310, // xmn -> Mani - 3787, 325, // xmr -> Merc - 3791, 360, // xna -> Narb - 3795, 105, // xnr -> Deva - 3799, 150, // xpg -> Grek - 3803, 380, // xpi -> Ogam - 3807, 100, // xpm -> Cyrl - 3811, 430, // xpr -> Prti - 3815, 100, // xrm -> Cyrl - 3819, 100, // xrn -> Cyrl - 3823, 455, // xsa -> Sarb - 3827, 105, // xsr -> Deva - 3831, 55, // xtq -> Brah - 3835, 520, // xub -> Taml - 3839, 520, // xuj -> Taml - 3843, 200, // xve -> Ital - 3847, 10, // xvi -> Arab - 3851, 100, // xwo -> Cyrl - 3855, 315, // xzh -> Marc - 3859, 100, // yai -> Cyrl - 3863, 105, // ybh -> Deva - 3867, 105, // ybi -> Deva - 3871, 10, // ydg -> Arab - 3875, 330, // yea -> Mlym - 3879, 150, // yej -> Grek - 3883, 535, // yeu -> Telu - 3887, 425, // ygp -> Plrd - 3891, 185, // yhd -> Hebr - 3895, 185, // yi -> Hebr - 3898, 595, // yig -> Yiii - 3902, 185, // yih -> Hebr - 3906, 595, // yiv -> Yiii - 3910, 100, // ykg -> Cyrl - 3914, 100, // ykh -> Cyrl - 3918, 425, // yna -> Plrd - 3922, 100, // ynk -> Cyrl - 3926, 210, // yoi -> Jpan - 3930, 550, // yoy -> Thai - 3934, 100, // yrk -> Cyrl - 3938, 595, // ysd -> Yiii - 3942, 595, // ysn -> Yiii - 3946, 595, // ysp -> Yiii - 3950, 100, // ysr -> Cyrl - 3954, 425, // ysy -> Plrd - 3958, 185, // yud -> Hebr - 3962, 180, // yue -> Hant - 3966, 175, // yue_CN -> Hans - 3973, 100, // yug -> Cyrl - 3977, 100, // yux -> Cyrl - 3981, 425, // ywq -> Plrd - 3985, 425, // ywu -> Plrd - 3989, 555, // zau -> Tibt - 3993, 10, // zba -> Arab - 3997, 170, // zch -> Hani - 4001, 10, // zdj -> Arab - 4005, 170, // zeh -> Hani - 4009, 540, // zen -> Tfng - 4013, 170, // zgb -> Hani - 4017, 540, // zgh -> Tfng - 4021, 170, // zgm -> Hani - 4025, 170, // zgn -> Hani - 4029, 175, // zh -> Hans - 4032, 180, // zh_AU -> Hant - 4038, 180, // zh_BN -> Hant - 4044, 180, // zh_GB -> Hant - 4050, 180, // zh_GF -> Hant - 4056, 180, // zh_HK -> Hant - 4062, 180, // zh_ID -> Hant - 4068, 180, // zh_MO -> Hant - 4074, 180, // zh_PA -> Hant - 4080, 180, // zh_PF -> Hant - 4086, 180, // zh_PH -> Hant - 4092, 180, // zh_SR -> Hant - 4098, 180, // zh_TH -> Hant - 4104, 180, // zh_TW -> Hant - 4110, 180, // zh_US -> Hant - 4116, 180, // zh_VN -> Hant - 4122, 170, // zhd -> Hani - 4126, 375, // zhx -> Nshu - 4130, 100, // zko -> Cyrl - 4134, 240, // zkt -> Kits - 4138, 100, // zkz -> Cyrl - 4142, 170, // zlj -> Hani - 4146, 170, // zln -> Hani - 4150, 170, // zlq -> Hani - 4154, 170, // zqe -> Hani - 4158, 395, // zrg -> Orya - 4162, 185, // zrp -> Hebr - 4166, 10, // zum -> Arab - 4170, 120, // zwa -> Ethi - 4174, 170, // zyg -> Hani - 4178, 170, // zyn -> Hani - 4182, 170, // zzj -> Hani + 1238, 180, // hak -> Hans + 1242, 185, // hak_TW -> Hant + 1249, 125, // har -> Ethi + 1253, 10, // haz -> Arab + 1257, 190, // hbo -> Hebr + 1261, 125, // hdy -> Ethi + 1265, 190, // he -> Hebr + 1268, 110, // hi -> Deva + 1271, 110, // hif -> Deva + 1275, 505, // hii -> Takr + 1279, 590, // hit -> Xsux + 1283, 10, // hkh -> Arab + 1287, 110, // hlb -> Deva + 1291, 195, // hlu -> Hluw + 1295, 425, // hmd -> Plrd + 1299, 55, // hmj -> Bopo + 1303, 55, // hmq -> Bopo + 1307, 10, // hnd -> Arab + 1311, 110, // hne -> Deva + 1315, 200, // hnj -> Hmnp + 1319, 10, // hno -> Arab + 1323, 110, // hoc -> Deva + 1327, 10, // hoh -> Arab + 1331, 110, // hoj -> Deva + 1335, 175, // how -> Hani + 1339, 110, // hoy -> Deva + 1343, 355, // hpo -> Mymr + 1347, 495, // hrt -> Syrc + 1351, 10, // hrz -> Arab + 1355, 180, // hsn -> Hans + 1359, 10, // hss -> Arab + 1363, 590, // htx -> Xsux + 1367, 110, // hut -> Deva + 1371, 190, // huy -> Hebr + 1375, 105, // huz -> Cyrl + 1379, 20, // hy -> Armn + 1382, 20, // hyw -> Armn + 1386, 595, // ii -> Yiii + 1389, 295, // imy -> Lyci + 1393, 105, // inh -> Cyrl + 1397, 355, // int -> Mymr + 1401, 125, // ior -> Ethi + 1405, 520, // iru -> Taml + 1409, 10, // isk -> Arab + 1413, 190, // itk -> Hebr + 1417, 105, // itl -> Cyrl + 1421, 70, // iu -> Cans + 1424, 190, // iw -> Hebr + 1427, 215, // ja -> Jpan + 1430, 10, // jad -> Arab + 1434, 10, // jat -> Arab + 1438, 190, // jbe -> Hebr + 1442, 10, // jbn -> Arab + 1446, 105, // jct -> Cyrl + 1450, 555, // jda -> Tibt + 1454, 10, // jdg -> Arab + 1458, 105, // jdt -> Cyrl + 1462, 110, // jee -> Deva + 1466, 130, // jge -> Geor + 1470, 190, // ji -> Hebr + 1473, 170, // jje -> Hang + 1477, 355, // jkm -> Mymr + 1481, 110, // jml -> Deva + 1485, 505, // jna -> Takr + 1489, 10, // jnd -> Arab + 1493, 110, // jnl -> Deva + 1497, 110, // jns -> Deva + 1501, 10, // jog -> Arab + 1505, 190, // jpa -> Hebr + 1509, 190, // jpr -> Hebr + 1513, 190, // jrb -> Hebr + 1517, 110, // jul -> Deva + 1521, 395, // jun -> Orya + 1525, 395, // juy -> Orya + 1529, 555, // jya -> Tibt + 1533, 190, // jye -> Hebr + 1537, 130, // ka -> Geor + 1540, 105, // kaa -> Cyrl + 1544, 105, // kap -> Cyrl + 1548, 30, // kaw -> Bali + 1552, 105, // kbd -> Cyrl + 1556, 555, // kbg -> Tibt + 1560, 10, // kbu -> Arab + 1564, 10, // kby -> Arab + 1568, 105, // kca -> Cyrl + 1572, 10, // kcy -> Arab + 1576, 50, // kdq -> Beng + 1580, 550, // kdt -> Thai + 1584, 105, // ket -> Cyrl + 1588, 330, // kev -> Mlym + 1592, 110, // kex -> Deva + 1596, 535, // key -> Telu + 1600, 245, // kfa -> Knda + 1604, 110, // kfb -> Deva + 1608, 535, // kfc -> Telu + 1612, 245, // kfd -> Knda + 1616, 520, // kfe -> Taml + 1620, 245, // kfg -> Knda + 1624, 330, // kfh -> Mlym + 1628, 520, // kfi -> Taml + 1632, 110, // kfk -> Deva + 1636, 10, // kfm -> Arab + 1640, 110, // kfp -> Deva + 1644, 110, // kfq -> Deva + 1648, 110, // kfr -> Deva + 1652, 110, // kfs -> Deva + 1656, 110, // kfu -> Deva + 1660, 110, // kfx -> Deva + 1664, 110, // kfy -> Deva + 1668, 110, // kgj -> Deva + 1672, 110, // kgy -> Deva + 1676, 515, // khb -> Talu + 1680, 550, // khf -> Thai + 1684, 555, // khg -> Tibt + 1688, 110, // khn -> Deva + 1692, 60, // kho -> Brah + 1696, 355, // kht -> Mymr + 1700, 105, // khv -> Cyrl + 1704, 10, // khw -> Arab + 1708, 110, // kif -> Deva + 1712, 105, // kim -> Cyrl + 1716, 110, // kip -> Deva + 1720, 260, // kjg -> Laoo + 1724, 105, // kjh -> Cyrl + 1728, 110, // kjl -> Deva + 1732, 110, // kjo -> Deva + 1736, 355, // kjp -> Mymr + 1740, 550, // kjt -> Thai + 1744, 555, // kjz -> Tibt + 1748, 105, // kk -> Cyrl + 1751, 10, // kk_AF -> Arab + 1757, 10, // kk_CN -> Arab + 1763, 10, // kk_IR -> Arab + 1769, 10, // kk_MN -> Arab + 1775, 555, // kkf -> Tibt + 1779, 255, // kkh -> Lana + 1783, 110, // kkt -> Deva + 1787, 110, // kle -> Deva + 1791, 10, // klj -> Arab + 1795, 110, // klr -> Deva + 1799, 235, // km -> Khmr + 1802, 110, // kmj -> Deva + 1806, 10, // kmz -> Arab + 1810, 245, // kn -> Knda + 1813, 110, // knn -> Deva + 1817, 250, // ko -> Kore + 1820, 105, // koi -> Cyrl + 1824, 110, // kok -> Deva + 1828, 105, // kpt -> Cyrl + 1832, 105, // kpy -> Cyrl + 1836, 495, // kqd -> Syrc + 1840, 125, // kqy -> Ethi + 1844, 110, // kra -> Deva + 1848, 105, // krc -> Cyrl + 1852, 105, // krk -> Cyrl + 1856, 235, // krr -> Khmr + 1860, 110, // kru -> Deva + 1864, 235, // krv -> Khmr + 1868, 10, // ks -> Arab + 1871, 355, // ksu -> Mymr + 1875, 355, // ksw -> Mymr + 1879, 110, // ksz -> Deva + 1883, 125, // ktb -> Ethi + 1887, 110, // kte -> Deva + 1891, 10, // ktl -> Arab + 1895, 425, // ktp -> Plrd + 1899, 10, // ku_LB -> Arab + 1905, 260, // kuf -> Laoo + 1909, 105, // kum -> Cyrl + 1913, 105, // kv -> Cyrl + 1916, 105, // kva -> Cyrl + 1920, 355, // kvq -> Mymr + 1924, 355, // kvt -> Mymr + 1928, 10, // kvx -> Arab + 1932, 220, // kvy -> Kali + 1936, 355, // kxf -> Mymr + 1940, 355, // kxk -> Mymr + 1944, 550, // kxm -> Thai + 1948, 10, // kxp -> Arab + 1952, 105, // ky -> Cyrl + 1955, 10, // ky_CN -> Arab + 1961, 220, // kyu -> Kali + 1965, 110, // kyv -> Deva + 1969, 110, // kyw -> Deva + 1973, 280, // lab -> Lina + 1977, 190, // lad -> Hebr + 1981, 110, // lae -> Deva + 1985, 10, // lah -> Arab + 1989, 105, // lbe -> Cyrl + 1993, 110, // lbf -> Deva + 1997, 555, // lbj -> Tibt + 2001, 110, // lbm -> Deva + 2005, 260, // lbo -> Laoo + 2009, 110, // lbr -> Deva + 2013, 550, // lcp -> Thai + 2017, 275, // lep -> Lepc + 2021, 105, // lez -> Cyrl + 2025, 110, // lhm -> Deva + 2029, 495, // lhs -> Syrc + 2033, 110, // lif -> Deva + 2037, 290, // lis -> Lisu + 2041, 555, // lkh -> Tibt + 2045, 10, // lki -> Arab + 2049, 110, // lmh -> Deva + 2053, 535, // lmn -> Telu + 2057, 260, // lo -> Laoo + 2060, 110, // loy -> Deva + 2064, 425, // lpo -> Plrd + 2068, 10, // lrc -> Arab + 2072, 10, // lrk -> Arab + 2076, 10, // lrl -> Arab + 2080, 10, // lsa -> Arab + 2084, 190, // lsd -> Hebr + 2088, 10, // lss -> Arab + 2092, 185, // ltc -> Hant + 2096, 555, // luk -> Tibt + 2100, 110, // luu -> Deva + 2104, 10, // luv -> Arab + 2108, 10, // luz -> Arab + 2112, 550, // lwl -> Thai + 2116, 550, // lwm -> Thai + 2120, 555, // lya -> Tibt + 2124, 180, // lzh -> Hans + 2128, 130, // lzz_GE -> Geor + 2135, 110, // mag -> Deva + 2139, 110, // mai -> Deva + 2143, 10, // mby -> Arab + 2147, 10, // mde -> Arab + 2151, 105, // mdf -> Cyrl + 2155, 125, // mdx -> Ethi + 2159, 125, // mdy -> Ethi + 2163, 10, // mfa -> Arab + 2167, 10, // mfi -> Arab + 2171, 270, // mga -> Latg + 2175, 110, // mgp -> Deva + 2179, 10, // mhj -> Arab + 2183, 305, // mid -> Mand + 2187, 110, // mjl -> Deva + 2191, 330, // mjq -> Mlym + 2195, 330, // mjr -> Mlym + 2199, 110, // mjt -> Deva + 2203, 535, // mju -> Telu + 2207, 330, // mjv -> Mlym + 2211, 110, // mjz -> Deva + 2215, 105, // mk -> Cyrl + 2218, 110, // mkb -> Deva + 2222, 110, // mke -> Deva + 2226, 10, // mki -> Arab + 2230, 550, // mkm -> Thai + 2234, 330, // ml -> Mlym + 2237, 550, // mlf -> Thai + 2241, 105, // mn -> Cyrl + 2244, 340, // mn_CN -> Mong + 2250, 340, // mnc -> Mong + 2254, 50, // mni -> Beng + 2258, 10, // mnj -> Arab + 2262, 105, // mns -> Cyrl + 2266, 355, // mnw -> Mymr + 2270, 550, // mpz -> Thai + 2274, 110, // mr -> Deva + 2277, 550, // mra -> Thai + 2281, 110, // mrd -> Deva + 2285, 105, // mrj -> Cyrl + 2289, 345, // mro -> Mroo + 2293, 110, // mrr -> Deva + 2297, 10, // ms_CC -> Arab + 2303, 105, // mtm -> Cyrl + 2307, 110, // mtr -> Deva + 2311, 105, // mud -> Cyrl + 2315, 555, // muk -> Tibt + 2319, 110, // mut -> Deva + 2323, 520, // muv -> Taml + 2327, 125, // muz -> Ethi + 2331, 10, // mve -> Arab + 2335, 340, // mvf -> Mong + 2339, 10, // mvy -> Arab + 2343, 125, // mvz -> Ethi + 2347, 110, // mwr -> Deva + 2351, 355, // mwt -> Mymr + 2355, 200, // mww -> Hmnp + 2359, 355, // my -> Mymr + 2362, 125, // mym -> Ethi + 2366, 105, // myv -> Cyrl + 2370, 305, // myz -> Mand + 2374, 10, // mzn -> Arab + 2378, 180, // nan -> Hans + 2382, 185, // nan_TW -> Hant + 2389, 110, // nao -> Deva + 2393, 110, // ncd -> Deva + 2397, 260, // ncq -> Laoo + 2401, 105, // ndf -> Cyrl + 2405, 110, // ne -> Deva + 2408, 105, // neg -> Cyrl + 2412, 555, // neh -> Tibt + 2416, 590, // nei -> Xsux + 2420, 110, // new -> Deva + 2424, 260, // ngt -> Laoo + 2428, 105, // nio -> Cyrl + 2432, 535, // nit -> Telu + 2436, 105, // niv -> Cyrl + 2440, 10, // nli -> Arab + 2444, 10, // nlm -> Arab + 2448, 110, // nlx -> Deva + 2452, 110, // nmm -> Deva + 2456, 580, // nnp -> Wcho + 2460, 255, // nod -> Lana + 2464, 110, // noe -> Deva + 2468, 105, // nog -> Cyrl + 2472, 110, // noi -> Deva + 2476, 445, // non -> Runr + 2480, 595, // nos -> Yiii + 2484, 555, // npb -> Tibt + 2488, 370, // nqo -> Nkoo + 2492, 445, // nrn -> Runr + 2496, 595, // nsd -> Yiii + 2500, 595, // nsf -> Yiii + 2504, 70, // nsk -> Cans + 2508, 560, // nst -> Tnsa + 2512, 595, // nsv -> Yiii + 2516, 595, // nty -> Yiii + 2520, 10, // ntz -> Arab + 2524, 365, // nwc -> Newa + 2528, 110, // nwx -> Deva + 2532, 550, // nyl -> Thai + 2536, 10, // nyq -> Arab + 2540, 550, // nyw -> Thai + 2544, 105, // oaa -> Cyrl + 2548, 105, // oac -> Cyrl + 2552, 495, // oar -> Syrc + 2556, 130, // oav -> Geor + 2560, 420, // obm -> Phnx + 2564, 355, // obr -> Mymr + 2568, 10, // odk -> Arab + 2572, 590, // oht -> Xsux + 2576, 70, // oj -> Cans + 2579, 70, // ojs -> Cans + 2583, 170, // okm -> Hang + 2587, 175, // oko -> Hani + 2591, 235, // okz -> Khmr + 2595, 110, // ola -> Deva + 2599, 555, // ole -> Tibt + 2603, 105, // omk -> Cyrl + 2607, 350, // omp -> Mtei + 2611, 335, // omr -> Modi + 2615, 355, // omx -> Mymr + 2619, 110, // oon -> Deva + 2623, 395, // or -> Orya + 2626, 535, // ort -> Telu + 2630, 10, // oru -> Arab + 2634, 105, // orv -> Cyrl + 2638, 105, // os -> Cyrl + 2641, 400, // osa -> Osge + 2645, 205, // osc -> Ital + 2649, 210, // osi -> Java + 2653, 10, // ota -> Arab + 2657, 555, // otb -> Tibt + 2661, 390, // otk -> Orkh + 2665, 150, // oty -> Gran + 2669, 405, // oui -> Ougr + 2673, 165, // pa -> Guru + 2676, 10, // pa_PK -> Arab + 2682, 415, // pal -> Phli + 2686, 105, // paq -> Cyrl + 2690, 10, // pbt -> Arab + 2694, 235, // pcb -> Khmr + 2698, 355, // pce -> Mymr + 2702, 330, // pcf -> Mlym + 2706, 330, // pcg -> Mlym + 2710, 110, // pch -> Deva + 2714, 110, // pci -> Deva + 2718, 535, // pcj -> Telu + 2722, 395, // peg -> Orya + 2726, 585, // peo -> Xpeo + 2730, 230, // pgd -> Khar + 2734, 110, // pgg -> Deva + 2738, 380, // pgl -> Ogam + 2742, 205, // pgn -> Ital + 2746, 110, // phd -> Deva + 2750, 355, // phk -> Mymr + 2754, 10, // phl -> Arab + 2758, 420, // phn -> Phnx + 2762, 260, // pho -> Laoo + 2766, 10, // phr -> Arab + 2770, 550, // pht -> Thai + 2774, 550, // phu -> Thai + 2778, 10, // phv -> Arab + 2782, 110, // phw -> Deva + 2786, 470, // pi -> Sinh + 2789, 60, // pka -> Brah + 2793, 330, // pkr -> Mlym + 2797, 10, // plk -> Arab + 2801, 355, // pll -> Mymr + 2805, 60, // pmh -> Brah + 2809, 155, // pnt -> Grek + 2813, 105, // pnt_RU -> Cyrl + 2820, 230, // pra -> Khar + 2824, 10, // prc -> Arab + 2828, 10, // prd -> Arab + 2832, 550, // prt -> Thai + 2836, 10, // prx -> Arab + 2840, 10, // ps -> Arab + 2843, 10, // psh -> Arab + 2847, 10, // psi -> Arab + 2851, 10, // pst -> Arab + 2855, 60, // psu -> Brah + 2859, 110, // pum -> Deva + 2863, 355, // pwo -> Mymr + 2867, 110, // pwr -> Deva + 2871, 550, // pww -> Thai + 2875, 355, // pyx -> Mymr + 2879, 10, // qxq -> Arab + 2883, 110, // raa -> Deva + 2887, 110, // rab -> Deva + 2891, 110, // raf -> Deva + 2895, 50, // rah -> Beng + 2899, 110, // raj -> Deva + 2903, 110, // rav -> Deva + 2907, 355, // rbb -> Mymr + 2911, 10, // rdb -> Arab + 2915, 395, // rei -> Orya + 2919, 440, // rhg -> Rohg + 2923, 110, // rji -> Deva + 2927, 110, // rjs -> Deva + 2931, 235, // rka -> Khmr + 2935, 355, // rki -> Mymr + 2939, 50, // rkt -> Beng + 2943, 20, // rmi -> Armn + 2947, 10, // rmt -> Arab + 2951, 355, // rmz -> Mymr + 2955, 105, // rsk -> Cyrl + 2959, 110, // rtw -> Deva + 2963, 105, // ru -> Cyrl + 2966, 105, // rue -> Cyrl + 2970, 105, // rut -> Cyrl + 2974, 110, // rwr -> Deva + 2978, 225, // ryu -> Kana + 2982, 110, // sa -> Deva + 2985, 105, // sah -> Cyrl + 2989, 450, // sam -> Samr + 2993, 385, // sat -> Olck + 2997, 460, // saz -> Saur + 3001, 10, // sbn -> Arab + 3005, 555, // sbu -> Tibt + 3009, 110, // sck -> Deva + 3013, 10, // scl -> Arab + 3017, 110, // scp -> Deva + 3021, 260, // sct -> Laoo + 3025, 505, // scu -> Takr + 3029, 155, // scx -> Grek + 3033, 10, // sd -> Arab + 3036, 110, // sd_IN -> Deva + 3042, 10, // sdb -> Arab + 3046, 10, // sdf -> Arab + 3050, 10, // sdg -> Arab + 3054, 10, // sdh -> Arab + 3058, 50, // sdr -> Beng + 3062, 10, // sds -> Arab + 3066, 105, // sel -> Cyrl + 3070, 425, // sfm -> Plrd + 3074, 105, // sgh -> Cyrl + 3078, 110, // sgj -> Deva + 3082, 10, // sgr -> Arab + 3086, 555, // sgt -> Tibt + 3090, 125, // sgw -> Ethi + 3094, 10, // sgy -> Arab + 3098, 10, // shd -> Arab + 3102, 540, // shi -> Tfng + 3106, 10, // shm -> Arab + 3110, 355, // shn -> Mymr + 3114, 10, // shu -> Arab + 3118, 10, // shv -> Arab + 3122, 470, // si -> Sinh + 3125, 105, // sia -> Cyrl + 3129, 555, // sip -> Tibt + 3133, 10, // siy -> Arab + 3137, 10, // siz -> Arab + 3141, 105, // sjd -> Cyrl + 3145, 110, // sjp -> Deva + 3149, 105, // sjt -> Cyrl + 3153, 550, // skb -> Thai + 3157, 110, // skj -> Deva + 3161, 10, // skr -> Arab + 3165, 595, // smh -> Yiii + 3169, 450, // smp -> Samr + 3173, 235, // smu -> Khmr + 3177, 10, // smy -> Arab + 3181, 530, // soa -> Tavt + 3185, 475, // sog -> Sogd + 3189, 110, // soi -> Deva + 3193, 550, // sou -> Thai + 3197, 555, // spt -> Tibt + 3201, 395, // spv -> Orya + 3205, 10, // sqo -> Arab + 3209, 260, // sqq -> Laoo + 3213, 10, // sqt -> Arab + 3217, 105, // sr -> Cyrl + 3220, 480, // srb -> Sora + 3224, 10, // srh -> Arab + 3228, 110, // srx -> Deva + 3232, 10, // srz -> Arab + 3236, 10, // ssh -> Arab + 3240, 260, // sss -> Laoo + 3244, 10, // sts -> Arab + 3248, 125, // stv -> Ethi + 3252, 105, // sty -> Cyrl + 3256, 490, // suz -> Sunu + 3260, 130, // sva -> Geor + 3264, 10, // swb -> Arab + 3268, 175, // swi -> Hani + 3272, 110, // swv -> Deva + 3276, 445, // sxu -> Runr + 3280, 495, // syc -> Syrc + 3284, 50, // syl -> Beng + 3288, 495, // syn -> Syrc + 3292, 495, // syr -> Syrc + 3296, 110, // syw -> Deva + 3300, 520, // ta -> Taml + 3303, 105, // tab -> Cyrl + 3307, 110, // taj -> Deva + 3311, 500, // tbk -> Tagb + 3315, 555, // tcn -> Tibt + 3319, 355, // tco -> Mymr + 3323, 520, // tcx -> Taml + 3327, 245, // tcy -> Knda + 3331, 540, // tda -> Tfng + 3335, 110, // tdb -> Deva + 3339, 510, // tdd -> Tale + 3343, 110, // tdg -> Deva + 3347, 110, // tdh -> Deva + 3351, 535, // te -> Telu + 3354, 210, // tes -> Java + 3358, 105, // tg -> Cyrl + 3361, 10, // tg_PK -> Arab + 3367, 110, // tge -> Deva + 3371, 555, // tgf -> Tibt + 3375, 550, // th -> Thai + 3378, 110, // the -> Deva + 3382, 110, // thf -> Deva + 3386, 510, // thi -> Tale + 3390, 110, // thl -> Deva + 3394, 550, // thm -> Thai + 3398, 110, // thq -> Deva + 3402, 110, // thr -> Deva + 3406, 110, // ths -> Deva + 3410, 125, // ti -> Ethi + 3413, 125, // tig -> Ethi + 3417, 110, // tij -> Deva + 3421, 105, // tin -> Cyrl + 3425, 355, // tjl -> Mymr + 3429, 10, // tjo -> Arab + 3433, 110, // tkb -> Deva + 3437, 10, // tks -> Arab + 3441, 110, // tkt -> Deva + 3445, 495, // tmr -> Syrc + 3449, 65, // tnv -> Cakm + 3453, 10, // tov -> Arab + 3457, 235, // tpu -> Khmr + 3461, 10, // tra -> Arab + 3465, 190, // trg -> Hebr + 3469, 10, // trm -> Arab + 3473, 10, // trw -> Arab + 3477, 155, // tsd -> Grek + 3481, 555, // tsj -> Tibt + 3485, 105, // tt -> Cyrl + 3488, 260, // tth -> Laoo + 3492, 260, // tto -> Laoo + 3496, 550, // tts -> Thai + 3500, 110, // ttz -> Deva + 3504, 355, // tvn -> Mymr + 3508, 110, // twm -> Deva + 3512, 525, // txg -> Tang + 3516, 565, // txo -> Toto + 3520, 530, // tyr -> Tavt + 3524, 105, // tyv -> Cyrl + 3528, 105, // ude -> Cyrl + 3532, 330, // udg -> Mlym + 3536, 105, // udi -> Cyrl + 3540, 105, // udm -> Cyrl + 3544, 10, // ug -> Arab + 3547, 105, // ug_KZ -> Cyrl + 3553, 105, // ug_MN -> Cyrl + 3559, 570, // uga -> Ugar + 3563, 105, // ugh -> Cyrl + 3567, 550, // ugo -> Thai + 3571, 105, // uk -> Cyrl + 3574, 395, // uki -> Orya + 3578, 105, // ulc -> Cyrl + 3582, 50, // unr -> Beng + 3586, 110, // unr_NP -> Deva + 3593, 50, // unx -> Beng + 3597, 10, // ur -> Arab + 3600, 550, // urk -> Thai + 3604, 10, // ush -> Arab + 3608, 155, // uum -> Grek + 3612, 10, // uz_AF -> Arab + 3618, 105, // uz_CN -> Cyrl + 3624, 10, // uzs -> Arab + 3628, 520, // vaa -> Taml + 3632, 10, // vaf -> Arab + 3636, 110, // vah -> Deva + 3640, 575, // vai -> Vaii + 3644, 110, // vas -> Deva + 3648, 110, // vav -> Deva + 3652, 110, // vay -> Deva + 3656, 10, // vgr -> Arab + 3660, 110, // vjk -> Deva + 3664, 245, // vmd -> Knda + 3668, 10, // vmh -> Arab + 3672, 125, // wal -> Ethi + 3676, 10, // wbk -> Arab + 3680, 535, // wbq -> Telu + 3684, 110, // wbr -> Deva + 3688, 125, // wle -> Ethi + 3692, 10, // wlo -> Arab + 3696, 110, // wme -> Deva + 3700, 10, // wne -> Arab + 3704, 10, // wni -> Arab + 3708, 135, // wsg -> Gong + 3712, 10, // wsv -> Arab + 3716, 110, // wtm -> Deva + 3720, 180, // wuu -> Hans + 3724, 0, // xag -> Aghb + 3728, 105, // xal -> Cyrl + 3732, 125, // xan -> Ethi + 3736, 105, // xas -> Cyrl + 3740, 90, // xco -> Chrs + 3744, 75, // xcr -> Cari + 3748, 105, // xdq -> Cyrl + 3752, 10, // xhe -> Arab + 3756, 235, // xhm -> Khmr + 3760, 395, // xis -> Orya + 3764, 10, // xka -> Arab + 3768, 10, // xkc -> Arab + 3772, 555, // xkf -> Tibt + 3776, 10, // xkj -> Arab + 3780, 10, // xkp -> Arab + 3784, 295, // xlc -> Lyci + 3788, 300, // xld -> Lydi + 3792, 120, // xly -> Elym + 3796, 130, // xmf -> Geor + 3800, 310, // xmn -> Mani + 3804, 325, // xmr -> Merc + 3808, 360, // xna -> Narb + 3812, 110, // xnr -> Deva + 3816, 155, // xpg -> Grek + 3820, 380, // xpi -> Ogam + 3824, 105, // xpm -> Cyrl + 3828, 430, // xpr -> Prti + 3832, 105, // xrm -> Cyrl + 3836, 105, // xrn -> Cyrl + 3840, 455, // xsa -> Sarb + 3844, 110, // xsr -> Deva + 3848, 60, // xtq -> Brah + 3852, 520, // xub -> Taml + 3856, 520, // xuj -> Taml + 3860, 205, // xve -> Ital + 3864, 10, // xvi -> Arab + 3868, 105, // xwo -> Cyrl + 3872, 315, // xzh -> Marc + 3876, 105, // yai -> Cyrl + 3880, 110, // ybh -> Deva + 3884, 110, // ybi -> Deva + 3888, 10, // ydg -> Arab + 3892, 330, // yea -> Mlym + 3896, 155, // yej -> Grek + 3900, 535, // yeu -> Telu + 3904, 425, // ygp -> Plrd + 3908, 190, // yhd -> Hebr + 3912, 190, // yi -> Hebr + 3915, 595, // yig -> Yiii + 3919, 190, // yih -> Hebr + 3923, 595, // yiv -> Yiii + 3927, 105, // ykg -> Cyrl + 3931, 105, // ykh -> Cyrl + 3935, 425, // yna -> Plrd + 3939, 105, // ynk -> Cyrl + 3943, 215, // yoi -> Jpan + 3947, 550, // yoy -> Thai + 3951, 105, // yrk -> Cyrl + 3955, 595, // ysd -> Yiii + 3959, 595, // ysn -> Yiii + 3963, 595, // ysp -> Yiii + 3967, 105, // ysr -> Cyrl + 3971, 425, // ysy -> Plrd + 3975, 190, // yud -> Hebr + 3979, 185, // yue -> Hant + 3983, 180, // yue_CN -> Hans + 3990, 105, // yug -> Cyrl + 3994, 105, // yux -> Cyrl + 3998, 425, // ywq -> Plrd + 4002, 425, // ywu -> Plrd + 4006, 555, // zau -> Tibt + 4010, 10, // zba -> Arab + 4014, 175, // zch -> Hani + 4018, 10, // zdj -> Arab + 4022, 175, // zeh -> Hani + 4026, 540, // zen -> Tfng + 4030, 175, // zgb -> Hani + 4034, 540, // zgh -> Tfng + 4038, 175, // zgm -> Hani + 4042, 175, // zgn -> Hani + 4046, 180, // zh -> Hans + 4049, 185, // zh_AU -> Hant + 4055, 185, // zh_BN -> Hant + 4061, 185, // zh_GB -> Hant + 4067, 185, // zh_GF -> Hant + 4073, 185, // zh_HK -> Hant + 4079, 185, // zh_ID -> Hant + 4085, 185, // zh_MO -> Hant + 4091, 185, // zh_PA -> Hant + 4097, 185, // zh_PF -> Hant + 4103, 185, // zh_PH -> Hant + 4109, 185, // zh_SR -> Hant + 4115, 185, // zh_TH -> Hant + 4121, 185, // zh_TW -> Hant + 4127, 185, // zh_US -> Hant + 4133, 185, // zh_VN -> Hant + 4139, 175, // zhd -> Hani + 4143, 375, // zhx -> Nshu + 4147, 105, // zko -> Cyrl + 4151, 240, // zkt -> Kits + 4155, 105, // zkz -> Cyrl + 4159, 175, // zlj -> Hani + 4163, 175, // zln -> Hani + 4167, 175, // zlq -> Hani + 4171, 175, // zqe -> Hani + 4175, 395, // zrg -> Orya + 4179, 190, // zrp -> Hebr + 4183, 10, // zum -> Arab + 4187, 125, // zwa -> Ethi + 4191, 175, // zyg -> Hani + 4195, 175, // zyn -> Hani + 4199, 175, // zzj -> Hani }; //====================================================================== @@ -1159,38 +1162,39 @@ const char parentLocaleChars[] = "az_Arab\0az_Cyrl\0bal_Latn\0blt_Latn\0bm_Nkoo\0bs_Cyrl\0byn_Latn\0" "cu_Glag\0dje_Arab\0dyo_Arab\0en_001\0en_150\0en_AG\0en_AI\0en_AT\0" "en_AU\0en_BB\0en_BE\0en_BM\0en_BS\0en_BW\0en_BZ\0en_CC\0en_CH\0" - "en_CK\0en_CM\0en_CX\0en_CY\0en_DE\0en_DG\0en_DK\0en_DM\0en_Dsrt\0" - "en_ER\0en_FI\0en_FJ\0en_FK\0en_FM\0en_GB\0en_GD\0en_GG\0en_GH\0" - "en_GI\0en_GM\0en_GY\0en_HK\0en_ID\0en_IE\0en_IL\0en_IM\0en_IN\0" - "en_IO\0en_JE\0en_JM\0en_KE\0en_KI\0en_KN\0en_KY\0en_LC\0en_LR\0" - "en_LS\0en_MG\0en_MO\0en_MS\0en_MT\0en_MU\0en_MV\0en_MW\0en_MY\0" - "en_NA\0en_NF\0en_NG\0en_NL\0en_NR\0en_NU\0en_NZ\0en_PG\0en_PK\0" - "en_PN\0en_PW\0en_RW\0en_SB\0en_SC\0en_SD\0en_SE\0en_SG\0en_SH\0" - "en_SI\0en_SL\0en_SS\0en_SX\0en_SZ\0en_Shaw\0en_TC\0en_TK\0en_TO\0" - "en_TT\0en_TV\0en_TZ\0en_UG\0en_VC\0en_VG\0en_VU\0en_WS\0en_ZA\0" - "en_ZM\0en_ZW\0es_419\0es_AR\0es_BO\0es_BR\0es_BZ\0es_CL\0es_CO\0" - "es_CR\0es_CU\0es_DO\0es_EC\0es_GT\0es_HN\0es_JP\0es_MX\0es_NI\0" - "es_PA\0es_PE\0es_PR\0es_PY\0es_SV\0es_US\0es_UY\0es_VE\0ff_Adlm\0" - "ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0kaa_Latn\0kk_Arab\0" - "kok_Latn\0ks_Deva\0ku_Arab\0kxv_Deva\0kxv_Orya\0kxv_Telu\0ky_Arab\0" - "ky_Latn\0ml_Arab\0mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0no_NO\0" - "pa_Arab\0pt_AO\0pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0" - "pt_MZ\0pt_PT\0pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0" - "sd_Sind\0shi_Latn\0so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0" - "uz_Arab\0uz_Cyrl\0vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0" - "zh_Hant_HK\0zh_Hant_MO\0"; + "en_CK\0en_CM\0en_CX\0en_CY\0en_CZ\0en_DE\0en_DG\0en_DK\0en_DM\0" + "en_Dsrt\0en_ER\0en_ES\0en_FI\0en_FJ\0en_FK\0en_FM\0en_FR\0en_GB\0" + "en_GD\0en_GG\0en_GH\0en_GI\0en_GM\0en_GS\0en_GY\0en_HK\0en_HU\0" + "en_ID\0en_IE\0en_IL\0en_IM\0en_IN\0en_IO\0en_IT\0en_JE\0en_JM\0" + "en_KE\0en_KI\0en_KN\0en_KY\0en_LC\0en_LR\0en_LS\0en_MG\0en_MO\0" + "en_MS\0en_MT\0en_MU\0en_MV\0en_MW\0en_MY\0en_NA\0en_NF\0en_NG\0" + "en_NL\0en_NO\0en_NR\0en_NU\0en_NZ\0en_PG\0en_PK\0en_PL\0en_PN\0" + "en_PT\0en_PW\0en_RO\0en_RW\0en_SB\0en_SC\0en_SD\0en_SE\0en_SG\0" + "en_SH\0en_SI\0en_SK\0en_SL\0en_SS\0en_SX\0en_SZ\0en_Shaw\0en_TC\0" + "en_TK\0en_TO\0en_TT\0en_TV\0en_TZ\0en_UG\0en_VC\0en_VG\0en_VU\0" + "en_WS\0en_ZA\0en_ZM\0en_ZW\0es_419\0es_AR\0es_BO\0es_BR\0es_BZ\0" + "es_CL\0es_CO\0es_CR\0es_CU\0es_DO\0es_EC\0es_GT\0es_HN\0es_JP\0" + "es_MX\0es_NI\0es_PA\0es_PE\0es_PR\0es_PY\0es_SV\0es_US\0es_UY\0" + "es_VE\0ff_Adlm\0ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0" + "kaa_Latn\0kk_Arab\0kok_Latn\0ks_Deva\0ku_Arab\0kxv_Deva\0kxv_Orya\0" + "kxv_Telu\0ky_Arab\0ky_Latn\0ml_Arab\0mn_Mong\0mni_Mtei\0ms_Arab\0" + "nb\0nn\0no\0no_NO\0pa_Arab\0pt_AO\0pt_CH\0pt_CV\0pt_FR\0pt_GQ\0" + "pt_GW\0pt_LU\0pt_MO\0pt_MZ\0pt_PT\0pt_ST\0pt_TL\0root\0sat_Deva\0" + "sd_Deva\0sd_Khoj\0sd_Sind\0shi_Latn\0so_Arab\0sr_Latn\0sw_Arab\0" + "tg_Arab\0ug_Cyrl\0uz_Arab\0uz_Cyrl\0vai_Latn\0wo_Arab\0yo_Arab\0" + "yue_Hans\0zh_Hant\0zh_Hant_HK\0zh_Hant_MO\0"; const int32_t parentLocaleTable[] = { - 0, 1080, // az_Arab -> root - 8, 1080, // az_Cyrl -> root - 16, 1080, // bal_Latn -> root - 25, 1080, // blt_Latn -> root - 34, 1080, // bm_Nkoo -> root - 42, 1080, // bs_Cyrl -> root - 50, 1080, // byn_Latn -> root - 59, 1080, // cu_Glag -> root - 67, 1080, // dje_Arab -> root - 76, 1080, // dyo_Arab -> root + 0, 1146, // az_Arab -> root + 8, 1146, // az_Cyrl -> root + 16, 1146, // bal_Latn -> root + 25, 1146, // blt_Latn -> root + 34, 1146, // bm_Nkoo -> root + 42, 1146, // bs_Cyrl -> root + 50, 1146, // byn_Latn -> root + 59, 1146, // cu_Glag -> root + 67, 1146, // dje_Arab -> root + 76, 1146, // dyo_Arab -> root 92, 85, // en_150 -> en_001 99, 85, // en_AG -> en_001 105, 85, // en_AI -> en_001 @@ -1208,161 +1212,172 @@ const int32_t parentLocaleTable[] = { 177, 85, // en_CM -> en_001 183, 85, // en_CX -> en_001 189, 85, // en_CY -> en_001 - 195, 92, // en_DE -> en_150 - 201, 85, // en_DG -> en_001 - 207, 92, // en_DK -> en_150 - 213, 85, // en_DM -> en_001 - 219, 1080, // en_Dsrt -> root - 227, 85, // en_ER -> en_001 - 233, 92, // en_FI -> en_150 - 239, 85, // en_FJ -> en_001 - 245, 85, // en_FK -> en_001 - 251, 85, // en_FM -> en_001 - 257, 85, // en_GB -> en_001 - 263, 85, // en_GD -> en_001 - 269, 85, // en_GG -> en_001 - 275, 85, // en_GH -> en_001 - 281, 85, // en_GI -> en_001 - 287, 85, // en_GM -> en_001 - 293, 85, // en_GY -> en_001 - 299, 85, // en_HK -> en_001 - 305, 85, // en_ID -> en_001 - 311, 85, // en_IE -> en_001 - 317, 85, // en_IL -> en_001 - 323, 85, // en_IM -> en_001 - 329, 85, // en_IN -> en_001 - 335, 85, // en_IO -> en_001 - 341, 85, // en_JE -> en_001 - 347, 85, // en_JM -> en_001 - 353, 85, // en_KE -> en_001 - 359, 85, // en_KI -> en_001 - 365, 85, // en_KN -> en_001 - 371, 85, // en_KY -> en_001 - 377, 85, // en_LC -> en_001 - 383, 85, // en_LR -> en_001 - 389, 85, // en_LS -> en_001 - 395, 85, // en_MG -> en_001 - 401, 85, // en_MO -> en_001 - 407, 85, // en_MS -> en_001 - 413, 85, // en_MT -> en_001 - 419, 85, // en_MU -> en_001 - 425, 85, // en_MV -> en_001 - 431, 85, // en_MW -> en_001 - 437, 85, // en_MY -> en_001 - 443, 85, // en_NA -> en_001 - 449, 85, // en_NF -> en_001 - 455, 85, // en_NG -> en_001 - 461, 92, // en_NL -> en_150 - 467, 85, // en_NR -> en_001 - 473, 85, // en_NU -> en_001 - 479, 85, // en_NZ -> en_001 - 485, 85, // en_PG -> en_001 - 491, 85, // en_PK -> en_001 - 497, 85, // en_PN -> en_001 - 503, 85, // en_PW -> en_001 - 509, 85, // en_RW -> en_001 - 515, 85, // en_SB -> en_001 - 521, 85, // en_SC -> en_001 - 527, 85, // en_SD -> en_001 - 533, 92, // en_SE -> en_150 - 539, 85, // en_SG -> en_001 - 545, 85, // en_SH -> en_001 - 551, 92, // en_SI -> en_150 - 557, 85, // en_SL -> en_001 - 563, 85, // en_SS -> en_001 - 569, 85, // en_SX -> en_001 - 575, 85, // en_SZ -> en_001 - 581, 1080, // en_Shaw -> root - 589, 85, // en_TC -> en_001 - 595, 85, // en_TK -> en_001 - 601, 85, // en_TO -> en_001 - 607, 85, // en_TT -> en_001 - 613, 85, // en_TV -> en_001 - 619, 85, // en_TZ -> en_001 - 625, 85, // en_UG -> en_001 - 631, 85, // en_VC -> en_001 - 637, 85, // en_VG -> en_001 - 643, 85, // en_VU -> en_001 - 649, 85, // en_WS -> en_001 - 655, 85, // en_ZA -> en_001 - 661, 85, // en_ZM -> en_001 - 667, 85, // en_ZW -> en_001 - 680, 673, // es_AR -> es_419 - 686, 673, // es_BO -> es_419 - 692, 673, // es_BR -> es_419 - 698, 673, // es_BZ -> es_419 - 704, 673, // es_CL -> es_419 - 710, 673, // es_CO -> es_419 - 716, 673, // es_CR -> es_419 - 722, 673, // es_CU -> es_419 - 728, 673, // es_DO -> es_419 - 734, 673, // es_EC -> es_419 - 740, 673, // es_GT -> es_419 - 746, 673, // es_HN -> es_419 - 752, 673, // es_JP -> es_419 - 758, 673, // es_MX -> es_419 - 764, 673, // es_NI -> es_419 - 770, 673, // es_PA -> es_419 - 776, 673, // es_PE -> es_419 - 782, 673, // es_PR -> es_419 - 788, 673, // es_PY -> es_419 - 794, 673, // es_SV -> es_419 - 800, 673, // es_US -> es_419 - 806, 673, // es_UY -> es_419 - 812, 673, // es_VE -> es_419 - 818, 1080, // ff_Adlm -> root - 826, 1080, // ff_Arab -> root - 840, 1080, // ha_Arab -> root - 848, 329, // hi_Latn -> en_IN - 856, 834, // ht -> fr_HT - 859, 1080, // iu_Latn -> root - 867, 1080, // kaa_Latn -> root - 876, 1080, // kk_Arab -> root - 884, 1080, // kok_Latn -> root - 893, 1080, // ks_Deva -> root - 901, 1080, // ku_Arab -> root - 909, 1080, // kxv_Deva -> root - 918, 1080, // kxv_Orya -> root - 927, 1080, // kxv_Telu -> root - 936, 1080, // ky_Arab -> root - 944, 1080, // ky_Latn -> root - 952, 1080, // ml_Arab -> root - 960, 1080, // mn_Mong -> root - 968, 1080, // mni_Mtei -> root - 977, 1080, // ms_Arab -> root - 985, 991, // nb -> no - 988, 991, // nn -> no - 994, 991, // no_NO -> no - 1000, 1080, // pa_Arab -> root - 1008, 1062, // pt_AO -> pt_PT - 1014, 1062, // pt_CH -> pt_PT - 1020, 1062, // pt_CV -> pt_PT - 1026, 1062, // pt_FR -> pt_PT - 1032, 1062, // pt_GQ -> pt_PT - 1038, 1062, // pt_GW -> pt_PT - 1044, 1062, // pt_LU -> pt_PT - 1050, 1062, // pt_MO -> pt_PT - 1056, 1062, // pt_MZ -> pt_PT - 1068, 1062, // pt_ST -> pt_PT - 1074, 1062, // pt_TL -> pt_PT - 1085, 1080, // sat_Deva -> root - 1094, 1080, // sd_Deva -> root - 1102, 1080, // sd_Khoj -> root - 1110, 1080, // sd_Sind -> root - 1118, 1080, // shi_Latn -> root - 1127, 1080, // so_Arab -> root - 1135, 1080, // sr_Latn -> root - 1143, 1080, // sw_Arab -> root - 1151, 1080, // tg_Arab -> root - 1159, 1080, // ug_Cyrl -> root - 1167, 1080, // uz_Arab -> root - 1175, 1080, // uz_Cyrl -> root - 1183, 1080, // vai_Latn -> root - 1192, 1080, // wo_Arab -> root - 1200, 1080, // yo_Arab -> root - 1208, 1080, // yue_Hans -> root - 1217, 1080, // zh_Hant -> root - 1236, 1225, // zh_Hant_MO -> zh_Hant_HK + 195, 92, // en_CZ -> en_150 + 201, 92, // en_DE -> en_150 + 207, 85, // en_DG -> en_001 + 213, 92, // en_DK -> en_150 + 219, 85, // en_DM -> en_001 + 225, 1146, // en_Dsrt -> root + 233, 85, // en_ER -> en_001 + 239, 92, // en_ES -> en_150 + 245, 92, // en_FI -> en_150 + 251, 85, // en_FJ -> en_001 + 257, 85, // en_FK -> en_001 + 263, 85, // en_FM -> en_001 + 269, 92, // en_FR -> en_150 + 275, 85, // en_GB -> en_001 + 281, 85, // en_GD -> en_001 + 287, 85, // en_GG -> en_001 + 293, 85, // en_GH -> en_001 + 299, 85, // en_GI -> en_001 + 305, 85, // en_GM -> en_001 + 311, 85, // en_GS -> en_001 + 317, 85, // en_GY -> en_001 + 323, 85, // en_HK -> en_001 + 329, 92, // en_HU -> en_150 + 335, 85, // en_ID -> en_001 + 341, 85, // en_IE -> en_001 + 347, 85, // en_IL -> en_001 + 353, 85, // en_IM -> en_001 + 359, 85, // en_IN -> en_001 + 365, 85, // en_IO -> en_001 + 371, 92, // en_IT -> en_150 + 377, 85, // en_JE -> en_001 + 383, 85, // en_JM -> en_001 + 389, 85, // en_KE -> en_001 + 395, 85, // en_KI -> en_001 + 401, 85, // en_KN -> en_001 + 407, 85, // en_KY -> en_001 + 413, 85, // en_LC -> en_001 + 419, 85, // en_LR -> en_001 + 425, 85, // en_LS -> en_001 + 431, 85, // en_MG -> en_001 + 437, 85, // en_MO -> en_001 + 443, 85, // en_MS -> en_001 + 449, 85, // en_MT -> en_001 + 455, 85, // en_MU -> en_001 + 461, 85, // en_MV -> en_001 + 467, 85, // en_MW -> en_001 + 473, 85, // en_MY -> en_001 + 479, 85, // en_NA -> en_001 + 485, 85, // en_NF -> en_001 + 491, 85, // en_NG -> en_001 + 497, 92, // en_NL -> en_150 + 503, 92, // en_NO -> en_150 + 509, 85, // en_NR -> en_001 + 515, 85, // en_NU -> en_001 + 521, 85, // en_NZ -> en_001 + 527, 85, // en_PG -> en_001 + 533, 85, // en_PK -> en_001 + 539, 92, // en_PL -> en_150 + 545, 85, // en_PN -> en_001 + 551, 92, // en_PT -> en_150 + 557, 85, // en_PW -> en_001 + 563, 92, // en_RO -> en_150 + 569, 85, // en_RW -> en_001 + 575, 85, // en_SB -> en_001 + 581, 85, // en_SC -> en_001 + 587, 85, // en_SD -> en_001 + 593, 92, // en_SE -> en_150 + 599, 85, // en_SG -> en_001 + 605, 85, // en_SH -> en_001 + 611, 92, // en_SI -> en_150 + 617, 92, // en_SK -> en_150 + 623, 85, // en_SL -> en_001 + 629, 85, // en_SS -> en_001 + 635, 85, // en_SX -> en_001 + 641, 85, // en_SZ -> en_001 + 647, 1146, // en_Shaw -> root + 655, 85, // en_TC -> en_001 + 661, 85, // en_TK -> en_001 + 667, 85, // en_TO -> en_001 + 673, 85, // en_TT -> en_001 + 679, 85, // en_TV -> en_001 + 685, 85, // en_TZ -> en_001 + 691, 85, // en_UG -> en_001 + 697, 85, // en_VC -> en_001 + 703, 85, // en_VG -> en_001 + 709, 85, // en_VU -> en_001 + 715, 85, // en_WS -> en_001 + 721, 85, // en_ZA -> en_001 + 727, 85, // en_ZM -> en_001 + 733, 85, // en_ZW -> en_001 + 746, 739, // es_AR -> es_419 + 752, 739, // es_BO -> es_419 + 758, 739, // es_BR -> es_419 + 764, 739, // es_BZ -> es_419 + 770, 739, // es_CL -> es_419 + 776, 739, // es_CO -> es_419 + 782, 739, // es_CR -> es_419 + 788, 739, // es_CU -> es_419 + 794, 739, // es_DO -> es_419 + 800, 739, // es_EC -> es_419 + 806, 739, // es_GT -> es_419 + 812, 739, // es_HN -> es_419 + 818, 739, // es_JP -> es_419 + 824, 739, // es_MX -> es_419 + 830, 739, // es_NI -> es_419 + 836, 739, // es_PA -> es_419 + 842, 739, // es_PE -> es_419 + 848, 739, // es_PR -> es_419 + 854, 739, // es_PY -> es_419 + 860, 739, // es_SV -> es_419 + 866, 739, // es_US -> es_419 + 872, 739, // es_UY -> es_419 + 878, 739, // es_VE -> es_419 + 884, 1146, // ff_Adlm -> root + 892, 1146, // ff_Arab -> root + 906, 1146, // ha_Arab -> root + 914, 359, // hi_Latn -> en_IN + 922, 900, // ht -> fr_HT + 925, 1146, // iu_Latn -> root + 933, 1146, // kaa_Latn -> root + 942, 1146, // kk_Arab -> root + 950, 1146, // kok_Latn -> root + 959, 1146, // ks_Deva -> root + 967, 1146, // ku_Arab -> root + 975, 1146, // kxv_Deva -> root + 984, 1146, // kxv_Orya -> root + 993, 1146, // kxv_Telu -> root + 1002, 1146, // ky_Arab -> root + 1010, 1146, // ky_Latn -> root + 1018, 1146, // ml_Arab -> root + 1026, 1146, // mn_Mong -> root + 1034, 1146, // mni_Mtei -> root + 1043, 1146, // ms_Arab -> root + 1051, 1057, // nb -> no + 1054, 1057, // nn -> no + 1060, 1057, // no_NO -> no + 1066, 1146, // pa_Arab -> root + 1074, 1128, // pt_AO -> pt_PT + 1080, 1128, // pt_CH -> pt_PT + 1086, 1128, // pt_CV -> pt_PT + 1092, 1128, // pt_FR -> pt_PT + 1098, 1128, // pt_GQ -> pt_PT + 1104, 1128, // pt_GW -> pt_PT + 1110, 1128, // pt_LU -> pt_PT + 1116, 1128, // pt_MO -> pt_PT + 1122, 1128, // pt_MZ -> pt_PT + 1134, 1128, // pt_ST -> pt_PT + 1140, 1128, // pt_TL -> pt_PT + 1151, 1146, // sat_Deva -> root + 1160, 1146, // sd_Deva -> root + 1168, 1146, // sd_Khoj -> root + 1176, 1146, // sd_Sind -> root + 1184, 1146, // shi_Latn -> root + 1193, 1146, // so_Arab -> root + 1201, 1146, // sr_Latn -> root + 1209, 1146, // sw_Arab -> root + 1217, 1146, // tg_Arab -> root + 1225, 1146, // ug_Cyrl -> root + 1233, 1146, // uz_Arab -> root + 1241, 1146, // uz_Cyrl -> root + 1249, 1146, // vai_Latn -> root + 1258, 1146, // wo_Arab -> root + 1266, 1146, // yo_Arab -> root + 1274, 1146, // yue_Hans -> root + 1283, 1146, // zh_Hant -> root + 1302, 1291, // zh_Hant_MO -> zh_Hant_HK }; diff --git a/thirdparty/icu4c/common/locbased.cpp b/thirdparty/icu4c/common/locbased.cpp index 832bc3e88b1..6f35e72210f 100644 --- a/thirdparty/icu4c/common/locbased.cpp +++ b/thirdparty/icu4c/common/locbased.cpp @@ -12,44 +12,84 @@ */ #include "locbased.h" #include "cstring.h" +#include "charstr.h" U_NAMESPACE_BEGIN -Locale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const { - const char* id = getLocaleID(type, status); +Locale LocaleBased::getLocale(const CharString* valid, const CharString* actual, + ULocDataLocaleType type, UErrorCode& status) { + const char* id = getLocaleID(valid, actual, type, status); return Locale(id != nullptr ? id : ""); } -const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { +const char* LocaleBased::getLocaleID(const CharString* valid, const CharString* actual, + ULocDataLocaleType type, UErrorCode& status) { if (U_FAILURE(status)) { return nullptr; } switch(type) { case ULOC_VALID_LOCALE: - return valid; + return valid == nullptr ? "" : valid->data(); case ULOC_ACTUAL_LOCALE: - return actual; + return actual == nullptr ? "" : actual->data(); default: status = U_ILLEGAL_ARGUMENT_ERROR; return nullptr; } } -void LocaleBased::setLocaleIDs(const char* validID, const char* actualID) { - if (validID != nullptr) { - uprv_strncpy(valid, validID, ULOC_FULLNAME_CAPACITY); - valid[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate - } - if (actualID != nullptr) { - uprv_strncpy(actual, actualID, ULOC_FULLNAME_CAPACITY); - actual[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate +void LocaleBased::setLocaleIDs(const CharString* validID, const CharString* actualID, UErrorCode& status) { + setValidLocaleID(validID, status); + setActualLocaleID(actualID,status); +} +void LocaleBased::setLocaleIDs(const char* validID, const char* actualID, UErrorCode& status) { + setValidLocaleID(validID, status); + setActualLocaleID(actualID,status); +} + +void LocaleBased::setLocaleID(const char* id, CharString*& dest, UErrorCode& status) { + if (U_FAILURE(status)) { return; } + if (id == nullptr || *id == 0) { + delete dest; + dest = nullptr; + } else { + if (dest == nullptr) { + dest = new CharString(id, status); + if (dest == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + } else { + dest->copyFrom(id, status); + } } } -void LocaleBased::setLocaleIDs(const Locale& validID, const Locale& actualID) { - uprv_strcpy(valid, validID.getName()); - uprv_strcpy(actual, actualID.getName()); +void LocaleBased::setLocaleID(const CharString* id, CharString*& dest, UErrorCode& status) { + if (U_FAILURE(status)) { return; } + if (id == nullptr || id->isEmpty()) { + delete dest; + dest = nullptr; + } else { + if (dest == nullptr) { + dest = new CharString(*id, status); + if (dest == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + } else { + dest->copyFrom(*id, status); + } + } +} + +bool LocaleBased::equalIDs(const CharString* left, const CharString* right) { + // true if both are nullptr + if (left == nullptr && right == nullptr) return true; + // false if only one is nullptr + if (left == nullptr || right == nullptr) return false; + return *left == *right; } U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/locbased.h b/thirdparty/icu4c/common/locbased.h index 2d260b52787..9441eb82310 100644 --- a/thirdparty/icu4c/common/locbased.h +++ b/thirdparty/icu4c/common/locbased.h @@ -19,13 +19,14 @@ /** * Macro to declare a locale LocaleBased wrapper object for the given * object, which must have two members named `validLocale' and - * `actualLocale' of size ULOC_FULLNAME_CAPACITY + * `actualLocale' of which are pointers to the internal icu::CharString. */ #define U_LOCALE_BASED(varname, objname) \ LocaleBased varname((objname).validLocale, (objname).actualLocale) U_NAMESPACE_BEGIN +class CharString; /** * A utility class that unifies the implementation of getLocale() by * various ICU services. This class is likely to be removed in the @@ -41,33 +42,35 @@ class U_COMMON_API LocaleBased : public UMemory { * Construct a LocaleBased wrapper around the two pointers. These * will be aliased for the lifetime of this object. */ - inline LocaleBased(char* validAlias, char* actualAlias); - - /** - * Construct a LocaleBased wrapper around the two const pointers. - * These will be aliased for the lifetime of this object. - */ - inline LocaleBased(const char* validAlias, const char* actualAlias); + inline LocaleBased(CharString*& validAlias, CharString*& actualAlias); /** * Return locale meta-data for the service object wrapped by this * object. Either the valid or the actual locale may be * retrieved. + * @param valid The valid locale. + * @param actual The actual locale. * @param type either ULOC_VALID_LOCALE or ULOC_ACTUAL_LOCALE * @param status input-output error code * @return the indicated locale */ - Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const; + static Locale getLocale( + const CharString* valid, const CharString* actual, + ULocDataLocaleType type, UErrorCode& status); /** * Return the locale ID for the service object wrapped by this * object. Either the valid or the actual locale may be * retrieved. + * @param valid The valid locale. + * @param actual The actual locale. * @param type either ULOC_VALID_LOCALE or ULOC_ACTUAL_LOCALE * @param status input-output error code * @return the indicated locale ID */ - const char* getLocaleID(ULocDataLocaleType type, UErrorCode& status) const; + static const char* getLocaleID( + const CharString* valid, const CharString* actual, + ULocDataLocaleType type, UErrorCode& status); /** * Set the locale meta-data for the service object wrapped by this @@ -75,31 +78,40 @@ class U_COMMON_API LocaleBased : public UMemory { * @param valid the ID of the valid locale * @param actual the ID of the actual locale */ - void setLocaleIDs(const char* valid, const char* actual); + void setLocaleIDs(const char* valid, const char* actual, UErrorCode& status); + void setLocaleIDs(const CharString* valid, const CharString* actual, UErrorCode& status); - /** - * Set the locale meta-data for the service object wrapped by this - * object. - * @param valid the ID of the valid locale - * @param actual the ID of the actual locale - */ - void setLocaleIDs(const Locale& valid, const Locale& actual); + static void setLocaleID(const char* id, CharString*& dest, UErrorCode& status); + static void setLocaleID(const CharString* id, CharString*& dest, UErrorCode& status); + + static bool equalIDs(const CharString* left, const CharString* right); private: - char* valid; - - char* actual; + void setValidLocaleID(const CharString* id, UErrorCode& status); + void setActualLocaleID(const CharString* id, UErrorCode& status); + void setValidLocaleID(const char* id, UErrorCode& status); + void setActualLocaleID(const char* id, UErrorCode& status); + + CharString*& valid; + CharString*& actual; }; -inline LocaleBased::LocaleBased(char* validAlias, char* actualAlias) : +inline LocaleBased::LocaleBased(CharString*& validAlias, CharString*& actualAlias) : valid(validAlias), actual(actualAlias) { } -inline LocaleBased::LocaleBased(const char* validAlias, - const char* actualAlias) : - // ugh: cast away const - valid(const_cast(validAlias)), actual(const_cast(actualAlias)) { +inline void LocaleBased::setValidLocaleID(const CharString* id, UErrorCode& status) { + setLocaleID(id, valid, status); +} +inline void LocaleBased::setActualLocaleID(const CharString* id, UErrorCode& status) { + setLocaleID(id, actual, status); +} +inline void LocaleBased::setValidLocaleID(const char* id, UErrorCode& status) { + setLocaleID(id, valid, status); +} +inline void LocaleBased::setActualLocaleID(const char* id, UErrorCode& status) { + setLocaleID(id, actual, status); } U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/locdispnames.cpp b/thirdparty/icu4c/common/locdispnames.cpp index ddf7687a2bf..d3521e879b6 100644 --- a/thirdparty/icu4c/common/locdispnames.cpp +++ b/thirdparty/icu4c/common/locdispnames.cpp @@ -19,6 +19,8 @@ * that then do not depend on resource bundle code and display name data. */ +#include + #include "unicode/utypes.h" #include "unicode/brkiter.h" #include "unicode/locid.h" @@ -359,7 +361,7 @@ _getStringOrCopyKey(const char *path, const char *locale, return u_terminateUChars(dest, destCapacity, length, &errorCode); } -using UDisplayNameGetter = icu::CharString(const char*, UErrorCode&); +using UDisplayNameGetter = icu::CharString(std::string_view, UErrorCode&); int32_t _getDisplayNameForComponent(const char *locale, @@ -377,6 +379,10 @@ _getDisplayNameForComponent(const char *locale, return 0; } + if (locale == nullptr) { + locale = uloc_getDefault(); + } + localStatus = U_ZERO_ERROR; icu::CharString localeBuffer = (*getter)(locale, localStatus); if (U_FAILURE(localStatus)) { diff --git a/thirdparty/icu4c/common/locid.cpp b/thirdparty/icu4c/common/locid.cpp index 4a73f559205..e7e86079ae9 100644 --- a/thirdparty/icu4c/common/locid.cpp +++ b/thirdparty/icu4c/common/locid.cpp @@ -1828,8 +1828,13 @@ ulocimp_isCanonicalizedLocaleForTest(const char* localeName) U_NAMESPACE_BEGIN -/*This function initializes a Locale from a C locale ID*/ Locale& Locale::init(const char* localeID, UBool canonicalize) +{ + return localeID == nullptr ? *this = getDefault() : init(StringPiece{localeID}, canonicalize); +} + +/*This function initializes a Locale from a C locale ID*/ +Locale& Locale::init(StringPiece localeID, UBool canonicalize) { fIsBogus = false; /* Free our current storage */ @@ -1854,19 +1859,28 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) int32_t length; UErrorCode err; - if(localeID == nullptr) { - // not an error, just set the default locale - return *this = getDefault(); - } - /* preset all fields to empty */ language[0] = script[0] = country[0] = 0; + const auto parse = [canonicalize](std::string_view localeID, + char* name, + int32_t nameCapacity, + UErrorCode& status) { + return ByteSinkUtil::viaByteSinkToTerminatedChars( + name, nameCapacity, + [&](ByteSink& sink, UErrorCode& status) { + if (canonicalize) { + ulocimp_canonicalize(localeID, sink, status); + } else { + ulocimp_getName(localeID, sink, status); + } + }, + status); + }; + // "canonicalize" the locale ID to ICU/Java format err = U_ZERO_ERROR; - length = canonicalize ? - uloc_canonicalize(localeID, fullName, sizeof(fullNameBuffer), &err) : - uloc_getName(localeID, fullName, sizeof(fullNameBuffer), &err); + length = parse(localeID, fullName, sizeof fullNameBuffer, err); if (err == U_BUFFER_OVERFLOW_ERROR || length >= static_cast(sizeof(fullNameBuffer))) { U_ASSERT(baseName == nullptr); @@ -1877,9 +1891,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) } fullName = newFullName; err = U_ZERO_ERROR; - length = canonicalize ? - uloc_canonicalize(localeID, fullName, length+1, &err) : - uloc_getName(localeID, fullName, length+1, &err); + length = parse(localeID, fullName, length + 1, err); } if(U_FAILURE(err) || err == U_STRING_NOT_TERMINATED_WARNING) { /* should never occur */ @@ -2200,6 +2212,13 @@ Locale::createFromName (const char *name) } } +Locale U_EXPORT2 +Locale::createFromName(StringPiece name) { + Locale loc(""); + loc.init(name, false); + return loc; +} + Locale U_EXPORT2 Locale::createCanonical(const char* name) { Locale loc(""); diff --git a/thirdparty/icu4c/common/loclikely.cpp b/thirdparty/icu4c/common/loclikely.cpp index ccbcbfa7a5d..f87fd8dd61c 100644 --- a/thirdparty/icu4c/common/loclikely.cpp +++ b/thirdparty/icu4c/common/loclikely.cpp @@ -300,6 +300,9 @@ ulocimp_addLikelySubtags(const char* localeID, icu::ByteSink& sink, UErrorCode& status) { if (U_FAILURE(status)) { return; } + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } icu::CharString localeBuffer = ulocimp_canonicalize(localeID, status); _uloc_addLikelySubtags(localeBuffer.data(), sink, status); } @@ -334,6 +337,9 @@ ulocimp_minimizeSubtags(const char* localeID, bool favorScript, UErrorCode& status) { if (U_FAILURE(status)) { return; } + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } icu::CharString localeBuffer = ulocimp_canonicalize(localeID, status); _uloc_minimizeSubtags(localeBuffer.data(), sink, favorScript, status); } @@ -349,7 +355,9 @@ uloc_isRightToLeft(const char *locale) { UErrorCode errorCode = U_ZERO_ERROR; icu::CharString lang; icu::CharString script; - ulocimp_getSubtags(locale, &lang, &script, nullptr, nullptr, nullptr, errorCode); + ulocimp_getSubtags( + locale == nullptr ? uloc_getDefault() : locale, + &lang, &script, nullptr, nullptr, nullptr, errorCode); if (U_FAILURE(errorCode) || script.isEmpty()) { // Fastpath: We know the likely scripts and their writing direction // for some common languages. @@ -369,7 +377,7 @@ uloc_isRightToLeft(const char *locale) { if (U_FAILURE(errorCode)) { return false; } - ulocimp_getSubtags(likely.data(), nullptr, &script, nullptr, nullptr, nullptr, errorCode); + ulocimp_getSubtags(likely.toStringPiece(), nullptr, &script, nullptr, nullptr, nullptr, errorCode); if (U_FAILURE(errorCode) || script.isEmpty()) { return false; } @@ -430,7 +438,7 @@ ulocimp_getRegionForSupplementalData(const char *localeID, bool inferRegion, icu::CharString rgBuf = GetRegionFromKey(localeID, "rg", status); if (U_SUCCESS(status) && rgBuf.isEmpty()) { // No valid rg keyword value, try for unicode_region_subtag - rgBuf = ulocimp_getRegion(localeID, status); + rgBuf = ulocimp_getRegion(localeID == nullptr ? uloc_getDefault() : localeID, status); if (U_SUCCESS(status) && rgBuf.isEmpty() && inferRegion) { // Second check for sd keyword value rgBuf = GetRegionFromKey(localeID, "sd", status); @@ -439,7 +447,7 @@ ulocimp_getRegionForSupplementalData(const char *localeID, bool inferRegion, UErrorCode rgStatus = U_ZERO_ERROR; icu::CharString locBuf = ulocimp_addLikelySubtags(localeID, rgStatus); if (U_SUCCESS(rgStatus)) { - rgBuf = ulocimp_getRegion(locBuf.data(), status); + rgBuf = ulocimp_getRegion(locBuf.toStringPiece(), status); } } } diff --git a/thirdparty/icu4c/common/loclikelysubtags.cpp b/thirdparty/icu4c/common/loclikelysubtags.cpp index 7c6131197d8..7245a779816 100644 --- a/thirdparty/icu4c/common/loclikelysubtags.cpp +++ b/thirdparty/icu4c/common/loclikelysubtags.cpp @@ -527,7 +527,7 @@ LSR LikelySubtags::makeMaximizedLsrFrom(const Locale &locale, return {}; } const char *name = locale.getName(); - if (uprv_isAtSign(name[0]) && name[1] == 'x' && name[2] == '=') { // name.startsWith("@x=") + if (!returnInputIfUnmatch && uprv_isAtSign(name[0]) && name[1] == 'x' && name[2] == '=') { // name.startsWith("@x=") // Private use language tag x-subtag-subtag... which CLDR changes to // und-x-subtag-subtag... return LSR(name, "", "", LSR::EXPLICIT_LSR); diff --git a/thirdparty/icu4c/common/locresdata.cpp b/thirdparty/icu4c/common/locresdata.cpp index 725e6609159..ba7163fa2db 100644 --- a/thirdparty/icu4c/common/locresdata.cpp +++ b/thirdparty/icu4c/common/locresdata.cpp @@ -161,6 +161,9 @@ _uloc_getOrientationHelper(const char* localeId, if (U_FAILURE(status)) { return result; } + if (localeId == nullptr) { + localeId = uloc_getDefault(); + } icu::CharString localeBuffer = ulocimp_canonicalize(localeId, status); if (U_FAILURE(status)) { return result; } diff --git a/thirdparty/icu4c/common/punycode.cpp b/thirdparty/icu4c/common/punycode.cpp index aa02298c5e6..1868a07a856 100644 --- a/thirdparty/icu4c/common/punycode.cpp +++ b/thirdparty/icu4c/common/punycode.cpp @@ -193,7 +193,7 @@ u_strToPunycode(const char16_t *src, int32_t srcLength, return 0; } - if(src==nullptr || srcLength<-1 || (dest==nullptr && destCapacity!=0)) { + if(src==nullptr || srcLength<-1 || destCapacity<0 || (dest==nullptr && destCapacity!=0)) { *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; return 0; } diff --git a/thirdparty/icu4c/common/putil.cpp b/thirdparty/icu4c/common/putil.cpp index 4cf07797ba3..ea15fdff0b0 100644 --- a/thirdparty/icu4c/common/putil.cpp +++ b/thirdparty/icu4c/common/putil.cpp @@ -76,7 +76,7 @@ #include #ifndef U_COMMON_IMPLEMENTATION -#error U_COMMON_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see https://unicode-org.github.io/icu/userguide/howtouseicu +#error U_COMMON_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see https://unicode-org.github.io/icu/userguide/icu/howtouseicu.html #endif diff --git a/thirdparty/icu4c/common/rbbinode.cpp b/thirdparty/icu4c/common/rbbinode.cpp index 71407b9e684..849ee7180a2 100644 --- a/thirdparty/icu4c/common/rbbinode.cpp +++ b/thirdparty/icu4c/common/rbbinode.cpp @@ -47,7 +47,10 @@ static int gLastSerial = 0; // Constructor. Just set the fields to reasonable default values. // //------------------------------------------------------------------------- -RBBINode::RBBINode(NodeType t) : UMemory() { +RBBINode::RBBINode(NodeType t, UErrorCode& status) : UMemory() { + if (U_FAILURE(status)) { + return; + } #ifdef RBBI_DEBUG fSerialNum = ++gLastSerial; #endif @@ -65,10 +68,13 @@ RBBINode::RBBINode(NodeType t) : UMemory() { fVal = 0; fPrecedence = precZero; - UErrorCode status = U_ZERO_ERROR; - fFirstPosSet = new UVector(status); // TODO - get a real status from somewhere + fFirstPosSet = new UVector(status); fLastPosSet = new UVector(status); fFollowPos = new UVector(status); + if (U_SUCCESS(status) && + (fFirstPosSet == nullptr || fLastPosSet == nullptr || fFollowPos == nullptr)) { + status = U_MEMORY_ALLOCATION_ERROR; + } if (t==opCat) {fPrecedence = precOpCat;} else if (t==opOr) {fPrecedence = precOpOr;} else if (t==opStart) {fPrecedence = precStart;} @@ -77,7 +83,10 @@ RBBINode::RBBINode(NodeType t) : UMemory() { } -RBBINode::RBBINode(const RBBINode &other) : UMemory(other) { +RBBINode::RBBINode(const RBBINode &other, UErrorCode& status) : UMemory(other) { + if (U_FAILURE(status)) { + return; + } #ifdef RBBI_DEBUG fSerialNum = ++gLastSerial; #endif @@ -94,10 +103,13 @@ RBBINode::RBBINode(const RBBINode &other) : UMemory(other) { fVal = other.fVal; fRuleRoot = false; fChainIn = other.fChainIn; - UErrorCode status = U_ZERO_ERROR; fFirstPosSet = new UVector(status); // TODO - get a real status from somewhere fLastPosSet = new UVector(status); fFollowPos = new UVector(status); + if (U_SUCCESS(status) && + (fFirstPosSet == nullptr || fLastPosSet == nullptr || fFollowPos == nullptr)) { + status = U_MEMORY_ALLOCATION_ERROR; + } } @@ -193,27 +205,54 @@ void RBBINode::NRDeleteNode(RBBINode *node) { // references in preparation for generating the DFA tables. // //------------------------------------------------------------------------- -RBBINode *RBBINode::cloneTree() { +constexpr int kRecursiveDepthLimit = 3500; +RBBINode *RBBINode::cloneTree(UErrorCode &status, int depth) { + if (U_FAILURE(status)) { + return nullptr; + } + // If the depth of the stack is too deep, we return U_INPUT_TOO_LONG_ERROR + // to avoid stack overflow crash. + if (depth > kRecursiveDepthLimit) { + status = U_INPUT_TOO_LONG_ERROR; + return nullptr; + } RBBINode *n; if (fType == RBBINode::varRef) { // If the current node is a variable reference, skip over it // and clone the definition of the variable instead. - n = fLeftChild->cloneTree(); + n = fLeftChild->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + return nullptr; + } } else if (fType == RBBINode::uset) { n = this; } else { - n = new RBBINode(*this); + n = new RBBINode(*this, status); + if (U_FAILURE(status)) { + delete n; + return nullptr; + } // Check for null pointer. - if (n != nullptr) { - if (fLeftChild != nullptr) { - n->fLeftChild = fLeftChild->cloneTree(); - n->fLeftChild->fParent = n; + if (n == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return nullptr; + } + if (fLeftChild != nullptr) { + n->fLeftChild = fLeftChild->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + delete n; + return nullptr; } - if (fRightChild != nullptr) { - n->fRightChild = fRightChild->cloneTree(); - n->fRightChild->fParent = n; + n->fLeftChild->fParent = n; + } + if (fRightChild != nullptr) { + n->fRightChild = fRightChild->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + delete n; + return nullptr; } + n->fRightChild->fParent = n; } } return n; @@ -239,7 +278,6 @@ RBBINode *RBBINode::cloneTree() { // nested references are handled by cloneTree(), not here. // //------------------------------------------------------------------------- -constexpr int kRecursiveDepthLimit = 3500; RBBINode *RBBINode::flattenVariables(UErrorCode& status, int depth) { if (U_FAILURE(status)) { return this; @@ -251,21 +289,34 @@ RBBINode *RBBINode::flattenVariables(UErrorCode& status, int depth) { return this; } if (fType == varRef) { - RBBINode *retNode = fLeftChild->cloneTree(); - if (retNode != nullptr) { - retNode->fRuleRoot = this->fRuleRoot; - retNode->fChainIn = this->fChainIn; + RBBINode *retNode = fLeftChild->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + return this; } + retNode->fRuleRoot = this->fRuleRoot; + retNode->fChainIn = this->fChainIn; delete this; // TODO: undefined behavior. Fix. return retNode; } if (fLeftChild != nullptr) { fLeftChild = fLeftChild->flattenVariables(status, depth+1); + if (fLeftChild == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(status)) { + return this; + } fLeftChild->fParent = this; } if (fRightChild != nullptr) { fRightChild = fRightChild->flattenVariables(status, depth+1); + if (fRightChild == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(status)) { + return this; + } fRightChild->fParent = this; } return this; @@ -280,7 +331,16 @@ RBBINode *RBBINode::flattenVariables(UErrorCode& status, int depth) { // the left child of the uset node. // //------------------------------------------------------------------------- -void RBBINode::flattenSets() { +void RBBINode::flattenSets(UErrorCode &status, int depth) { + if (U_FAILURE(status)) { + return; + } + // If the depth of the stack is too deep, we return U_INPUT_TOO_LONG_ERROR + // to avoid stack overflow crash. + if (depth > kRecursiveDepthLimit) { + status = U_INPUT_TOO_LONG_ERROR; + return; + } U_ASSERT(fType != setRef); if (fLeftChild != nullptr) { @@ -288,11 +348,15 @@ void RBBINode::flattenSets() { RBBINode *setRefNode = fLeftChild; RBBINode *usetNode = setRefNode->fLeftChild; RBBINode *replTree = usetNode->fLeftChild; - fLeftChild = replTree->cloneTree(); + fLeftChild = replTree->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + delete setRefNode; + return; + } fLeftChild->fParent = this; delete setRefNode; } else { - fLeftChild->flattenSets(); + fLeftChild->flattenSets(status, depth+1); } } @@ -301,11 +365,15 @@ void RBBINode::flattenSets() { RBBINode *setRefNode = fRightChild; RBBINode *usetNode = setRefNode->fLeftChild; RBBINode *replTree = usetNode->fLeftChild; - fRightChild = replTree->cloneTree(); + fRightChild = replTree->cloneTree(status, depth+1); + if (U_FAILURE(status)) { + delete setRefNode; + return; + } fRightChild->fParent = this; delete setRefNode; } else { - fRightChild->flattenSets(); + fRightChild->flattenSets(status, depth+1); } } } diff --git a/thirdparty/icu4c/common/rbbinode.h b/thirdparty/icu4c/common/rbbinode.h index 497a31b8d09..8fbc9d1b588 100644 --- a/thirdparty/icu4c/common/rbbinode.h +++ b/thirdparty/icu4c/common/rbbinode.h @@ -91,14 +91,14 @@ class RBBINode : public UMemory { UVector *fFollowPos; - RBBINode(NodeType t); - RBBINode(const RBBINode &other); + RBBINode(NodeType t, UErrorCode& status); + RBBINode(const RBBINode &other, UErrorCode& status); ~RBBINode(); static void NRDeleteNode(RBBINode *node); - RBBINode *cloneTree(); + RBBINode *cloneTree(UErrorCode &status, int depth=0); RBBINode *flattenVariables(UErrorCode &status, int depth=0); - void flattenSets(); + void flattenSets(UErrorCode &status, int depth=0); void findNodes(UVector *dest, RBBINode::NodeType kind, UErrorCode &status); #ifdef RBBI_DEBUG diff --git a/thirdparty/icu4c/common/rbbiscan.cpp b/thirdparty/icu4c/common/rbbiscan.cpp index cf2d63cd807..77fc3bcd9b7 100644 --- a/thirdparty/icu4c/common/rbbiscan.cpp +++ b/thirdparty/icu4c/common/rbbiscan.cpp @@ -767,15 +767,24 @@ void RBBIRuleScanner::findSetFor(const UnicodeString &s, RBBINode *node, Unicode c = s.char32At(0); setToAdopt = new UnicodeSet(c, c); } + if (setToAdopt == nullptr) { + error(U_MEMORY_ALLOCATION_ERROR); + return; + } } // // Make a new uset node to refer to this UnicodeSet // This new uset node becomes the child of the caller's setReference node. // - RBBINode *usetNode = new RBBINode(RBBINode::uset); + UErrorCode localStatus = U_ZERO_ERROR; + RBBINode *usetNode = new RBBINode(RBBINode::uset, localStatus); if (usetNode == nullptr) { - error(U_MEMORY_ALLOCATION_ERROR); + localStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(localStatus)) { + delete usetNode; + error(localStatus); delete setToAdopt; return; } @@ -1191,7 +1200,7 @@ RBBINode *RBBIRuleScanner::pushNewNode(RBBINode::NodeType t) { return nullptr; } fNodeStackPtr++; - fNodeStack[fNodeStackPtr] = new RBBINode(t); + fNodeStack[fNodeStackPtr] = new RBBINode(t, *fRB->fStatus); if (fNodeStack[fNodeStackPtr] == nullptr) { *fRB->fStatus = U_MEMORY_ALLOCATION_ERROR; } diff --git a/thirdparty/icu4c/common/rbbisetb.cpp b/thirdparty/icu4c/common/rbbisetb.cpp index 6c22cf470f8..df94fc8bc4f 100644 --- a/thirdparty/icu4c/common/rbbisetb.cpp +++ b/thirdparty/icu4c/common/rbbisetb.cpp @@ -375,7 +375,11 @@ void RBBISetBuilder::addValToSets(UVector *sets, uint32_t val) { } void RBBISetBuilder::addValToSet(RBBINode *usetNode, uint32_t val) { - RBBINode *leafNode = new RBBINode(RBBINode::leafChar); + RBBINode *leafNode = new RBBINode(RBBINode::leafChar, *fStatus); + if (U_FAILURE(*fStatus)) { + delete leafNode; + return; + } if (leafNode == nullptr) { *fStatus = U_MEMORY_ALLOCATION_ERROR; return; @@ -388,9 +392,13 @@ void RBBISetBuilder::addValToSet(RBBINode *usetNode, uint32_t val) { // There are already input symbols present for this set. // Set up an OR node, with the previous stuff as the left child // and the new value as the right child. - RBBINode *orNode = new RBBINode(RBBINode::opOr); + RBBINode *orNode = new RBBINode(RBBINode::opOr, *fStatus); if (orNode == nullptr) { *fStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(*fStatus)) { + delete orNode; + delete leafNode; return; } orNode->fLeftChild = usetNode->fLeftChild; diff --git a/thirdparty/icu4c/common/rbbitblb.cpp b/thirdparty/icu4c/common/rbbitblb.cpp index 4d95137601e..b89909807c2 100644 --- a/thirdparty/icu4c/common/rbbitblb.cpp +++ b/thirdparty/icu4c/common/rbbitblb.cpp @@ -99,13 +99,22 @@ void RBBITableBuilder::buildForwardTable() { // {bof} fake character. // if (fRB->fSetBuilder->sawBOF()) { - RBBINode *bofTop = new RBBINode(RBBINode::opCat); - RBBINode *bofLeaf = new RBBINode(RBBINode::leafChar); - // Delete and exit if memory allocation failed. - if (bofTop == nullptr || bofLeaf == nullptr) { + RBBINode *bofTop = new RBBINode(RBBINode::opCat, *fStatus); + if (bofTop == nullptr) { *fStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(*fStatus)) { delete bofTop; + return; + } + RBBINode *bofLeaf = new RBBINode(RBBINode::leafChar, *fStatus); + // Delete and exit if memory allocation failed. + if (bofLeaf == nullptr) { + *fStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(*fStatus)) { delete bofLeaf; + delete bofTop; return; } bofTop->fLeftChild = bofLeaf; @@ -120,18 +129,23 @@ void RBBITableBuilder::buildForwardTable() { // Appears as a cat-node, left child being the original tree, // right child being the end marker. // - RBBINode *cn = new RBBINode(RBBINode::opCat); + RBBINode *cn = new RBBINode(RBBINode::opCat, *fStatus); // Exit if memory allocation failed. if (cn == nullptr) { *fStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(*fStatus)) { + delete cn; return; } cn->fLeftChild = fTree; fTree->fParent = cn; - RBBINode *endMarkerNode = cn->fRightChild = new RBBINode(RBBINode::endMark); + RBBINode *endMarkerNode = cn->fRightChild = new RBBINode(RBBINode::endMark, *fStatus); // Delete and exit if memory allocation failed. if (cn->fRightChild == nullptr) { *fStatus = U_MEMORY_ALLOCATION_ERROR; + } + if (U_FAILURE(*fStatus)) { delete cn; return; } @@ -142,7 +156,7 @@ void RBBITableBuilder::buildForwardTable() { // Replace all references to UnicodeSets with the tree for the equivalent // expression. // - fTree->flattenSets(); + fTree->flattenSets(*fStatus, 0); #ifdef RBBI_DEBUG if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "stree")) { RBBIDebugPuts("\nParse tree after flattening Unicode Set references."); diff --git a/thirdparty/icu4c/common/resbund.cpp b/thirdparty/icu4c/common/resbund.cpp index 41337cdc155..4c14dae133e 100644 --- a/thirdparty/icu4c/common/resbund.cpp +++ b/thirdparty/icu4c/common/resbund.cpp @@ -388,7 +388,7 @@ const Locale &ResourceBundle::getLocale() const { return ncThis->fLocale != nullptr ? *ncThis->fLocale : Locale::getDefault(); } -const Locale ResourceBundle::getLocale(ULocDataLocaleType type, UErrorCode &status) const +Locale ResourceBundle::getLocale(ULocDataLocaleType type, UErrorCode &status) const { return ures_getLocaleByType(fResource, type, &status); } diff --git a/thirdparty/icu4c/common/ucnvmbcs.cpp b/thirdparty/icu4c/common/ucnvmbcs.cpp index f5507043bf3..d65c2847461 100644 --- a/thirdparty/icu4c/common/ucnvmbcs.cpp +++ b/thirdparty/icu4c/common/ucnvmbcs.cpp @@ -3146,11 +3146,8 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, if(c<0) { if(U_SUCCESS(*pErrorCode) && source==sourceLimit && lastSourcetoUBytes; cnv->toULength = static_cast(source - lastSource); - do { - *bytes++=*lastSource++; - } while(lastSourcetoUBytes, lastSource, cnv->toULength); *pErrorCode=U_TRUNCATED_CHAR_FOUND; } else if(U_FAILURE(*pErrorCode)) { /* callback(illegal) */ diff --git a/thirdparty/icu4c/common/ucurr.cpp b/thirdparty/icu4c/common/ucurr.cpp index b74a80a676a..cccf1130ae8 100644 --- a/thirdparty/icu4c/common/ucurr.cpp +++ b/thirdparty/icu4c/common/ucurr.cpp @@ -372,12 +372,8 @@ struct CReg : public icu::UMemory { CReg(const char16_t* _iso, const char* _id) : next(nullptr) { - int32_t len = static_cast(uprv_strlen(_id)); - if (len > static_cast(sizeof(id) - 1)) { - len = (sizeof(id)-1); - } - uprv_strncpy(id, _id, len); - id[len] = 0; + uprv_strncpy(id, _id, sizeof(id)-1); + id[sizeof(id)-1] = 0; u_memcpy(iso, _iso, ISO_CURRENCY_CODE_LENGTH); iso[ISO_CURRENCY_CODE_LENGTH] = 0; } @@ -682,6 +678,9 @@ ucurr_getName(const char16_t* currency, // this function. UErrorCode ec2 = U_ZERO_ERROR; + if (locale == nullptr) { + locale = uloc_getDefault(); + } CharString loc = ulocimp_getName(locale, ec2); if (U_FAILURE(ec2)) { *ec = U_ILLEGAL_ARGUMENT_ERROR; @@ -780,6 +779,9 @@ ucurr_getPluralName(const char16_t* currency, // this function. UErrorCode ec2 = U_ZERO_ERROR; + if (locale == nullptr) { + locale = uloc_getDefault(); + } CharString loc = ulocimp_getName(locale, ec2); if (U_FAILURE(ec2)) { *ec = U_ILLEGAL_ARGUMENT_ERROR; @@ -973,6 +975,9 @@ collectCurrencyNames(const char* locale, // Look up the Currencies resource for the given locale. UErrorCode ec2 = U_ZERO_ERROR; + if (locale == nullptr) { + locale = uloc_getDefault(); + } CharString loc = ulocimp_getName(locale, ec2); if (U_FAILURE(ec2)) { ec = U_ILLEGAL_ARGUMENT_ERROR; diff --git a/thirdparty/icu4c/common/uloc.cpp b/thirdparty/icu4c/common/uloc.cpp index 51887c97c3e..bea4827a049 100644 --- a/thirdparty/icu4c/common/uloc.cpp +++ b/thirdparty/icu4c/common/uloc.cpp @@ -482,8 +482,8 @@ constexpr CanonicalizationMap CANONICALIZE_MAP[] = { /* ### BCP47 Conversion *******************************************/ /* Gets the size of the shortest subtag in the given localeID. */ -int32_t getShortestSubtagLength(const char *localeID) { - int32_t localeIDLength = static_cast(uprv_strlen(localeID)); +int32_t getShortestSubtagLength(std::string_view localeID) { + int32_t localeIDLength = static_cast(localeID.length()); int32_t length = localeIDLength; int32_t tmpLength = 0; int32_t i; @@ -507,8 +507,8 @@ int32_t getShortestSubtagLength(const char *localeID) { return length; } /* Test if the locale id has BCP47 u extension and does not have '@' */ -inline bool _hasBCP47Extension(const char *id) { - return id != nullptr && uprv_strstr(id, "@") == nullptr && getShortestSubtagLength(id) == 1; +inline bool _hasBCP47Extension(std::string_view id) { + return id.find('@') == std::string_view::npos && getShortestSubtagLength(id) == 1; } /* ### Keywords **************************************************/ @@ -523,10 +523,9 @@ inline bool UPRV_OK_VALUE_PUNCTUATION(char c) { return c == '_' || c == '-' || c #define ULOC_MAX_NO_KEYWORDS 25 U_CAPI const char * U_EXPORT2 -locale_getKeywordsStart(const char *localeID) { - const char *result = nullptr; - if((result = uprv_strchr(localeID, '@')) != nullptr) { - return result; +locale_getKeywordsStart(std::string_view localeID) { + if (size_t pos = localeID.find('@'); pos != std::string_view::npos) { + return localeID.data() + pos; } #if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY) else { @@ -536,8 +535,8 @@ locale_getKeywordsStart(const char *localeID) { static const uint8_t ebcdicSigns[] = { 0x7C, 0x44, 0x66, 0x80, 0xAC, 0xAE, 0xAF, 0xB5, 0xEC, 0xEF, 0x00 }; const uint8_t *charToFind = ebcdicSigns; while(*charToFind) { - if((result = uprv_strchr(localeID, *charToFind)) != nullptr) { - return result; + if (size_t pos = localeID.find(*charToFind); pos != std::string_view::npos) { + return localeID.data() + pos; } charToFind++; } @@ -590,7 +589,7 @@ compareKeywordStructs(const void * /*context*/, const void *left, const void *ri } // namespace U_EXPORT CharString -ulocimp_getKeywords(const char* localeID, +ulocimp_getKeywords(std::string_view localeID, char prev, bool valuesToo, UErrorCode& status) @@ -607,7 +606,7 @@ ulocimp_getKeywords(const char* localeID, } U_EXPORT void -ulocimp_getKeywords(const char* localeID, +ulocimp_getKeywords(std::string_view localeID, char prev, ByteSink& sink, bool valuesToo, @@ -619,9 +618,8 @@ ulocimp_getKeywords(const char* localeID, int32_t maxKeywords = ULOC_MAX_NO_KEYWORDS; int32_t numKeywords = 0; - const char* pos = localeID; - const char* equalSign = nullptr; - const char* semicolon = nullptr; + size_t equalSign = std::string_view::npos; + size_t semicolon = std::string_view::npos; int32_t i = 0, j, n; if(prev == '@') { /* start of keyword definition */ @@ -629,74 +627,72 @@ ulocimp_getKeywords(const char* localeID, do { bool duplicate = false; /* skip leading spaces */ - while(*pos == ' ') { - pos++; + while (localeID.front() == ' ') { + localeID.remove_prefix(1); } - if (!*pos) { /* handle trailing "; " */ + if (localeID.empty()) { /* handle trailing "; " */ break; } if(numKeywords == maxKeywords) { status = U_INTERNAL_PROGRAM_ERROR; return; } - equalSign = uprv_strchr(pos, '='); - semicolon = uprv_strchr(pos, ';'); + equalSign = localeID.find('='); + semicolon = localeID.find(';'); /* lack of '=' [foo@currency] is illegal */ /* ';' before '=' [foo@currency;collation=pinyin] is illegal */ - if(!equalSign || (semicolon && semicolon= ULOC_KEYWORD_BUFFER_LEN) { + if (equalSign >= ULOC_KEYWORD_BUFFER_LEN) { /* keyword name too long for internal buffer */ status = U_INTERNAL_PROGRAM_ERROR; return; } - for(i = 0, n = 0; i < equalSign - pos; ++i) { - if (pos[i] != ' ') { - keywordList[numKeywords].keyword[n++] = uprv_tolower(pos[i]); + for (i = 0, n = 0; static_cast(i) < equalSign; ++i) { + if (localeID[i] != ' ') { + keywordList[numKeywords].keyword[n++] = uprv_tolower(localeID[i]); } } - /* zero-length keyword is an error. */ - if (n == 0) { - status = U_INVALID_FORMAT_ERROR; - return; - } - keywordList[numKeywords].keyword[n] = 0; keywordList[numKeywords].keywordLen = n; /* now grab the value part. First we skip the '=' */ equalSign++; /* then we leading spaces */ - while(*equalSign == ' ') { + while (equalSign < localeID.length() && localeID[equalSign] == ' ') { equalSign++; } /* Premature end or zero-length value */ - if (!*equalSign || equalSign == semicolon) { + if (equalSign == localeID.length() || equalSign == semicolon) { status = U_INVALID_FORMAT_ERROR; return; } - keywordList[numKeywords].valueStart = equalSign; + keywordList[numKeywords].valueStart = localeID.data() + equalSign; - pos = semicolon; - i = 0; - if(pos) { - while(*(pos - i - 1) == ' ') { - i++; - } - keywordList[numKeywords].valueLen = static_cast(pos - equalSign - i); - pos++; + std::string_view value = localeID; + if (semicolon != std::string_view::npos) { + value.remove_suffix(value.length() - semicolon); + localeID.remove_prefix(semicolon + 1); } else { - i = static_cast(uprv_strlen(equalSign)); - while(i && equalSign[i-1] == ' ') { - i--; - } - keywordList[numKeywords].valueLen = i; + localeID = {}; } + value.remove_prefix(equalSign); + if (size_t last = value.find_last_not_of(' '); last != std::string_view::npos) { + value.remove_suffix(value.length() - last - 1); + } + keywordList[numKeywords].valueLen = static_cast(value.length()); + /* If this is a duplicate keyword, then ignore it */ for (j=0; j(locale_getKeywordsStart(buffer)); + char* keywords = const_cast( + locale_getKeywordsStart({buffer, static_cast(bufLen)})); int32_t baseLen = keywords == nullptr ? bufLen : keywords - buffer; // Remove -1 from the capacity so that this function can guarantee NUL termination. CheckedArrayByteSink sink(keywords == nullptr ? buffer + bufLen : keywords, @@ -921,7 +918,7 @@ ulocimp_setKeywordValue(std::string_view keywordName, { if (U_FAILURE(status)) { return; } std::string_view keywords; - if (const char* start = locale_getKeywordsStart(localeID.data()); start != nullptr) { + if (const char* start = locale_getKeywordsStart(localeID.toStringPiece()); start != nullptr) { // This is safe because CharString::truncate() doesn't actually erase any // data, but simply sets the position for where new data will be written. int32_t size = start - localeID.data(); @@ -1138,15 +1135,18 @@ inline bool _isPrefixLetter(char a) { return a == 'x' || a == 'X' || a == 'i' || /*returns true if one of the special prefixes is here (s=string) 'x-' or 'i-' */ -inline bool _isIDPrefix(const char *s) { return _isPrefixLetter(s[0]) && _isIDSeparator(s[1]); } +inline bool _isIDPrefix(std::string_view s) { + return s.size() >= 2 && _isPrefixLetter(s[0]) && _isIDSeparator(s[1]); +} /* Dot terminates it because of POSIX form where dot precedes the codepage * except for variant */ -inline bool _isTerminator(char a) { return a == 0 || a == '.' || a == '@'; } +inline bool _isTerminator(char a) { return a == '.' || a == '@'; } -inline bool _isBCP47Extension(const char* p) { - return p[0] == '-' && +inline bool _isBCP47Extension(std::string_view p) { + return p.size() >= 3 && + p[0] == '-' && (p[1] == 't' || p[1] == 'T' || p[1] == 'u' || p[1] == 'U' || p[1] == 'x' || p[1] == 'X') && @@ -1202,49 +1202,44 @@ namespace { * TODO try to use this in Locale */ -void -_getLanguage(const char* localeID, - ByteSink* sink, - const char** pEnd, - UErrorCode& status) { - U_ASSERT(pEnd != nullptr); - *pEnd = localeID; - - if (uprv_stricmp(localeID, "root") == 0) { - localeID += 4; - } else if (uprv_strnicmp(localeID, "und", 3) == 0 && - (localeID[3] == '\0' || +size_t _getLanguage(std::string_view localeID, ByteSink* sink, UErrorCode& status) { + size_t skip = 0; + if (localeID.size() == 4 && uprv_strnicmp(localeID.data(), "root", 4) == 0) { + skip = 4; + localeID.remove_prefix(skip); + } else if (localeID.size() >= 3 && uprv_strnicmp(localeID.data(), "und", 3) == 0 && + (localeID.size() == 3 || localeID[3] == '-' || localeID[3] == '_' || localeID[3] == '@')) { - localeID += 3; + skip = 3; + localeID.remove_prefix(skip); } constexpr int32_t MAXLEN = ULOC_LANG_CAPACITY - 1; // Minus NUL. /* if it starts with i- or x- then copy that prefix */ - int32_t len = _isIDPrefix(localeID) ? 2 : 0; - while (!_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len])) { + size_t len = _isIDPrefix(localeID) ? 2 : 0; + while (len < localeID.size() && !_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len])) { if (len == MAXLEN) { status = U_ILLEGAL_ARGUMENT_ERROR; - return; + return 0; } len++; } - *pEnd = localeID + len; - if (sink == nullptr || len == 0) { return; } + if (sink == nullptr || len == 0) { return skip + len; } - int32_t minCapacity = uprv_max(len, 4); // Minimum 3 letters plus NUL. + int32_t minCapacity = uprv_max(static_cast(len), 4); // Minimum 3 letters plus NUL. char scratch[MAXLEN]; int32_t capacity = 0; char* buffer = sink->GetAppendBuffer( minCapacity, minCapacity, scratch, UPRV_LENGTHOF(scratch), &capacity); - for (int32_t i = 0; i < len; ++i) { + for (size_t i = 0; i < len; ++i) { buffer[i] = uprv_tolower(localeID[i]); } - if (_isIDSeparator(localeID[1])) { + if (localeID.size() >= 2 && _isIDSeparator(localeID[1])) { buffer[1] = '-'; } @@ -1256,32 +1251,26 @@ _getLanguage(const char* localeID, if (offset.has_value()) { const char* const alias = LANGUAGES[*offset]; sink->Append(alias, static_cast(uprv_strlen(alias))); - return; + return skip + len; } } - sink->Append(buffer, len); + sink->Append(buffer, static_cast(len)); + return skip + len; } -void -_getScript(const char* localeID, - ByteSink* sink, - const char** pEnd) { - U_ASSERT(pEnd != nullptr); - *pEnd = localeID; - +size_t _getScript(std::string_view localeID, ByteSink* sink) { constexpr int32_t LENGTH = 4; - int32_t len = 0; - while (!_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len]) && + size_t len = 0; + while (len < localeID.size() && !_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len]) && uprv_isASCIILetter(localeID[len])) { - if (len == LENGTH) { return; } + if (len == LENGTH) { return 0; } len++; } - if (len != LENGTH) { return; } + if (len != LENGTH) { return 0; } - *pEnd = localeID + LENGTH; - if (sink == nullptr) { return; } + if (sink == nullptr) { return len; } char scratch[LENGTH]; int32_t capacity = 0; @@ -1294,27 +1283,21 @@ _getScript(const char* localeID, } sink->Append(buffer, LENGTH); + return len; } -void -_getRegion(const char* localeID, - ByteSink* sink, - const char** pEnd) { - U_ASSERT(pEnd != nullptr); - *pEnd = localeID; - +size_t _getRegion(std::string_view localeID, ByteSink* sink) { constexpr int32_t MINLEN = 2; constexpr int32_t MAXLEN = ULOC_COUNTRY_CAPACITY - 1; // Minus NUL. - int32_t len = 0; - while (!_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len])) { - if (len == MAXLEN) { return; } + size_t len = 0; + while (len < localeID.size() && !_isTerminator(localeID[len]) && !_isIDSeparator(localeID[len])) { + if (len == MAXLEN) { return 0; } len++; } - if (len < MINLEN) { return; } + if (len < MINLEN) { return 0; } - *pEnd = localeID + len; - if (sink == nullptr) { return; } + if (sink == nullptr) { return len; } char scratch[ULOC_COUNTRY_CAPACITY]; int32_t capacity = 0; @@ -1325,7 +1308,7 @@ _getRegion(const char* localeID, UPRV_LENGTHOF(scratch), &capacity); - for (int32_t i = 0; i < len; ++i) { + for (size_t i = 0; i < len; ++i) { buffer[i] = uprv_toupper(localeID[i]); } @@ -1337,26 +1320,25 @@ _getRegion(const char* localeID, if (offset.has_value()) { const char* const alias = COUNTRIES[*offset]; sink->Append(alias, static_cast(uprv_strlen(alias))); - return; + return len; } } - sink->Append(buffer, len); + sink->Append(buffer, static_cast(len)); + return len; } /** * @param needSeparator if true, then add leading '_' if any variants * are added to 'variant' */ -void -_getVariant(const char* localeID, +size_t +_getVariant(std::string_view localeID, char prev, ByteSink* sink, - const char** pEnd, bool needSeparator, UErrorCode& status) { - if (U_FAILURE(status)) return; - if (pEnd != nullptr) { *pEnd = localeID; } + if (U_FAILURE(status) || localeID.empty()) return 0; // Reasonable upper limit for variants // There are no strict limitation of the syntax of variant in the legacy @@ -1369,63 +1351,82 @@ _getVariant(const char* localeID, constexpr int32_t MAX_VARIANTS_LENGTH = 179; /* get one or more variant tags and separate them with '_' */ - int32_t index = 0; + size_t index = 0; if (_isIDSeparator(prev)) { /* get a variant string after a '-' or '_' */ - for (index=0; !_isTerminator(localeID[index]); index++) { - if (index >= MAX_VARIANTS_LENGTH) { // same as length > MAX_VARIANTS_LENGTH + for (std::string_view sub = localeID;;) { + size_t next = sub.find_first_of(".@_-"); + // For historical reasons, a trailing separator is included in the variant. + bool finished = next == std::string_view::npos || next + 1 == sub.length(); + size_t limit = finished ? sub.length() : next; + index += limit; + if (index > MAX_VARIANTS_LENGTH) { status = U_ILLEGAL_ARGUMENT_ERROR; - return; - } - if (needSeparator) { - if (sink != nullptr) { - sink->Append("_", 1); - } - needSeparator = false; + return 0; } + if (sink != nullptr) { - char c = uprv_toupper(localeID[index]); - if (c == '-') c = '_'; - sink->Append(&c, 1); + if (needSeparator) { + sink->Append("_", 1); + } else { + needSeparator = true; + } + + int32_t length = static_cast(limit); + int32_t minCapacity = uprv_min(length, MAX_VARIANTS_LENGTH); + char scratch[MAX_VARIANTS_LENGTH]; + int32_t capacity = 0; + char* buffer = sink->GetAppendBuffer( + minCapacity, minCapacity, scratch, UPRV_LENGTHOF(scratch), &capacity); + + for (size_t i = 0; i < limit; ++i) { + buffer[i] = uprv_toupper(sub[i]); + } + sink->Append(buffer, length); } + + if (finished) { return index; } + sub.remove_prefix(next); + if (_isTerminator(sub.front()) || _isBCP47Extension(sub)) { return index; } + sub.remove_prefix(1); + index++; } - if (pEnd != nullptr) { *pEnd = localeID+index; } } + size_t skip = 0; /* if there is no variant tag after a '-' or '_' then look for '@' */ - if (index == 0) { - if (prev=='@') { - /* keep localeID */ - } else if((localeID=locale_getKeywordsStart(localeID))!=nullptr) { - ++localeID; /* point after the '@' */ - } else { - return; - } - for(; !_isTerminator(localeID[index]); index++) { - if (index >= MAX_VARIANTS_LENGTH) { // same as length > MAX_VARIANTS_LENGTH - status = U_ILLEGAL_ARGUMENT_ERROR; - return; - } - if (needSeparator) { - if (sink != nullptr) { - sink->Append("_", 1); - } - needSeparator = false; - } - if (sink != nullptr) { - char c = uprv_toupper(localeID[index]); - if (c == '-' || c == ',') c = '_'; - sink->Append(&c, 1); - } - } - if (pEnd != nullptr) { *pEnd = localeID + index; } + if (prev == '@') { + /* keep localeID */ + } else if (const char* p = locale_getKeywordsStart(localeID); p != nullptr) { + skip = 1 + p - localeID.data(); /* point after the '@' */ + localeID.remove_prefix(skip); + } else { + return 0; } + for (; index < localeID.size() && !_isTerminator(localeID[index]); index++) { + if (index >= MAX_VARIANTS_LENGTH) { // same as length > MAX_VARIANTS_LENGTH + status = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } + if (needSeparator) { + if (sink != nullptr) { + sink->Append("_", 1); + } + needSeparator = false; + } + if (sink != nullptr) { + char c = uprv_toupper(localeID[index]); + if (c == '-' || c == ',') c = '_'; + sink->Append(&c, 1); + } + } + return skip + index; } } // namespace U_EXPORT CharString -ulocimp_getLanguage(const char* localeID, UErrorCode& status) { +ulocimp_getLanguage(std::string_view localeID, UErrorCode& status) { return ByteSinkUtil::viaByteSinkToCharString( [&](ByteSink& sink, UErrorCode& status) { ulocimp_getSubtags( @@ -1441,7 +1442,7 @@ ulocimp_getLanguage(const char* localeID, UErrorCode& status) { } U_EXPORT CharString -ulocimp_getScript(const char* localeID, UErrorCode& status) { +ulocimp_getScript(std::string_view localeID, UErrorCode& status) { return ByteSinkUtil::viaByteSinkToCharString( [&](ByteSink& sink, UErrorCode& status) { ulocimp_getSubtags( @@ -1457,7 +1458,7 @@ ulocimp_getScript(const char* localeID, UErrorCode& status) { } U_EXPORT CharString -ulocimp_getRegion(const char* localeID, UErrorCode& status) { +ulocimp_getRegion(std::string_view localeID, UErrorCode& status) { return ByteSinkUtil::viaByteSinkToCharString( [&](ByteSink& sink, UErrorCode& status) { ulocimp_getSubtags( @@ -1473,7 +1474,7 @@ ulocimp_getRegion(const char* localeID, UErrorCode& status) { } U_EXPORT CharString -ulocimp_getVariant(const char* localeID, UErrorCode& status) { +ulocimp_getVariant(std::string_view localeID, UErrorCode& status) { return ByteSinkUtil::viaByteSinkToCharString( [&](ByteSink& sink, UErrorCode& status) { ulocimp_getSubtags( @@ -1490,7 +1491,7 @@ ulocimp_getVariant(const char* localeID, UErrorCode& status) { U_EXPORT void ulocimp_getSubtags( - const char* localeID, + std::string_view localeID, CharString* language, CharString* script, CharString* region, @@ -1521,7 +1522,7 @@ ulocimp_getSubtags( U_EXPORT void ulocimp_getSubtags( - const char* localeID, + std::string_view localeID, ByteSink* language, ByteSink* script, ByteSink* region, @@ -1531,7 +1532,7 @@ ulocimp_getSubtags( if (U_FAILURE(status)) { return; } if (pEnd != nullptr) { - *pEnd = localeID; + *pEnd = localeID.data(); } else if (language == nullptr && script == nullptr && region == nullptr && @@ -1539,62 +1540,94 @@ ulocimp_getSubtags( return; } + if (localeID.empty()) { return; } + bool hasRegion = false; - if (localeID == nullptr) { - localeID = uloc_getDefault(); + { + size_t len = _getLanguage(localeID, language, status); + if (U_FAILURE(status)) { return; } + if (len > 0) { + localeID.remove_prefix(len); + } } - _getLanguage(localeID, language, &localeID, status); - if (U_FAILURE(status)) { return; } - U_ASSERT(localeID != nullptr); - if (pEnd != nullptr) { - *pEnd = localeID; + *pEnd = localeID.data(); } else if (script == nullptr && region == nullptr && variant == nullptr) { return; } - if (_isIDSeparator(*localeID)) { - const char* begin = localeID + 1; - const char* end = nullptr; - _getScript(begin, script, &end); - U_ASSERT(end != nullptr); - if (end != begin) { - localeID = end; - if (pEnd != nullptr) { *pEnd = localeID; } + if (localeID.empty()) { return; } + + if (_isIDSeparator(localeID.front())) { + std::string_view sub = localeID; + sub.remove_prefix(1); + size_t len = _getScript(sub, script); + if (len > 0) { + localeID.remove_prefix(len + 1); + if (pEnd != nullptr) { *pEnd = localeID.data(); } } } - if (region == nullptr && variant == nullptr && pEnd == nullptr) { return; } + if ((region == nullptr && variant == nullptr && pEnd == nullptr) || localeID.empty()) { return; } - if (_isIDSeparator(*localeID)) { - const char* begin = localeID + 1; - const char* end = nullptr; - _getRegion(begin, region, &end); - U_ASSERT(end != nullptr); - if (end != begin) { + if (_isIDSeparator(localeID.front())) { + std::string_view sub = localeID; + sub.remove_prefix(1); + size_t len = _getRegion(sub, region); + if (len > 0) { hasRegion = true; - localeID = end; - if (pEnd != nullptr) { *pEnd = localeID; } + localeID.remove_prefix(len + 1); + if (pEnd != nullptr) { *pEnd = localeID.data(); } } } - if (variant == nullptr && pEnd == nullptr) { return; } + if ((variant == nullptr && pEnd == nullptr) || localeID.empty()) { return; } - if (_isIDSeparator(*localeID) && !_isBCP47Extension(localeID)) { + bool hasVariant = false; + + if (_isIDSeparator(localeID.front()) && !_isBCP47Extension(localeID)) { + std::string_view sub = localeID; /* If there was no country ID, skip a possible extra IDSeparator */ - if (!hasRegion && _isIDSeparator(localeID[1])) { - localeID++; - } - const char* begin = localeID + 1; - const char* end = nullptr; - _getVariant(begin, *localeID, variant, &end, false, status); + size_t skip = !hasRegion && localeID.size() > 1 && _isIDSeparator(localeID[1]) ? 2 : 1; + sub.remove_prefix(skip); + size_t len = _getVariant(sub, localeID[0], variant, false, status); if (U_FAILURE(status)) { return; } - U_ASSERT(end != nullptr); - if (end != begin && pEnd != nullptr) { *pEnd = end; } + if (len > 0) { + hasVariant = true; + localeID.remove_prefix(skip + len); + if (pEnd != nullptr) { *pEnd = localeID.data(); } + } + } + + if ((variant == nullptr && pEnd == nullptr) || localeID.empty()) { return; } + + if (_isBCP47Extension(localeID)) { + localeID.remove_prefix(2); + constexpr char vaposix[] = "-va-posix"; + constexpr size_t length = sizeof vaposix - 1; + for (size_t next;; localeID.remove_prefix(next)) { + next = localeID.find('-', 1); + if (next == std::string_view::npos) { break; } + next = localeID.find('-', next + 1); + bool finished = next == std::string_view::npos; + std::string_view sub = localeID; + if (!finished) { sub.remove_suffix(sub.length() - next); } + + if (sub.length() == length && uprv_strnicmp(sub.data(), vaposix, length) == 0) { + if (variant != nullptr) { + if (hasVariant) { variant->Append("_", 1); } + constexpr char posix[] = "POSIX"; + variant->Append(posix, sizeof posix - 1); + } + if (pEnd != nullptr) { *pEnd = localeID.data() + length; } + } + + if (finished) { break; } + } } } @@ -1700,7 +1733,7 @@ uloc_openKeywords(const char* localeID, CharString tempBuffer; const char* tmpLocaleID; - if (_hasBCP47Extension(localeID)) { + if (localeID != nullptr && _hasBCP47Extension(localeID)) { tempBuffer = ulocimp_forLanguageTag(localeID, -1, nullptr, *status); tmpLocaleID = U_SUCCESS(*status) && !tempBuffer.isEmpty() ? tempBuffer.data() : localeID; } else { @@ -1753,7 +1786,7 @@ constexpr int32_t I_DEFAULT_LENGTH = UPRV_LENGTHOF(i_default); * This is the code underlying uloc_getName and uloc_canonicalize. */ void -_canonicalize(const char* localeID, +_canonicalize(std::string_view localeID, ByteSink& sink, uint32_t options, UErrorCode& err) { @@ -1764,33 +1797,30 @@ _canonicalize(const char* localeID, int32_t j, fieldCount=0; CharString tempBuffer; // if localeID has a BCP47 extension, tmpLocaleID points to this CharString localeIDWithHyphens; // if localeID has a BPC47 extension and have _, tmpLocaleID points to this - const char* origLocaleID; - const char* tmpLocaleID; - const char* keywordAssign = nullptr; - const char* separatorIndicator = nullptr; + std::string_view origLocaleID; + std::string_view tmpLocaleID; + size_t keywordAssign = std::string_view::npos; + size_t separatorIndicator = std::string_view::npos; if (_hasBCP47Extension(localeID)) { - const char* localeIDPtr = localeID; + std::string_view localeIDPtr = localeID; // convert all underbars to hyphens, unless the "BCP47 extension" comes at the beginning of the string - if (uprv_strchr(localeID, '_') != nullptr && localeID[1] != '-' && localeID[1] != '_') { - localeIDWithHyphens.append(localeID, -1, err); + if (localeID.size() >= 2 && localeID.find('_') != std::string_view::npos && localeID[1] != '-' && localeID[1] != '_') { + localeIDWithHyphens.append(localeID, err); if (U_SUCCESS(err)) { for (char* p = localeIDWithHyphens.data(); *p != '\0'; ++p) { if (*p == '_') { *p = '-'; } } - localeIDPtr = localeIDWithHyphens.data(); + localeIDPtr = localeIDWithHyphens.toStringPiece(); } } - tempBuffer = ulocimp_forLanguageTag(localeIDPtr, -1, nullptr, err); - tmpLocaleID = U_SUCCESS(err) && !tempBuffer.isEmpty() ? tempBuffer.data() : localeIDPtr; + tempBuffer = ulocimp_forLanguageTag(localeIDPtr.data(), static_cast(localeIDPtr.size()), nullptr, err); + tmpLocaleID = U_SUCCESS(err) && !tempBuffer.isEmpty() ? static_cast(tempBuffer.toStringPiece()) : localeIDPtr; } else { - if (localeID==nullptr) { - localeID=uloc_getDefault(); - } tmpLocaleID=localeID; } @@ -1801,20 +1831,25 @@ _canonicalize(const char* localeID, CharString script; CharString country; CharString variant; + const char* end = nullptr; ulocimp_getSubtags( tmpLocaleID, &tag, &script, &country, &variant, - &tmpLocaleID, + &end, err); if (U_FAILURE(err)) { return; } + U_ASSERT(end != nullptr); + if (end > tmpLocaleID.data()) { + tmpLocaleID.remove_prefix(end - tmpLocaleID.data()); + } - if (tag.length() == I_DEFAULT_LENGTH && - uprv_strncmp(origLocaleID, i_default, I_DEFAULT_LENGTH) == 0) { + if (tag.length() == I_DEFAULT_LENGTH && origLocaleID.length() >= I_DEFAULT_LENGTH && + uprv_strncmp(origLocaleID.data(), i_default, I_DEFAULT_LENGTH) == 0) { tag.clear(); tag.append(uloc_getDefault(), err); } else { @@ -1839,15 +1874,14 @@ _canonicalize(const char* localeID, } /* Copy POSIX-style charset specifier, if any [mr.utf8] */ - if (!OPTION_SET(options, _ULOC_CANONICALIZE) && *tmpLocaleID == '.') { + if (!OPTION_SET(options, _ULOC_CANONICALIZE) && !tmpLocaleID.empty() && tmpLocaleID.front() == '.') { tag.append('.', err); - ++tmpLocaleID; - const char *atPos = nullptr; + tmpLocaleID.remove_prefix(1); size_t length; - if((atPos = uprv_strchr(tmpLocaleID, '@')) != nullptr) { - length = atPos - tmpLocaleID; + if (size_t atPos = tmpLocaleID.find('@'); atPos != std::string_view::npos) { + length = atPos; } else { - length = uprv_strlen(tmpLocaleID); + length = tmpLocaleID.length(); } // The longest charset name we found in IANA charset registry // https://www.iana.org/assignments/character-sets/ is @@ -1859,33 +1893,34 @@ _canonicalize(const char* localeID, err = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */ return; } - tag.append(tmpLocaleID, static_cast(length), err); - tmpLocaleID += length; + if (length > 0) { + tag.append(tmpLocaleID.data(), static_cast(length), err); + tmpLocaleID.remove_prefix(length); + } } /* Scan ahead to next '@' and determine if it is followed by '=' and/or ';' - After this, tmpLocaleID either points to '@' or is nullptr */ - if ((tmpLocaleID=locale_getKeywordsStart(tmpLocaleID))!=nullptr) { - keywordAssign = uprv_strchr(tmpLocaleID, '='); - separatorIndicator = uprv_strchr(tmpLocaleID, ';'); + After this, tmpLocaleID either starts at '@' or is empty. */ + if (const char* start = locale_getKeywordsStart(tmpLocaleID); start != nullptr) { + if (start > tmpLocaleID.data()) { + tmpLocaleID.remove_prefix(start - tmpLocaleID.data()); + } + keywordAssign = tmpLocaleID.find('='); + separatorIndicator = tmpLocaleID.find(';'); + } else { + tmpLocaleID = {}; } /* Copy POSIX-style variant, if any [mr@FOO] */ if (!OPTION_SET(options, _ULOC_CANONICALIZE) && - tmpLocaleID != nullptr && keywordAssign == nullptr) { - for (;;) { - char c = *tmpLocaleID; - if (c == 0) { - break; - } - tag.append(c, err); - ++tmpLocaleID; - } + !tmpLocaleID.empty() && keywordAssign == std::string_view::npos) { + tag.append(tmpLocaleID, err); + tmpLocaleID = {}; } if (OPTION_SET(options, _ULOC_CANONICALIZE)) { /* Handle @FOO variant if @ is present and not followed by = */ - if (tmpLocaleID!=nullptr && keywordAssign==nullptr) { + if (!tmpLocaleID.empty() && keywordAssign == std::string_view::npos) { /* Add missing '_' if needed */ if (fieldCount < 2 || (fieldCount < 3 && !script.isEmpty())) { do { @@ -1895,7 +1930,9 @@ _canonicalize(const char* localeID, } CharStringByteSink s(&tag); - _getVariant(tmpLocaleID+1, '@', &s, nullptr, !variant.isEmpty(), err); + std::string_view sub = tmpLocaleID; + sub.remove_prefix(1); + _getVariant(sub, '@', &s, !variant.isEmpty(), err); if (U_FAILURE(err)) { return; } } @@ -1903,7 +1940,7 @@ _canonicalize(const char* localeID, for (j=0; j keywordAssign)) { + if (!tmpLocaleID.empty() && keywordAssign != std::string_view::npos && + (separatorIndicator == std::string_view::npos || separatorIndicator > keywordAssign)) { sink.Append("@", 1); ++fieldCount; - ulocimp_getKeywords(tmpLocaleID+1, '@', sink, true, err); + tmpLocaleID.remove_prefix(1); + ulocimp_getKeywords(tmpLocaleID, '@', sink, true, err); } } } @@ -1989,6 +2027,10 @@ uloc_getLanguage(const char* localeID, int32_t languageCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } + /* uloc_getLanguage will return a 2 character iso-639 code if one exists. *CWB*/ return ByteSinkUtil::viaByteSinkToTerminatedChars( language, languageCapacity, @@ -2011,6 +2053,10 @@ uloc_getScript(const char* localeID, int32_t scriptCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } + return ByteSinkUtil::viaByteSinkToTerminatedChars( script, scriptCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2032,6 +2078,10 @@ uloc_getCountry(const char* localeID, int32_t countryCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } + return ByteSinkUtil::viaByteSinkToTerminatedChars( country, countryCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2053,6 +2103,10 @@ uloc_getVariant(const char* localeID, int32_t variantCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } + return ByteSinkUtil::viaByteSinkToTerminatedChars( variant, variantCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2074,6 +2128,9 @@ uloc_getName(const char* localeID, int32_t nameCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } return ByteSinkUtil::viaByteSinkToTerminatedChars( name, nameCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2083,7 +2140,7 @@ uloc_getName(const char* localeID, } U_EXPORT CharString -ulocimp_getName(const char* localeID, +ulocimp_getName(std::string_view localeID, UErrorCode& err) { return ByteSinkUtil::viaByteSinkToCharString( @@ -2094,7 +2151,7 @@ ulocimp_getName(const char* localeID, } U_EXPORT void -ulocimp_getName(const char* localeID, +ulocimp_getName(std::string_view localeID, ByteSink& sink, UErrorCode& err) { @@ -2107,6 +2164,9 @@ uloc_getBaseName(const char* localeID, int32_t nameCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } return ByteSinkUtil::viaByteSinkToTerminatedChars( name, nameCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2116,7 +2176,7 @@ uloc_getBaseName(const char* localeID, } U_EXPORT CharString -ulocimp_getBaseName(const char* localeID, +ulocimp_getBaseName(std::string_view localeID, UErrorCode& err) { return ByteSinkUtil::viaByteSinkToCharString( @@ -2127,7 +2187,7 @@ ulocimp_getBaseName(const char* localeID, } U_EXPORT void -ulocimp_getBaseName(const char* localeID, +ulocimp_getBaseName(std::string_view localeID, ByteSink& sink, UErrorCode& err) { @@ -2140,6 +2200,9 @@ uloc_canonicalize(const char* localeID, int32_t nameCapacity, UErrorCode* err) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } return ByteSinkUtil::viaByteSinkToTerminatedChars( name, nameCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -2149,7 +2212,7 @@ uloc_canonicalize(const char* localeID, } U_EXPORT CharString -ulocimp_canonicalize(const char* localeID, +ulocimp_canonicalize(std::string_view localeID, UErrorCode& err) { return ByteSinkUtil::viaByteSinkToCharString( @@ -2160,7 +2223,7 @@ ulocimp_canonicalize(const char* localeID, } U_EXPORT void -ulocimp_canonicalize(const char* localeID, +ulocimp_canonicalize(std::string_view localeID, ByteSink& sink, UErrorCode& err) { diff --git a/thirdparty/icu4c/common/uloc_tag.cpp b/thirdparty/icu4c/common/uloc_tag.cpp index 7b3b1e73a37..b2e9946f48a 100644 --- a/thirdparty/icu4c/common/uloc_tag.cpp +++ b/thirdparty/icu4c/common/uloc_tag.cpp @@ -1043,7 +1043,7 @@ _initializeULanguageTag(ULanguageTag* langtag) { } void -_appendLanguageToLanguageTag(const char* localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { +_appendLanguageToLanguageTag(std::string_view localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { UErrorCode tmpStatus = U_ZERO_ERROR; if (U_FAILURE(status)) { @@ -1088,7 +1088,7 @@ _appendLanguageToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str } void -_appendScriptToLanguageTag(const char* localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { +_appendScriptToLanguageTag(std::string_view localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { UErrorCode tmpStatus = U_ZERO_ERROR; if (U_FAILURE(status)) { @@ -1118,7 +1118,7 @@ _appendScriptToLanguageTag(const char* localeID, icu::ByteSink& sink, bool stric } void -_appendRegionToLanguageTag(const char* localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { +_appendRegionToLanguageTag(std::string_view localeID, icu::ByteSink& sink, bool strict, UErrorCode& status) { UErrorCode tmpStatus = U_ZERO_ERROR; if (U_FAILURE(status)) { @@ -1169,7 +1169,7 @@ void _sortVariants(VariantListEntry* first) { } void -_appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool strict, bool& hadPosix, UErrorCode& status) { +_appendVariantsToLanguageTag(std::string_view localeID, icu::ByteSink& sink, bool strict, bool& hadPosix, UErrorCode& status) { if (U_FAILURE(status)) { return; } UErrorCode tmpStatus = U_ZERO_ERROR; @@ -1872,7 +1872,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode& status) } void -_appendPrivateuseToLanguageTag(const char* localeID, icu::ByteSink& sink, bool strict, bool /*hadPosix*/, UErrorCode& status) { +_appendPrivateuseToLanguageTag(std::string_view localeID, icu::ByteSink& sink, bool strict, bool /*hadPosix*/, UErrorCode& status) { if (U_FAILURE(status)) { return; } UErrorCode tmpStatus = U_ZERO_ERROR; @@ -2596,6 +2596,9 @@ ulocimp_toLanguageTag(const char* localeID, bool hadPosix = false; const char* pKeywordStart; + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } /* Note: uloc_canonicalize returns "en_US_POSIX" for input locale ID "". See #6835 */ icu::CharString canonical = ulocimp_canonicalize(localeID, tmpStatus); if (U_FAILURE(tmpStatus)) { @@ -2604,7 +2607,7 @@ ulocimp_toLanguageTag(const char* localeID, } /* For handling special case - private use only tag */ - pKeywordStart = locale_getKeywordsStart(canonical.data()); + pKeywordStart = locale_getKeywordsStart(canonical.toStringPiece()); if (pKeywordStart == canonical.data()) { int kwdCnt = 0; bool done = false; @@ -2642,12 +2645,12 @@ ulocimp_toLanguageTag(const char* localeID, } } - _appendLanguageToLanguageTag(canonical.data(), sink, strict, status); - _appendScriptToLanguageTag(canonical.data(), sink, strict, status); - _appendRegionToLanguageTag(canonical.data(), sink, strict, status); - _appendVariantsToLanguageTag(canonical.data(), sink, strict, hadPosix, status); + _appendLanguageToLanguageTag(canonical.toStringPiece(), sink, strict, status); + _appendScriptToLanguageTag(canonical.toStringPiece(), sink, strict, status); + _appendRegionToLanguageTag(canonical.toStringPiece(), sink, strict, status); + _appendVariantsToLanguageTag(canonical.toStringPiece(), sink, strict, hadPosix, status); _appendKeywordsToLanguageTag(canonical.data(), sink, strict, hadPosix, status); - _appendPrivateuseToLanguageTag(canonical.data(), sink, strict, hadPosix, status); + _appendPrivateuseToLanguageTag(canonical.toStringPiece(), sink, strict, hadPosix, status); } diff --git a/thirdparty/icu4c/common/ulocale.cpp b/thirdparty/icu4c/common/ulocale.cpp index f2f81bc9710..33814713dc1 100644 --- a/thirdparty/icu4c/common/ulocale.cpp +++ b/thirdparty/icu4c/common/ulocale.cpp @@ -10,7 +10,6 @@ #include "unicode/locid.h" #include "bytesinkutil.h" -#include "charstr.h" #include "cmemory.h" U_NAMESPACE_USE @@ -24,9 +23,7 @@ ulocale_openForLocaleID(const char* localeID, int32_t length, UErrorCode* err) { if (length < 0) { return EXTERNAL(icu::Locale::createFromName(localeID).clone()); } - CharString str(localeID, length, *err); // Make a NUL terminated copy. - if (U_FAILURE(*err)) { return nullptr; } - return EXTERNAL(icu::Locale::createFromName(str.data()).clone()); + return EXTERNAL(icu::Locale::createFromName(StringPiece{localeID, length}).clone()); } ULocale* diff --git a/thirdparty/icu4c/common/ulocimp.h b/thirdparty/icu4c/common/ulocimp.h index 1887e2a849a..7f09748c8ac 100644 --- a/thirdparty/icu4c/common/ulocimp.h +++ b/thirdparty/icu4c/common/ulocimp.h @@ -68,42 +68,42 @@ U_EXPORT std::optional ulocimp_toLegacyTypeWithFallback(std::string_view keyword, std::string_view value); U_EXPORT icu::CharString -ulocimp_getKeywords(const char* localeID, +ulocimp_getKeywords(std::string_view localeID, char prev, bool valuesToo, UErrorCode& status); U_EXPORT void -ulocimp_getKeywords(const char* localeID, +ulocimp_getKeywords(std::string_view localeID, char prev, icu::ByteSink& sink, bool valuesToo, UErrorCode& status); U_EXPORT icu::CharString -ulocimp_getName(const char* localeID, +ulocimp_getName(std::string_view localeID, UErrorCode& err); U_EXPORT void -ulocimp_getName(const char* localeID, +ulocimp_getName(std::string_view localeID, icu::ByteSink& sink, UErrorCode& err); U_EXPORT icu::CharString -ulocimp_getBaseName(const char* localeID, +ulocimp_getBaseName(std::string_view localeID, UErrorCode& err); U_EXPORT void -ulocimp_getBaseName(const char* localeID, +ulocimp_getBaseName(std::string_view localeID, icu::ByteSink& sink, UErrorCode& err); U_EXPORT icu::CharString -ulocimp_canonicalize(const char* localeID, +ulocimp_canonicalize(std::string_view localeID, UErrorCode& err); U_EXPORT void -ulocimp_canonicalize(const char* localeID, +ulocimp_canonicalize(std::string_view localeID, icu::ByteSink& sink, UErrorCode& err); @@ -119,16 +119,16 @@ ulocimp_getKeywordValue(const char* localeID, UErrorCode& status); U_EXPORT icu::CharString -ulocimp_getLanguage(const char* localeID, UErrorCode& status); +ulocimp_getLanguage(std::string_view localeID, UErrorCode& status); U_EXPORT icu::CharString -ulocimp_getScript(const char* localeID, UErrorCode& status); +ulocimp_getScript(std::string_view localeID, UErrorCode& status); U_EXPORT icu::CharString -ulocimp_getRegion(const char* localeID, UErrorCode& status); +ulocimp_getRegion(std::string_view localeID, UErrorCode& status); U_EXPORT icu::CharString -ulocimp_getVariant(const char* localeID, UErrorCode& status); +ulocimp_getVariant(std::string_view localeID, UErrorCode& status); U_EXPORT void ulocimp_setKeywordValue(std::string_view keywordName, @@ -145,7 +145,7 @@ ulocimp_setKeywordValue(std::string_view keywords, U_EXPORT void ulocimp_getSubtags( - const char* localeID, + std::string_view localeID, icu::CharString* language, icu::CharString* script, icu::CharString* region, @@ -155,7 +155,7 @@ ulocimp_getSubtags( U_EXPORT void ulocimp_getSubtags( - const char* localeID, + std::string_view localeID, icu::ByteSink* language, icu::ByteSink* script, icu::ByteSink* region, @@ -165,7 +165,7 @@ ulocimp_getSubtags( inline void ulocimp_getSubtags( - const char* localeID, + std::string_view localeID, std::nullptr_t, std::nullptr_t, std::nullptr_t, @@ -364,7 +364,7 @@ ulocimp_minimizeSubtags(const char* localeID, UErrorCode& err); U_CAPI const char * U_EXPORT2 -locale_getKeywordsStart(const char *localeID); +locale_getKeywordsStart(std::string_view localeID); bool ultag_isExtensionSubtags(const char* s, int32_t len); diff --git a/thirdparty/icu4c/common/umapfile.cpp b/thirdparty/icu4c/common/umapfile.cpp index b58ac37f4d4..3ba0251df9c 100644 --- a/thirdparty/icu4c/common/umapfile.cpp +++ b/thirdparty/icu4c/common/umapfile.cpp @@ -237,8 +237,13 @@ typedef HANDLE MemoryMap; pData->map = (char *)data + length; pData->pHeader=(const DataHeader *)data; pData->mapAddr = data; -#if U_PLATFORM == U_PF_IPHONE +#if U_PLATFORM == U_PF_IPHONE || U_PLATFORM == U_PF_ANDROID + // Apparently supported from Android 23 and higher: + // https://github.com/ggml-org/llama.cpp/pull/3631 + // Checking for the flag itself is safer than checking for __ANDROID_API__. +# ifdef POSIX_MADV_RANDOM posix_madvise(data, length, POSIX_MADV_RANDOM); +# endif #endif return true; } diff --git a/thirdparty/icu4c/common/unicode/brkiter.h b/thirdparty/icu4c/common/unicode/brkiter.h index 30c59c4a94a..d953925bd72 100644 --- a/thirdparty/icu4c/common/unicode/brkiter.h +++ b/thirdparty/icu4c/common/unicode/brkiter.h @@ -58,6 +58,8 @@ U_NAMESPACE_END U_NAMESPACE_BEGIN +class CharString; + /** * The BreakIterator class implements methods for finding the location * of boundaries in text. BreakIterator is an abstract base class. @@ -646,9 +648,9 @@ protected: private: /** @internal (private) */ - char actualLocale[ULOC_FULLNAME_CAPACITY]; - char validLocale[ULOC_FULLNAME_CAPACITY]; - char requestLocale[ULOC_FULLNAME_CAPACITY]; + CharString* actualLocale = nullptr; + CharString* validLocale = nullptr; + CharString* requestLocale = nullptr; }; #ifndef U_HIDE_DEPRECATED_API diff --git a/thirdparty/icu4c/common/unicode/char16ptr.h b/thirdparty/icu4c/common/unicode/char16ptr.h index daf35cd43ba..049de9efee8 100644 --- a/thirdparty/icu4c/common/unicode/char16ptr.h +++ b/thirdparty/icu4c/common/unicode/char16ptr.h @@ -9,10 +9,13 @@ #include "unicode/utypes.h" -#if U_SHOW_CPLUSPLUS_API +#if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API #include #include +#include + +#endif /** * \file @@ -21,8 +24,6 @@ * Also conversion functions from char16_t * to UChar * and OldUChar *. */ -U_NAMESPACE_BEGIN - /** * \def U_ALIASING_BARRIER * Barrier for pointer anti-aliasing optimizations even across function boundaries. @@ -36,6 +37,11 @@ U_NAMESPACE_BEGIN # define U_ALIASING_BARRIER(ptr) #endif +// ICU DLL-exported +#if U_SHOW_CPLUSPLUS_API + +U_NAMESPACE_BEGIN + /** * char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types. * @stable ICU 59 @@ -251,6 +257,60 @@ const char16_t *ConstChar16Ptr::get() const { return u_.cp; } #endif /// \endcond +U_NAMESPACE_END + +#endif // U_SHOW_CPLUSPLUS_API + +// Usable in header-only definitions +#if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API + +namespace U_ICU_NAMESPACE_OR_INTERNAL { + +#ifndef U_FORCE_HIDE_INTERNAL_API +/** @internal */ +template>> +inline const char16_t *uprv_char16PtrFromUChar(const T *p) { + if constexpr (std::is_same_v) { + return p; + } else { +#if U_SHOW_CPLUSPLUS_API + return ConstChar16Ptr(p).get(); +#else +#ifdef U_ALIASING_BARRIER + U_ALIASING_BARRIER(p); +#endif + return reinterpret_cast(p); +#endif + } +} +#if !U_CHAR16_IS_TYPEDEF && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 180000) +/** @internal */ +inline const char16_t *uprv_char16PtrFromUint16(const uint16_t *p) { +#if U_SHOW_CPLUSPLUS_API + return ConstChar16Ptr(p).get(); +#else +#ifdef U_ALIASING_BARRIER + U_ALIASING_BARRIER(p); +#endif + return reinterpret_cast(p); +#endif +} +#endif +#if U_SIZEOF_WCHAR_T==2 +/** @internal */ +inline const char16_t *uprv_char16PtrFromWchar(const wchar_t *p) { +#if U_SHOW_CPLUSPLUS_API + return ConstChar16Ptr(p).get(); +#else +#ifdef U_ALIASING_BARRIER + U_ALIASING_BARRIER(p); +#endif + return reinterpret_cast(p); +#endif +} +#endif +#endif + /** * Converts from const char16_t * to const UChar *. * Includes an aliasing barrier if available. @@ -307,6 +367,15 @@ inline OldUChar *toOldUCharPtr(char16_t *p) { return reinterpret_cast(p); } +} // U_ICU_NAMESPACE_OR_INTERNAL + +#endif // U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API + +// ICU DLL-exported +#if U_SHOW_CPLUSPLUS_API + +U_NAMESPACE_BEGIN + #ifndef U_FORCE_HIDE_INTERNAL_API /** * Is T convertible to a std::u16string_view or some other 16-bit string view? @@ -379,6 +448,6 @@ inline std::u16string_view toU16StringViewNullable(const T& text) { U_NAMESPACE_END -#endif /* U_SHOW_CPLUSPLUS_API */ +#endif // U_SHOW_CPLUSPLUS_API #endif // __CHAR16PTR_H__ diff --git a/thirdparty/icu4c/common/unicode/locid.h b/thirdparty/icu4c/common/unicode/locid.h index e1afd598cf9..a394cd9347d 100644 --- a/thirdparty/icu4c/common/unicode/locid.h +++ b/thirdparty/icu4c/common/unicode/locid.h @@ -449,6 +449,11 @@ public: */ static Locale U_EXPORT2 createFromName(const char *name); +#ifndef U_HIDE_INTERNAL_API + /** @internal */ + static Locale U_EXPORT2 createFromName(StringPiece name); +#endif /* U_HIDE_INTERNAL_API */ + /** * Creates a locale from the given string after canonicalizing * the string according to CLDR by calling uloc_canonicalize(). @@ -1133,7 +1138,9 @@ private: * @param cLocaleID The new locale name. * @param canonicalize whether to call uloc_canonicalize on cLocaleID */ - Locale& init(const char* cLocaleID, UBool canonicalize); + Locale& init(const char* localeID, UBool canonicalize); + /** @internal */ + Locale& init(StringPiece localeID, UBool canonicalize); /* * Internal constructor to allow construction of a locale object with diff --git a/thirdparty/icu4c/common/unicode/resbund.h b/thirdparty/icu4c/common/unicode/resbund.h index 3965371729d..03ff6faee23 100644 --- a/thirdparty/icu4c/common/unicode/resbund.h +++ b/thirdparty/icu4c/common/unicode/resbund.h @@ -450,7 +450,7 @@ public: * @return a Locale object * @stable ICU 2.8 */ - const Locale + Locale getLocale(ULocDataLocaleType type, UErrorCode &status) const; #ifndef U_HIDE_INTERNAL_API /** diff --git a/thirdparty/icu4c/common/unicode/uchar.h b/thirdparty/icu4c/common/unicode/uchar.h index 0daa7dd2141..82ec63ab524 100644 --- a/thirdparty/icu4c/common/unicode/uchar.h +++ b/thirdparty/icu4c/common/unicode/uchar.h @@ -675,14 +675,14 @@ typedef enum UProperty { * @stable ICU 63 */ UCHAR_VERTICAL_ORIENTATION=0x1018, -#ifndef U_HIDE_DRAFT_API /** * Enumerated property Identifier_Status. * Used for UTS #39 General Security Profile for Identifiers * (https://www.unicode.org/reports/tr39/#General_Security_Profile). - * @draft ICU 75 + * @stable ICU 75 */ UCHAR_IDENTIFIER_STATUS=0x1019, +#ifndef U_HIDE_DRAFT_API /** * Enumerated property Indic_Conjunct_Break. * Used in the grapheme cluster break algorithm in UAX #29. @@ -796,7 +796,6 @@ typedef enum UProperty { UCHAR_SCRIPT_EXTENSIONS=0x7000, /** First constant for Unicode properties with unusual value types. @stable ICU 4.6 */ UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS, -#ifndef U_HIDE_DRAFT_API /** * Miscellaneous property Identifier_Type. * Used for UTS #39 General Security Profile for Identifiers @@ -808,10 +807,9 @@ typedef enum UProperty { * * @see u_hasIDType * @see u_getIDTypes - * @draft ICU 75 + * @stable ICU 75 */ UCHAR_IDENTIFIER_TYPE=0x7001, -#endif // U_HIDE_DRAFT_API #ifndef U_HIDE_DEPRECATED_API /** * One more than the last constant for Unicode properties with unusual value types. @@ -2791,13 +2789,12 @@ typedef enum UVerticalOrientation { U_VO_UPRIGHT, } UVerticalOrientation; -#ifndef U_HIDE_DRAFT_API /** * Identifier Status constants. * See https://www.unicode.org/reports/tr39/#Identifier_Status_and_Type. * * @see UCHAR_IDENTIFIER_STATUS - * @draft ICU 75 + * @stable ICU 75 */ typedef enum UIdentifierStatus { /* @@ -2806,9 +2803,9 @@ typedef enum UIdentifierStatus { * U_ID_STATUS_ */ - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_STATUS_RESTRICTED, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_STATUS_ALLOWED, } UIdentifierStatus; @@ -2817,7 +2814,7 @@ typedef enum UIdentifierStatus { * See https://www.unicode.org/reports/tr39/#Identifier_Status_and_Type. * * @see UCHAR_IDENTIFIER_TYPE - * @draft ICU 75 + * @stable ICU 75 */ typedef enum UIdentifierType { /* @@ -2826,32 +2823,31 @@ typedef enum UIdentifierType { * U_ID_TYPE_ */ - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_NOT_CHARACTER, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_DEPRECATED, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_DEFAULT_IGNORABLE, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_NOT_NFKC, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_NOT_XID, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_EXCLUSION, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_OBSOLETE, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_TECHNICAL, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_UNCOMMON_USE, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_LIMITED_USE, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_INCLUSION, - /** @draft ICU 75 */ + /** @stable ICU 75 */ U_ID_TYPE_RECOMMENDED, } UIdentifierType; -#endif // U_HIDE_DRAFT_API /** * Check a binary Unicode property for a code point. @@ -4057,7 +4053,6 @@ u_isIDStart(UChar32 c); U_CAPI UBool U_EXPORT2 u_isIDPart(UChar32 c); -#ifndef U_HIDE_DRAFT_API /** * Does the set of Identifier_Type values code point c contain the given type? * @@ -4069,7 +4064,7 @@ u_isIDPart(UChar32 c); * @param c code point * @param type Identifier_Type to check * @return true if type is in Identifier_Type(c) - * @draft ICU 75 + * @stable ICU 75 */ U_CAPI bool U_EXPORT2 u_hasIDType(UChar32 c, UIdentifierType type); @@ -4104,11 +4099,10 @@ u_hasIDType(UChar32 c, UIdentifierType type); * function chaining. (See User Guide for details.) * @return number of values in c's Identifier_Type, * written to types unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity - * @draft ICU 75 + * @stable ICU 75 */ U_CAPI int32_t U_EXPORT2 u_getIDTypes(UChar32 c, UIdentifierType *types, int32_t capacity, UErrorCode *pErrorCode); -#endif // U_HIDE_DRAFT_API /** * Determines if the specified character should be regarded diff --git a/thirdparty/icu4c/common/unicode/uniset.h b/thirdparty/icu4c/common/unicode/uniset.h index d070fd631a2..6b1ac9ba262 100644 --- a/thirdparty/icu4c/common/unicode/uniset.h +++ b/thirdparty/icu4c/common/unicode/uniset.h @@ -1173,10 +1173,12 @@ public: inline U_HEADER_NESTED_NAMESPACE::USetStrings strings() const { return U_HEADER_NESTED_NAMESPACE::USetStrings(toUSet()); } +#endif // U_HIDE_DRAFT_API +#ifndef U_HIDE_DRAFT_API /** * Returns a C++ iterator for iterating over all of the elements of this set. - * Convenient all-in one iteration, but creates a UnicodeString for each + * Convenient all-in one iteration, but creates a std::u16string for each * code point or string. * (Similar to how Java UnicodeSet *is an* Iterable<String>.) * @@ -1185,13 +1187,14 @@ public: * \code * UnicodeSet set(u"[abcçカ🚴{}{abc}{de}]", errorCode); * for (auto el : set) { + * UnicodeString us(el); * std::string u8; - * printf("set.string length %ld \"%s\"\n", (long)el.length(), el.toUTF8String(u8).c_str()); + * printf("set.element length %ld \"%s\"\n", (long)us.length(), us.toUTF8String(u8).c_str()); * } * \endcode * * @return an all-elements iterator. - * @draft ICU 76 + * @draft ICU 77 * @see end * @see codePoints * @see ranges @@ -1203,7 +1206,7 @@ public: /** * @return an exclusive-end sentinel for iterating over all of the elements of this set. - * @draft ICU 76 + * @draft ICU 77 * @see begin * @see codePoints * @see ranges diff --git a/thirdparty/icu4c/common/unicode/uset.h b/thirdparty/icu4c/common/unicode/uset.h index c8f9b5592df..c5e7f23901b 100644 --- a/thirdparty/icu4c/common/unicode/uset.h +++ b/thirdparty/icu4c/common/unicode/uset.h @@ -32,12 +32,13 @@ #include "unicode/utypes.h" #include "unicode/uchar.h" -#if U_SHOW_CPLUSPLUS_API +#if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API +#include #include #include "unicode/char16ptr.h" #include "unicode/localpointer.h" -#include "unicode/unistr.h" -#endif // U_SHOW_CPLUSPLUS_API +#include "unicode/utf16.h" +#endif #ifndef USET_DEFINED @@ -1392,8 +1393,8 @@ public: private: friend class USetCodePoints; - USetCodePointIterator(const USet *uset, int32_t rangeIndex, int32_t rangeCount) - : uset(uset), rangeIndex(rangeIndex), rangeCount(rangeCount), + USetCodePointIterator(const USet *pUset, int32_t nRangeIndex, int32_t nRangeCount) + : uset(pUset), rangeIndex(nRangeIndex), rangeCount(nRangeCount), c(U_SENTINEL), end(U_SENTINEL) { // Fetch the first range. operator++(); @@ -1429,7 +1430,7 @@ public: * Constructs a C++ "range" object over the code points of the USet. * @draft ICU 76 */ - USetCodePoints(const USet *uset) : uset(uset), rangeCount(uset_getRangeCount(uset)) {} + USetCodePoints(const USet *pUset) : uset(pUset), rangeCount(uset_getRangeCount(pUset)) {} /** @draft ICU 76 */ USetCodePoints(const USetCodePoints &other) = default; @@ -1460,7 +1461,7 @@ struct CodePointRange { /** @draft ICU 76 */ struct iterator { /** @draft ICU 76 */ - iterator(UChar32 c) : c(c) {} + iterator(UChar32 aC) : c(aC) {} /** @draft ICU 76 */ bool operator==(const iterator &other) const { return c == other.c; } @@ -1573,8 +1574,8 @@ public: private: friend class USetRanges; - USetRangeIterator(const USet *uset, int32_t rangeIndex, int32_t rangeCount) - : uset(uset), rangeIndex(rangeIndex), rangeCount(rangeCount) {} + USetRangeIterator(const USet *pUset, int32_t nRangeIndex, int32_t nRangeCount) + : uset(pUset), rangeIndex(nRangeIndex), rangeCount(nRangeCount) {} const USet *uset; int32_t rangeIndex; @@ -1610,7 +1611,7 @@ public: * Constructs a C++ "range" object over the code point ranges of the USet. * @draft ICU 76 */ - USetRanges(const USet *uset) : uset(uset), rangeCount(uset_getRangeCount(uset)) {} + USetRanges(const USet *pUset) : uset(pUset), rangeCount(uset_getRangeCount(pUset)) {} /** @draft ICU 76 */ USetRanges(const USetRanges &other) = default; @@ -1657,7 +1658,7 @@ public: int32_t length; const UChar *uchars = uset_getString(uset, index, &length); // assert uchars != nullptr; - return {ConstChar16Ptr(uchars), static_cast(length)}; + return {uprv_char16PtrFromUChar(uchars), static_cast(length)}; } return {}; } @@ -1684,8 +1685,8 @@ public: private: friend class USetStrings; - USetStringIterator(const USet *uset, int32_t index, int32_t count) - : uset(uset), index(index), count(count) {} + USetStringIterator(const USet *pUset, int32_t nIndex, int32_t nCount) + : uset(pUset), index(nIndex), count(nCount) {} const USet *uset; int32_t index; @@ -1699,9 +1700,11 @@ private: * using U_HEADER_NESTED_NAMESPACE::USetStrings; * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, &errorCode)); * for (auto s : USetStrings(uset.getAlias())) { - * UnicodeString us(s); - * std::string u8; - * printf("uset.string length %ld \"%s\"\n", (long)s.length(), us.toUTF8String(u8).c_str()); + * int32_t len32 = s.length(); + * char utf8[200]; + * u_strToUTF8WithSub(utf8, int32_t{sizeof(utf8) - 1}, nullptr, + * s.data(), len32, 0xFFFD, nullptr, errorCode); + * printf("uset.string length %ld \"%s\"\n", long{len32}, utf8); * } * \endcode * @@ -1718,7 +1721,7 @@ public: * Constructs a C++ "range" object over the strings of the USet. * @draft ICU 76 */ - USetStrings(const USet *uset) : uset(uset), count(uset_getStringCount(uset)) {} + USetStrings(const USet *pUset) : uset(pUset), count(uset_getStringCount(pUset)) {} /** @draft ICU 76 */ USetStrings(const USetStrings &other) = default; @@ -1737,17 +1740,19 @@ private: const USet *uset; int32_t count; }; +#endif // U_HIDE_DRAFT_API +#ifndef U_HIDE_DRAFT_API /** * Iterator returned by USetElements. - * @draft ICU 76 + * @draft ICU 77 */ class USetElementIterator { public: - /** @draft ICU 76 */ + /** @draft ICU 77 */ USetElementIterator(const USetElementIterator &other) = default; - /** @draft ICU 76 */ + /** @draft ICU 77 */ bool operator==(const USetElementIterator &other) const { // No need to compare rangeCount & end given private constructor // and assuming we don't compare iterators across the set being modified. @@ -1756,26 +1761,28 @@ public: return uset == other.uset && c == other.c && index == other.index; } - /** @draft ICU 76 */ + /** @draft ICU 77 */ bool operator!=(const USetElementIterator &other) const { return !operator==(other); } - /** @draft ICU 76 */ - UnicodeString operator*() const { + /** @draft ICU 77 */ + std::u16string operator*() const { if (c >= 0) { - return UnicodeString(c); + return c <= 0xffff ? + std::u16string({static_cast(c)}) : + std::u16string({U16_LEAD(c), U16_TRAIL(c)}); } else if (index < totalCount) { int32_t length; const UChar *uchars = uset_getString(uset, index - rangeCount, &length); // assert uchars != nullptr; - return UnicodeString(uchars, length); + return {uprv_char16PtrFromUChar(uchars), static_cast(length)}; } else { - return UnicodeString(); + return {}; } } /** * Pre-increment. - * @draft ICU 76 + * @draft ICU 77 */ USetElementIterator &operator++() { if (c < end) { @@ -1800,7 +1807,7 @@ public: /** * Post-increment. - * @draft ICU 76 + * @draft ICU 77 */ USetElementIterator operator++(int) { USetElementIterator result(*this); @@ -1811,8 +1818,8 @@ public: private: friend class USetElements; - USetElementIterator(const USet *uset, int32_t index, int32_t rangeCount, int32_t totalCount) - : uset(uset), index(index), rangeCount(rangeCount), totalCount(totalCount), + USetElementIterator(const USet *pUset, int32_t nIndex, int32_t nRangeCount, int32_t nTotalCount) + : uset(pUset), index(nIndex), rangeCount(nRangeCount), totalCount(nTotalCount), c(U_SENTINEL), end(U_SENTINEL) { if (index < rangeCount) { // Fetch the first range. @@ -1840,7 +1847,7 @@ private: /** * A C++ "range" for iterating over all of the elements of a USet. - * Convenient all-in one iteration, but creates a UnicodeString for each + * Convenient all-in one iteration, but creates a std::u16string for each * code point or string. * * Code points are returned first, then empty and multi-character strings. @@ -1849,15 +1856,18 @@ private: * using U_HEADER_NESTED_NAMESPACE::USetElements; * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, &errorCode)); * for (auto el : USetElements(uset.getAlias())) { - * std::string u8; - * printf("uset.string length %ld \"%s\"\n", (long)el.length(), el.toUTF8String(u8).c_str()); + * int32_t len32 = el.length(); + * char utf8[200]; + * u_strToUTF8WithSub(utf8, int32_t{sizeof(utf8) - 1}, nullptr, + * el.data(), len32, 0xFFFD, nullptr, errorCode); + * printf("uset.element length %ld \"%s\"\n", long{len32}, utf8); * } * \endcode * * C++ UnicodeSet has member functions for iteration, including begin() and end(). * * @return an all-elements iterator. - * @draft ICU 76 + * @draft ICU 77 * @see USetCodePoints * @see USetRanges * @see USetStrings @@ -1866,21 +1876,21 @@ class USetElements { public: /** * Constructs a C++ "range" object over all of the elements of the USet. - * @draft ICU 76 + * @draft ICU 77 */ - USetElements(const USet *uset) - : uset(uset), rangeCount(uset_getRangeCount(uset)), - stringCount(uset_getStringCount(uset)) {} + USetElements(const USet *pUset) + : uset(pUset), rangeCount(uset_getRangeCount(pUset)), + stringCount(uset_getStringCount(pUset)) {} - /** @draft ICU 76 */ + /** @draft ICU 77 */ USetElements(const USetElements &other) = default; - /** @draft ICU 76 */ + /** @draft ICU 77 */ USetElementIterator begin() const { return USetElementIterator(uset, 0, rangeCount, rangeCount + stringCount); } - /** @draft ICU 76 */ + /** @draft ICU 77 */ USetElementIterator end() const { return USetElementIterator(uset, rangeCount + stringCount, rangeCount, rangeCount + stringCount); } diff --git a/thirdparty/icu4c/common/unicode/utf8.h b/thirdparty/icu4c/common/unicode/utf8.h index 5a07435fcf6..96ad46161aa 100644 --- a/thirdparty/icu4c/common/unicode/utf8.h +++ b/thirdparty/icu4c/common/unicode/utf8.h @@ -124,7 +124,7 @@ * @internal */ U_CAPI UChar32 U_EXPORT2 -utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, UBool strict); +utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, int8_t strict); /** * Function for handling "append code point" with error-checking. @@ -148,7 +148,7 @@ utf8_appendCharSafeBody(uint8_t *s, int32_t i, int32_t length, UChar32 c, UBool * @internal */ U_CAPI UChar32 U_EXPORT2 -utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, UBool strict); +utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, int8_t strict); /** * Function for handling "skip backward one code point" with error-checking. diff --git a/thirdparty/icu4c/common/unicode/utypes.h b/thirdparty/icu4c/common/unicode/utypes.h index 0151ebd4701..ecdee516431 100644 --- a/thirdparty/icu4c/common/unicode/utypes.h +++ b/thirdparty/icu4c/common/unicode/utypes.h @@ -598,12 +598,13 @@ typedef enum UErrorCode { U_MF_DUPLICATE_DECLARATION_ERROR, /**< The same variable is declared in more than one .local or .input declaration. @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ U_MF_OPERAND_MISMATCH_ERROR, /**< An operand provided to a function does not have the required form for that function @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ U_MF_DUPLICATE_VARIANT_ERROR, /**< A message includes a variant with the same key list as another variant. @internal ICU 76 technology preview @deprecated This API is for technology preview only. */ + U_MF_BAD_OPTION, /**< An option value provided to a function does not have the required form for that option. @internal ICU 77 technology preview @deprecated This API is for technology preview only. */ #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal formatting API error code. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - U_FMT_PARSE_ERROR_LIMIT = 0x10120, + U_FMT_PARSE_ERROR_LIMIT = 0x10121, #endif // U_HIDE_DEPRECATED_API /* diff --git a/thirdparty/icu4c/common/unicode/uvernum.h b/thirdparty/icu4c/common/unicode/uvernum.h index a3cb882623b..847c49f4cfb 100644 --- a/thirdparty/icu4c/common/unicode/uvernum.h +++ b/thirdparty/icu4c/common/unicode/uvernum.h @@ -53,7 +53,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION_MAJOR_NUM 76 +#define U_ICU_VERSION_MAJOR_NUM 77 /** The current ICU minor version as an integer. * This value will change in the subsequent releases of ICU @@ -79,7 +79,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SUFFIX _76 +#define U_ICU_VERSION_SUFFIX _77 /** * \def U_DEF2_ICU_ENTRY_POINT_RENAME @@ -132,7 +132,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "76.1" +#define U_ICU_VERSION "77.1" /** * The current ICU library major version number as a string, for library name suffixes. @@ -145,13 +145,13 @@ * * @stable ICU 2.6 */ -#define U_ICU_VERSION_SHORT "76" +#define U_ICU_VERSION_SHORT "77" #ifndef U_HIDE_INTERNAL_API /** Data version in ICU4C. * @internal ICU 4.4 Internal Use Only **/ -#define U_ICU_DATA_VERSION "76.1" +#define U_ICU_DATA_VERSION "77.1" #endif /* U_HIDE_INTERNAL_API */ /*=========================================================================== diff --git a/thirdparty/icu4c/common/unicode/uversion.h b/thirdparty/icu4c/common/unicode/uversion.h index 25d73a3aeb5..a29bf21efda 100644 --- a/thirdparty/icu4c/common/unicode/uversion.h +++ b/thirdparty/icu4c/common/unicode/uversion.h @@ -125,7 +125,7 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; U_NAMESPACE_USE # endif -#ifndef U_HIDE_DRAFT_API +#ifndef U_FORCE_HIDE_DRAFT_API /** * \def U_HEADER_NESTED_NAMESPACE * Nested namespace used inside U_ICU_NAMESPACE for header-only APIs. @@ -150,22 +150,37 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; * @draft ICU 76 */ +/** + * \def U_ICU_NAMESPACE_OR_INTERNAL + * Namespace used for header-only APIs that used to be regular C++ APIs. + * Different when used inside ICU to prevent public use of internal instantiations. + * Similar to U_HEADER_ONLY_NAMESPACE, but the public definition is the same as U_ICU_NAMESPACE. + * "U_ICU_NAMESPACE" or "U_ICU_NAMESPACE::internal". + * + * @draft ICU 77 + */ + // The first test is the same as for defining U_EXPORT for Windows. #if defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllexport__) && \ UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllimport__)) # define U_HEADER_NESTED_NAMESPACE header +# define U_ICU_NAMESPACE_OR_INTERNAL U_ICU_NAMESPACE #elif defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \ defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || \ defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_TOOLUTIL_IMPLEMENTATION) # define U_HEADER_NESTED_NAMESPACE internal +# define U_ICU_NAMESPACE_OR_INTERNAL U_ICU_NAMESPACE::internal + namespace U_ICU_NAMESPACE_OR_INTERNAL {} + using namespace U_ICU_NAMESPACE_OR_INTERNAL; #else # define U_HEADER_NESTED_NAMESPACE header +# define U_ICU_NAMESPACE_OR_INTERNAL U_ICU_NAMESPACE #endif #define U_HEADER_ONLY_NAMESPACE U_ICU_NAMESPACE::U_HEADER_NESTED_NAMESPACE namespace U_HEADER_ONLY_NAMESPACE {} -#endif // U_HIDE_DRAFT_API +#endif // U_FORCE_HIDE_DRAFT_API #endif /* __cplusplus */ diff --git a/thirdparty/icu4c/common/unistr.cpp b/thirdparty/icu4c/common/unistr.cpp index a720245772e..4e29bad1d3b 100644 --- a/thirdparty/icu4c/common/unistr.cpp +++ b/thirdparty/icu4c/common/unistr.cpp @@ -1945,6 +1945,13 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, growCapacity = newCapacity; } else if(newCapacity <= US_STACKBUF_SIZE && growCapacity > US_STACKBUF_SIZE) { growCapacity = US_STACKBUF_SIZE; + } else if(newCapacity > growCapacity) { + setToBogus(); + return false; // bad inputs + } + if(growCapacity > kMaxCapacity) { + setToBogus(); + return false; } // save old values diff --git a/thirdparty/icu4c/common/uresbund.cpp b/thirdparty/icu4c/common/uresbund.cpp index 3a09cbf3bca..afda2770fd3 100644 --- a/thirdparty/icu4c/common/uresbund.cpp +++ b/thirdparty/icu4c/common/uresbund.cpp @@ -2716,6 +2716,9 @@ ures_openWithType(UResourceBundle *r, const char* path, const char* localeID, UResourceDataEntry *entry; if(openType != URES_OPEN_DIRECT) { + if (localeID == nullptr) { + localeID = uloc_getDefault(); + } /* first "canonicalize" the locale ID */ CharString canonLocaleID = ulocimp_getBaseName(localeID, *status); if(U_FAILURE(*status)) { @@ -3080,6 +3083,9 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, kwVal.clear(); } } + if (locid == nullptr) { + locid = uloc_getDefault(); + } CharString base = ulocimp_getBaseName(locid, subStatus); #if defined(URES_TREE_DEBUG) fprintf(stderr, "getFunctionalEquivalent: \"%s\" [%s=%s] in %s - %s\n", @@ -3244,7 +3250,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, const char *validLoc = ures_getLocaleByType(res, ULOC_VALID_LOCALE, &subStatus); if (U_SUCCESS(subStatus) && validLoc != nullptr && validLoc[0] != 0 && uprv_strcmp(validLoc, "root") != 0) { CharString validLang = ulocimp_getLanguage(validLoc, subStatus); - CharString parentLang = ulocimp_getLanguage(parent.data(), subStatus); + CharString parentLang = ulocimp_getLanguage(parent.toStringPiece(), subStatus); if (U_SUCCESS(subStatus) && validLang != parentLang) { // validLoc is not root and has a different language than parent, use it instead found.clear().append(validLoc, subStatus); diff --git a/thirdparty/icu4c/common/uscript.cpp b/thirdparty/icu4c/common/uscript.cpp index c48a28fd143..ce40d354958 100644 --- a/thirdparty/icu4c/common/uscript.cpp +++ b/thirdparty/icu4c/common/uscript.cpp @@ -59,6 +59,9 @@ getCodesFromLocale(const char *locale, if (U_FAILURE(*err)) { return 0; } icu::CharString lang; icu::CharString script; + if (locale == nullptr) { + locale = uloc_getDefault(); + } ulocimp_getSubtags(locale, &lang, &script, nullptr, nullptr, nullptr, *err); if (U_FAILURE(*err)) { return 0; } // Multi-script languages, equivalent to the LocaleScript data diff --git a/thirdparty/icu4c/common/ushape.cpp b/thirdparty/icu4c/common/ushape.cpp index 00125635cb2..b7946dc3ce0 100644 --- a/thirdparty/icu4c/common/ushape.cpp +++ b/thirdparty/icu4c/common/ushape.cpp @@ -28,6 +28,7 @@ #include "ubidi_props.h" #include "uassert.h" +#include /* * This implementation is designed for 16-bit Unicode strings. * The main assumption is that the Arabic characters and their @@ -747,6 +748,10 @@ handleGeneratedSpaces(char16_t *dest, int32_t sourceLength, } } + if (static_cast(sourceLength) + 1 > std::numeric_limits::max() / U_SIZEOF_UCHAR) { + *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } tempbuffer = static_cast(uprv_malloc((sourceLength + 1) * U_SIZEOF_UCHAR)); /* Test for nullptr */ if(tempbuffer == nullptr) { diff --git a/thirdparty/icu4c/common/usprep.cpp b/thirdparty/icu4c/common/usprep.cpp index 477b8f2309d..048b423645f 100644 --- a/thirdparty/icu4c/common/usprep.cpp +++ b/thirdparty/icu4c/common/usprep.cpp @@ -126,7 +126,7 @@ compareEntries(const UHashTok p1, const UHashTok p2) { name2.pointer = b2->name; path1.pointer = b1->path; path2.pointer = b2->path; - return uhash_compareChars(name1, name2) & uhash_compareChars(path1, path2); + return uhash_compareChars(name1, name2) && uhash_compareChars(path1, path2); } static void diff --git a/thirdparty/icu4c/common/utf_impl.cpp b/thirdparty/icu4c/common/utf_impl.cpp index 827a82daf40..7da10c9b2d3 100644 --- a/thirdparty/icu4c/common/utf_impl.cpp +++ b/thirdparty/icu4c/common/utf_impl.cpp @@ -124,11 +124,9 @@ errorValue(int32_t count, int8_t strict) { * >0 Obsolete "strict" behavior of UTF8_NEXT_CHAR_SAFE(..., true): * Same as the obsolete "safe" behavior, but non-characters are also treated * like illegal sequences. - * - * Note that a UBool is the same as an int8_t. */ U_CAPI UChar32 U_EXPORT2 -utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, UBool strict) { +utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, int8_t strict) { // *pi is one after byte c. int32_t i=*pi; // length can be negative for NUL-terminated strings: Read and validate one byte at a time. @@ -233,7 +231,7 @@ utf8_appendCharSafeBody(uint8_t *s, int32_t i, int32_t length, UChar32 c, UBool } U_CAPI UChar32 U_EXPORT2 -utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, UBool strict) { +utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, int8_t strict) { // *pi is the index of byte c. int32_t i=*pi; if(U8_IS_TRAIL(c) && i>start) { diff --git a/thirdparty/icu4c/common/utypes.cpp b/thirdparty/icu4c/common/utypes.cpp index 4602314147f..4d4c1f81b5e 100644 --- a/thirdparty/icu4c/common/utypes.cpp +++ b/thirdparty/icu4c/common/utypes.cpp @@ -140,7 +140,8 @@ _uFmtErrorName[U_FMT_PARSE_ERROR_LIMIT - U_FMT_PARSE_ERROR_START] = { "U_MF_MISSING_SELECTOR_ANNOTATION_ERROR", "U_MF_DUPLICATE_DECLARATION_ERROR", "U_MF_OPERAND_MISMATCH_ERROR", - "U_MF_DUPLICATE_VARIANT_ERROR" + "U_MF_DUPLICATE_VARIANT_ERROR", + "U_MF_BAD_OPTION" }; static const char * const diff --git a/thirdparty/icu4c/i18n/scriptset.cpp b/thirdparty/icu4c/i18n/scriptset.cpp index eec1eeb37da..576917e81c4 100644 --- a/thirdparty/icu4c/i18n/scriptset.cpp +++ b/thirdparty/icu4c/i18n/scriptset.cpp @@ -285,19 +285,19 @@ uhash_equalsScriptSet(const UElement key1, const UElement key2) { return (*s1 == *s2); } -U_CAPI int8_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uhash_compareScriptSet(UElement key0, UElement key1) { icu::ScriptSet *s0 = static_cast(key0.pointer); icu::ScriptSet *s1 = static_cast(key1.pointer); int32_t diff = s0->countMembers() - s1->countMembers(); - if (diff != 0) return static_cast(diff); + if (diff != 0) return diff; int32_t i0 = s0->nextSetBit(0); int32_t i1 = s1->nextSetBit(0); while ((diff = i0-i1) == 0 && i0 > 0) { i0 = s0->nextSetBit(i0+1); i1 = s1->nextSetBit(i1+1); } - return (int8_t)diff; + return diff; } U_CAPI int32_t U_EXPORT2 diff --git a/thirdparty/icu4c/i18n/scriptset.h b/thirdparty/icu4c/i18n/scriptset.h index df5cfdc7486..d21d0db8a01 100644 --- a/thirdparty/icu4c/i18n/scriptset.h +++ b/thirdparty/icu4c/i18n/scriptset.h @@ -74,7 +74,7 @@ class U_I18N_API ScriptSet: public UMemory { U_NAMESPACE_END -U_CAPI UBool U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uhash_compareScriptSet(const UElement key1, const UElement key2); U_CAPI int32_t U_EXPORT2 diff --git a/thirdparty/icu4c/i18n/ucln_in.h b/thirdparty/icu4c/i18n/ucln_in.h index 765cdd559fb..74868891c83 100644 --- a/thirdparty/icu4c/i18n/ucln_in.h +++ b/thirdparty/icu4c/i18n/ucln_in.h @@ -39,6 +39,7 @@ typedef enum ECleanupI18NType { UCLN_I18N_HEBREW_CALENDAR, UCLN_I18N_ASTRO_CALENDAR, UCLN_I18N_DANGI_CALENDAR, + UCLN_I18N_PERSIAN_CALENDAR, UCLN_I18N_CALENDAR, UCLN_I18N_TIMEZONEFORMAT, UCLN_I18N_TZDBTIMEZONENAMES, @@ -62,6 +63,7 @@ typedef enum ECleanupI18NType { UCLN_I18N_REGION, UCLN_I18N_LIST_FORMATTER, UCLN_I18N_NUMSYS, + UCLN_I18N_MF2_UNISETS, UCLN_I18N_COUNT /* This must be last */ } ECleanupI18NType; diff --git a/thirdparty/icu4c/icudt_godot.dat b/thirdparty/icu4c/icudt_godot.dat index 58bead426f021c06f68f3e459a758ad0d11a7a2d..c6b96c477b38368496659e0718fd5a7fc569e6eb 100644 GIT binary patch delta 295212 zcmeFa2bfgF5uLl7b=`0TsC}=oPbo2xUM4 zF(Sf(3W|u}Rj&~NGayOD03vX`dPRi)uc}X+-9>MB|M$N4G4suwnbY0X-PP6ARn^sX zWY{1deqGZlk~FQJN7EwTd9~)a4sPtzy7TpwCfc8I&3LDYHV)Tn zTyMd3;g%-aB3uvRx&hZ&A2iWE#WiDl6YU3F2jiOH#sA$+v_`nD|DuUjhU>xuO|(?;N0d}Wz72iL(5mustVt=`mDdk@!zpS9KY;W}$;Tg~Uk{m!h85>#o#J+NFH$-$|Q#*-`{+?_BsD=dWLoo*ICz}p?NW^3rFy`iFzjk8G2NS8;7A-Z z=z{ZH=@s50R5IA>1TlPsE6d&9>|r*D5fhz>R%@>sQtR!JSB@Swp+=LfQX|JYOU+64 z73SMDjT$j#SP00l`qIr;fVN)ZYmDzHz7l-T_qD|L>pt$oSH33rPV%>^=K?Wjna|m` zajxdi8Rc&@+|E8>>{wT_)y@f%ob9x3Up;KhL}v?K34<^a&es3n&+cGXHSx+JBkIP> z#1Rumx%=KVAs4;7D50@qsHa@%Y}K5l2?dP3%f^lwKI!TqLq`p}I&|6aNf!2YCzMnn z`SKyx^&K{0#MsNPb`~BLzGB#z%ZE)kd&Jdo7`S4>kkO-uOdN69kWoE`4VgFz#N{ps zy1jbhtdViAl&OM&{Vl-u+H$N>SsA=uPnl=C&G!mY- zHkeDh_IVR%{XTE|qy%50FDW_To44OvQKk9t)-)e~VI47Fe%uAK)cmRVvhMr*KC`ed zIgn!A*R(|BuZOJ62<`m%&+nvUz)ud;xUVG#s^Tk_0-6@6{4P4y$Vw?j9nwFGAhtBPoo1VfqVk0J; z@6n!2s?Mhe4tR^J-q(tacdD*_b<(fXU(^raUy-M;=Vs3W&n8crx3hPY_Yv<-Z)4v; z-$TCbz5;)L|NZ{Y{CNo%CCp9uD4{{(d5QNVZb{5c>YFqpX-(2UlYGgEdS&wTJ{qKJ=fM-Rqv;IP17z;ihmZOG8-9P0-XKH$ zKUc0-W;~p+Bja#JF!S)BjNzG&WWJYaW-rzT8d=RdiCOKk%-_XYZ~U&pCum^JPPrF% zciKIa25iY%jZWUScvSkzoL7zXEjhb$s@$|%fsEDKA!OK+$c2vP1afmcxw%L1o8QfH%W_Z4?dDVe z`s5DG&G4w-{5>Z3dYb*Sw;}cY!JE*!TDv3nnAXkc(1ZAG=X^T%XUD%TX)oF3yjybK zG5%pCNloT39UVc z<#x-QYE94g;2p?k#H)9{=QpbS!CT+k)nCZDPfdOW{OJ%rs&ICL{F3}oezA7BV{Fg! zayQyGO+lk%_z!b+DOmboRfcy#RBk~uds}k4cSLGkdIGQ#-eP({y38BkfW z_x}BVO*7N9G#Ozv&adE~>rJ~eTNlxd$GjbB)-i9w>b1wbF%Mr0dgsDU{y8*I;fje#rg% zy}o+X*y|fh@B5MCUazlm?hnvp0yI0|t50d^fcZ;F>qae-0!ayhK$7ta;FTH(KyHy& zit$QFpxyO-*_4{@OY$Wo1)NY`Y}7inV}hA6B_Tn6L-avD29f~q{7FTMdf^slNuStFW1CZ7W*&RLMHZ--{0MPv60!G&uJhy>L zyy(VX>iZg|q(~3BmGO`|)d~p^YU_^l(9xZD6MgyA+T+W^STxH7a5Nc6KE6Xo(|oza&5xRu8kkhgN2OetE5XM^A^ss3-JR@fDx<-O%ST_)LOZjGEMRb4 zeP3ZFH^h1|TnGL@35^T64%J1j5}(v$Gk+3|ukUN=MIltxnTqTA{2BNo&ElN=qS-nK z>n^V^ac;IRn8VFcF9V4BqX>L(nlHxp`o2afXn-1HsVAx^Io;z+ z&R4L20|90L=1aod6~3lCbuxhOMqI*|YE;Z)9$>o7m8Nn@s;B#MGK>cCMOvxG1f44J zAWP-W4xOpum$p92O!2j(Ui?-4OWR!Zyb(pxeLl*l?<Xnl^ao;NAU%Q%a2iKdLxk~|}?l;Gw8#i}grst<~h4xvc1Fb}nQ zDU=z1%$m%s44|;uRXbfj+oFZUlWbG`8d>8GII;9}` z=c}(;rt(THfLfI9YtqVUnjo0_!J~@1@>6|zGcvti)R;SWEZEa+>Arq**ZCUAK+>%G z_%$;NO#|U3QAUQZ;p)yAzAj#Rq`of(yvk(YD)AE72}!gt)mP}}#sv6hu1Sck!OiR! zQ$wLeR`s~Ldh~7%SZ>7YOQsAjMi*n6W#K9zO=hjtaEkuYwoxK?$iQkn8C6CPe|S8b z$xs4A$pWR3k>u#Tg$KcT$jqNX!?S&z6t1O00oN3*XAnFk)fD?a+c%X0DZUIJ=b}Zw zw2jhT9ws4P5HMY!UaI*}4CJO#|6E^26=TY1g2I~Az}?^Ks9nQ=J-{`Eflh0&X$yv?5fmRg%ohK$%KHeAW8abw?aYZn)w&!P}QME$!z7k z1hsRrYM{!*iPAXEZD5xn@JJgOlLN_)rXasj0T<+q+=~F|USESM)gc8hkjz&DxHO6D zN|u+(VO40hz|3qUTijc^Wg|-^1DH^g`X{)o;u`ScR`Gg;AE-m!O;;Pb6WS) z#*Vpq?3f{ACU&`Gz_{!AP8aLeUoP#`l<%Bz?L-(R?F{O_nR@n!F(Zdfuv684PCc6{ zi+qKvI~Do=FlD`KbzBTI%?7;yky!RqVsZk52+ViTEVplZ;OQpA>vj@u`PT z8b0axWZ;vDPZmD)@o9ihLwvIF$-yTVpFDi>@hQNk5T8c)G{&b0pJIGUR=-u;!T)pZ#lTL2|lOb(-fa(_%z3-1wJkDX@yVe>VrE^y>&pVX^nKPQo|kuKH96e;#0wU z5O3ky6`LZ7x^{m<>}k-V&cPym^y&?rgY5#8_Eac9y)w%SsYhk7Q14IEZz^j<(<+1c z_&xfevQ|{lGZxSXQOR4e0$Te}S!0!WDP20Ttkt}!u?*UHODLO`PDIMMfo<~j!Sut# zvUb$bdV4Khn*3x~uCDfe1uS$zUEdb%u+wm(xoj;fz7OQpfffQ5{)u{7F#VXUomlR_8a zZ=a=QSroZ87NL#T0fh7?I6Rn5ZN3QSQrfbz1Uk4B0Cx3_HK)N-%v#p=4rY6=)pT0% zV_6FuQ?u5D5@^S=vRqZeg?~m3cczqQ)4_{@%qy=iE2U+(;n(`jt@FK8QGDm_vKFcv zN3I9XZ0y`XW518&P_NU1#WZVbnQF2=jW*vN%Ar7CpaBI6sqYuA7EK4p=?_E;=pfoh zN9vWgcZ|?YlzxL6^E4j8R7Pnk4ZOkZwhZIVw1_j=m_5kp(ypWZg4zCCG+p!1g73q5 zJgC`}pMyHAWbbWg!1rn8EojzkjM;Zzntj^d6?tboA8s=5K8*D3)6DyV$GaGhy&^?4 zcqS6juK*1{7|NoGHDzgZtY@r&5DYC_1%fcMq|&EF;S4&MQ68WpJwYT)Q`CKRxG`l6 z!LPu9vO@h{s_Y#rq2TGk?DRQkxc!<-{VoVr>hox3FJ$Pv7A0=~F$}!iRF*MsQtRfF zc4078zmE>}jMbm_I!2KjsuPVK5^F?#Gt0C6UA2bVm9%+oC`Z3vO{|QW!IpIQJE085 zOffC&5zL|)>z&xsAE4vyqm58O8~q`MEp1EFAEur6gc{Nfb5J(preMCBV1xf=jtnrL z<&SB}+5#HeDcXvO(MJm}4mP2Te6#S%b+9?uZZe4(O8Mu_Apb_4~1`fb!P{J5q2!uq_&@pB3vs z^9Ka`n2la?MXWJZ^lEdid1LAw3Og-Roj-WZqpgIhPHV`pPtRE&(}ng!k-B6SG*(?+B4!K&6Rb=b8|3+836 z&{hKTnSyzy(r0Cuyw7RR(}pX-=w%$MVZ?~$(6KSGB-(mfkReN@fzyLMXv{(^923XH z`cvxVcE{R|MMbkN4>HOm@A|Raz#CgzNbNPw?8lm6LGE3@bATMMQ!B^7@yHQL4HeKk z!-GtLo5wTy{%XT`pmN)K>);nPT$g=h_ZeqUJ*ee-mzc-~py zB*FWU99e26ucbkgWU>ghmrY`9UlnYrucMt$$C@cNyzYK;nhV5r^xI@ilIoE%NiyH$ zE;2)|=m$;`xF%N09p|ZY_BAHLW?X|LYrz)oqVmKo+jqPlE~04(Wf6S?Z5Yc81dElv zo@S?}Ut!g4+aE*6LJGZFKT?V%xjD`M98D0pem9GEjdk~U!JnN z5M5%HoIv``vD;|YYDhkto+(c)+NVvl-ut!h@%sQiKN$B8()4S~8dAox@<72Mc5h_xsnP&>b6FceETHOFMbG6NCRu?q6@n&pstGkV7w7*sFI)y95!Sdk89a9{ua9(AXvI@*pSPj6P>a(dO6dj?PQZxp&eQ&Bubui_ zin0zKc|jzD*@I&_@k$1*{HNIvV@~h63$j$a>Y)ayR@H+!w9uGa`JidLSx&kHzIfi0m%N)BNW z+w+7*2j7piF|;V^y2${SatugPzD7!GqUuG+_B4I5C{~igOFIZ2?}%{~ZHG4PY}=3` z&$XUPyIwEz(Y?o6`|TafpuQArg2Lu-lpO#AFc}Am( z4`bOS%P@pVkWvC#ik1qGu@#zMuc=DVy^orh+4v|ZeK}8rA{uu;8nT=Y-4kq=z8oE} zU)7}F6l_Ja9)kw+oGrqqzzG0)7QYtLiq6pnmmB(>sXZzkhP6kQj+B1r)*h4fe_MN` zAs@%OP~USPF0OqX`h{3~4t^{ntUqCn@U$n;v1(eh9$Lq9HgY}H8qN9?y%$lt|C46< zyFW#CQBs&MFr}YBS6M~T%Y(u{cqXm3q1UO?G+@FfsE(Falm3DW!!Jf1M#C6aRG2dL17;!u;gHN4o@(3C`xk_Fiy zv8f-TB^CYA5}p$2Ytd--TU0NlK^Y8L0M^i>`h5iH%DKWX{K(|!TT&y%tO>E|Ds0QG z5J6EoW!~%M9j_olu6;Z-pqgPhM#w!Z! zxe_xqUYT-gY?eaR;Z4`j*T)o4=8Cs!%-#mp>}AzY83L%uv*zsGu^kQTTt8y5_6=WS zRNd;7{x*rG^<8g>Sx_3D4&_ms{xG?64@B28d3WX_pvzFVdVg-p0|xp<7ZbMlu0~gV z4sn0&^Z5Gl`B+ottY5}j`)v(~2Cj+)y8L^}Pcz-gaYR{b<%h_oDTS@mf3C23=!XC- znr_RscR0+T(^JYzYBTLZa{hcb5Fka|hF$LsC^!E5NW+?@UHuEt`Uyx$WKgff3U*e4P7|Dbak7U9hFqL~}qT&^+U@1DWxx9I+ zx`sxdLl3t$wR7Nk4<39YA!8(F*wVx1CRW_Xa}Zq{tg~` z_LFU%MCJX4$67h;zddN}k7b2*?a%1fQ{_KTJmd?BmdTNhO$&1!!!<(sV~`Z0 zw0XZ_lS_}d7*ZR`d=nXBjtp&(!H}2%p^Tn+CswJK(+}^&N~)Ne|0VATzT4{RcNwaL zKRRAawLe>yw*+DQ?R51vrKfhfvc0#{lQc6e(fZX+FVubkgmyaH-c@>2GqthKmL|T* z4N-{^Gf{6xE8dOWL6Pf2Ng@RQEMgMf`JPD=Z@d>Pb4u7QNjgn$PlGnb*iPNSTAo-O zH|*3M^-i?muwkc8X>Vasrb;I^(3XwGeipAwL5^%Z0H*y)#W;Y;In3 zrXSvq#f*7gxyUd^(6yUbK55-HA5H3JHHl?9O}B*w&G4( zY_^5PZJK{^BtShE$Jm^DngwpD1B?spq0_hqgJKQ_BJ{A1w&BC5G$XYhr&yUUerho*dD z%F@7=sKQprh zw<->`6?#}tf7@Kj7!4VPB`bP&1*&vzp(JcGOI2(G2jiUrdV3qB__JjyQ*~)Lfj-_3 zK}XE!a7NgMk*IzQ0GB3|8|_j8RC|nf{+lpF4~=2ixK6zfjrd&H=c3P13Q|rX9SD@S zj1wZTJzkYkeo7r8L}n`F%GyN;e{IW(cN(lb`rv586A2NpiPbGc_)oC(z{IpK4GpSg zW7m5JDz1Z1(z0H^D@1fZ%aNsaA>!k+>RPEFMEHMKh)6Vq2oW?v@2$Uzb?}SCK%>9H zo`sS?P2RHcE0Z*m_JVYd1R&Mdkp7bElnEgHMH|*RbnrB;Rr;%XAS&Cc@!R&02$D}Q zEZA{R{$mmWvi-h9aO3%P;W^F*CJP=boT7Twz3xTm(7$Y5H)=EE+SW%4Ui>o2>|MRu zxZuTXcvZZd+KXeEwHW-~;`q3=uDKV-azLncajbo9%+>oE>u;I8WTDMvt_GJ|4K~bX zWmtaW&1Sh&_CxGeUSCt`aDI8=yo9pmH0wB2$9dbpNMuv9Jw4PK247Y?^>b|w@9C%0 z-h40`OXt)(T2Z8Gd7d42+vyX%A(8=Ewx#NhqBZm+#DD%(EI=|CB<+42Ho$?*(wt?4FTu~v0mr*YNM?2){>B>Bj{L|GSA=1evI*tjo1y=$8(#F$I3Q#|nW zl5|BpfIegn9GNWXDV>D}`z6byIbq{g%k;D3vO0M{ZyO}m+HiY_Ggv&$-niCKNi_Ph zAsB8%Z}taq@sufY3IRyAx<}O^*xem_cDR*HVydWyAKAK7;ga*fHb`+iQ9T#vv}+~EL<~e{m$`^>7-9Mp(ZVNC ztZ&dHER^We98;KQDUB<4mhfC*&kAz{<0gma&yvL&L=lk^cshvn1*zuTU;vwov5jO~ ztS*sMciGagS@sfZl9;3AoGYG7RkD-z2HF@xvNd1K;i+ZXU`oL+N4dI;p8_PFcX``J zwEnKvOuU#hNCcAg%hcT6e`%W>su~nA7~xg+%=L^gvI}w-w!`$Cu^8ZF3N0Ut5`x~W zp@zif8EKCbH*ZKYCt~zrG-x!+7<+tz(;a0dUWVBNX7#M*xM57Ko(TX?TLXZ8h1CbM zJiH?bMXW6!sWWRN`nzy)upl6Fxd8L|bei5R zcp**eQr>26Uh9Udw;l`Lb-u6ZX}wEHzpN~Kb>s1&J$_}hrCr~7?`yU24|t=lIq8jR zZ-SrnMm_0`deR&9q&MnGZ&X_sIO&ag(i_#%DP3nzPI{w?vB}&PKk1EXO5G>DQBQiK zx?LPkdZV87Muo@zNpDnTVL$1OT8SffC%sWmdZV87Mm_0`x>g zbkZA@U8GNXqaqGfZQ-0wdZQXHrG?r_Z&VJ*q?Xc?-l*_Om-D12y-^K^)RW$*`blrp zlisKtcH;kc-l#i+tE)zrPw>;OXzL6b9Bmz-!H>5shZ}1+nL14h-?lonP3zwESARA% z6i$nGT$S(=;4(0{Rd- zbX$nSp!Ity)B%_DPjKR5FdlW-ZetOBqrv|&{8R{(4L zG`!HKy$U$+`YnLh@0Ztw3TfTGP(I~1L)EjkhJCdDX}Gx~6XH8uk5eJVH;1zH(X@F+ zr~^k$mGY95L`!cDW$0s7(y`AG;Bp~H)!H;2;I{5S1Q9^bpkq72`IIpor%lE@<0zf0 zPf`Uv%ffx=;2xA7vkd8xWpJjxZ&|pd>eaiqga%XNDP;lL@kKa^c9kGh!kF#o>2*~3 zYp691P7kNjy5%T{YMc9~;>>9g9aY^`)YuE33YF1ePVMujNGgq*jjoNLv3~-RE}tK2OKB@r;~8~hpA8pK^#+vs zcm_({{Vi(B=obvo)`vsIl+^+u56*uo)Yku3oZ|IR<#T2Asn3vT0v%`&&Q`^XXyQx& zefwGNF^}sAdgV-1)!=j79r&EOn?{klfHt5qRll7wKS%QqbCNkWx%!>7VGiyh^r?9R1jol-2sgD5*aR@jZUBsXUIaN-+=%EhJEn(#s(s#6 zTK{u6Krbvr6yS<`K#0xPD1iC2@SadA0+;T-E>xe^-xF$1Yu1Fz^a>i(2jEuT4{&QY zfvWmbop>C069XH@=YI6t0$P>s$Xye;HIN%5hdL7~$TWJfzwLCaB&GqCWj_P>h)lZj8Sgk+U-H#IVW?`sV&n zd)zH~AT%iDSu{t*4tb9B2SPlaTvXL7?J?X$-5ZafgHaG3z&~3N~ur)|T2pxpR$;(`= zy2IQkfxzkwD!4hGSfBh0kijVU(k9?36J==7^)lNWZJSr$+j18o#3~ z2l4$f@4}*LtgRaroQ?L{YIMf6x~6>sUga2SmDoX6T|b|KR}^inz3G=*OoS)eCgBM@ z^AqUdWua_D{zU85%B^prlEsMNAuYb(dx7I(Akf3LN%&VsG4KuvxcJPgs2rarp+llus zZ8yF-SSUw7`4Ztk%MgB)`NqfSlnOY?eB&$WRPr)3tpixpUV+}}YYX}}+PB(wh`_v0 zpzlZUhws6a4j?KfbESgEin=dq$3wihnkKWCTOhoyAKE&yWLfcETCgT>%^>X_ot;uZoosV`$0-}Ngdqm=M2mq2F_gepe6)}bk$eh>~> z!ZU&WRRIgFM>~2w2X<)*c@D7p3>H5+P_KO;EMzb+YP4sD0=2fBUKsQ2-N9lC?Qa%60MOafjax% z7HR;kNOe=tZcC&RrPEPbpCxtr9U(eV+%;wh(V0M#XQIIpozq$P9@RaB=5#Sd;TQKR z)kC6kI?LRvD&%PXej4&JI>tQ1=%}!ad8#DB`MW8k>pG*O)R-e|LK!i+u+X?68B6p{ zXNC8v3P~y)KO~0O$^~JwhfDL0xUEQX`ov;0-R>B9V>Q!_X_{|3-2_5Pbze|5H`)kMuW8MpOM3~O;b0EVaP-Lp8 zuClU!M2F@hyo;f}y2W&W7IfHxy3r{G6#~3;YR^jwg(ibR1PxP!Z{uVs6j`8T$zatn z?G#xu9>FpM`ofDBq~n$ZsTdK<9-w;8>sl*^^+=rnK=^pE3J!8*Divr{+pJ+Lm7hE0FT!{18LNs>`fca@^Uze|ztRLRRCg-UH>Tt(4Qp-y)_6uv=e zS)$DO=6w=sqOTBa=DDMbatu(V!~|$j5K3-}LI)zP0AqQ{7CL}1Enef{aUYFIeeP4C z_8p!D1=+7u3+{6uSZ92T)ml9(PJ=@|Nz>D*-`Amb>8VaIc4ha0HKs65OWR!h_*NjCICb2!X6snsIXDc#YncV+^@zoB;~nTjVO zbp=lmnV&K?gMZFD4&unNFbd-6YAV|X))7+*Sf`EkAaNNT+qF$P#*72Eif)V+Ijlt4 zcyLIlgQuZRJMJsXw$!Nx=7hAgDv2!$ZObk2ysYL|oYG~MwskK&u0hnY+jl}bFgPS) zi6+o#D!6S;`oz(ZaDEIvE0#LRT~7 zDiHWelXscAn#HyqDjOwau_EUX2j5b4y{Q6#=2t^G6&ih4Xw>tz1oCXGG{Rgpj5#_* z>PHOAplnf9PgM&*8Ry?#0R`B$5az2wc{=U-ye!*L@(guR*r8JNJR3C{R~gAJdB4Uy zEVSk!E18D!*hp`z<{@H6*wfje(6K3pL!CNRx^#XrgZ;9#Khy4`GIwyQekK^V@@Hv= zNS0nmatF^Ajn-b6n|Z>l%bS+{Ghx6oVS-AXUT z_o;eNXWgzf;#!tzO>}0JMd+Wc+l6E?NcJOejIG<98MdJRySiP-g+0+nTlra3RXS;x z|3)YEP|4F_#8j=-(7m-FVp}Io^R9Oq47Hgn?Lu)TUQZ)Tmm1bx4vTsM>uzadki4vb zPV4SEzH2niGS+f5RK$m=)liElsI?es5%|;sV;gGIO6aP8KTWb;F_U^SDKX-n!V@epGLx$Mj}enb2D~mgcrt zn%n8^@f|{RMiohw>8*{>+gAuHdV+D|4GO#?|{*wBx;J(f|0N^WK6KM541O%O1XaTG|-4jp>MhTFV%%aon}Xs84AvW08Kp zi*1OFfg_M2Y-*0v%8-62E*~45on~cZ<^|GwNb}N=`|*Gz2>NX(X)3IBxe=Hcj~xlk zFs#m_)e3K}{^m2b{-3crduc@g50pb|3aRVS(3dj6o%!);%^Zej1Pr6fuQ4LLe#GtB z_^Tk}pKuy>jn+0c&==DvyAW|K#pc*a7K`+bF0Ry>gEbZ?^J5puP}Lb3Z2h8Zoals6 zs6)T#U?~P}{h}KnX!`H!7p8hqg&!40C0((isE~9#E8;cSbB0&xM`R%^YjidWhd_tDRhiu2rY(E3_%`neR9zS3E} zFTL~*o{~_U5pJ%hQ8X#sK~JR(zab{9(EoWt-UwMHxn!P+fQ2ZjN@???LWV9yOetHy zxI0KU5cEP zsZ@ud8xdz8T{b0KTl4T_>D1AW&}fE~I^JL2h_2mMmrCLsSch6d!5d-YVTgsf-lQOA1HyMl$%G0z@!7wY=rLudum_pmIw2(l4a3m4G_!D{R9wQWX_Y z!H+?wPW5L+Di_l$r*Y6SmN$7QmAu*IzmYfnCtCm8{>iaGT5J2t4-8ALxlLtTaR>IS zv9{A;zGsOQBXmNIDB4_N%jt&2DFB#E*%l6#TC2KSIAA&D_k;t7Y>T zi%PqPOSbf3u4bLhgV{pC?W2%$whC7%>k7hDs&ys(inwAM%EOg3@K-~&K%`a)vndr_ zB^Bk3aFvJ`Zk&s+CEy@bWll-I8bZ`43qLH18Tc8kk5Tv;X$e8r+N)$CTK^lK=4z~? zhgunPlqMX4{NP-5l@vrD9mc;`!D(%d=Py01lfuvCa1u}%1Kdae(u@$ejHdVl!9p-G;{#UymrdE<_O+eoD*cP(c9wNZ1 z{(8*duTJr2fI^WS`BmnK#qF%ABGHpU!KQ5$lSl|u1$}MIVhyGJ3}R}V1TV2cbbLI5 zFoU+|bu{SDGgiXGV$YWan;}vf`OcYWNKne9aDti%<0*Wpl;?(I#*7ZoBO}54ovpuI zHR3XRmT&=tb~Q%Wi0bMnLWt^WNYjQNEm~=ImxJ-D*}`#nC7x?v<;NuCbfs#v5zN)x zw`a!zHDRzwN*q^bnX9A>EgNfyexubCMKIc; z*G)moL{-hzR%6Yk8EvM(ds!lTg?^W)-k*2zKevYOU<7&9~-mrSZL*arHn(`1_ z1H`>I<13h2=Kn3+*n6oqh%#RacR>hnJfS#;9{38D{Ng3>y%9@@s;*9iuS!B6rf$tg|ocF z;0C&3M6?BsTZ+Uxzm9aLbp=?_rk>9at|-8h7m<)l!w2J;>XH>b&sqY=6@1wOx0l09N*X|aNxPidngnN;vy zDV}b=^-;LFUie_N zvtyiYrm=V8A!mUzu@f=iny6ifvd)E~vg-i6Rla*Ldb&M6bmLtiBcbcd;Rdv_H85$7 z9{f4Fh0*JAN3eX~U5yqV{3+z4z+vfI2BodSIL*5|)PyRYM&bFRjVk4SoAZNBsCohJ zZ@*0L=hKrjLrpPY4QTB@96h4Q-vPA!EU1D)B^sAJt?xD?I5H`-W# zkd9vv>6ZQg((TuLTJ&Q04EPl+SQL)Y!yC}Kz4s`{r8H&@rpE$G-xcmg6D|fe#qWUU zlwL{w9*j2fE;MEpP5Bk{H?)qBin$YN=8Ro5sSTeq5B+SoOU$?#;j4gG5~APlGgaYq(|7Q0>vYElDs zES%+kk~>5{RG={Mkuk3gp7__b5@n~Z3b#pLVs&>ZDtm@D9|*UAW3Wv5tkYa%`3%im z5bnf}yyS-==D!l|1vOjKs#Td4QpQ^id#>=2YWm?7$qj8Hmrh$BJ`=37-*1tIRnKBq z`dM)zZU+w#WzKyT1{=Q1`|Bz_(YW%zLhU)&RK56Bj8BP?qW0K1y%e8Q^04|XpxXT1zW;{fcmFqWRN?I;8_k91kVP zr4QZ-UyqDJ1jFC8+jT_!mO^*GC-)(w=F%w}CBNK1@&sxc@HjYY{s)*!8&jY)_lGMm zHl2^BM7mMNwK2%DS3_{Bejk%~@U_5Nk8`46D^G@la81X9YQ&$oI4zPb1!?eZOyXr} z$TDLSvOKUGQ(^5MRPgquaA)d~ju{uqjAnpWCeg#2usXd?f7&c`DdY0M=5Qal_ioq( zrQv7>!tH-|uB<6W=D*X}Eh=*{dV)FGn=(EKhfF+O_yM}(UQH7f))nbESJmEM!s!(X zT7cGnfJvI4i5Yn3a?IYrQ_*KhkcH+z7U;@aW8R5djT48;pe`poETDk4euZa(I@jcG z7h)N}(#@o>(Lo9goTTtRZw>QO{~kT`4aBuAl)fa~$Xw?=e|FLJW^0|#GJ9QPxi=+& zT5`yGrUU{M7aDL&1L=?kthuRaA22g%O$ncYCO)M1KMr?;t8vjKQHW)q0&5#{%*KhN z@exZJv1ImEVNy5dYeJrxX~$?hc=DV)l;%|=@e`@&Q*lG4gDaSDz6Js<;Y0sSSQ)L) z!#3kq@fAMnGhsZuU!4fXvrXG>_#pF+HG3iN5ijH~@%cHc=gmHS-P?1vlj0k|dqAa2PA!QT#nza7^8A#TZsv>&A! z<(T|WspeaHs0zj@Ea#2&PZismTwtO>1_3+11qu;7O!7?f8p2g6x6T^HWrZ#PqiNh?QW)&qpgpHin#N3u$Y=#fh(ri!hgu z-V{_5=X-6gK(PGTqLI|$4fXVF&Uw8gY0(bQA^rCnpaf6v*)tV8P|ZX7t(g@CM^4bdF>+$Ufan)a#Uof{82H7Wg8dOryAmZ36ceUsL% zR@t(=A(=eU8q>p)=4scfaIrUr8Z#${`iGq5ozlKZRkg_bKmN^zBD8r=*a?NY--=o0 zV!?v{X#=smuN!UPhBXBL-7>2BTDT}0qgweo@Ut=E!p}XgqrQXd94tMWgJTTGE)!5V zI{HQk(gL$G11p|3uJ#PQ9r$JCz#1ks?_NfGcKpN8WJGU-9%A6ffHaL2lddsmbNu(9 z(SFLz4L5UlQkbl*upGI=-; z44uaUAl;~>F)Z&z=G)nCdEv&Cw#!&Y%?tKVq+K|LZ7kxfW9}51C@nUu(p5RL9!g)-jSS$u! z-UXC>1Y)0C88bvOh4ea9GG2`sS@D{gH93T=2X=NM3(nyW%>ajk+9sUrb)ey%C&OjQ zmfFVY*22UPypJmNsJzOnm&?MvJ-a;(_P`tQPj8BP?(#*fN*O;Q{JC{g9A}jr_F7Xwk5@Qh#A~lq@h%)~jdjw}V*R4U zvX0x#WM(p6TPt1TwM2QP!_|74@(Zz5-o#~23DT|j=0C$s$$BMPW0a&*#*%QMp)Pxo zAaZp|BG9K^OKIkD93n*jQgwK1dm@dzaL15b>9*5_twkp)!O+ki9J=)QPq8#Lo(k)R zz*5RKReS=5HE^mEVJRu7TRA@%>UKR{-UbCJb-NyDhwrkwtXEB`aq?Rt7K?v@xS zO5Nu4QrtOJ?lJ+X^7TMK>X%Ztl{YuAKwEdVO(Ed?R;B;Ly?rrkF;o4K=3Z#^f{Xl> zE)1tx7*01Z495w^9TFseUYdnr#&eu*ehTPAhQEf2{>qA2PP5gRZ%*&_HCmQ~1(`}S zd@b_y2Eu^SGtJ@T%Cr}3|8^0apuoe)y&EnsFHvG>HZ>j;DaHZWa~6cVrM!r~DQv(N ze-jQ-EBk~wrIq`MY5!oAK&89wAK5ac|8x6CLmOdq_2;pMwkGPyg&4X#+%+Y~$^sKf z3Pk6=H$s>Za#QHn^C(;y>CN^ACF0Y%KqMEI1vM!8i*$T1s5C7DVG%5SmfboSyeA*~ zi;v@Ixuy7HluCAjX?Rj2ooUM>ILamxkwN?G4XAFDK(@(8;w%Gu76+TtsLe2|8biP1 z94P+FHrFs3SmkS&4G_g4Et*PKZHDG)0LkuW0%^JjTf?v@u*pQ2U`@jUE#o|nE>NFy zQT*7la4`LKkbqx^hrg7$!D6c8zW@>roGYS>GCR<#Uznf_Nnyr$PDVy&e~G9LrY(Va ztF*~BDKvS~6cmh}?0OhR9A2W`)&{Gn%jiIDo{B3Dr*)0kz$xEFGRk1_2c6RB<7c4I!&tWw5EQ-(j>0g;soPnn#os-6w9aJx{J3d;r}le~t#V(e|voMu~UO!5-PBv(ch!!iaRbT!S3tqH)Rq%0A@t$5BW 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

In&~k3lfDtwHC3cJo}lpcojjj^#us z6V8Vb<#|Uw9OoJNa6XDyW^~1n*11PN=-u3)hVCULYeM&Z>IZXK%f=d<8^ej#QrZzb zhCa4`cR@oK2|R=m%l&Mmv548JvEcm6Ok+_KwW-=nZKxCq_HV8-gz>2@RE98q!T!=% z)Kswl9x(p}j*2FTQPGHexJ?+R?lYy9Tf}=ItcT<;g!Q6oW<6&G*4Nt9_ZOHtKVyL|i%=(=qY?#i);yei-O0rj751+w$N+1|50LHyznfZwoiG zjQcdCriX*cXBqN!f-5dSo;c6bvI*LLyc(dDU$p3~1}%6kV8d%6TKO>sFj|@(DnjsJ zDvM#GzdWC^*vioJ?8;&hVz>ZhQP&kKlwwtCq+wumkJ0ENwbl|<{^|8vqViy9j8dZV zCI6z0rxI0attBe!I?}bF;mU%7-?5-bm5xEfu|z$gM6)sTaiKPzp!rXOV!xUEmU+U) zmys%?reO+%#%g1+sWx)qS{VdBSq+f1HUP;B5|Fe}+nRtRu9Z=h7X8!BJ-7zv>^f)y zC)dtMu03_$ju|Mrx|$b=qA803{uzvBwlkvUK#_{5Mf8!OjMCg~;rJ#UjQCGiD^5qF zIE!R)I;o{bak3p)I|wR2K@&gV;b%6dI8>u3hSuo7z-Gy*qQ)3W>|(^XRK!OQoYG*Z zqq9n<3yLNFFf^X-4K!uiIT`wNR^3z<4I>zj;yIiuO*oA~@|zkJYl_w7W)n%c zEFyT4!_UDdE!GCdR3|0egh?GjS?Xp6tmuk>n!XOQR#zOQqOG&Et~j0%=t;WS)pu4L z|AP9SAvAcYIO+;8n?f)n?iW)Vi!lr0h*U5Qb-acV=zt)X5x+&nRK4tMH;qkPjL0{>kKxVkUxYEW;aZ<=){j&z z;BJgjtGl#mFLc$eu%9RD7@=y=FX+&&aG|al`F882xpg-Z6efWb3&SL)~pyRv4t%OQVeWG=9G3yfQl~VZjFnp)0Dz%>+ih#}k4Z?R{D8#|UFZew#Y{5`N z?>aD1TYCP;@dTh{cg>Imdtq=I7tp)8{|d5kUkI{+@x6IsasJuo3Bk7hW@2%(v(FNO zk^J$l7_2=HIx6UPex$s*+l3)z_e@@&PCeIP_zI&2-V2!Z69JhmTAc+ln_AspgUk&L zxyMpN#%<|u)JCS{NNA|W{srEH-wWZr;c4gPz1W(0PpzOcPlxJXhyn(%jMW$yH2Ey{ zLX;;=9gDrdsbjJK1H3FS9-GocLp(dw3)qBw&{9=3Ktdxv3o=Y#WN3auw)k3_@d*TJ z0=Gy6De+Z_s`qjxaQml$x$MA=5#;%Sn}ORh)Sept3mX|`ehu3)Tx4X}9483_9h%TL z5^?^YjgzG4*w;YNClrssLbH7(&=c7F+{Wx{)K-)qg$WD6y_hX3tZBFJ)vaka{fU01 z6$wDn#wcMHULE(z9yX|6ZS*&3nO7MU;);y~hnBWYy=(xn*bWe{F;HK7kkD?4zt%u$ zrzGmTPQBhheOU?D*mBT8La|Pk(srPJiRk^eEebcL%0!^l*4LC|Q0bkp#@-MSRusFF zQS5AVr^}Xxq|usY=VKU2%vNLzA|__M4$8BPNH0X$X)wZ5Fz71)B^B!kV{ zf?!PxwC$54X|%9Gabo-mrOY4{hDv(5 zLRroMn9psDSvdMfU{V7sS)i%oGSgGCZB(%EQw_kVml@#Hh{1wU)voMppe;1at4Q<82it@DEEG%*V?xh?XAd$%0L3TA@`< zskl=0{J&_hdVBSl4VE^H$9z7$NiwYLy;n{$gc9+moJh&jQJ4LxS3@tONg9;2v`nh< z>BHQbGFRHdT6DU%1y2lvXrLiJ%(lHF8q+TY_gAIR6$J z*Men%KGHL*udX#A=(b{LO~T@yTViAUTa9MO1I=QRz8`y`87d|juFq2NJP~`;U z++a3EF7Av!FnfgZi?O`{PYCB0>F6W87`(G7P^`5RIOy$BCsjnVblfDo7-5A1a*Erq zNF1(u^VB0yBU&lkjnMO7MCJ@-j@vMrX;UdGx<`SaCb7{b^O_>0kWNFJS}EqZT?;2< z#ph8PkulBi@u9kIc&EYjX^uP0debvmQ}sD+5&n$KilRPRtQQroq6*7bhzS9rp6oU0 zxK((8umS_1DvrN|(l)rGM9%AESG`0=MOQBvyciLP9DLeJ%K=uC=;hOkft4V}cp*(2 z8Zo+Yr%7t{jy1dg@D*K4Gd>BXubHH4i}ISae4*ai*50hHU3*iz_Qsgs zSG)G6cI{2=+8Y3>+O;>eYj0}T-qfzWF&3iMuD!9WimqLIQ@i%2cI{2=+8b8Ir6Mf! z*xI!>`cnSdwKukX1ZvmbV6txQ+8b@#h}yL`5t}^JuDz*Ud!sMXuU&hSR=f75cI{2= z+MC+7H??bT&arJ-?b@3QnLbv#_C}v|#*?_D(aJIby>{)5+@ygs#d?TxWyy>{&l_Le={?p#lWvg2;; z+MC+7H`?Ai3HCKLwQFx`*WQS=A(k2bwQFx`*WU0R{k3avcwyZIZz@>3_NI32ja=wd zyY@y~8TP-p_GU_pH9dzFk8so2y8}s7)x+;ubJX9WZVLI{3O=)DX_!2tT6I5jj*6Ebvp2(ZDX4CY+MXogs zNBjGD$U8D5_5;R27j?0iZS}qWTO>zi&+PXQ%^c#v*?+nz+=Th>4zo(Ku;i$bDGnG+{Kt z-7*>B2GXX{*j%ps4Znw?UMeo2#$){0o$W_|7S2ZzTYHz@?{BFNp`-`>ZM3s&2(R+! z(Ea{o9ACrlLq8#kmJpUP#YRbc)<4xJv`y9DWqqg@I<;?yN%km~FH$T~&th+IA&RkPxGBnkq0)klOQbzFt51WmI2oz$6#Ogqk{KFwR{PnO9%CR_-o zxD?DjikGb?fpR#$C5o$}$UM14Cyqx1XFnQ_}6&R6(@NC8A}j zFLKLkgWL9d{H?I*mFTVV#`sIcfdh+a)6}9=TCvohqP`>pERzA2ae#URR>(pqITv%5 z|KbWhOQq7-=utP;Em!!Dw-6}7-p=}-UdyrcJWaSP$FgAQhre@ha)cB2JSAUy%jdW> z5zmGAZZ4jh<2(TwrlocV5fYKO{^6{&r{PyY)~)12T(W7`Z2t&Z#(sR~Bg_p*`sRn++@e|=haF9g)fveYlr_B*lbGYA-uu)@&t=+h#spg`I);u-rEUQJ&< zgI4{DJfEfTAL6|@bLG{4_=oFZ%f~}-_{W1ELE#L%T{*}9h@PpFaKwov*myNFX|=M( z*b|%C={3ntYn63E>N>FtE4}%U=XV3+9`Fa{utRr@j@4HfJ=1U$1W(eUYt~N-$F#NiHOJc89QR1*=G^^JCtBJ@SC`P&miG@Rw6vIOa$ zqpNNxdgBB>|HJ%jr?UCzr`ezS3Fk`dv$xaM=Zjc;h-Q%c0;2etM6X@;g4S!h|BYxq zrQU~;Fyy?^cX!%}{%-$af4sX5gu&?O#8gWH;J>Q=Ck)N7;+Neae1( z^I0RjMda7mHN6O@m#`504EdG2q;m8BhV$Df_9YOSWB-qcz0*M>_HUK%l<#p$)FBc3 zVeBV&1k&XPoNvL><(P=QrHK7I5&Jhx4SM`5@QILopNayjcgPAdfe6dQ0}D}7?t+0v z#K|I-HU^v`#IAO%2)Y3d!Mk)?kV>JgRaP#R^-_d0KaTSmA%G3sWS5VT1T`?sZ=-zi zl*0#p?0>Nc8`~asMq$_9qV`EZbGFK?qTao5+!MO6#_DmS_fo4kdPB1BTY_hS+=kJI zOYyAdbu6Am=|=K<30X7-0A%9QIY;7Dk(F}-k5JXJqKx`KDt8-yKPf-s`4?O#w0FPK zrm^U0s+JdfVt>=#{m$>|swerD&Y;Un`@h1PeV{BZx#+5_U~AG#Xrh`VWk%#f{J3*7 zVVDujKx2HuAI<@x9?Jpx7Qf~%r@a3l39YWw61~65nAjq(2`*=Pa3x_V zG%YC8#fJYfX#MDrgxgvq*tC`@lQ7A~5E@GS)I^DHphOHBY?^>wt{EpG(5?=G8{%V%XpLGNV#jdk_pU|O!5U^@GT)1Ec80BV#LpkaRXr-?S&?*<_aY)v78|QIgQw6|OJ%A7sfbR#M#5-rrF=e!6`+s)RnNZcvEU{I#T1@}gJYpeXw-`0ZG znV&=@n|S@lX-G&=T#F1RS1=2%m;n(y?^=K>O;U3>>@I6!`j9Qy0uC0c_*0Q+emId|Y8L2kQEAAl2HGa5#@0nlKCxwJw)Ewq{9V9S=$bz9w~2F_{!CrR z&459xO+(+Q_-8oX5ry4c?m=g*DMM}%NrfAzAV!EePOQ566Rq-Jr1}$$t#8w?tEl+X z@AxIvpJ+(wCRQZv1$avoK=?BuhE)3W zuJH>{WAZ}SR2=a*Iingxc}K)RGq>VcQXIR1L$f^wurw9F$9LJ$Ev7sHSX)29R3c|_=CZPWJ z=_!6d8&>0-aKQ$d!l#-+{ZfMIn#yR=L^ZY1@v%a^O3@&Ich!G zARSrSp%Bb9&ZXM%8Fuwh-71fpv@n+Lp{PdH(TK;YJ|=9p)wNVIK{Fv%gqqpLv0b5g zT|f^*Q>-tJ6X=?YmMS$xJ~^X6ZJ;((SyODJHddS9kB=B=q86&nRn`=JI7*;M$yZrY z=AylsnqmvHRmQrokF}{Tw)Y!J{8e?a1vWC<8PGBf@T#e|9sV2j78~+NlSE^Q5b*io~o7$<^@!z`-XeZ?6Ty_1TY zFl>&n{qo#-iHRdkzBsJn946nR^%1OQlkem_1gvKAP0QDJ^cBW*i^&&}1a3+z-`j#q<&?_{vhX%^U zsTHR6BcaNmFjJsP*t>L5bX<0sRck`O`|GLyuT9+!rE<;IlgNm`dDRTv?P=&K*l2wR zHDE0U+VtThfZwwW{W#BEQG6z3JYD=7kD#Hmq=^$?32ZC7tTrlrSr6L^iq5IMcvr#u z&YD_`dD_7Fw3s%A`eD~%Izkp-fEJ@GF$qHMK<(oYsO z>cGlTsmg%6ROP=$+PxIbwG<7N-*I!5t}PAMQWeK0NE??ps8Gf%Y^0UDKp8~D^SlfsVu{rU#eXMKrH zQ$-mirk>r5M+-jzRP9OgcK|Z&j}HVfRXQmFqpWe%Za?b758AOcSNh)Q%E=LU@a9uq4=@h z@fQ@oEG;m@8ECvBBU)A@oU!0C6~p*YcvVwBF)*uCQ)u#sc0&fO-wwFXG(5WoW2s1? z#i(`Z@jVit8qr(S6`He$wEDon(eObjp=0(P_K?0-e$ZFOD~;0p>YxgGKh7y}O&v-n*Ns zl2S9&L)>TS8r(Ja`%4<2;0NN@_+DcJkfiEmd)Zd{>aocvZ6S&46ro9N0$neI*6dhDL^?Om)uo4(# zOSSW@N+IhdYA8j=razU!$j4BoRQ)TM<3@o^O4SZFwh?>q+e{;Lbert9e1eH+^5u~`&AO(Xl4Z#gj@6uq^9VSLXYshzC42@d@P5!}-64a|ij?~@; zKoaAk&2|4Xk4E^vM);=(&S3hKwS~%VcUC;ctSzk*yWMLD>{?srtM~S{K3MCWwShw{zy@Nbp-F3k0}pqpdTXhisJybv;kEGneLWk8fBrhMkX?7O?%5tN_Bo2$_8hi zMhv%8N+UTYsG=6^vm1uX5YLPV;zTuxnh&(rnjNx;TpP18hIi0eX@r?iWB!7f-M$?o z`o_Cu=|-t*`j-Z-vhMUx*y(@Tnqw6BmyV0eG&k1D5(I-P;Pv|uR_P~4J3gkIUmA-U*ZJ+}koDUO2 z%p`x#>=!ZFtBi)P57cw^gTgCZADHAXghL_iU+Q;}V`rc}#bc^4Wi1Hgxo=YjDTAof zf{&+Hm#FDdv?dhXR4AKVg$2?a!X2_|e>oY?QsdNnH zm{lSGExX@e$gYLt&#^glyBrg3=Dm!tL7wn=?*j-iVo@N4o_PS%o8~P--ZwrV!)8(6 zMS(>1ZhG$5U;|6s-5&J!potG6`%gXS@5oP4^!bB+w1$@gV`#_}#6A74U~}qM8R&%B zEOBcwd#&MGWTn@zus3=J|1kbaTTWczV&x2F{ykL!WJAu#Mkx3c}jUp z0x5c`^=ayHGzyX7qpzS2KYtWKx4o%VzsOgxU)V)Gf=B`0vS{1eApOvOP$l=zGb6%G zp2v_%)-BST#u0}elNpf&nv@2@_5DdtPw>pBX;vRAkAd9;2~P9-(wD9ISdkuZ(SkK7 z#>0n~bEYFoFkm6wdLr16 zCai_MukVMbpN<2eYICDJe>J}>n@9f)!-V)H6( z_#MZnBY{N9>xZN1<4*$4-}GvrW!#H~^%Y~0Jo9+^M88Kg{+C4KrxTqK=l+SHfPZly zMO{Y2<_6lSm2ytT$u|StAZL4?#L?eIz!g$zEZ3xlx}3JI7eT~S#exliZWS2YQdUL) zf>?}m^B>!8S^>|?Im<7@+QV;o;9j~%Yj^&YqpT7w@?|9tzw$K~Ie5?Rg}9oFw`@z4 z;a^r->QR*_vB-x0fd;ZM&>S;}x1YwaO}CAK@p>`$%4f`0&Zg0u0%P!Alx5-kK##ar zjdHA}es4kg;e`;Fm`XhC?Le5~=LTXBf=7DE|F(z~w#5v3`|ZFuyzlf*ph8_Er!8aZ zpo+w*+to=~zgOx3-`WeR78{m$vNzCpO#)hiP>}DRk>rw8~!l(D?Ee z_&l^^EBqD4!{Ky%&_}Bm!l7tez>hNFxTOplw=Hlb#+m1D4K&duS2k_wt@(#b&+R62 z4_yShR&5udMd3<5!HXk{{a9%e0%j=R4Wf9ihA16U8EA<~%1QT0JDi8RkV5KsO(WAi{K@e4LE0M!?l>s=UL+Cy8GBtcPYZJR(D&Jt+MVuqCE#O zt!X_;>_CS!eW~cV^_LF4N9XPvh#>|kVH%C# zQA|?D*X-P+7#9(m@u$p^&TX4&%{MwtRl;#P>P zwS{Q;UZm3bkS&$Nn4A0q<|-dmIF)0NCRLCo$CV$&T;(d|Cy|OAO8i-*f}`1&Yt-K% zMMQ7~C?@)V0u9x09f&D})lpA8wY@eB5&eB2S8s(gv#sKn-nz_JK;_E{iO1&8OLHx)9x?{F**c;aQuB1Z?tIT`i<+#@g)rZRWuS_DBl;v%9d4F2y=ouH4k>etI#V3zir)!98G*hFR_lrI31y}R6}DIziP0hXkjDr ztfh610-It?;|ZEx5c1Lu5Bj|gepN;rf4?ce~&P_DPwUhslKig@=f=y}a zH-UR8W351adT`oyLTj4z9;`2Z4X0`F+ew>5X87Y5-|gM z%IxjnS;~m3sWmRlYZkMS8I~e7QH%ZS0$>Sr`pugfI<=)?L8wF5!vp#OBkYz!Tj2{2 zA*VZey&S_>#KLlF2Zc7EuqKLaIoYRYQDh*>XNyD!xlG~VSmhB3bGzKH1+OG2m`q z2K^?zjSSjAv`_GkM*4$6Yb@&H6bOZ&UjzRdG0Z=T7$Wes=QKLX=@0o>?Mv3HF}I~P zE-L?5WU(N{vLkW$N%*oxa$VRK$pi03Mgl1&1Q1lo_v}HZ6u&6tKJe>&Ho5;?dRVD9Su#xVB2cC#>yGcHLP7s7gjk$@36igm`1^MKxMgG z(1k!>U`Z#q*QS?bvAg7zO4|M|gu;aO7NOv+aHz!!_qt*uF(wrj5@6UI_IEk!Rhj@@ zs{GRtze`x~U6`cH@8vf?MT_6kZ;s+dEQm+V!efie7LGzhzBPx<_kw{-tY*UNsMI z^EDT#DYAPZ-ZU3)!8UpXUhs{KN@$A4MDK^)B3le1aX5-A*m(91$dueaVUaM{BWtCt z%yo=1WA?QubAq5LPk4|3F|&?Ac_vkaTG;?RA!LWHUGfCwy}QC`jaCB@Tc>@mRgx@n z2X+Wk|4YVX0hT)niPq{+*6_^lOQ3^d=65IDhK~w2p#7s^p4k>1EX2HJC}*82UPF20 zjBhS{icucfmLs)ysekI)J45W6wD(lemM=(qPdC+f?TPCoMI}sB5Hp}WLMwBmqjgsX zIwqtU)a2}DNIuqRez0S(lxHgpT^h!s%Zr14XvUKB9Iq)Xrs=Z6P;45i42K8MLj){zb=IsMlp6-dABc^SGnw-4Am%$n`tNcQyM<~iidO?-d zGA{&1OID2cz7+5!yo0(o=P^hH+UPz-TvjFe*nXV~J80zrP+{m*$OA`2j<3++B_;)p z?x~s*y>D@K3{DHKw#rPKs%-)CHjNv~xa`QGYwtl1wf7oJ50yg6!!SrD*n5j$Z^uUp zeVzcLGDdtfPRfzB@5siqmTUQVV^6Tqxkc9oKB5+0%)Aud1+(O8-Z7bb??Hc>rl1=N zKU37IrVr~8N^i8iTHDRDv|VW{(DZ*ywH9sHQD3FtOa7)>Kk(eQps%pRSAA>mXN0cK z{8yu{?!>BnDx2X?)%5j*Pi^8#D)bsBIzQ73{VCmcBOny3NK!j*C??Xm#Lk1;mvyG z+;g@8{B`X-j6t-UQIQOq+?5bX(zbBXe{WlGoOQTk!6B=O*)aJ#Ct}jG`b-Gs?j?Z? zCl8U-WcFWu80t}k#lQ5(IV}F0k8t}sm&N~@A2b9m5`{&%n(4meO&IrC>Ck;()S#N_ z-bLLjVW&I4>Au@~Son=X)?~ULf6SUA({vwIh4*JO-A}Kw($z5CJD&z!SDpxB=&1%f zyz@D@9+(@l3{2HvQcw6NngT#RKFp0aTM=_jvEca#TMcixYnZKTm z0irIjibV~JFJaee0cj`Zrc29K!Y?*~_=~V`>H_hEUJ1Y8VbeTVs22NzbN*isYj`cd zXyux%ErKBx8i8$4BM|IiAD2w1fJil0qdZ8%{XvUu+#E}s_~!*xsIVkl^9z=CnH?!+ z4>62VOKH0rfMKdZK+NWpW^%_x(zT)s`haLr9o*_Jj=-0?BBx`1yRO*QQ19%z;w7TT zIH#_ttBMsy6s#*=s;Q$F6DGhQ1#G;Kf>va;y^>YlGD?YZK-r> zK&cldMzNCP>>+2w3o?1V)fBMk1c5JPDNHqtH~01h(i_EBOYv$;imxaZwdxx6T9G0q zW)0JiJ&!oFuS(b{~1u4r7wFvCWa*9#g+;CEu zKUu&E6&8_8HnnMQ7Og;6;&@Fa&qFtD9_h|>EpUwrp1n?4&BJ2Nm+FAP7B#`H)~&09 zVg5*)f0mXAt?LBMZ%aJ92)bMIsHq2PHf@Rz=&FV&UyfcrXbyg_T%Y5y<-npVz=O4X zH1r{>s^fq*QQiXzu7KQvbMhtUupUqu)FT)CbF*X!o|$Qe5nPn7=LmsHLwX>gw)E2i zVUpVIH|hx)2wCF$i~f6j?>;L+K9v-(Ov11tWcLMNn8do6L}W+E2@gP5y^t=gVM^dU zV7ZcgoD=6neRDpryfGDeZv>330SR?avn5r-6qnC!K1?LkKOG?>5-_H?97?xR*TBg% zDkD%7IZXxd*nNT6$%Mx?WzB@gJ?+ZcUx&wGn*foi*gGDiAdzqw_Q|tNH=C1XEx*BC z7$iIMbf})GnAD_wt;nv%TiB`*{n}JaZ9Auu^-hkhGHXz>dep04X*F;~&XMzJPXltT zNts-6B-dJSqvA2dv2QMhgse=R9bx!({8ORJe?h|4WS)uSF8jqWuLzmfS*widAkQj! zHLRz0F_2)gF53%=rL|1pKofFB;y@h_>D`$fa#b2A$qu`-r)z-kbqK+WzXa^6ep1hFJBxR6ac zJRxWDLUf(wyRqDU;)j7K?7eCR;xbTq6tXMk-1MNbI22eE0`rbtw0;q+gJ#e>83RhB zM%#|VK;LpM3V9VRkI~75dD}v#!Pao>Q^enGg3)z<97v_u_8OfWn7u7L53}Jz8(1+= zqT@Q1R;&%BHM+hUnMPR1B*E+Jgn7o9*!_(GFD5PvENKNPCZvRuZEgeRLuKly;07zU z)Y>agl238(Er7SJabp%2uS);Wz9`C)!3Czqip|5MqGdqRM28 zvXFqR4J#?S$c8R&(ZbOSB>}C4a+9DQt1#V+C-q{IRYg0no@f)#EVH$VySWK!4N36q zijra%9bIL$jXMTmmGVnyRHAt-dD9w!;~uTSX{A(~Ls6Wv(As#Y%Srq6i1n`;&4MSN z^p7io<=vcq!xR4_8z5cvhdquHt8H#<6mh0>}Of*9)@E)njoZ(p8wB9!6bgyV9ozPs+alEnAnSXWC8bM|gmDpGtSaGn zo$TY(HPgoif4Sb+M7?#C7<8n(W-Xug^-`59KtEpa@bD2u*~u56=!z3q^iZlOV_K=o z6B&wfJMP+ohX>Yd+8JCGM;rHG<=ebZc>4A?m@MB}=|^R1sNHNeltG^Hm^<5NF_gTj zQ$a6wckQeK8qQt}0JZm26;sJnvcbm}uq^xif)R7iy{!YMu@l!bmzIE{G`6H=${ z#Zs^J!s$3d4WdauAe47WAZPZsK`(W`G}wiv?FnYNVeN;#fB0({UAt>>Q36f>78Acc zUm{L+#%`nYze7N5nw~4p#iucSy(}<`=6!{x_~@bF9O^r+$V2PV9%=fGC|lo3gc`j1lOXa$NiJ-vo<>XdVQb6wR|Y*aEgQ4dd+ozq-q!bE z3gDwZfRLwFXcRrtNTVorTNfl7zaA6Cf>~J8KBY01nuvHGl=1q4i0xz|T0r-g1F{~l zjQaR75PDfXu*SwJ#QbSJL>SMN_pmH`_f;SzoN{T(DiB&YO_ffY6N^Rl6j1y(m{#BT z6((B{rF~S!I;U$;*87}Ske+avCSBHji;Yh~D~Q5S$VI1ek!bF2BsyIS`Kqj4FST!~ z7jUL@I#nN`Hip4CC`B$EZ5oWB>js5N)F-8T`)0_B*pfvjVJ@xziLDpILOyl2B!$?w zW#jE&e3UmA3PIo(fQP3JM9R_)$6XJc@=L8q4^zr>9iBuKuXT* zUWVl^&+;VD2Gnr`$~{NcLEm?*=)&M6cKxFRXE5~!d!j=cVLNmY;AIZbgsRS<;#SJp zmaG2^URA*XUg2p`_;X_@Ra#45#VnFn#e#~~ioT%YRoDvoEl-n??$O$vf8{8v5sMQ~ zdARa57dcIa-3xIw$DdEQ_{DcfdDSBxn8>ftjMKroq5vJ4m6~8a3D#50M{dPDfvIPL z4`?}`)i|U-Qql)K>hbN`hfHjAL3{|k zrxZ_GRtak?WM@G8-6Ak7tzk|CPcoh5} zj1Kwr6pxM!b)${Zq0jYnDq}=3CXE0)^oSK%<6f2y#)|h?6r4dF zbK`^$L6~*&S%kdKYrdcSb?`b&E7{Z>hfwsb6AIG$Eog41s~}X?_d-;gWDdPs!TJ4r zK~`4ALrPq=6`nfAhYGR5yC?znYDWu>50%iNcm&IOg3KyOwla?LE|yA zm)0jjI=n~o6GF`CB2%XmLf5Gu(59H*N6Y?=#+>&RcS-+d0nGi@hccH#QqYM=YdQKg?AABzFxutE($U`K zM-LFyrDd*K$G?6b3I%+Sh)UjOsbsl6W4$zLZ&yB%)x1@v@J3qDgGCVgP6g}fh(gTB z7@&sQs{fXL1fsCASv6o$vk%d+S)hl`PFCt2bFJ?fD**6 z@jQ0^y%6NP@$LY2kUxxXeclKQz#}4|xK*Mu+d;nlAX2;Xs4cZ)SjBN1t2%yEIJKW3 z(tg%N+RxY@{e(y@BvSiTq;>@FepGm^L1P{frVUwGN+$&HF3HTJck8qnED1PdF}IIz zrHIbOh-Woy2OsE0E%Ie9qraoCVLphcHy!(Bp=QN0k7^JQJ`!!+z`J|&Tnv+O=pd10 z*sn_i?JO|yU@ohQ-=m9P*WTBf4($a(5kHr7@Wo^I_mw{dn*hiq%atB~SUUNWvUMVE zBlR=;5VzpS;WA+ze{#a2{TeV7%W*~Hh7TjSkOv(P=$XHpzRwS>LX!@78=g|`G5-F< zhRpY1MgKjDqMC1^kM#N~P>|)&-Z?F9?8~LjehD!z{)%Vx-6+I4v>EiYUjcSnL9Pyh z#Uwh9t!k!yjTrpP^{S~3hmCSpL&Z1+1PiRcL17y=3QZ1V~# zQ92E4hSXxOIW01MafpVeC&iLgy9ISg*Gss%?Y^v0)Uz3mab4kHu?=8bWy&_JxJgU~9p>OkvBrvX3c z!6TFlZvUGO!p2~D`wMVbat)99w+wDhbmVe)1NgxMnsGdRwSjxzN<>l=X4oy)8n8#v`Vi% z&Y{QQPt@Q{S%Yr~f820(5%$^7rl=qFEY6fMEm@ChVI|ZalT}L+8G}DN=N0~>=jllq z)0m&oW(_^ch)#ejt3D-!^_C40(P3+T7hU(Wp1avHPDAZNbgXws4zsIYG~t1WxbFQ$ z&zem^178@M^jq~a-lo5<+hQk{t1o3Qj;;EmXi_&o(Pw1a(zQ9}Qf+z53{L~W``~#A!CFtIIlIp zqZYcFN+@a*-t3)8t_VE0Ke*iMknuIh@T$t=PXny{#q7i6vInlM+aVA|@su*8Ra2!K`tI0PV@X8);k z?Lx`5rnaneZ8dFK#3cM#GDPc6>x{ct#$@W#dQ3Iz({s+~dD0|C@C6u(4xZ67R+HKt zud|3%`%WjQ=2i)$VOfu=cOc6owdOt-o&aNa5ihE>tLxgNB#rY8rCpRbrxnab!eA(M zdfGJ(oF7M>FA1^UzhNf^tb}tsO}Yg3M6u9Ap#M6;k44FkmXK9T#!&S+8Lzp;C1wEa zKNZZ;ECMvq1)~x$uy+#J zTl$a&0e&u2l5#cn=AVAyA*6Ye27#5Ag_euLzQXvtK0R+w-~CA=ak!HbDbn)RZt zR?ZYbH=ZfgUk$ZalW9hGC?34gfiw~{K&3N!j4%_#V*-DpwVDOQ15xXR1>_AS%_0$2kmsW=~j|8z=Avw&`TVbw&s+f6T+b@bOwFCr!;bf$$1RC>01D2~2LVACHj zXkZoDff-BXhlA}gV@c!Defu#kC3sZQnl^XVYo(r~wkUViLg?ZsGFz-PBgV2WR^^)d zc0o9Sr*lO(i;*Ei7eO`J8l=Y-T1}F_4(thAzQLlSNK=F!OEqJJFjnB`#~9j{U|K`2 zW5dLRtE$^9xGNG8v6|@uR*ei>91{}sIQ}K&gkju390JqY%o}X8mp&L}uH^FvvS~>o zK#>5e?+GcW89i*Gy_)fZJv9%t(0kM^NqVJxAoHOcJxs+T()Ix#H3+^F$$CUJnMm~5 zA}l2^qZnO;Xl+|0BWQ*c*hYkfJXto3?V@4ekOCnhZ@*aQ62X7@8vo@<-V#AqjDvBa z@-w}!kO8sO<@keGXEL#FsIjAg7OFsove;GZW}9l(6>nzH)9BM`f}oK_5JUrT(4)gqPcCdF977{=!JEFqfW zonNd|@M9=WuD8L$)f_BiVj&P0FDAsAhLh{t+LHULhLbj`&2R#|B|oM;D9XJOqEOm| zuK3@x31MZ;l0Xytpc`g`B=tx4aqjV@A-6$+tvfkLUQE6W(Z^!YbTn|6?Q`)FV5+RB|Du& z^Wlx>J8MX$v)Vqyo|S=tnE{3wc7|rw?jCv?5R4)s zvbjY>#0?b{0XI|vNb(ycilC8FR0NHRs0f;XB0(U=1venZeItu8XcSFUf`IQkr>gGK zeS2p7^YZ@J1HIhZPi^0+`c4%BTPq~4T~ChJyUnqaXPa9;1MzvcDRyeB&2Y?~Z3g>` z?3k@BaP;kH3mi#1+5*i#_DUu#qp@vI=2|8^(L%T$zsJ7@WrI=rfsJ3!ZaB{T|Iyak z#uqO`h8Rj)dut=EXt-4DcpCfO%uH}E?By-6JF4hW4}jv{0WY}DF|PUPbZAUBSc!3M zJhPHr+Z%`d+emVhnv;)_GiA5QdY&f=fe*Ao!kP1rbs|#C!}Oy5aGVA8+oN`;EM3{H zc7s+3wCtgFvpx;2d%maIeY{e)k8`Nq+Q!FgO<*jpJ)l1g<;U`x0BlPPdMe-PTbO@K zzj96B7(X6W;eWMq>SKAS!8f@kAOp~QgXM~7@mv1&mA75oDQ$f?g9Hl(iNk^VGG9dL zMmee;v`XsITeV`!>eH6~ajg0`*VA6scn1=aCNvTWiEo-UP#mXK1xuX`OO&ACj#H_X z>e=C@i0?$D!70sm_#mQ*(!SRToXdMU@O9Xe4*fzi6iAfX^E1B6OrR>*-2=B`zfCucu2dP)`*!2U9_!W;SU9R{e~ZBUmYw%DZmKQYqEyKTVU;-L3vhrL-0G zUo~WJ?cc4G9)EO07)v9_3y$Hjw?Nn+hl)`y3+Yl@wOZoPUb&&clS?llcb0Rec5BtT z`7w^kd3gj*R%L{)bX=D%tCP!6X$8Ew5)@yN(!2KfhDPDib94;8G<64_T;a)`Gc461 zht8u{v(i)__@JJzW-4;z;7Tuow&PI5e0||cO-ku9%lkoE+@zRVI{VZ57I4>CkQ|U( z6NRB_P+^8N>(v7$hVAQ*Ud#c{<$w%Nl3xMa)*+3ho-wx2mk+cJ}5rD_|kgk#12>t}OM*2e$d=jW$BX|p-+sV16HeZYE z4L;mbQMeN3vRR3o9ac7UY(uZSYq@881cD!QCn~@j!7p8&wY9O6XKOR>Mj-Fj#7=Fs z7LGYvYhlN1je(fI7 zfZSEiF{D9QX_n*#VKrRSbE_LAuD76_8zo8z+X_fbc%sDf6gE80ffB9eO!(S0PmEz< z#B%j!*l}XQuNpeCTJvAt|I$EQ6~eXs)!BmI&iyYoQ(~-}FBqw=I0G2T0!rfXDVTD3 zD}9`-wP=4-Jufa^pb*db(!mbRD~#`)VIx|e_3oPCR9VE>85(F!m*M9*aI9-w5b0>P z?jj2}o|u6fFLvNY37pkp;|%i>i5xHD^ni1nvo|crdG^Nf|Fq{Z=Pa~Mp1rr6rSmz{ z4#y=N*`iCR0%!m;lpwOC!31F%M%O80%1tz%erpww)uHC{G%6 z=^;m&^*FH?e0W5ITR2#>3ZS`gm=#w#924+n4PY!?+{!`G%siDjXtz*jU-|*&=miQBm0IU|M5upE6-At_U zhs}(ro5)Tp&bdtY%QctjMn6|J5IZ#Y7P3#GmLUVeBEsI^n6G-+JQ+~;bt~)XU7kjR zOfiT_vvvOE$RJ$(pJKyRC8`mtF#tX+8NiNEDc;Ia4*@zKWMt$V38oKAn{?sMMN}h& z9uRbRkufgZc)6W?hwE`V`yVccEy1hRVA^pX`}GxYw`EU8RwR4b&tbp~5e^cy-(eZ# zT9q}Nd`z8_1G3mD42fNZS?Cb^PgR(OGK{WDE4vvr8o0`lU5s90^i^8ovd$f~YH4up z%7qW5!GWyDc2Sf$S@Ehss3+Q5Oe+!`RX`l)Yz36X#R<&1F==MEE&Bc+RemW7SiNu&Njn%0sn_%DKFnhX|<{W?RK$3;iL1WS8}hnav#zY|<39(# z_nZI%#zjAhb}l*-e(m!h&K286M*9S(A&v8xwG1QURmURrB{QQH!E-5I;`sJib}g>{ zSa%%mA=o!Eiks@M#0%MGoW8Z=q#wErKBp8N)#Y{@Aqd7y2J0aRjjD8RCfKJ;Es0!eT&j2ym*LwF|LgWc!{j>x;Mn4~VScjp66Ed1Q<@T7W8#BT@RK>c zpv)DE;?dEb<`rVr%%*BF=4{An_n+cr)CG@gYKBqSs%tPQvmhs*5bbPUDY||NQb_$z znkvN99Zj9Zb2s4R0cr`stEt|^xND+a#n$7SI;kon6AyE)c;!@7+3>mWb`5*`a$T&P z>Y}sq#-u4&o*j!^aE;*{^)fMic(lqqPn>yUQ(UHjYk82ywx?@5iW(47oq?~Ffhm`C zLruc#{Kr*@YI=Q1yilw?wy6_~*}nw-Mtp*TIjW4MwfGZQQ5-lPf*Ladg1SW<|I=8r zSbN}$LglN8~C0^tQmt!t0{8)^JE3|ZEl1Oub-U9rf%=2#SkYM^K( zWrSaJ9`=1SqV<8z8jXBn>Z{1l=g)z9LQUShPfR!#z2tt$FIjnPQ%{NlMvbRL12Bm@ z^Xa;d+zibJW$?qVA^69WkP-)ffP!}?9~Fp$2?@R*M~_6vS%*PNddQ$Z(otg&pQL}~ z;0aN`q+3{h(ywmD8jL#+VbH2lPkX~`qA!0R0J915Q=>i~GU}C|CJ+tizCZb*0=M8l z+og$u^P0NjM7musHVwt4O4JfgjV6#$SidF3d&f48)tR1jz8V9>q)E}i`swByV>~kS z&wB(JlcsKuiV5>^TJelwQM#K*PZAaWN6-w-O93V7PaQgL-nRq_# zc#H%)>l(X>Q5QD##o|-L15N$JvJ0CAi=B9*r0K4ncTbOAg74gr_Z^Q~88c-NE&gK2 z-ghC)qwg0u3ZzVYI)%MSCdkDo!;-(Dj^7;~Er6-tnZu*y1?zB{wKfwQCVGs7Y2UA{ zxv>Ji#sz_3)?R|+d=CtdQpB8Q&4}no!R7?LFKL=2qGxhJuuf4X{&tC)IYre>&M*g< zIg>KEV31Yb12d7Gt!G6iB1&^Sgn^;iax9#!<-PZ8mNyL0lH#I;cJS@zu(&wx=mf-# zF|0RkI9hrxX6Fs!+Osjt@?`rPtFcoHfbri`g9eBl(@>Nr#kR|oFBk>hd@RbjC0vg~ zrcZ8c6f53BLmqnv8CqQqq0)$5^pq>Ar^TMTafLW$S*ah;;AWuCZNQv^+C{--<`CgeZ5O&z*+}UM){WTg2Kco2ZfU1wx0& z2X!@(n1eBE#T$rw^kYp`%f=&DAJMO?XHvVSX>a&*0kL(0j z&)eOi=y{h&8C(rO*+^s=7^}#Qv9fut$b!X+&bIPOlvLS}-N+1z@--dExMT-l!y3zw7C2(*F$p?#dS0)($1ldom~LfE^l z|4@$lxaVnpQ;xZljmnOB4MR{59vfl#XZ*o<-S{KM#(u^d#+$fo=xtn4^cMc!#RhyG zt|}rP$!-v_a*fxJYe~JLvGIML400btGib&j{DF-7Lo05&*yvA2Z-2E$z z;%MCc8^=vYDL29w#r?iZBIi=v13>5F+C5*2Z^`~>*8q95FfLU;8L4>zTv+)5&pBq3 zX%EODxB~kysRt!|q2ZO0KnDJWj{yu8RTC479@N1lI2QYEj8>H24?)OR7$`XlQubd= zB)o30T!qaV9bIM^Gl-(wEa+B9^Aqu9b7Nc@to>b#_zFOU;ld{b!eu6qPG_TwQD&5* z+A5Gvh0zt?2$5U!1`c0%`r*223C5?M)D%F@c_eUSazWQ25o~u$=bJUEc>Y8gh#NR zt+9DT70C(FVVF1W5!?XbsA@P{QgI;o9y+uKkYBX|qsSbQ8X8TB;e_I+-hlJ<7e5+{ z;OUn?Z=$f=7O%3S*7#q|qC9rHHGrT)1CV_*T?4=hpt%S`zijDr;}ViS4wuC(rlTtk ztdmMw=b#Mjr5F^7=q6BTNUzbcyt-c1C0)Rz6o*%B#er^MDw8UMBU*>b0F|AuVVZO% zG!Bd_KZ(VcJq#o_>?R;g+`YstN9T#BRS$JS(B(@yTTtGm(&AJyN~uw2be>FI1D7<( zUVziBUA;j3doOeYMvt~eLS35W-MGP;8&Y<@u4=M1kWtQxW$T-D#6WIXL2h}V(pi9B(Q^1O+uUZx$@Ai!=pd4QMsqF>?^eo#q@R6j$Um(YeQT5$9f7;P<^R$xto+cg zZZHP-Dt?JrTLkj(fs^v34g7(9KSWbu~kS&nR~rkiG<}GE1BF(?-zWp)35%G zl~(R#TEnyi=~gshUdNX^IYx2u?C*6wt)zQ`Zjd}OTMrHXiV-L-agq(G{5}E)*6ZJv ztPV&_snpg*TcU&W{%v`^SL~XFO>iXK**qvUQxGXt&!}AmiyepV8YHx%s@Sc+mOo&{ zNI5uUC5{XHXthu&z4KP7sPhiNm$Y}18tw((^QG^)Cbfq9Jv?=0m+w()(ht2$4VRu( zsi#uIB{!-``lOnaA?np9Yq-{3Ky#&XjTM+tV2&343aZh^JG9JKi%VZb$DzLA^O<7! zQRtD|UsSH;hU-AAG@aI(EFD^H99peaHO}M6A4L(|ibBBJFB>Kmg`gP{yY823uoXpq zXFRyb3>N^6fbvUtDsQcwh%|?*569|Zb!O>!^XWP#c@+>fq_DMZr|6t&B|z7L5-O*qf;V#u-*4iW4A*i?oqog6DGzQ+ul(}F3E^*J07t`jNBw_|`TSRp2j ziu!gddhu_>gfoH76&~7PpqHxkzGBBtJjbwm~ElVaB+v=&6_ zY?`{waS zPHc-D2Y{xAquFn&zG*4%v;xCO$f3iFck*#6+14qRti`gobhyK>qLI*=(``Gk)$)70 z)A)X8h~aNHMRAu9u5exaHZ9N4D#5D{K>%#Tw(gE-BSKiH8^`UuzZ0X!R9~#Gi0;yB zjT~ym<4uKm&s*c8RQT0u0^hpGH!64w6F29(NwZ%JBk zTl1&GeNqd7WNAc|>UbA6?GPWl-xL{IW|o^3W>>QtEHwHV-OWm~hgoG-dFm&%0L6}-@{&KOXKR5sPu?*$oxamzTf_d+X7V)lVT0Vj{j59y9N39^o+n%O} zD@PT_3;r$Jx=i*!n_K3vC{hiO-&lErp;;%^zddM#S?|DWbuPTtAlAQv4U9(H!+cztgqe|E)aRPgz^zpHzO^>dY-O?8 z((~NPB3*>g4rNj6it}NzD-&q~dXm;TGYu=Op0gB(a} zO_-$XNY~z$D-9I%j0TEQ=~!<$CSb-Jrp3&ggPaes>JCV3zun%-zj3w8bd^zQn2gX! zZH(J$BMG_L67YcxKr+|@B)^h?Bx$zTfF!Tks!E6c8KfCp!8x}MT13gEtmKA>5xbyM zYIU^=2i#t_8sMM6XnD$tngXROqK=_YSjwnav9qbL-%u<5!x_cFZ9j%oh8~o~If8CW zP&!#xAFeBcly4OaUZm}3T2AqqR#7ai(T9!A#KBl!>?9s(#fMvXu^A+Oc2L1k-w0D2 z?irW(!_s)h^ir#JMMt}e=O^eh!VHQt!&n5PT|8VMCFUK*Ci&z(aiv&|vb#vpF=@d& z_-ZNmwX4*QAE3UM zu?8;{M@u!Nj0p2d=_cW?c_*3G4Tp+p=99B~X$*FE*v)+b+nZzFZmJ@kLNDv5s}^v# z_NZZ9Cs%pI#CMu%iKt_R^3X5D-gla6v}P22SC?kmyGW3i1UfkyOo=HL_e1kyC47us z<>qnX%XgcaS)~?}!g{%wbP4l#IrxsXe0MSBeNS%K{GT9v=S4uRLL3mk;I~cKf~|%L z1z4hX%=}zk4x$mza?l&H1m|-a?Lf=0d}=?k3AP8>VDWumalAS^PY7%4zbyv;HY-aA zi{v*Si_O|L&{5CPZ6oCkquYm+gSS9nSeV&}?JKM;=C_0OlLna`TAc$j+gjZZgUr3H zagT;C8MkA;G5gpfM^SGxx4rNhZ4Z9i)AnX{ZnN#>dbd4uK3#a!qn%(mw>?eDe?9I( zYKQU!>R4_&sbjhS3%tx2kCxK7BW8zsb*@3a-ceN^kkE?HfeecX8QQM~SA30je2gG% z;FgXcCB90qK{?T|Y~Xgkg}L0ojSytpz|F#KW#%}A|Li-osJ%A1G90rqZ10ma0Ug@V zHyv?ihrYB|BLCdbx1IYWoiz5fqWQ*%Fcw-CO+Zhe<>#b5*O<+sIt0Q({Rd!+@@m@o zAL!Mz$%innGz$hKNvnhvc!Xj5aVuuc%p^+hCqbw zmH3k^ly*>}zLU*UEYw#~bfPNZXn4>t7`Ym0$W2cMWI6T>gWYV42G z!g8^Xu!`Lk(<$!lk&D)1SvA@85dD-^5JAj-_hgLbRbL|7faS#C58#on^`W_3Z0hL> zHdzK+`6`0-@2RG9f}4D;AOpTLZ26KcyoEy*>;X|uf)L-)xF_>5SXMsJD_&f<&N$N& z6t+sn2O28;XMxYH@o|N3Y8ocBu$Tjy`i`+Z!ElWB^OY`8^SS~s<}nsHwPJ8!RM-Oo zyIN=q6uWYcU=oz6~_37MjG(($}FLE zN%!Qyrebl8Q%#wFyr~U(ST(cOga6ALo4UV7><%lQnF~Ij?vey6Cww4DhEO67Ng^c~ zO+0c)SHpO#OInh2^h~iYs<*jS1;Xymp`nSZ2N5w0LxZ>|3byU^FzA=udU5!~)W^~2 zx%EyBgOXR@mkuwnTK+lWnn5%c=$)S1rf97RL3hTXHSvmjWy00)r&-;QniQ`{x_cwe zp5QyS6qAMS*AjyAnrbV}G>9&L8B~(9wgYJ)7RB7Fk zuKc8nwscrlKn~LFpqw~db@$W}m}$L~ZrakJSK+EHYY?fRK8$YKUk(*xLJ+7eZ1l;h z{s_sV(+oDo)N=Nnufp+I@kU4q88pM2XK39JcW>y8G~aZ)-gG8~NA>y0I__~>OkC6( zpaX!MQvc;LPan&(Rr+e7qG>gg$ptWYR z#Ytu}!#VROP01{T&otwk=Jwg$^bnQvo7!P_Q`xG?O=X+bHmh!G>eH&VP2c}(Lz_Yu zgD=h0W@@H^O^2&6zO#7GE%hZaBN320a|SQTJ~UXZR74C6|e=NRr0J z67*!VEjhMz+mip#x}=9q81Uq@h$W7xHqA)-X15@brDF?{^>@|XAeQuO$ah(geCoi7pIO!;+Hyo&h}hO6^v$*) z(Uv1#_9Fju#Ow@jiV2V4!dwpv5*|9T8IL&8X}aBr0;y>xBS&Sm7D;MEtF$(r9$_dV zF>Px$BFRki5M1@WsHuN8%Mguny^TWDd~Bm&HVT=L%^rmCZ>A|o^Rm+bCWq5~OKq5f z5H?P?0%?{2$$^+#vjS1Txm5!YkPHcO+3;F3%wd#n0qiUWAW9(F4L}%8dfR@;u&vpC zSin5f_Ctyx*oy53Lv}B-51DRTW*?PVEIw3;vs-)+(DyXyi?_l^Z1yd%USll2<`(SHw_!X%YERRxh*#N1l+-1ZbT{3~p~?7P zymM=m?ySxGWwct{`yA}CS6em=^Q3-+HBqMxgDTZ(am{vESuVOQnvhv~=eB5Jx+>zf zR!F89Dg>2q|!KM9$WCG$Rw@0rO<8f)ah}^;AKmCR1Ad+91xcV(H#6ywxM*gx6?Y z#sih@vKy#rx5)r$PFbx5YO)#%u%hH;BcOVh)}gF*-tB_d z>fBdkE_)5~`+!QRag}#)wT?Dy0b*%p03EF!nP~>l$=ZjL zW&k2`zv_`bT+KAML%rN6@ZWD60I>dawI}Ug=~dL!IRrEQ&-n??4)W&tCqeOF_2*j2 zRA7p~Sn(jvRC)EmXkQFdt8N5|fyi;9a&#waa@(G!Gk@0B_wiO;eVbJza@YOnOcJ{qmL(M|Gx1buoW+oaG_GiilAubN2)aehL3IP=s9+Mvs;W)SkGV5>R~wN4GH6m8Jx)na)Y40@{P zr+*Wr6O)K8@2Rwp-(W8a-m*c1iya%Hv*p6sWzRSL^8aFi*gn(EFviKPd-46*I1>*1 z`Hztyn>By72VtHR-&VNts?TSk$x|IkhCB%H#E@s2Q!}qCI`jE z`pwZ1zJw`ai=$QZ_wzFNesIk98}<0#Y|8I(EDqUJsBdK{LF$tPg~6u$(~xYi;;;_} zhh4jct#5r6ARs?8VIZ@2r(j_q0kg!skWQ*eXw^xLAvV4fdk#V48P ze%y-0W%m6@@^8#hvIxU)fTZa8W0hE*gE%g#58^Dd`e&mjE;|uWdHJ(Qg71-G1~C(I zl6k}zS1;+m%2(Sc#=Z{I+||B>+$a)jevhEb`+?)Z^dqL@B=e3#P;DB1`i90q7$Giv z4oVkPpPsC56R+jqDVbYYCXHp%`ts^mArT<7%7S(ft}QIoI^mku?XqyK)dZJ8vnCuwk!E37 zt1+=na41B9Ww9bO229bpTtr|oI z_jy9wv}aY>tudYz-pOqh@3cXMCT>7$ENBIH+8{vJr`Zbf?Cs_%r%&P@H05+JJkMLP zIHr3&_Ih%Mlk*7?*pqwQnt$4w-0!z$W%uNsKnxy}d$zf~0-h%*1QEAJHkxYV&Y|5* z&@oYDu{DBc`rig%>1nZb-!#pK1IWg&*Xo@Ghf$_$y zHcbkS!6!(C(pKL*i2+l28nf3DkDT2deMQaj__(IYmt_ zn%t{!L(tEbZ|m>SpG2)90>bq2q%8<|5mV98h#?0Y!FxHTOMB!wd{*SC# zYcvvBWMTOZwg|q8r%CfG2)qP9`hU)J$!YYim)uR`WA$}{v6l_P;>EJWY>VMd0|yVHV&-pXch<7 zNuqUCi5LAAt3&?BEAYoW1GfE^h~16?tI-as{RPNEYyPf_YLF8;fArlyJ>Xl zVi=#`Q&DCw-?;RG*w+y;dTK7#vH>3-JdG)=7f6zAhizZR^7nODXd#k{Ye z3PrC4DUjW#i-rdgwB;lnbjjB^BX`udI6iGIJ!4N7Nl*Dd#e?F@Vin@RNl-ps_!{xg zkWOPyc7(^ZF7%Uw;%IQMNF3BzTazAoM(KDr)u!<(n0 zNS~e3)NR@OIJ~Cz$B1AFCRaXl5)oW>~RZDT)PsLLZ;M#(CjX3{toYP#k1~IYFS|;HLXU_CI8RrU|Z!R`H zfbphr6P&n~7RcyuDKw4<{tN0Gp}H-535j!Vt`$8NBDdY1#sjKm@z!Yw$(8g|S${(& z!)g3=Qi%Ct9{ptZ|B>!bj@9`=O~C2v+R(CbIQ3`zHWc>fGWz99DG*gOr7qs1pX`2v zbbse`Jb;{X#9to4al|vPMbKYJr_H~UP7$$a3Y}O@BD_gDeLe+5mZ?W4I#Z?*{~6e4 z9aa*rF>jV-o^cZ$L3uywirtI1Ksr~y8>=;!a?Z_L#fYckBd~FN#5Xvm{k>ZoaH9E8 z($SwsxFt`=`-(AVHsynEinCUm&D*4mUzpLLt|p<5V;&)%83PSLh!GQU7XwRNNV!bi zin^=7weRJmzr3YOCMF=;7Ho4Rq+ZOca46u zLd<$M)*yyI8w+8>m^)6{Nsu{JSMWRpJzsoz9qMqw*(3z&UiYXbv;ryV^5={5JK=)9 zmse;ZtdiM0cmQ)JL>~|zy&LO^ecK5)Ag}jPPC8;NlE<+_hS+)K{x6TSyD8R)9a--G zD_23{tHsg_V`qrr560*?*$(H^4h9VxYdDbkkl1q*Vtt51EZfQfczVBVQEUvQa-hC+ z{v!tc(Lz}qHiP;Qk4Lb?(V1Ny!J3csL+{;;N3l>w&#Kf@d9WS14Zwd|A*;b>lwIri z{Sl)PW~dM2Ssxsl7{j}MVWY=~E3{`##If~j>GbxlV%Rsaqr`i^h$T=sUW3?oacsO8 zzTM6|sH<1Qkqa{Rrr7wr$E?M_bz=Qba23LIjHB4^^w34c{{`hOZhoqBrLXP#zvcui*2{W$~!z^ z{MtGZ^9ZcR{f4vY-+*J(wp|~K!y8xL@CP|6&duam$jy=$<5R=~voQFAjGZs?cf^Mw z3#)z^TS^~&G5&lpD>hCHf630md$(~GSVjwGBaW#rv*Wb~vFLT*%dp7i@p7<;9jOam z@ik;SU}#$#F^P}J0hBQ85--FSL1`l*2~b87rYzmkNsTE_~J(}Jg&VX z78Ro}htu9W;IxUI%*|rk`&cI*^%_RZ>E}f;FD!@SX4$tMc@M+#q@9Rz##(e29zC~6 zr;m1WR&dEK5cw{h?HBIEFhBYOgxY(j8a+kvRmj)gH!zZH<)F)Ub4ZrJBUaIt$fw*q zM&6C$e6S9)!T8y*=URRh(&pKM&Rj#^{cJo&m6eYosU;Vp$^0IiUi6n|rK5Wy4xWMP zRIM&!GCuebGP>rdXfYbV^Hu}s#0{YOnx=B|MOpngQJs>l{0WAzm#D3FRr5O?PflHR zhxA}g?x;C{x-xP6Tnuy0>D}804}=Z?pex=90XPRQpVXkH!AWnSaqazyMh`E`42=0J z3RHLsq{DM1c`{!U=10iltI`MXMSs5~k-e8-nQrBbSOqY~o?oMgo9EG}h^Z&I6P+{zzz!-akd4H@=?i$nvrSd0EMBHU>N(m8pie-pK>a7oXTH0l|6XY2d8WQ!}yyxegV#vB>|bc?KG~-(I5um9G)B_*;>kX>lO;!eZBU8q8*J@NUT}EWVu4St+(yx|>qG#YP_$n5| z-->f`6i>}%x>hcd@n~dLh&aAD2{ody*(FQhd;ew8x#GZOSX_H#C@w}>@F9kz1#8gx z_J4>ba^rf;&MNXh{tWu>)RZo!1?p7pa2;5gxN{Wlr%=$2q2reSu}g_N!OFyGS4N?L zQk$7Aw*3ojX6v5#&&1-M4TYlroM?WJea2hv@A>_)1C@GFrKZf9( zn6iE-WEQvq!k_Y3Y>wD@HBbV#3RRsTlPc^!M@DIZP{d}gi;ctbBX=4Le5y{<<0)8{ zX$V>^zw> z3(D$rKANQSzCh-2G*L?l(W*RBB2HY(b-nTlsOv3n#;SBQofjjTb$^NV7N7kZ)6bN} z$P@!9IXdv%vyvVd=jH8bIa>Tn9nVcNp0~zh7AK&u3dObLg!|k-*cT5BDnIw$rsKI; z#xtY=!XZHHj3-?!5YwMcE7yi)Ivz`L08ku&K0_yw`@0z#8pNdEqaQE9C2-=sf5xe+ zQmgU*(l{Vz-&@GtK_u#*T3)y))54#*((8^2pVfO=*EgS5#uj zolR*YQ0vo<&-DQf=kTPVp|8+S8CtxF5sW=1#sx z$K$16MNl-Z2B(_UML-9$rZgU3rmxho+$ZaC{2|Opw6pJ2$#|z+4ec3f+04W7zFKFS z`dw_W_~dZBQ;=YYDXK>$28f#P^-9K^@8g}ET3e71ifRxp&F!|TL|>)S-F8-@C*%6t zZck8P(%^2}o~W-Rtt^P;>ngm{pVZ3e+WK17e?v7-w9d z3;wWbz`n#eQh#{Mmnh57uynh1>sSl?iAeRjG>X6zM#Ne}w>2WM-LDEF_WKiMbfYev z6TY6$3CG8(q0uf-mO8A$xl#LG!^FISwDD#<8nKfVhq^t&Fi*O< zRo6o7l>Bd0*8;KU5aE+xVhXDdVsMD1zqEx`52wfS#Fe4MP${n$LMYDT!t9Ws+p8GV zE2VE{SO@;bj z=Oc(><(*z?8~NcOK0|w(d0c}lk~J$ZF>oZCWpmN$9hGI*6*TqHnxazh*ijW@&sq&Q zw#fc&sd%ct^I(^*=!sWpvDAqt^4IAGyH(~uD|rOrCfpCLeC1WpRGqpWe7MK3s`WaK zbZroE@NnVQ2j@QSj(|?oCY?>Gi_if}#PD}*<1a0&_*|1 zq|v$Zxuk>knNtFv4lU84e5PrN>q^k)UdrfmM0wn^%8N>QU_e|k@e>c96rj3F8i`C z$7th^EK9TO%R(2lH0`l8yS`JrBTv?jH3MoVgP4qTw7q6fYu1_dm}DFHKP;fIEvJcJ3W1Aw#%}DI}hrgq!+>U`XqYZJq-i?HvT4^Nre1R-^w*+=-r6q9G zle^PRXP%n{?A~U*vah!4mBHuEJ{Ve7OE&NJ4}rjWabr~91g($q;C63cJwU$IH*tkn z@Xy$Gg|X70#(!~@d?S`ZnoVvA84Kg%#UpF6IXG+w)Eq+5a_i69!^*qH?mc4tj;1ai zJ5L4IVl2@M@P4uWcW8@HI^EkmtRHUu5O-74vMCrS9dhH%Ai6RNDmz@udv9Q}@Z%OS z;omXYYlevGL5UIbiEes`cL)yQ^AIi>l%I#Nw01}>t?4IqcrwhCzlPwmkMgU@y@Z?( zTI>6g|8s;X|1|JB!j#u4fpBWT<;UzCrmyO+n{gOX9KrBdKI?6{4!}3LX`y}BS#C#| z2l2g+`W+S>zK`9(H3P;i@E!4FB^no_>Jr10UU23v1#!e%b(m$h?rN&Qs_+PFLMEQA znvi|FH3At zGk5P7q(F#?%>e7G#f8m@CLgq<70roSba*&nvE5eBg=W*LQjZ$ULk2@tuxVvx#9Q(y ziwSI6)iBOax;2FW=tpX_!NJFJSy1dx$_SqTawfsZ!F` z^z8aUST7{OgO$S_{zNJDCBwAT8BN|*E2SEIas>6Radv8@#yRR%01~^mS%2)St@H8Ce8@_(1q&ov_{yy`%hPUYte@ZF8kZ&Am!|t67N51P>3+2}Q@dw-0w8V9 z_Wcz&py^&hh9k@&c&4X&yE*o#2D8vHAAn8^0o2I_)*+5k=rfM(1=fj)jdBt_@oUIo zfeCWU!hg|tbqTJ-WC6|jGbRw8*EZ2NUa>e;I&m1rdBgKC@-O?^g%-Mqu?=d-E%sxo z9@)kgytIgNUrFs4|uINcNR8$ri*`sfyKf(EC{BnV1~ ztEVRhgIGJOH{jt&`8*OrUbs9s&{O5=OlOcrkN|LGuG$e(p_cbkMPZ&|=UmWt&Q^h5 z$Gp$WDr00i3PcQPu2Z}E`}$+T+4n8DPb`9S9pPx51teQ;t}5J<`=gRNb^u>wi1TC! z2P_HZ*wZv0jOzd=V#osxk?L_7LYr<0jRGq`bs;#0EVT<%8crxfT?S{_$~oUuU`B(T z9BV_8c5-pJtrD2>ra+F>>m=4OC(2~tYHw&#cs}Bm3!!}IS)C$aA}-5ZP3>@W1;@<5s@G{}nepMviUj12?qb0{oKrwhw)A92pV7o(yU)<3gzgnq8X2AAg>w`)P>o8W z)m za;{Vt(_M+6Fyl(^9tCgi1=M-X=y-GXt6Bvwo(DA5!6-Mga&eh2dxiK~vY`6&=q7=_N3qMIdCWB=UEFO+3c{<}TgAiMd3VaOym?n`9|U3Zqa zGOBRQMn#U%O>1m{&ZVkkRgVc>gYa8a36{iX9SgpEs%q>!ktuvW% zOz;CBQME#6UIa^3SwxGPpgGOQ(M?rP0j{-9Z0;&*HzAGou$#FOoWugfZeDdPl42Qn zQJlGUireHkUThH=fwely|PAwi(ae#Omp>PMNglCNb<8 ztS@AvJy*+Mp4{i2;`T+@0sSu!pnov^Ig|ZdDHd#tPqL=si-9i+x5p>zxd`m%o?JBX zR=OE8sV2xm_Ox|q6z$;AwwK$TWm$a#P>2GVpB^`yph=Ctzm!t?A+bEvzCC;P-p#Y4A16Kxlp zx`(V`Z%TDHG3CYhXUI4>)JZ9?eZS<)YBn``;A-S8jZ&>;`x57k(GbYh-9+unEEi3# zz7jF>UO6b$5ZXhCD2-CxQ;fQuCCA>ttL`Q~Aa8oxUy-YqoDJ&<9xSsmtn(>gMQb$c zd{Ma*KD@ZrYC7`fS|6W{VO=7IJ&FiDY1WYJZo7?uVXZ_q?{44`y$#P?Yc;2(@2+dE z^{kl~dU)1rAK}`G7TQO+RxP9r*0t&pJ0y|7n^^5cBHlhYcMhzg8wjY^7FywLC~Hey z*wkx|-g85pJ;{yoYH|K541`(v*UQdNluJ^D2l+bgf<;-$*W=pW3jdF(*CXt0)XdF% zIe`A%*y};O-izI#PeHxTM!e=Km?o<+EA`rq|GcT!9MNIef1NL>*FT#M!X#Tl?R}y)-~5~`p%h^FhoqBcu(3JIGh~*t@v(sx2-VJ( zQF!yQImreZ5Xc2)wm8}DWiu(>#1 zV3;%?5U}GeIP4-|j}+_fi{oTlPZl=E>&?QJvqW1|Y#T>=@Uh1~j`^`wDz<7h3Tr`wDm-9BRHx>JVCt|f(S=eg4Qs})E7B*+b3Gy>o*lwVo!NTU&maYZZ zENl!~QU&0Wc(brM57}ARDvDNF*c`1p<{Domd=ww$M#TuEKYXOe#ZoH2Vr%|kXw5~$n4sV6R54;G7=+KEB zTo7pv?9z+HjNOv_uT6%$CDbeq!@r~pVeoek+0 zR-g1s8VU!Pb0b|PC7r(OHW$FkB>k>a;n+-=N$N7q42n8SRZ-M$ydNwQ9O4Kn3|*#8 za==aDSS(c~4DxbshAIsFz?+zl5vk6l3=g!=b8ZFCzn0$&1KiUg_z<*XrE8}p809}p1I0+T1&ibetQ98$i{EazA}+-M#Y~G#Y*YI zZ?$!|_-!aHq?(D{JGnib5sVMeQWjvhB*c5ccqg%QI?NHBWOpS{rIT+?)jP~<>4aeg z`#Q*_c&!V&DexI8aaJCDiCh6l)0{KN@Gb>9DiL!*H6lqL zENRb`04pl5)qqy`^{QZM+2Bt_*u0pjK`_eX@pFwY5X?`{prcv3Tqcj-+GF96nG7VT znsR?6lgF?3M>1*r*8WIqG=59#;FP_%{1)8$VT67bg^;4KF`=8#Z(+jL3H??M%vB;A zt3S#O-*FPaAd`6gy^VTq_zf0LX*8Q0oc>zH>2Cs6h}i!1>70Jo79{h9r8$8Ui!rBP zbx6$fcC<$Lw|YCRY2Y+V(Emozh4ydi={&(W4NSkK zWX^~)D=nA7%=(ASuI*9RnnF6*QYYOCX$mtz`xVk5AmYaY+Hf0)(K0cHpC zPvhmG$}C_gG!*R?w!RI8hC*8LP}WeSdvD8CYbZKgo#isr{0`sysNd3{8sHsT@zZzJ z{g1#|*Q79!nl6evB(UGJ3d}9;iQmc9SxdK5_5!?lX6tw0dhKkARHvV`{RCKw#fDS? z92NwdwgFNz3K~XL;7*Fl=SjLxmHQS2g5SW$^8e zwNjC$1`PoaasJW^Xp#4eN67+=si}*={J^CpG9gfny<=nx&k?hxqlHK4;8ETWFT>&G zOlJZsP$@-)2c=SkO%_-K!+lm`e1w?xrY@HbpecTQKpl(~q|P&cyn}{gnIU+peNtW4 z%~-2_IQJ!sqD^XFn~HV`>)1|BJDR!40uJJCKwjx%{0NVfD4Cg1-N9IU}(&nX@OzQf~{F#SZIe+ z_AIfG4D8A5&I#Sw+1*^V_v-;Oe^D?HV;cx>2+U5cw4~OIG^|F! zk+cPY*;AWU%)YXkYdEWz7R4oKBg+h4it)g12|ctg{Xz}Q2*VQ?qdLpn!wKz_bB4`_ zoHI)YyJj+FxFLa{#!GtgvN70d3qiRt7y-fdW3ZDI#%sZ+#$b+?C{CEtfDLJf=^me> z4&pnbf_!Up#c6wDTW$QGZLUZe5{gtXa_h>v0`ch1rd&3$5RHEZ%wv|&FtIc*jx)Px zX$*&A%cU{#!XQjOgd4@xWL|OPUtFlL3)ATtj(|q5mS81GJ_8CmIK|nwvB?$^Bgm;NA5OUPYrw@eUa3z(UeA#f3x%o@Zh6<1++(z9nb^ z%u3J~fXi$P+O}n3XM|BwvZ=902`IKtc$j7R7Tzop|WH( z7SdUer^CA;QC2$@1>zmXDk?Af(0C=@Rt;9vaCM?%xU#KH{?Gcl9WGyO)ycU@?bnU6RXZ6Tz8rQkR2bbNvvhfHYZ=u`ohCEX>DA1e zrQ5e+GQ&!{Z89T`UIfmjFPq)tgS236x$JQ)@5ZBxUwTOx0Dn|KH zMb;VdD!I3bjf!U0#`0N-nn`H}G7|zDkJy#i7BLeW&G!;#+=JDOo?~*S85bC5;9~nL z#Mgi5Iq>I8u4%^q!5f!clN{CEtQT+Jp6unz&lQJnPo5tP=lF7c;=((URX(2~Zn`6R z&PbeZ(+Ru2bObiNO!Z0MOG`^b;m)|rF484zlo{a=J%o<{f6`mIQ636c7~yi!ygb=G zh_5+@ICVLq&o#s~>QSUz+`T;6!%xqiA-8-(?7^p4_pf9qP+%AZqQ}r^DZb$JZ!D}C zeSJou^~lbjn005eiyv7P7u=bw4D`o29^w~wBEG009;Htd>9sp4A$<7~55(55lcC|I zC2^+6mTs;Aw`g?V?fyLjcBWLVs}B3V&L$yOSX22K_?YP<=f)*gm9556eIMnl}d zUn_i&+r#p!(X(8h5v%T6d0nziewM*;kU_PC@e*`ZDq1EDzdL(Bv^=jg?i$a zVW*HRy0~LSvNB9!1o1|Ev?AFx(BB7{zK_R{?m$C)zd}m4`W~e8#ePny)`0e=;>GvD z22L3=YQ-6MB};?h&b~53{QMr4h!16dNPVp|#7q2@3-}ND)rYbct(3)%8KQx|R`^s| z^L$heE}1Gvf8RjEXbvM|#z3)Z1=@nI)(}t07<`D~-Id8x&3tj%!DNNlIt1L6yFW@4 ziD!o3j;@{m@aKqi_tf3VvWn$Y7CWnec z2a~xuly-4(2i(&!B-(T1wf7|ll==Kv3@mQ$5%l9#D0Ur6V7W!Sc4M-$*!gWkNl8(G z-(Orrj(&fEzXRULdp9xgKq6O6>E0X?A00|`aQ_4uA`++)=X7uGOy5exmhTc_k<+8O zxkqtv0lobAhyMiy5qxsg9r!7wU+NKAXMUDj;4hXhu{07$xc%kk${76x9muuH7by@8 zhZEJyg3Tp42*>|K%a-K8fdwdr^~&d${27U$u=dMe>=!!^;ampJ|Lunpg&m}CdiUo? zP=aDH0;L?H!sM&acuwh2VeJ4^K#0)&q8O0dN=_ozN?Ilh*>z-xAjc*4p!T zlrR$Lz%HmxiWXTx&M8z`NA_#Qgq#!?EGuj7BBm8LmzUrdWq?GlUR0f>W$K9^<)W7r zoJA?i|Ksly9nAdORyB8L>DN-kmOu4HKhTl0AP{LjIzZp%(hlTqB~IDkET5|%v3Mvf zav-CktZ;TL!KwUH5OQ+Lm$S}qXed+$6)!zfNlmkp;zr0xu~+y}Nzpe7f*0pSCv7K1 zLNCyM;LT2o@{a%1j=QAXX_1pImdqUm^J)=zD!z=jbSzWibj5EKWq$VPokgKya6%N2 zg1DuYo_;a=;k=S(PJ;yjk5mBtR^abN-|ZKiR63Lz{!`h+N4t}y;)~qoh*JSk}CZnOK@sk1|PD+*{ClPfnB_|S-l^1ukr>i2^qW6fG;y^GJ zuU*abfZfy^?OkcO-UvcZ>uW zv3ZCNh@}P19cggn?1=CE7}(e4G?$8xa+`zVPiu58>XZt)OdSNEQQKmmDoS`c*~)F3V9m z_SC=RGaZyaDJ~KqL_9)ppqy)15EN2O?bwX#b0dMya+rTBx49$bq__O} z!nw_*#g4+UP^~bXsI2wqge0A`mpC)jTplOksZN6r$}4-L#}vfVJWPl%ybmAPlIKI7 zYJ0WxA-vZ)&x*XD6E&886j`s^rUt??=&cm=lI|_RTz?V2{6$!7Y_1o@d4X=26*u>4?$QIl_<{0*K-vSBjY`r5c?gNxAuVBXOSric zWxq)NZ0^-kWEYbHh_&&Saw-mko<5y95*9ACKV2czbO#E1RHI?1OnS|zH10TE`YTtf zqI89&f8vzy=4$aFs+OeQ!z>UlzLEUCGq;rDqHgr^`@44ST2X*vi#=~9hlIO#@6H2s z^;^l&REq=cSy8MmX)dv9mMWt_gx^l~gN%yAp2n8L;;s_ZfF3Msdmx*3HOg;x4=$kT zp%X<{SCrOrsoVAN$x)&{&oLO1sD_3qR!ByyDggvU_`(QvZ0_7rKC=HT>)hN4c?^)3 z7&V`K6=kCwQTCTMV_7fWQb3R(B$^K=N(yBrDc?u~N9w8}DW5~o3@Fxqm%z1o-K8M9 zBQF??WlrTl$ZiyY*!Mgj$J+OkUFBqjYR$DqHXbTD$CM(Kki2&mbsr?>93wNq?_5(X zMTZomJ3qx&`xB|sO9l6fv84C#9Q*WliAaFP2GRS&m`ZcrDo6tpeW)9itTgER6W` z{1H??Zmj8!KBRE~S{{^#m3xvE9@-#}CgPO0la;C(d+-!2$9yEL3(lX2yPK%|V=_En z6^A}#vq2ix3v!q4O3rZL-VC48}fXjPQ>*#2!dlg5Gt0bwX4E+tqSLZYW;un?IE|cqifFrCllO z4$t^Sj+Q%qkYJP$?BqBBN7l6$gya`hiu5DjDH*)r7In4-nSJF`dXc^;5Z*{8K;bwgR@_DXKx&z^NqgqZ}m>; zAud8QojUOk_2&FVX<#$%Se;Ra%BOJ8pdRtK^ZRc!)0^*b)>)sg~2kq|%m= z8`q^;dgT_lA`pn6YU96-YWZ~tx1|^xn{Q7(b?U}-$F)?xAl~Vi$~WsbzS}YNKY8YG zab}NHuhQXIx*uzvWY!uj>RXF3Tui7-brtXRNacvlHK`o4MSNM6>Mln0Pvwixd!+g! z@X~&GFu5w#U%n}CXGT*U#mcHwen%Z!tubB4OOYHc*7Zo?dcNvZtklDc0e<6Z9yVcC_d?%sz{5fs9&nVQAsORDlI6;V}nzrxiXt5t9WT(s;hq_^2<`Cwt%R{ zDF0Vrp?_P7+C`sKZ_XMDGe(?|OqF(!QLMDv9<`BsOy~F^uRBA1hGEvb%_*x*!;j*g;Rk{ef-s#e~_ltyO|bWMuvjM`K) zK6X{7x~q6Ri#3LmkTEsMkAXBW1bUgq0#m09k*bs(gNR{e{IR;!P=v)tTHK#cZsVG`g+L+QSJ!FZMS-0OVjVUF^j$AR8H)n>2i`ROmO6|Osis4llu@3i6 z6*f5w+2*jsBB>QO_ry3^R+}n8E^qF|HQts`zfVA77?C1kOA|LA3~+-Gydahu>e=FW zn41|(b+bz3>hNM!EHxl|z!tOB{<$o5~-nCa=9&$8UX)13LZ|RVxBqf(U>Zyxy5QT+%vCk z=HVNe?%qc?>Bp@(HD)~SYM;|F6#T83MT!w@K)JhGb$A-hP8pnP>aHKy18}Xe((3IG z4o+2D!f_4rG(cEIbv7~Cu|11-N-|Y#g|QQCL5F5Bw+u^lYHc(hWc6q}LC2_WTrWD* z>iVU@hkjY<*+FQqr0l~7Mmy>>sFhN&wrD`0a zVa(8nJa`t}9Fppa$iHl+5hsSmkAb|!DvtLsCktSuQHyMUF(ixBTXo_=3e74aK8tdf z<5oDmN2-M9BuujaZ9T-6p{WST#08}=>rgva{pZ?d_!~8hA%t7j<`Jm|_`^qc2Vk&( zAM&nzxTB{@Yk(f(?a6j7$N>@A)Wy&8@}_##a2%J@Qu@4~s+Brn>f98R=|ZY?Q-nxu@9&=EwtK$=P5g zaiIG%p`*+m;eO#`%n?RF9I-HUQk~D3W6n1z?h<2(d54MH-p#esNI{`RlD^L@u58ozOo?_YVd;eMR! zxzEr(IvR6)3w%HK%`tEB-R|q3x5BsD_qgwA-+Xhs??uGC+xNEbufEU3DL+jOn6Crb z!9&JBeG${}hp>23LMn;%3L53uaNKST^vC_{Af<&khwB>1dYJ!6|49F6|5*Q%xfA^- z`zQIQ_|NiB^M92;-9N)W+kb`sYX3a{LjQICMgGP9Tl~xX%l#|-_xd03ubJ;(>wnz8 z!N1AB#lPMEoPUS^Rb02a+y93D9sdXZKlwlQ@AZG~|H}W3|A7Cn-xml4B7wp{NuYC} zB2XFV8R#3R3DgD}1BpOOU|8VDz{tSpz}UdVz{!D0fhmEr0@DK112Y1%16KsD4$KQI z3|tpj6j&U%C9o{8Jg_2gZ(#ldfi;1(fyV~6(1y^a(3a5l&~u?3p;tq@LvMuM34IXy zQ|RN+-q7cvuR;^eZ$bw`heN(_C>#kFhD*Yo!xiDmaL;hxa80;2+!#)TTf)P_M}|j+ zM~BCTCx%ZBPYO>7pB0`Ko*teNo*lj-e06wUcwzXu@S^bI@GaqGb>ZdV72$is4}{l* z*M=VtZwPM+ZwYS?KNsE+el@&1{6_el@CV^Pg+C7O4Syc~3R{bJ)!iqy-c|QY=i8_L za9tPUoABXqAjj|*&FPUdAm<|Apq!?h!8t>6hUXleGdgEn&gnVl=UkFA+jqHm z=K55_{J9_l`HkyyZuc!AS`c1g?}_|f)|2kW8#(Xi{3YkpoUd{Y+e#-0Iu`xplem++n%L1(BbzalnflJvd)r4d3w7Sb-S7DAjlVqR6e0<&p2% z&2QWnc{uWGWlC_i@pNQsCuBOgZo68U@N^T+=WakH{aL zKQ8~|{L}KM=AWBCJ^zyY%kqDczcBy${H6KJ@>k^Fm%lpy(fr5rH|B57-=6?f97`Lt=(XOX_!{wwJ{|weZ{UDQw?Ipjj6u5^K#d$8Dtvce<5DE z5p&e9#DJSpS9W+NgcAXb%grTlF^!4F+hYAqaFtWf{B}+~d85sl#%+jU6aGJg|Igz8 z|3lQ3z(-Ad|Gi70K)H{$hzf`m6cG^t6#)_C5D~dijsoSr$|<-gsEDYjAgHLgfPjFU zalsNp2qDA}LI`VEMJ0P@ca!Xuy+r-LZT6avb1C@v_!LkU_8^G4reHH>}$N>3>Lpsa(k5y}=Q zFW3yD$3mG2Wj2)gP=15%EP|g)q0~Srd};9GhUefS>p0^A<7VR?o1x=bD78=q7Qn&J zU!f#+Hv6F8Llv`!)UWNGz{>N6)ED@a8(0-SEAO28K|j06>G`nV?`G%a9sSxH;d?xO z{iGl3JifEvlp?#wm@;PJI_Mf>iK&ligt3#U)YQw=($v7z)>LIFH{EUM2xYKog>fjX zu_H_qY@9)_*vEX_*x%gCJixr# zJlNddG}?T(ae}#zahf?~t1{P^tIgAmOU!M}o6NLfv$?Bjo4LPnw|Sy*pZR{H{kZwM z;k21EoHKVaR~e5QFPa+^RU1?0E9MuB*UXm;H_YWQ1|^o8=3VAn@TuP0<{l;=2oITK z=BRm(C2QVqykkCYwOAG!8(0>YOD*TkZ7nS=<(7`dj+QE0SIcNi56d}gFUv?{AItBC z{+0oj!Im@Tsm2|~L&lqS!wAbBbB%F|WrC%xQ8IKg1PwmJ0?X>6C6-OL8cUURwPl-S zo#nQ5gXM1Hc1z5#%c2-|Tf&BQ#w(VCmT8tFmZagh<+$mbrKRzr<+Ay*rBBf{%N5%V z%V|p|V^{Mnczzp7SK}E=$a2~gvrIFlENyLBOSScm#oo!*z?wFcSU)wETE8}KFm^Ds zw1!M=tz#|aR-dV(wZE~G)lziF(B0V8T3*z{I>6Y++S1nF+QT@&T5cR_?PeMQ&qiB2 z7LB#;vQDvXFi*3tHr80Dm{wc2Ti019ST|S~ST|d5nzmY}n73KKFz&VvHXgB_F`c%q zH=eg!|1n$yL6@yJEmz>1ajsb{rW@8W!%Zl+tT}_v+RYNOTFg=FCS%O%v!tvWOj&Ex za>wd2Sl||EiLHTcGbDOD+P0gw8oS!M*}5Bh*anz-**aPJ*cw2Dc+)u8w!}Ep*48+} zw$wPw%IbxW;NOu*ap~^*lyZtY>kZTY5)5 zzH`e~ZoX~nX7t&%nxnRNjQfm);f^f}U!b(fdeC^#T2gew)UxP~-PpD$X6sb6&(gK1 zhp}5xwXH`{M{}>Dbw&M)h8hPHbutVt8e259XiCwDB7=2wQ7`L+q9ewtqG?6dMGK0S z6!o{&6m7C>DC%I?RCEG9sC3$R&ge6aFkCa9G2VcWB;7O)H{3FgHQY8fHH3^MhV$?z z7^22c3^C(e!$o6T1AH}d@!o#R@A}F3z43zaN8=C1_lhnVKPaj+JYu-d(8F*A{>;ke zqJGXV_Vzn$F;`!I(mDKKzgA71RnC4jjT?M>n0e@{vh5E$Z(Z!S%jjHvso!Ho#!JrQ zY`=pI&Cb>}&dE3X@n&a_Tm5zwJFocrO(=18OY}Quv5fCm({N`f-S491^yy>moJTT{ z;WAb@&u9DfX;P$2xVv4yZ4dAK$JYOTQ}f|FD~tNSwexgQ|FPxCCswtqIJ&dlUivGO z+kc?lj*2twhAq8jTCluJyPcgH^zXBCT7&*KclIytzpm{1*7faX-QLme-1FbJ%cb6I z*Un{H@#v0bvnzy@BkmDE5{3+!YqUVGXz|Y=F|}aaWkU?h11?-f+Ru1)~?f zvB)C1%hP^$c_!#C&qmzkxum;1Z&gcFcexv2|DwCge}yVPhu!5OK)z{cXa67O@+sfXbME#>XHE6>_8wLOmhNEa}v~@0;u1CS&o7FT~_LGmo<{zWzhGs#xc)E}6V!%Cc$8i@*}1niMr%jHSi6Bu0X+F|rtq zh)Stf{IzMUJxCRU88MU<<-8bBI^~e zHdfjsOOj%3N<5bl(X9BRBA!vjvzqurp}}dth=j!NWzlJu#1kIzq*puzEn+1x@v<(` z8S$swi8mGTl8VpNM9N>{7cT@wLKZJZMA9Q-Uh%w7#OEOMo}2f^{H+U0v^Efb#G`5P zyNq}&D<0RxZxiC-qTfe zyGMM_E57d+KM081iV8-0OBdhHh#Pa_W=VX*BW?_en`H4#vn0L~6t_ggcXe@V)tIUW zXHA-28Wdl*MeJbvr73ZlE-ufBH9m1sP+S}qmo(Pu%(p%zzNU-zjJQGLH^jtO6XLp1 zNl08Ri)*4s*D2y!ueib|t_+H+ruUxVmlcRx z#9@*+*dspU6^As9wl7Sy>XbM)EzZk`^P^&wBF>75v*Y5N0K9)Qh_4vhF1j#b#rLb91=kt3c3a3@HoyWN@khj6X1@)NB7s|YV3vDrky3aTjJnH0 z@T&~-KMdaEgS!5(yDVUYmXVmdEV|;gm5vuz6-Qe_&0oN;egy%ypv7k1LtUbYGvuLc!sB-f|Veg()}*-&W@vA|vSHdNaT$lihXo1p2N z0O2h#oE?;G01&T3fo8=*3u&GaA&r5E3WY zLC0{=F#>dq1RbMbY@P=WR5s1)+TwG)3o52p_nA9t9Q4a3CjsD7Am?#V)E5Bsvq*M#S$8nt zgJ2V&ZDl<`%EPw0iS;N5?F|YagNA*eK~HG#2ngymz5fiyxS6KV;jHHBmvHqpl&W3o zoT40RRsgCFpyniN`d8_N`$S(N(Q(zLG!OFe^IKd}&U@bcfd}AxD`|sJ}r9d7& zgoYnM#gBmkY=>9xL&Xn(oorhUba!!$JFt%pz)D^RrEh@X)ewKm*8ss-3qb5`H`j zO@>01VF2|xs5Ts`4Fa))LF_Y7eaM_G)sC0uHjK6h-r+8P3@BnBsP;HC>jfGfg{Hls z$wN@J2S|PxMD~QCus>2%m~iEl@csc1-3_eP9qM&~_xC~DuF&@WQZUPd(;d&uaGag# zh*dfAvr5zssZy{A>`=<@1y!9uRcGk)T_C0-sJ|Qdox8jo6jXqa4j`}{40C(HTK50j zlyV?>_Htl(<&1=U*I=?!^F>lALYR@{tQ-xn}S26!HY8B zMOmeGJ9tA9B3BALLN9RJvKWMjI0Tsl#1RD?M1|m@forLy01-Aks|1k5(DZ;|itdK1)W4ozD??^+g!dn=!_66&@FW43|eY+JK$ z+=`QLt~4}TG-O5Dir%Y+_(h}a>a2;6nH2FURUD8KpDvZefs1-B9=L2oO{pe6X^M!w z6!B4eOzdq;h<#Gx<3N)7YGS{n*gqvcG55e+$Ao!~CG#Ci7dW;rG_;C#PS!D+hjU`j zy!c2`d{7r3%7{Ip;{A$P8519fi`^1p_drXzSQfj4#rq;+*MN9$Q0x>EJ4<2*k9e0? z?C2Bk_KWuvMN6V$i7GZuiS{OGv8h*V;1i1jV#A==s5By$HdI@tic?}cU2LBh%T%$o zCbo%*Z6&c;SZp2`sm6hU4QDXJ89Qn zIoIEcE3LXRnkyS~<$xr)QnKr0_yiMm>5|JH^Sj~!S0d<28a=LmBBH_K6~Sm`O|-;B zYeKXc?puLxl{F82B!#7*uczUJd?NttB zwIjKvX`--I5SC|!nw+pAFRV-mi<82Vl(1A6mccT{e;5@OsKUaSut*ZB{leUkFi#fd z1C6L3AmOo`&?hfEo)miN!lP-ScT{*t5qhY?!+l2=u zp|eNm;uY@m30?id{f*T&un7|e>B8WQ@Jv=1q6z~v;pwC>5PVAL9}%923QsD+Q`h`hB zVeIzY^xz2!A!oa|(Y=;wdkG+0WAf{-+?% zG|-xA{O>XTj}(7f=cNqq@$kPy`Ck?OmdgKTu(#3bw+ehN$LI6>pE{pT^O+2vg{=ag zO!BD|uWNiP#>eA)BGeN0puD2+s>*92J}mQ*Fdy|7`}tsi4+VKy;(Z?8@8tuAX3+}0 zsV)?!g@zfSQC29)3yq_KH73{+LQzU+03*Wf4GOJ|A;BaI=CELq_`f{--(LP7pJ3Rz z=Yjrh>=$!9nddL*Jf7w+WOzd3&&7B&&i|O;u_S-K&WQZkDF1`P*M|7-W!@R)&v^I~ zUjC$yKNa9l2YJNMEM5S@&q?#u8Gde-pO@$7$N8BFzADMjO7XJ+2>)`Be!!SKb+=|sQiA7|0c#Ci1P;%{Goc7jwruZ;r9jkuR{DD zng3eiKlkvvz5EwG{!71e-E6#U_G@!KvsXJd&vg*KQ_j{ zB=Mty{PQwDI?TTi<;PfLzLCn8Xnf-Y-z3F1HMG(?*KI=iPC34Fp6{abcc=M#GW@+7 zUmoKt;(UiBe^-j{SQoPSc45A~%9jQBHo*gQh;J+L&Fvn(g_m#X<6HUp*8dyFN7H=o z47D!DKbGhF#QBF4e9t8RNQ&=OaD;9VzI&8^P~jhn@jZNeS3iG$fUgYk5B&cy4$tx< za{R~?KUC+3rTOPnevrlwj`7dL`5{UE+4?y(Aj&_j@b-Zr{t20XGR!~aIn>+B_w^w+ z1AMI}!hnT~ALz9(lHTK~_58szxmJl{~~t!dtt;fo3`WJ>bp6mQYEe`35L z&Kv6nfV-n`f2rKxK`s~K@-p|Q#HBo(?&Z=xF5~C2^|rIa4xT%f?cu)ga$owmul(E|Lu;kp z$+=58j>>bFb&g1L7c(3Q(~diz?8l5aH~#QSMxjbB4GxGIv(u zPI|dhKJK)iLjv6QhL%cwz~_F=akui^Z%OW^&bc$(FA689+zpL$#kim2oLF%5t3i$n zao1#yk8sx|j`narc{#?%UGa0Qp;bXpx;V|nvRpjJC6b();xzr(T)V=_Di_wcNSuo% zIHev~Ai@QsTqwwSL!3|M{1W%Ohx^0J-S%;kpYs^nFUF0lCI!0%2S$W160VZGv2sh@ zlIK!j@f*~9&9bQQp{Y{XHoS6V=~dyQ(qDuRS5>X4UTajlBwgD77D$(3vRAt9eYz4@ zxJxa)kr*^TXOvpa{Vg1 zZdt*;E^or+(_MbaCHY;R(6MDk#T7`nf{Ps^mpEQnW@xF_yNOH8xo+lNZrybw?Q&&Y zKdW{Zr@5}hTztZHJ>?RDO@pqVLM}#jU5U6@#dTG3ksjA2uZ!}#E(ct+F>;JnT^E3O z5oy=O>hrhepT98QF=&Bf_Cm+|iyDENV%>#hUFY*ITy@pPT;~$d*}=_ct(06p8Y^As zsM2e$AAvr(&O}^i71s}TN%+z4`abA#HjEVpNcbir9LNa=W5V9Juum8EOTw2y;j56a zM;5-02#!XPmY_m7nc*hpgi{gWm?9ikg%hwm2uA|KQCav-5)OHUZ@t3dMruoN4&hu< zK=q>+RpG2A{16jrgT+C?DRUny!Wl_8ZTAR>Px!w2!MT0rmCC|yqa^H7g-?x1;j^^x z`K*drLuNlW$07+IdxY(NVMj>#L=$$FCWZH*@(0tW%$QwO1cXJ{5*6N6gsr;po+P~G z7v2sEn`Pl0qawVP5bV|hjE%amDJQ%s2^(bL^{DX1lB+*2Io@@t{fw~ehuzB!53Ir; ziuO(151r#ir@5IKZeF5WlIxt}`rc!%Wd0uc9Xh6RZ0U8@WaL<*i}@$Y9#q(~DtlF9 zz45)Aw>R{Q9VD|0BJ2lV=8mt6pS{mq*?aKd;UivbK6jCiZEdV%TMR3`%C;Kz zahPpoU)5)|+Z^TIk+@AB?oBWER>NqWx9-YtpXRvFqTCLZ z`y|Hgl(=mk?n5v4k&pX0$ZcP60bhzwt=V5QW`*OGl~$Mp+#H3gPI7Z4uFAvB@^Z5a zAtX^JYh;ESmE)dIaL*;V;VEu}!abvML+l#&Y>XQk=Z1xvhPVMT_jH&W7~uv*xxo_G z&%^cib58`gCxhHmke4e^KzL;5&T#j@9ONpJT!$2Qm&&!*xUx7`4(o&+B72)C*H+=$ z1-X_Xu9eKSmbg+6*9<0+pKBiAS}br3UFg`b$Z=`$zGh1d&D6r?gR>?%TZ$`6a}9E5 zH>#Xb<4iHm9Oo>6oV_Ene?{28qwGHlXYjCDFPrnRc|ZFnq;U#Fi9MZRku3Xtj&<7e z>=~6kp|Kyt*pmtN6p&%|Xqf#j${thL<6icVkNq~t9uBcb3PCJY*q*UWj=hp+*%W(O zXXy<4lgbh?_F|kR6YQlVOBE3O7-F$7dp^SAQTBqw{@`J2z3e&P*^dG&`X6avr5tPb zJ#@MU}lNvqG4?5n)}P14%E-`Ppj$ zmJhPm4J~2?0?j5fY%0s@IX0bVGci_;vs!|UCE2*nCJK;bnGHwSNR*9gtRk^K59{}` z0lSY4`q|KIeEr<>H|IL0%yS%=4<}OfgUIgBvESs`13K$SvwJh_J{Uyyt0cQ8#eS`^ zyJPGZarVo)6^s2;VLwyZ&x7nIA$F(C?g9eGe(Yzr2iP4FyUoLX=w&}Dtb%ougWZs0 zU(d5|=o3$e>(wnkzXdRT}g zi~a190K2r2QrN+=TXpum4Ew&qz7u1&B-nSs3)#1V?AuXxv&3%nu$z4Bo3kC`=Qv)j z{%`-n&dss&^6dN+YoD#NbJA=zY+%@#3AQT9&QjTF8aqA4&ZtK*HNw8Eu&)H!Ng;N! z%ubQmmptq^FFW4HPVlo6O@4NO!akj02O63w72u%kXq|l_!;ZT9^_R`o#V{Gqwpbtmbo>BIZAp2m5eMn||6o%jd zKie(9c9+<$9`=4OTM3!n`XOL$=NKu^c&nP89!NsQOS_`Hn&-z_iO zL}y`kmuA>zS+=>#Hq_WgF}5UubV#y|3-j686k!`g*mc6c(*gShZj!dl)DY$r_qHc9Qw0X~bSQ>|yUsvYm9cbC&HAVeeAejv9M+ zoV_Pd5@5@MYt);d+4hEtCHSkWheNQSpN-OUlC&*F-&#F-&DgbT zrT>vD>JMWj_50{jhWevaVN6z7Ss7cFDatVo{ES&)EGlC)`Rz<`h-s)Yjg}uz06Lwq)0r%t&C$6$ z9n$D{j84SqWP(nmXdOr`9SzcoOsip9Q|OpP2R(GiOUphw?58739M3FuELryNx6|x)`L%5PeCesR(^pqR)G2+(%!q`)Q&?Z3DSL zx;B9}OVa03G^)~PH2Q3e{sDMDjYR4171}8sSm~!v$@FQk$Bzn)RpVC|;GGsY1}=20 zU*x#FxDeWtO_TI@Df(ENKAxdZ7^RIEI}_%(ly|@^nxJ0Fhnnk(2Jw=5{a(% z&~v@?JRd#3e%}QP1N}~p-jb)^P0?@b^uP?gS*735=#6oDQ-XdoNxu~+L^awTr8g+_ z>j8RQh+Z$->DMHBwTE8gMV|H1YyI@Ag^f(zHkbY?NAJngUnl9^Df){v{Us1>`qMc5 zS%Ustp+8aSof^HX&h_b!BlPwty(36(3(+6S^hXlC)l&;2^`4J@-%o!~J#VgK^gPGs z^Bcg$26~1@&y3Mk33`@J&$dhS%O3ibAU!QaPlthk91%T8rw6C$XEO8(GUCRoXKbhg!F|(=MzTk(gVsz`o-j_0T8<}nvrkh9T77E=G(#Uk<0No@=Hx1FH5?$<} z8+z$RKDy+;oidfmQF@+A>r^~VB{EbJ7Eek`Qn6I+w;C0VQA(UrgZ2)Q77;2G?V?Z- zh!^tc=G6;gR5(caLsUSff*$I&my&#x$4_|!l&>&T3$xskqOCe@OVdR;x`9d?G};)W zO$pizeWd;jQFmnOuPF7mLjB{RGF~d{r*Z)*Z(aTP>dH0ibf%1CiWTPJB-1m+JR&g< zdYOkpOpkwacuaYQsmL-Na?D+MrbK1h#F(~mrd@(*pJd7a7}H#4T11$ZQKpr`w3e90 z9;S)i%QW>dr2(c{{oM$rGRZuUVY=m+?h13C%5>G3`@wUWdu66mnCTp4x=2h%FLSq_ zxyR6M$ycj8!Wc0-G<=@UoX#)=bg!4f*o{8srwqfC>dcjz$#6quc0F!NV=gBcT4F9n z7&6LSGJ6^O@ep%DVNPb4Q%#iiF#8!yXU^vsJkMNE@Oc_@F2%ojf9%fbbk!|N4h zU5Z(sVP2D%H6CVdh^dPZbxag>!!u_twY}J_e z>QYb4<_Pmnl-Uws-V8Etg_yS`W`l=$9s2)Z{8A4ysZq3$U}LIM%&Z(UJIYK~m>DWF(+=B4=4F|ACCp5dn8_Yy zil3P}y~hm4u$eF^Cc+_Pf!s2qGt3KFW=xKGG0%)unBgijLSsh8m{AGl`NGV4HpC2- znPFj~D8f7^F#|o!ATKl6$2=2YhL}CfOA%&Vlo=mmCM^7B;-WLN7aPi!oKLK|H(X*5 zQ?r#5ZzQNgN$Sj+%C&vH)EJYG`bD9B%~7{X73#N|88!V^IEJlsj9X=tshd&C{coC% zx|*T5EOjkM@pat4F5`}xH3qFeQQx`2BO7K%R zWXh#bkpDQrl=>(UE;zlhya*--g{G(dKpq^JWq>Y#+Y z5~21f)cz*P_CUQTBujmtqYmXMXOcRRqE716sWf#O?(k4YRq8v9I+mc0OVqbs>ad?W zGWUFJ!AA=QEL^?FF=;V$)c&p)OtVlT7wIxcuD^YKHsJFb-+x2&Qs4r5~mpb)T zmfE9HpT(%p6Vz^))6^$nYG;JnrBa_tcIsn4wLM7fnES~*$H4hbmBKYkYIT}glcm(mUhM2(A3<5ScG-A+w3CaFm}H5tZbikF%i zq+ZsjS9EF`T+_$gEgCldI)1b#Ak(vZTX+@b3sjFGYK5v)@b@1hzjZ$5HiWb?&~g7#yh zSK%WHNs#Gl9Ou?L{t99z3K{geY$4GnLp+`*`X-4-Q$%l_cntiTcqC5rN*w)NA$q99 z!y3`EjscutBE*AH;-Mh%K#1rj6WxJP!_6Av{s2)a5nVjQeO{s~oXXa-b>f9AF(ya6 zm?y^CQ^Y8pcs@;x2D(lRPY@%L#7LDGsu9Ct#B;$mkX#}LM~G*l#1MseHb^`jA_mID zAP`SH=_j5F5CbHlpNHu0C7$@#SBV)JVrG`8$`P~j#B7ClIYzvaAf}~oS|_H1uM!hO z#H27WIYLZ{5>xFS;w3LJ&bPn9PmB)`6aHnU#L6_WDnqQ!5^M6rT8&s5BbLR9VMI$;ABSj?p!aJu4j9m4=r8Zg+@#b3~^+ z(OD-trir^V#62;hEKZas2zy16=#V1rg6s>?IzqIG5^YtYokp~mh-N;bxu0keAX)~A zR{te7@ZWRzA9?(?j{lm*Z)Nb`z;3uZiT?r}RPmoRT#Vs2>$W+#5XEmOxGRKTlW{(b zU-#gQ7r)}i*#Leuh;xRvO82C_4V*;cnGBxI;<+52PvWT*uIqRjh8mB@@k9boD!8iR znuf>fh8mAV@MsiQf_Nx|%Q7B@vB3R)JP^Qx67KQfUN7z|aI?B4f@qQ>n&yep6wyd0 zO43AQjj+XtqBzkYK@=y6hMntV66OeDQ3z|0FoX!BOqeA6PY-^_i~r@r|Muhm?Cd_I ze}(;W4yW_@PdZMf@k<$;0z!jdNa92azo_9@3_l;o@w(G9{G5WLD*j^#KO4q>h~Tva zh~EcrXAnOl;io+KX)lfxx?i_<#Aj#mIXS#KkIzlvGj+Twjn66=by@}dZ?lVklEruC@LhTQ(-i)(j&D!nI|_ieCGZcE_(v-Ko`%04!#}8>1zV!{ zy9&NFgugB0o5T1!1-P61_?toeEeU_!gTLX$H~x2-5kHp0kLU3dI({ULAI;$3733aD z;NK?k!*&(_M#B%p@PqY&_eSx33cf#t?~(DZ!?*(|1pY+;|1yYwCE=fW@Xx*Y?s<-v z<~#N*a75sC!M{gU`13h@bRK^}$48{`kr{lHhCds_hsN@E;DZ(X85JKA zz@HA{14H;A3GZ+B;7@q*Cw=%+etbY-(^Hqr!5ioBCV9N6jyFu>jWT$Nid*BjErAy$ z@dhcpxE`x1iklVO62ktGaYGn4da%3~`_qTr@naD2{{DY(_vY|UdAzfZcTD4VXYhM8 zyex*7C-90SZtsx7@2X3Q;cXSXor<@Y@m68Hbp&rC;iVqDnHO*F$6EyOmW5PZ-4+Ue zJd5|u8U>1IHmSe_j$H_VS8dlr)&6-<(xCwhbER(~sc`TR0QaYw*u!6s0@i>-9U`Yj2 zRZP>cdVj?t5iAa4yUmr1-J*|*ueyLNWu20*nSQBrp^tpuOpZvitP~hvwn#1Tk_EQQYb?j0aqY98OBrqb0 zT~skl!_LPryly4IY9rXWD26K7k3sBA2s;y2G}beNJ)++16x6WpaqPh)_D~AzQI`_HDkInf3f3)v-512V%Gmu9 zc8>?U*Nb)XVV(V0mw)rIcCg3D95yPCJ+EWWrLo}|Y(xR^vq@}d3LB?1*g7_Ex*w_H}l7x-+ zU@v&FF+hdzKRg{F=Rm%tkzXcAGEJ4_s7@Z@BOh_jPq>0aEPCvXRp+m->b<&VjbqGO z#{r3WwYWeb?MF?;51;_fVa^r>cBZmpYVBC#ZosH7G|7 z&Qs4wRDTckgpYbsrk;vW1C|f0ag1N#*u2sdq8cky6YT(e8_K^yll0|Cf1V8Jq?9H- z8Pcngw>0v%IQe^${3Au)hI|<*2FaTt(j6gxQOI8<^18=P3SRPtk97ITpPOg}o=nEG zWFki<^JGdR)flNI$XN1d2cXzwI7~(&WKb5z4T)kvpoX{sng zHGo+}nUjppu8QV>4sqw{h|?kW+GBh}3#N*_J6iMXBi$U^SghZp{j|z#+ zbIh3U_-uhAys(b{73d%NMuyy&B{${CH*D141o@gmu2IRg8fkyE zzRxQo()US(gokj3)WCP7chHgL35H{Lzn8 z@(GQ6GC@9-BnK4c$m3zMZ~6#4I@}Pfkve<8*R- znzT=(rj9OE<~d@e{150N7z@)-{~#7jQwBZvCQ zVTIHjY~#u53^_MT&dZVW^W*}JtcsJf669>1oC7;%a$1<29wBEa!XlT3D&$POOzE+5&^Pu?9M?}!k*>V5OGT;ehU-!-y_5y67jQ#5WU1rAK~^BzgQ$9;v=F_LP-#+PH6uv zFr+m{+VW(PPMXrBIYU|sU=2yqm_k2PiN9jR-*MufI!7b&QQ}X9xDz5WGLa1vIT%zT zqr+_mLtpaWQ9()O_S|1WP6Ql5hGj1$yN!nb&70LcX&gV zDr7U2Y#tyR2gxQf*;FDMc*tTe+0aKe@{=WXE8@3>%f9~sCa&iQAy3@U2`)`s%Md&O zCaxq2Hbq=j2|7mnWRDX}J>pAIf>MafA%c*Ji(!H+AU+=;@E~zPB2W+UqnE%6EV1rN zEAc^&*p??gOcGmD#CsXyeU*4yBR0o~cjCmB1o3ViU}960cvB(X3J|Xci8sQ;Mu}MG zA=Z0|*L;NCPi!cRn7!^Wo!FltzR3{>5`-f~?A3{V3h{+Xe5ny%#fUv|;%kVX#I6wW zsZ4wpCO(f4yCvdd53$`#?C=qv_=%l`tG4liFB508#1DC*Htzg8K{!*ynJ95eAx^6V zq7mQ6oJ`&9CXR=R6A|KMfH)eo6W@i1V-j)DLmcuF-};Ede&WdNUw@r@-97hPcHZ&f z^G`ptz;Mqpyt`BZaR5E4q32SlqNC|FRwC6(p4xN}?JuKaSB_gbV%4(Mj=^gj�v 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