From 3d1766f49299f71e3eeb95d96702f68a264dff11 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Wed, 19 Oct 2016 17:24:31 -0700 Subject: [PATCH] deps: Intl: ICU 58 bump - small icu (BIG COMMIT) This commit contains the ICU 58.1 delta. It is especially large because of the ICU license change, and, because the line endings were off previously. * bump to ICU 58.1 - check in small ICU source * from 58.1 final http://site.icu-project.org/download/58 Fixes: https://github.com/nodejs/node/issues/7844 PR-URL: https://github.com/nodejs/node/pull/9234 Reviewed-By: James M Snell --- deps/icu-small/LICENSE | 94 +- deps/icu-small/README-SMALL-ICU.txt | 4 +- deps/icu-small/license.html | 18 - deps/icu-small/source/common/appendable.cpp | 2 + deps/icu-small/source/common/bmpset.cpp | 2 + deps/icu-small/source/common/bmpset.h | 2 + deps/icu-small/source/common/brkeng.cpp | 2 + deps/icu-small/source/common/brkeng.h | 2 + deps/icu-small/source/common/brkiter.cpp | 4 + deps/icu-small/source/common/bytestream.cpp | 2 + deps/icu-small/source/common/bytestrie.cpp | 2 + .../source/common/bytestriebuilder.cpp | 10 +- .../source/common/bytestrieiterator.cpp | 10 +- deps/icu-small/source/common/caniter.cpp | 2 + deps/icu-small/source/common/chariter.cpp | 2 + deps/icu-small/source/common/charstr.cpp | 4 +- deps/icu-small/source/common/charstr.h | 8 +- deps/icu-small/source/common/cmemory.c | 2 + deps/icu-small/source/common/cmemory.h | 12 +- deps/icu-small/source/common/common.rc | 2 + deps/icu-small/source/common/cpputils.h | 20 +- deps/icu-small/source/common/cstr.cpp | 24 +- deps/icu-small/source/common/cstr.h | 9 +- deps/icu-small/source/common/cstring.c | 2 + deps/icu-small/source/common/cstring.h | 2 + deps/icu-small/source/common/cwchar.c | 2 + deps/icu-small/source/common/cwchar.h | 2 + deps/icu-small/source/common/dictbe.cpp | 6 +- deps/icu-small/source/common/dictbe.h | 2 + .../source/common/dictionarydata.cpp | 2 + deps/icu-small/source/common/dictionarydata.h | 2 + deps/icu-small/source/common/dtintrv.cpp | 2 + deps/icu-small/source/common/errorcode.cpp | 2 + deps/icu-small/source/common/filteredbrk.cpp | 48 +- .../source/common/filterednormalizer2.cpp | 2 + deps/icu-small/source/common/hash.h | 2 + deps/icu-small/source/common/icudataver.c | 2 + deps/icu-small/source/common/icuplug.cpp | 2 + deps/icu-small/source/common/icuplugimp.h | 2 + .../icu-small/source/common/listformatter.cpp | 2 + .../source/common/loadednormalizer2impl.cpp | 2 + deps/icu-small/source/common/localsvc.h | 2 + deps/icu-small/source/common/locavailable.cpp | 2 + deps/icu-small/source/common/locbased.cpp | 2 + deps/icu-small/source/common/locbased.h | 2 + deps/icu-small/source/common/locdispnames.cpp | 4 +- deps/icu-small/source/common/locdspnm.cpp | 117 +- deps/icu-small/source/common/locid.cpp | 81 +- deps/icu-small/source/common/loclikely.cpp | 5 +- deps/icu-small/source/common/locmap.c | 64 +- deps/icu-small/source/common/locmap.h | 2 + deps/icu-small/source/common/locresdata.cpp | 2 + deps/icu-small/source/common/locutil.cpp | 2 + deps/icu-small/source/common/locutil.h | 2 + deps/icu-small/source/common/messageimpl.h | 2 + .../source/common/messagepattern.cpp | 4 +- deps/icu-small/source/common/msvcres.h | 2 + deps/icu-small/source/common/mutex.h | 2 + deps/icu-small/source/common/norm2_nfc_data.h | 1114 +-- deps/icu-small/source/common/norm2allmodes.h | 2 + deps/icu-small/source/common/normalizer2.cpp | 2 + .../source/common/normalizer2impl.cpp | 2 + .../icu-small/source/common/normalizer2impl.h | 2 + deps/icu-small/source/common/normlzr.cpp | 2 + deps/icu-small/source/common/parsepos.cpp | 2 + deps/icu-small/source/common/patternprops.cpp | 2 + deps/icu-small/source/common/patternprops.h | 2 + deps/icu-small/source/common/pluralmap.cpp | 2 + deps/icu-small/source/common/pluralmap.h | 2 + deps/icu-small/source/common/propname.cpp | 2 + deps/icu-small/source/common/propname.h | 2 + deps/icu-small/source/common/propname_data.h | 1768 ++--- deps/icu-small/source/common/propsvec.c | 12 +- deps/icu-small/source/common/propsvec.h | 2 + deps/icu-small/source/common/punycode.cpp | 2 + deps/icu-small/source/common/punycode.h | 2 + deps/icu-small/source/common/putil.cpp | 83 +- deps/icu-small/source/common/putilimp.h | 14 +- deps/icu-small/source/common/rbbi.cpp | 17 +- deps/icu-small/source/common/rbbicst.pl | 4 + deps/icu-small/source/common/rbbidata.cpp | 2 + deps/icu-small/source/common/rbbidata.h | 2 + deps/icu-small/source/common/rbbinode.cpp | 59 +- deps/icu-small/source/common/rbbinode.h | 6 +- deps/icu-small/source/common/rbbirb.cpp | 2 + deps/icu-small/source/common/rbbirb.h | 2 + deps/icu-small/source/common/rbbirpt.h | 2 + deps/icu-small/source/common/rbbiscan.cpp | 26 +- deps/icu-small/source/common/rbbiscan.h | 2 + deps/icu-small/source/common/rbbisetb.cpp | 4 +- deps/icu-small/source/common/rbbisetb.h | 2 + deps/icu-small/source/common/rbbistbl.cpp | 25 +- deps/icu-small/source/common/rbbitblb.cpp | 8 +- deps/icu-small/source/common/rbbitblb.h | 2 + deps/icu-small/source/common/resbund.cpp | 2 + deps/icu-small/source/common/resbund_cnv.cpp | 2 + deps/icu-small/source/common/resource.cpp | 46 +- deps/icu-small/source/common/resource.h | 257 +- deps/icu-small/source/common/ruleiter.cpp | 2 + deps/icu-small/source/common/ruleiter.h | 2 + deps/icu-small/source/common/schriter.cpp | 2 + deps/icu-small/source/common/serv.cpp | 2 + deps/icu-small/source/common/serv.h | 2 + deps/icu-small/source/common/servlk.cpp | 2 + deps/icu-small/source/common/servlkf.cpp | 2 + deps/icu-small/source/common/servloc.h | 2 + deps/icu-small/source/common/servls.cpp | 2 + deps/icu-small/source/common/servnotf.cpp | 2 + deps/icu-small/source/common/servnotf.h | 2 + deps/icu-small/source/common/servrbf.cpp | 2 + deps/icu-small/source/common/servslkf.cpp | 2 + deps/icu-small/source/common/sharedobject.cpp | 2 + deps/icu-small/source/common/sharedobject.h | 2 + .../source/common/simpleformatter.cpp | 2 + deps/icu-small/source/common/sprpimpl.h | 2 + deps/icu-small/source/common/stringpiece.cpp | 2 + .../source/common/stringtriebuilder.cpp | 2 + deps/icu-small/source/common/uarrsort.c | 12 +- deps/icu-small/source/common/uarrsort.h | 2 + deps/icu-small/source/common/uassert.h | 2 + deps/icu-small/source/common/ubidi.c | 6 +- deps/icu-small/source/common/ubidi_props.c | 2 + deps/icu-small/source/common/ubidi_props.h | 2 + .../source/common/ubidi_props_data.h | 1114 +-- deps/icu-small/source/common/ubidiimp.h | 2 + deps/icu-small/source/common/ubidiln.c | 2 + deps/icu-small/source/common/ubiditransform.c | 528 ++ deps/icu-small/source/common/ubidiwrt.c | 2 + deps/icu-small/source/common/ubrk.cpp | 2 + deps/icu-small/source/common/ubrkimpl.h | 2 + deps/icu-small/source/common/ucase.cpp | 26 +- deps/icu-small/source/common/ucase.h | 5 +- .../source/common/ucase_props_data.h | 1313 ++-- deps/icu-small/source/common/ucasemap.cpp | 291 +- .../common/ucasemap_titlecase_brkiter.cpp | 2 + deps/icu-small/source/common/ucat.c | 2 + deps/icu-small/source/common/uchar.c | 12 +- .../source/common/uchar_props_data.h | 5991 +++++++++-------- deps/icu-small/source/common/ucharstrie.cpp | 2 + .../source/common/ucharstriebuilder.cpp | 4 +- .../source/common/ucharstrieiterator.cpp | 2 + deps/icu-small/source/common/uchriter.cpp | 2 + deps/icu-small/source/common/ucln.h | 2 + deps/icu-small/source/common/ucln_cmn.cpp | 2 + deps/icu-small/source/common/ucln_cmn.h | 2 + deps/icu-small/source/common/ucln_imp.h | 2 + deps/icu-small/source/common/ucmndata.c | 2 + deps/icu-small/source/common/ucmndata.h | 2 + deps/icu-small/source/common/ucnv.c | 6 +- deps/icu-small/source/common/ucnv2022.cpp | 65 +- deps/icu-small/source/common/ucnv_bld.cpp | 2 + deps/icu-small/source/common/ucnv_bld.h | 2 + deps/icu-small/source/common/ucnv_cb.c | 2 + deps/icu-small/source/common/ucnv_cnv.c | 2 + deps/icu-small/source/common/ucnv_cnv.h | 2 + deps/icu-small/source/common/ucnv_ct.c | 2 + deps/icu-small/source/common/ucnv_err.c | 2 + deps/icu-small/source/common/ucnv_ext.cpp | 4 +- deps/icu-small/source/common/ucnv_ext.h | 2 + deps/icu-small/source/common/ucnv_imp.h | 2 + deps/icu-small/source/common/ucnv_io.cpp | 37 +- deps/icu-small/source/common/ucnv_io.h | 10 +- deps/icu-small/source/common/ucnv_lmb.c | 2 + deps/icu-small/source/common/ucnv_set.c | 2 + deps/icu-small/source/common/ucnv_u16.c | 22 +- deps/icu-small/source/common/ucnv_u32.c | 17 +- deps/icu-small/source/common/ucnv_u7.c | 7 +- deps/icu-small/source/common/ucnv_u8.c | 7 +- deps/icu-small/source/common/ucnvbocu.cpp | 10 +- deps/icu-small/source/common/ucnvdisp.c | 2 + deps/icu-small/source/common/ucnvhz.c | 2 + deps/icu-small/source/common/ucnvisci.c | 2 + deps/icu-small/source/common/ucnvlat1.c | 2 + deps/icu-small/source/common/ucnvmbcs.cpp | 53 +- deps/icu-small/source/common/ucnvmbcs.h | 2 + deps/icu-small/source/common/ucnvscsu.c | 2 + deps/icu-small/source/common/ucnvsel.cpp | 2 + deps/icu-small/source/common/ucol_data.h | 2 + deps/icu-small/source/common/ucol_swp.cpp | 2 + deps/icu-small/source/common/ucol_swp.h | 2 + deps/icu-small/source/common/ucurr.cpp | 11 +- deps/icu-small/source/common/ucurrimp.h | 2 + deps/icu-small/source/common/udata.cpp | 61 +- deps/icu-small/source/common/udatamem.c | 2 + deps/icu-small/source/common/udatamem.h | 2 + deps/icu-small/source/common/udataswp.c | 6 +- deps/icu-small/source/common/udataswp.h | 16 + deps/icu-small/source/common/uelement.h | 2 + deps/icu-small/source/common/uenum.c | 2 + deps/icu-small/source/common/uenumimp.h | 2 + deps/icu-small/source/common/uhash.c | 2 + deps/icu-small/source/common/uhash.h | 6 +- deps/icu-small/source/common/uhash_us.cpp | 2 + deps/icu-small/source/common/uidna.cpp | 14 +- deps/icu-small/source/common/uinit.cpp | 2 + deps/icu-small/source/common/uinvchar.c | 2 + deps/icu-small/source/common/uinvchar.h | 2 + deps/icu-small/source/common/uiter.cpp | 2 + deps/icu-small/source/common/ulist.c | 67 +- deps/icu-small/source/common/ulist.h | 6 +- .../source/common/ulistformatter.cpp | 2 + deps/icu-small/source/common/uloc.cpp | 105 +- deps/icu-small/source/common/uloc_keytype.cpp | 7 +- deps/icu-small/source/common/uloc_tag.c | 102 +- deps/icu-small/source/common/ulocimp.h | 2 + deps/icu-small/source/common/umapfile.c | 2 + deps/icu-small/source/common/umapfile.h | 2 + deps/icu-small/source/common/umath.c | 2 + deps/icu-small/source/common/umutex.cpp | 21 +- deps/icu-small/source/common/umutex.h | 20 +- deps/icu-small/source/common/unames.cpp | 2 + .../source/common/unicode/appendable.h | 2 + .../icu-small/source/common/unicode/brkiter.h | 7 + .../source/common/unicode/bytestream.h | 2 + .../source/common/unicode/bytestrie.h | 5 +- .../source/common/unicode/bytestriebuilder.h | 6 +- .../icu-small/source/common/unicode/caniter.h | 2 + .../source/common/unicode/chariter.h | 2 + deps/icu-small/source/common/unicode/dbbi.h | 2 + .../icu-small/source/common/unicode/docmain.h | 4 +- .../icu-small/source/common/unicode/dtintrv.h | 2 + .../icu-small/source/common/unicode/enumset.h | 2 + .../source/common/unicode/errorcode.h | 2 + .../source/common/unicode/filteredbrk.h | 22 +- .../source/common/unicode/icudataver.h | 2 + .../icu-small/source/common/unicode/icuplug.h | 14 +- deps/icu-small/source/common/unicode/idna.h | 10 +- .../source/common/unicode/listformatter.h | 2 + .../source/common/unicode/localpointer.h | 47 +- .../source/common/unicode/locdspnm.h | 2 + deps/icu-small/source/common/unicode/locid.h | 2 + .../source/common/unicode/messagepattern.h | 2 + .../source/common/unicode/normalizer2.h | 2 + .../icu-small/source/common/unicode/normlzr.h | 8 +- .../source/common/unicode/parseerr.h | 2 + .../source/common/unicode/parsepos.h | 2 + .../source/common/unicode/platform.h | 8 + deps/icu-small/source/common/unicode/ptypes.h | 2 + deps/icu-small/source/common/unicode/putil.h | 2 + deps/icu-small/source/common/unicode/rbbi.h | 74 +- deps/icu-small/source/common/unicode/rep.h | 2 + .../icu-small/source/common/unicode/resbund.h | 2 + .../source/common/unicode/schriter.h | 2 + .../source/common/unicode/simpleformatter.h | 2 + .../source/common/unicode/std_string.h | 2 + .../icu-small/source/common/unicode/strenum.h | 2 + .../source/common/unicode/stringpiece.h | 8 +- .../source/common/unicode/stringtriebuilder.h | 14 +- .../source/common/unicode/symtable.h | 2 + deps/icu-small/source/common/unicode/ubidi.h | 28 +- .../source/common/unicode/ubiditransform.h | 321 + deps/icu-small/source/common/unicode/ubrk.h | 31 +- .../source/common/unicode/ucasemap.h | 2 + deps/icu-small/source/common/unicode/ucat.h | 2 + deps/icu-small/source/common/unicode/uchar.h | 261 +- .../source/common/unicode/ucharstrie.h | 2 + .../source/common/unicode/ucharstriebuilder.h | 2 + .../source/common/unicode/uchriter.h | 2 + deps/icu-small/source/common/unicode/uclean.h | 2 + deps/icu-small/source/common/unicode/ucnv.h | 9 +- .../icu-small/source/common/unicode/ucnv_cb.h | 2 + .../source/common/unicode/ucnv_err.h | 2 + .../icu-small/source/common/unicode/ucnvsel.h | 2 + .../icu-small/source/common/unicode/uconfig.h | 2 + deps/icu-small/source/common/unicode/ucurr.h | 6 +- deps/icu-small/source/common/unicode/udata.h | 9 +- .../source/common/unicode/udisplaycontext.h | 36 +- deps/icu-small/source/common/unicode/uenum.h | 2 + deps/icu-small/source/common/unicode/uidna.h | 2 + deps/icu-small/source/common/unicode/uiter.h | 2 + .../source/common/unicode/uldnames.h | 2 + .../source/common/unicode/ulistformatter.h | 2 + deps/icu-small/source/common/unicode/uloc.h | 12 +- .../source/common/unicode/umachine.h | 25 + deps/icu-small/source/common/unicode/umisc.h | 2 + .../icu-small/source/common/unicode/unifilt.h | 2 + .../source/common/unicode/unifunct.h | 2 + .../source/common/unicode/unimatch.h | 2 + deps/icu-small/source/common/unicode/uniset.h | 4 +- deps/icu-small/source/common/unicode/unistr.h | 26 +- deps/icu-small/source/common/unicode/unorm.h | 8 +- deps/icu-small/source/common/unicode/unorm2.h | 2 + .../icu-small/source/common/unicode/uobject.h | 2 + .../icu-small/source/common/unicode/urename.h | 20 +- deps/icu-small/source/common/unicode/urep.h | 2 + deps/icu-small/source/common/unicode/ures.h | 8 +- .../icu-small/source/common/unicode/uscript.h | 52 +- deps/icu-small/source/common/unicode/uset.h | 6 +- .../source/common/unicode/usetiter.h | 2 + deps/icu-small/source/common/unicode/ushape.h | 2 + deps/icu-small/source/common/unicode/usprep.h | 2 + .../icu-small/source/common/unicode/ustring.h | 2 + .../source/common/unicode/ustringtrie.h | 2 + deps/icu-small/source/common/unicode/utext.h | 2 + deps/icu-small/source/common/unicode/utf.h | 2 + deps/icu-small/source/common/unicode/utf16.h | 2 + deps/icu-small/source/common/unicode/utf32.h | 2 + deps/icu-small/source/common/unicode/utf8.h | 2 + .../icu-small/source/common/unicode/utf_old.h | 2 + deps/icu-small/source/common/unicode/utrace.h | 20 + deps/icu-small/source/common/unicode/utypes.h | 168 +- .../icu-small/source/common/unicode/uvernum.h | 23 +- .../source/common/unicode/uversion.h | 2 + deps/icu-small/source/common/unifiedcache.cpp | 2 + deps/icu-small/source/common/unifiedcache.h | 4 +- deps/icu-small/source/common/unifilt.cpp | 2 + deps/icu-small/source/common/unifunct.cpp | 2 + deps/icu-small/source/common/uniset.cpp | 10 +- .../source/common/uniset_closure.cpp | 2 + deps/icu-small/source/common/uniset_props.cpp | 2 + deps/icu-small/source/common/unisetspan.cpp | 2 + deps/icu-small/source/common/unisetspan.h | 2 + deps/icu-small/source/common/unistr.cpp | 143 +- deps/icu-small/source/common/unistr_case.cpp | 2 + .../source/common/unistr_case_locale.cpp | 2 + deps/icu-small/source/common/unistr_cnv.cpp | 2 + deps/icu-small/source/common/unistr_props.cpp | 2 + .../common/unistr_titlecase_brkiter.cpp | 2 + deps/icu-small/source/common/unistrappender.h | 2 + deps/icu-small/source/common/unorm.cpp | 2 + deps/icu-small/source/common/unormcmp.cpp | 2 + deps/icu-small/source/common/unormimp.h | 2 + deps/icu-small/source/common/uobject.cpp | 2 + deps/icu-small/source/common/uposixdefs.h | 2 + deps/icu-small/source/common/uprops.cpp | 2 + deps/icu-small/source/common/uprops.h | 11 +- deps/icu-small/source/common/ures_cnv.c | 2 + deps/icu-small/source/common/uresbund.cpp | 82 +- deps/icu-small/source/common/uresdata.cpp | 347 +- deps/icu-small/source/common/uresdata.h | 32 +- deps/icu-small/source/common/uresimp.h | 12 +- deps/icu-small/source/common/ureslocs.h | 2 + deps/icu-small/source/common/usc_impl.c | 2 + deps/icu-small/source/common/usc_impl.h | 2 + deps/icu-small/source/common/uscript.c | 2 + .../icu-small/source/common/uscript_props.cpp | 26 +- deps/icu-small/source/common/uset.cpp | 2 + deps/icu-small/source/common/uset_imp.h | 2 + deps/icu-small/source/common/uset_props.cpp | 2 + deps/icu-small/source/common/usetiter.cpp | 2 + deps/icu-small/source/common/ushape.cpp | 22 +- deps/icu-small/source/common/usprep.cpp | 2 + deps/icu-small/source/common/ustack.cpp | 2 + deps/icu-small/source/common/ustr_cnv.cpp | 2 + deps/icu-small/source/common/ustr_cnv.h | 2 + deps/icu-small/source/common/ustr_imp.h | 40 + .../source/common/ustr_titlecase_brkiter.cpp | 2 + deps/icu-small/source/common/ustr_wcs.cpp | 16 +- deps/icu-small/source/common/ustrcase.cpp | 699 +- .../source/common/ustrcase_locale.cpp | 2 + deps/icu-small/source/common/ustrenum.cpp | 2 + deps/icu-small/source/common/ustrenum.h | 2 + deps/icu-small/source/common/ustrfmt.c | 2 + deps/icu-small/source/common/ustrfmt.h | 2 + deps/icu-small/source/common/ustring.cpp | 8 +- deps/icu-small/source/common/ustrtrns.cpp | 2 + deps/icu-small/source/common/utext.cpp | 2 + deps/icu-small/source/common/utf_impl.c | 2 + deps/icu-small/source/common/util.cpp | 2 + deps/icu-small/source/common/util.h | 2 + deps/icu-small/source/common/util_props.cpp | 2 + deps/icu-small/source/common/utrace.c | 2 + deps/icu-small/source/common/utracimp.h | 2 + deps/icu-small/source/common/utrie.cpp | 6 +- deps/icu-small/source/common/utrie.h | 2 + deps/icu-small/source/common/utrie2.cpp | 2 + deps/icu-small/source/common/utrie2.h | 2 + .../source/common/utrie2_builder.cpp | 12 +- deps/icu-small/source/common/utrie2_impl.h | 2 + deps/icu-small/source/common/uts46.cpp | 30 +- deps/icu-small/source/common/utypeinfo.h | 2 + deps/icu-small/source/common/utypes.c | 2 + deps/icu-small/source/common/uvector.cpp | 2 + deps/icu-small/source/common/uvector.h | 2 + deps/icu-small/source/common/uvectr32.cpp | 2 + deps/icu-small/source/common/uvectr32.h | 2 + deps/icu-small/source/common/uvectr64.cpp | 2 + deps/icu-small/source/common/uvectr64.h | 2 + deps/icu-small/source/common/wintz.c | 2 + deps/icu-small/source/common/wintz.h | 2 + deps/icu-small/source/data/in/icudt57l.dat | Bin 1933056 -> 0 bytes deps/icu-small/source/data/in/icudt58l.dat | Bin 0 -> 2680800 bytes .../source/i18n/affixpatternparser.cpp | 8 +- .../source/i18n/affixpatternparser.h | 2 + deps/icu-small/source/i18n/alphaindex.cpp | 2 + deps/icu-small/source/i18n/anytrans.cpp | 2 + deps/icu-small/source/i18n/anytrans.h | 2 + deps/icu-small/source/i18n/astro.cpp | 2 + deps/icu-small/source/i18n/astro.h | 2 + deps/icu-small/source/i18n/basictz.cpp | 2 + deps/icu-small/source/i18n/bocsu.cpp | 2 + deps/icu-small/source/i18n/bocsu.h | 2 + deps/icu-small/source/i18n/brktrans.cpp | 2 + deps/icu-small/source/i18n/brktrans.h | 2 + deps/icu-small/source/i18n/buddhcal.cpp | 2 + deps/icu-small/source/i18n/buddhcal.h | 2 + deps/icu-small/source/i18n/calendar.cpp | 33 +- deps/icu-small/source/i18n/casetrn.cpp | 2 + deps/icu-small/source/i18n/casetrn.h | 2 + deps/icu-small/source/i18n/cecal.cpp | 2 + deps/icu-small/source/i18n/cecal.h | 2 + deps/icu-small/source/i18n/chnsecal.cpp | 2 + deps/icu-small/source/i18n/chnsecal.h | 2 + deps/icu-small/source/i18n/choicfmt.cpp | 2 + deps/icu-small/source/i18n/coleitr.cpp | 2 + deps/icu-small/source/i18n/coll.cpp | 2 + deps/icu-small/source/i18n/collation.cpp | 2 + deps/icu-small/source/i18n/collation.h | 2 + .../source/i18n/collationbuilder.cpp | 2 + deps/icu-small/source/i18n/collationbuilder.h | 2 + .../source/i18n/collationcompare.cpp | 2 + deps/icu-small/source/i18n/collationcompare.h | 2 + deps/icu-small/source/i18n/collationdata.cpp | 2 + deps/icu-small/source/i18n/collationdata.h | 2 + .../source/i18n/collationdatabuilder.cpp | 2 + .../source/i18n/collationdatabuilder.h | 2 + .../source/i18n/collationdatareader.cpp | 2 + .../source/i18n/collationdatareader.h | 2 + .../source/i18n/collationdatawriter.cpp | 2 + .../source/i18n/collationdatawriter.h | 2 + .../source/i18n/collationfastlatin.cpp | 2 + .../source/i18n/collationfastlatin.h | 2 + .../source/i18n/collationfastlatinbuilder.cpp | 6 +- .../source/i18n/collationfastlatinbuilder.h | 2 + deps/icu-small/source/i18n/collationfcd.cpp | 106 +- deps/icu-small/source/i18n/collationfcd.h | 2 + .../source/i18n/collationiterator.cpp | 2 + .../icu-small/source/i18n/collationiterator.h | 2 + deps/icu-small/source/i18n/collationkeys.cpp | 2 + deps/icu-small/source/i18n/collationkeys.h | 2 + deps/icu-small/source/i18n/collationroot.cpp | 4 +- deps/icu-small/source/i18n/collationroot.h | 4 +- .../source/i18n/collationrootelements.cpp | 2 + .../source/i18n/collationrootelements.h | 2 + .../source/i18n/collationruleparser.cpp | 4 +- .../source/i18n/collationruleparser.h | 2 + deps/icu-small/source/i18n/collationsets.cpp | 2 + deps/icu-small/source/i18n/collationsets.h | 2 + .../source/i18n/collationsettings.cpp | 2 + .../icu-small/source/i18n/collationsettings.h | 2 + .../source/i18n/collationtailoring.cpp | 2 + .../source/i18n/collationtailoring.h | 2 + .../source/i18n/collationweights.cpp | 2 + deps/icu-small/source/i18n/collationweights.h | 2 + deps/icu-small/source/i18n/collunsafe.h | 2 + .../source/i18n/compactdecimalformat.cpp | 529 +- deps/icu-small/source/i18n/coptccal.cpp | 2 + deps/icu-small/source/i18n/coptccal.h | 2 + deps/icu-small/source/i18n/cpdtrans.cpp | 2 + deps/icu-small/source/i18n/cpdtrans.h | 2 + deps/icu-small/source/i18n/csdetect.cpp | 2 + deps/icu-small/source/i18n/csdetect.h | 2 + deps/icu-small/source/i18n/csmatch.cpp | 2 + deps/icu-small/source/i18n/csmatch.h | 2 + deps/icu-small/source/i18n/csr2022.cpp | 2 + deps/icu-small/source/i18n/csr2022.h | 2 + deps/icu-small/source/i18n/csrecog.cpp | 2 + deps/icu-small/source/i18n/csrecog.h | 2 + deps/icu-small/source/i18n/csrmbcs.cpp | 2 + deps/icu-small/source/i18n/csrmbcs.h | 2 + deps/icu-small/source/i18n/csrsbcs.cpp | 2 + deps/icu-small/source/i18n/csrsbcs.h | 2 + deps/icu-small/source/i18n/csrucode.cpp | 2 + deps/icu-small/source/i18n/csrucode.h | 2 + deps/icu-small/source/i18n/csrutf8.cpp | 2 + deps/icu-small/source/i18n/csrutf8.h | 2 + deps/icu-small/source/i18n/curramt.cpp | 2 + deps/icu-small/source/i18n/currfmt.cpp | 2 + deps/icu-small/source/i18n/currfmt.h | 2 + deps/icu-small/source/i18n/currpinf.cpp | 2 + deps/icu-small/source/i18n/currunit.cpp | 2 + deps/icu-small/source/i18n/dangical.cpp | 2 + deps/icu-small/source/i18n/dangical.h | 2 + deps/icu-small/source/i18n/datefmt.cpp | 4 +- deps/icu-small/source/i18n/dayperiodrules.cpp | 209 +- deps/icu-small/source/i18n/dayperiodrules.h | 4 +- deps/icu-small/source/i18n/dcfmtimp.h | 2 + deps/icu-small/source/i18n/dcfmtsym.cpp | 371 +- deps/icu-small/source/i18n/decContext.c | 2 + deps/icu-small/source/i18n/decContext.h | 2 + deps/icu-small/source/i18n/decNumber.c | 2 + deps/icu-small/source/i18n/decNumber.h | 2 + deps/icu-small/source/i18n/decNumberLocal.h | 2 + deps/icu-small/source/i18n/decfmtst.cpp | 2 + deps/icu-small/source/i18n/decfmtst.h | 2 + .../source/i18n/decimalformatpattern.cpp | 2 + .../source/i18n/decimalformatpattern.h | 6 +- .../source/i18n/decimalformatpatternimpl.h | 2 + deps/icu-small/source/i18n/decimfmt.cpp | 46 +- deps/icu-small/source/i18n/decimfmtimpl.cpp | 12 +- deps/icu-small/source/i18n/decimfmtimpl.h | 4 +- deps/icu-small/source/i18n/digitaffix.cpp | 2 + deps/icu-small/source/i18n/digitaffix.h | 2 + .../source/i18n/digitaffixesandpadding.cpp | 2 + .../source/i18n/digitaffixesandpadding.h | 2 + deps/icu-small/source/i18n/digitformatter.cpp | 2 + deps/icu-small/source/i18n/digitformatter.h | 2 + deps/icu-small/source/i18n/digitgrouping.cpp | 2 + deps/icu-small/source/i18n/digitgrouping.h | 2 + deps/icu-small/source/i18n/digitinterval.cpp | 2 + deps/icu-small/source/i18n/digitinterval.h | 2 + deps/icu-small/source/i18n/digitlst.cpp | 126 +- deps/icu-small/source/i18n/digitlst.h | 7 +- deps/icu-small/source/i18n/dt_impl.h | 92 + deps/icu-small/source/i18n/dtfmtsym.cpp | 1186 ++-- deps/icu-small/source/i18n/dtitv_impl.h | 2 + deps/icu-small/source/i18n/dtitvfmt.cpp | 47 +- deps/icu-small/source/i18n/dtitvinf.cpp | 237 +- deps/icu-small/source/i18n/dtptngen.cpp | 816 +-- deps/icu-small/source/i18n/dtptngen_impl.h | 53 +- deps/icu-small/source/i18n/dtrule.cpp | 2 + deps/icu-small/source/i18n/esctrn.cpp | 2 + deps/icu-small/source/i18n/esctrn.h | 2 + deps/icu-small/source/i18n/ethpccal.cpp | 2 + deps/icu-small/source/i18n/ethpccal.h | 2 + deps/icu-small/source/i18n/fmtable.cpp | 6 +- deps/icu-small/source/i18n/fmtable_cnv.cpp | 2 + deps/icu-small/source/i18n/fmtableimp.h | 2 + deps/icu-small/source/i18n/format.cpp | 2 + deps/icu-small/source/i18n/fphdlimp.cpp | 2 + deps/icu-small/source/i18n/fphdlimp.h | 2 + deps/icu-small/source/i18n/fpositer.cpp | 7 +- deps/icu-small/source/i18n/funcrepl.cpp | 2 + deps/icu-small/source/i18n/funcrepl.h | 2 + deps/icu-small/source/i18n/gender.cpp | 2 + deps/icu-small/source/i18n/gregocal.cpp | 2 + deps/icu-small/source/i18n/gregoimp.cpp | 171 +- deps/icu-small/source/i18n/gregoimp.h | 67 +- deps/icu-small/source/i18n/hebrwcal.cpp | 2 + deps/icu-small/source/i18n/hebrwcal.h | 2 + deps/icu-small/source/i18n/i18n.rc | 2 + .../icu-small/source/i18n/identifier_info.cpp | 310 - deps/icu-small/source/i18n/identifier_info.h | 189 - deps/icu-small/source/i18n/indiancal.cpp | 2 + deps/icu-small/source/i18n/indiancal.h | 2 + deps/icu-small/source/i18n/inputext.cpp | 2 + deps/icu-small/source/i18n/inputext.h | 2 + deps/icu-small/source/i18n/islamcal.cpp | 4 +- deps/icu-small/source/i18n/islamcal.h | 4 +- deps/icu-small/source/i18n/japancal.cpp | 2 + deps/icu-small/source/i18n/japancal.h | 2 + deps/icu-small/source/i18n/measfmt.cpp | 254 +- deps/icu-small/source/i18n/measunit.cpp | 301 +- deps/icu-small/source/i18n/measure.cpp | 2 + deps/icu-small/source/i18n/msgfmt.cpp | 2 + deps/icu-small/source/i18n/msgfmt_impl.h | 2 + deps/icu-small/source/i18n/name2uni.cpp | 2 + deps/icu-small/source/i18n/name2uni.h | 2 + deps/icu-small/source/i18n/nfrlist.h | 2 + deps/icu-small/source/i18n/nfrs.cpp | 2 + deps/icu-small/source/i18n/nfrs.h | 2 + deps/icu-small/source/i18n/nfrule.cpp | 2 + deps/icu-small/source/i18n/nfrule.h | 2 + deps/icu-small/source/i18n/nfsubs.cpp | 2 + deps/icu-small/source/i18n/nfsubs.h | 2 + deps/icu-small/source/i18n/nortrans.cpp | 2 + deps/icu-small/source/i18n/nortrans.h | 2 + deps/icu-small/source/i18n/nultrans.cpp | 2 + deps/icu-small/source/i18n/nultrans.h | 2 + deps/icu-small/source/i18n/numfmt.cpp | 10 +- deps/icu-small/source/i18n/numsys.cpp | 2 + deps/icu-small/source/i18n/numsys_impl.h | 2 + deps/icu-small/source/i18n/olsontz.cpp | 2 + deps/icu-small/source/i18n/olsontz.h | 2 + deps/icu-small/source/i18n/persncal.cpp | 2 + deps/icu-small/source/i18n/persncal.h | 2 + deps/icu-small/source/i18n/pluralaffix.cpp | 2 + deps/icu-small/source/i18n/pluralaffix.h | 2 + deps/icu-small/source/i18n/plurfmt.cpp | 6 +- deps/icu-small/source/i18n/plurrule.cpp | 2 + deps/icu-small/source/i18n/plurrule_impl.h | 2 + deps/icu-small/source/i18n/precision.cpp | 2 + deps/icu-small/source/i18n/precision.h | 2 + deps/icu-small/source/i18n/quant.cpp | 2 + deps/icu-small/source/i18n/quant.h | 2 + .../source/i18n/quantityformatter.cpp | 2 + .../icu-small/source/i18n/quantityformatter.h | 2 + deps/icu-small/source/i18n/rbnf.cpp | 2 + deps/icu-small/source/i18n/rbt.cpp | 2 + deps/icu-small/source/i18n/rbt.h | 2 + deps/icu-small/source/i18n/rbt_data.cpp | 2 + deps/icu-small/source/i18n/rbt_data.h | 2 + deps/icu-small/source/i18n/rbt_pars.cpp | 2 + deps/icu-small/source/i18n/rbt_pars.h | 2 + deps/icu-small/source/i18n/rbt_rule.cpp | 4 +- deps/icu-small/source/i18n/rbt_rule.h | 2 + deps/icu-small/source/i18n/rbt_set.cpp | 2 + deps/icu-small/source/i18n/rbt_set.h | 2 + deps/icu-small/source/i18n/rbtz.cpp | 2 + deps/icu-small/source/i18n/regexcmp.cpp | 8 +- deps/icu-small/source/i18n/regexcmp.h | 2 + deps/icu-small/source/i18n/regexcst.h | 2 + deps/icu-small/source/i18n/regexcst.pl | 2 + deps/icu-small/source/i18n/regeximp.cpp | 2 + deps/icu-small/source/i18n/regeximp.h | 2 + deps/icu-small/source/i18n/regexst.cpp | 2 + deps/icu-small/source/i18n/regexst.h | 2 + deps/icu-small/source/i18n/regextxt.cpp | 2 + deps/icu-small/source/i18n/regextxt.h | 2 + deps/icu-small/source/i18n/region.cpp | 13 +- deps/icu-small/source/i18n/region_impl.h | 2 + deps/icu-small/source/i18n/reldatefmt.cpp | 371 +- deps/icu-small/source/i18n/reldtfmt.cpp | 199 +- deps/icu-small/source/i18n/reldtfmt.h | 9 +- deps/icu-small/source/i18n/rematch.cpp | 2 + deps/icu-small/source/i18n/remtrans.cpp | 2 + deps/icu-small/source/i18n/remtrans.h | 2 + deps/icu-small/source/i18n/repattrn.cpp | 2 + .../source/i18n/rulebasedcollator.cpp | 4 +- .../source/i18n/scientificnumberformatter.cpp | 2 + deps/icu-small/source/i18n/scriptset.cpp | 46 + deps/icu-small/source/i18n/scriptset.h | 8 + deps/icu-small/source/i18n/search.cpp | 2 + deps/icu-small/source/i18n/selfmt.cpp | 2 + deps/icu-small/source/i18n/selfmtimpl.h | 2 + .../source/i18n/sharedbreakiterator.cpp | 2 + .../source/i18n/sharedbreakiterator.h | 2 + deps/icu-small/source/i18n/sharedcalendar.h | 2 + .../source/i18n/shareddateformatsymbols.h | 2 + .../source/i18n/sharednumberformat.h | 2 + .../icu-small/source/i18n/sharedpluralrules.h | 2 + .../source/i18n/significantdigitinterval.h | 2 + deps/icu-small/source/i18n/simpletz.cpp | 2 + .../source/i18n/smallintformatter.cpp | 2 + .../icu-small/source/i18n/smallintformatter.h | 2 + deps/icu-small/source/i18n/smpdtfmt.cpp | 101 +- deps/icu-small/source/i18n/smpdtfst.cpp | 2 + deps/icu-small/source/i18n/smpdtfst.h | 2 + deps/icu-small/source/i18n/sortkey.cpp | 2 + deps/icu-small/source/i18n/standardplural.cpp | 2 + deps/icu-small/source/i18n/standardplural.h | 2 + deps/icu-small/source/i18n/strmatch.cpp | 2 + deps/icu-small/source/i18n/strmatch.h | 2 + deps/icu-small/source/i18n/strrepl.cpp | 2 + deps/icu-small/source/i18n/strrepl.h | 2 + deps/icu-small/source/i18n/stsearch.cpp | 2 + deps/icu-small/source/i18n/taiwncal.cpp | 2 + deps/icu-small/source/i18n/taiwncal.h | 2 + deps/icu-small/source/i18n/timezone.cpp | 6 +- deps/icu-small/source/i18n/titletrn.cpp | 2 + deps/icu-small/source/i18n/titletrn.h | 2 + deps/icu-small/source/i18n/tmunit.cpp | 2 + deps/icu-small/source/i18n/tmutamt.cpp | 2 + deps/icu-small/source/i18n/tmutfmt.cpp | 201 +- deps/icu-small/source/i18n/tolowtrn.cpp | 2 + deps/icu-small/source/i18n/tolowtrn.h | 2 + deps/icu-small/source/i18n/toupptrn.cpp | 2 + deps/icu-small/source/i18n/toupptrn.h | 2 + deps/icu-small/source/i18n/translit.cpp | 2 + deps/icu-small/source/i18n/transreg.cpp | 2 + deps/icu-small/source/i18n/transreg.h | 2 + deps/icu-small/source/i18n/tridpars.cpp | 4 +- deps/icu-small/source/i18n/tridpars.h | 4 +- deps/icu-small/source/i18n/tzfmt.cpp | 2 + deps/icu-small/source/i18n/tzgnames.cpp | 2 + deps/icu-small/source/i18n/tzgnames.h | 2 + deps/icu-small/source/i18n/tznames.cpp | 38 + deps/icu-small/source/i18n/tznames_impl.cpp | 1029 +-- deps/icu-small/source/i18n/tznames_impl.h | 25 +- deps/icu-small/source/i18n/tzrule.cpp | 2 + deps/icu-small/source/i18n/tztrans.cpp | 2 + deps/icu-small/source/i18n/ucal.cpp | 2 + deps/icu-small/source/i18n/ucln_in.cpp | 4 +- deps/icu-small/source/i18n/ucln_in.h | 5 +- deps/icu-small/source/i18n/ucol.cpp | 2 + deps/icu-small/source/i18n/ucol_imp.h | 4 +- deps/icu-small/source/i18n/ucol_res.cpp | 178 +- deps/icu-small/source/i18n/ucol_sit.cpp | 2 + deps/icu-small/source/i18n/ucoleitr.cpp | 6 +- deps/icu-small/source/i18n/ucsdet.cpp | 2 + deps/icu-small/source/i18n/udat.cpp | 2 + .../source/i18n/udateintervalformat.cpp | 2 + deps/icu-small/source/i18n/udatpg.cpp | 2 + deps/icu-small/source/i18n/ufieldpositer.cpp | 2 + .../source/i18n/uitercollationiterator.cpp | 2 + .../source/i18n/uitercollationiterator.h | 2 + deps/icu-small/source/i18n/ulocdata.c | 2 + deps/icu-small/source/i18n/umsg.cpp | 4 +- deps/icu-small/source/i18n/umsg_imp.h | 2 + deps/icu-small/source/i18n/unesctrn.cpp | 4 +- deps/icu-small/source/i18n/unesctrn.h | 2 + deps/icu-small/source/i18n/uni2name.cpp | 2 + deps/icu-small/source/i18n/uni2name.h | 2 + .../source/i18n/unicode/alphaindex.h | 2 + deps/icu-small/source/i18n/unicode/basictz.h | 2 + deps/icu-small/source/i18n/unicode/calendar.h | 2 + deps/icu-small/source/i18n/unicode/choicfmt.h | 2 + deps/icu-small/source/i18n/unicode/coleitr.h | 2 + deps/icu-small/source/i18n/unicode/coll.h | 2 + .../i18n/unicode/compactdecimalformat.h | 7 +- deps/icu-small/source/i18n/unicode/curramt.h | 2 + deps/icu-small/source/i18n/unicode/currpinf.h | 2 + deps/icu-small/source/i18n/unicode/currunit.h | 2 + deps/icu-small/source/i18n/unicode/datefmt.h | 2 + deps/icu-small/source/i18n/unicode/dcfmtsym.h | 2 + deps/icu-small/source/i18n/unicode/decimfmt.h | 14 +- deps/icu-small/source/i18n/unicode/dtfmtsym.h | 40 +- deps/icu-small/source/i18n/unicode/dtitvfmt.h | 2 + deps/icu-small/source/i18n/unicode/dtitvinf.h | 11 +- deps/icu-small/source/i18n/unicode/dtptngen.h | 22 +- deps/icu-small/source/i18n/unicode/dtrule.h | 2 + deps/icu-small/source/i18n/unicode/fieldpos.h | 7 +- deps/icu-small/source/i18n/unicode/fmtable.h | 6 +- deps/icu-small/source/i18n/unicode/format.h | 2 + deps/icu-small/source/i18n/unicode/fpositer.h | 2 + deps/icu-small/source/i18n/unicode/gender.h | 2 + deps/icu-small/source/i18n/unicode/gregocal.h | 2 + deps/icu-small/source/i18n/unicode/measfmt.h | 23 +- deps/icu-small/source/i18n/unicode/measunit.h | 74 +- deps/icu-small/source/i18n/unicode/measure.h | 2 + deps/icu-small/source/i18n/unicode/msgfmt.h | 2 + deps/icu-small/source/i18n/unicode/numfmt.h | 14 +- deps/icu-small/source/i18n/unicode/numsys.h | 2 + deps/icu-small/source/i18n/unicode/plurfmt.h | 2 + deps/icu-small/source/i18n/unicode/plurrule.h | 2 + deps/icu-small/source/i18n/unicode/rbnf.h | 8 + deps/icu-small/source/i18n/unicode/rbtz.h | 2 + deps/icu-small/source/i18n/unicode/regex.h | 2 + deps/icu-small/source/i18n/unicode/region.h | 4 +- .../source/i18n/unicode/reldatefmt.h | 28 +- .../i18n/unicode/scientificnumberformatter.h | 2 + deps/icu-small/source/i18n/unicode/search.h | 2 + deps/icu-small/source/i18n/unicode/selfmt.h | 2 + deps/icu-small/source/i18n/unicode/simpletz.h | 2 + deps/icu-small/source/i18n/unicode/smpdtfmt.h | 10 +- deps/icu-small/source/i18n/unicode/sortkey.h | 2 + deps/icu-small/source/i18n/unicode/stsearch.h | 2 + deps/icu-small/source/i18n/unicode/tblcoll.h | 4 +- deps/icu-small/source/i18n/unicode/timezone.h | 2 + deps/icu-small/source/i18n/unicode/tmunit.h | 8 + deps/icu-small/source/i18n/unicode/tmutamt.h | 2 + deps/icu-small/source/i18n/unicode/tmutfmt.h | 5 + deps/icu-small/source/i18n/unicode/translit.h | 2 + deps/icu-small/source/i18n/unicode/tzfmt.h | 2 + deps/icu-small/source/i18n/unicode/tznames.h | 18 +- deps/icu-small/source/i18n/unicode/tzrule.h | 2 + deps/icu-small/source/i18n/unicode/tztrans.h | 2 + deps/icu-small/source/i18n/unicode/ucal.h | 12 +- deps/icu-small/source/i18n/unicode/ucol.h | 39 +- deps/icu-small/source/i18n/unicode/ucoleitr.h | 2 + deps/icu-small/source/i18n/unicode/ucsdet.h | 2 + deps/icu-small/source/i18n/unicode/udat.h | 24 +- .../source/i18n/unicode/udateintervalformat.h | 2 + deps/icu-small/source/i18n/unicode/udatpg.h | 17 +- .../source/i18n/unicode/ufieldpositer.h | 6 +- .../source/i18n/unicode/uformattable.h | 10 +- deps/icu-small/source/i18n/unicode/ugender.h | 2 + deps/icu-small/source/i18n/unicode/ulocdata.h | 22 +- deps/icu-small/source/i18n/unicode/umsg.h | 2 + deps/icu-small/source/i18n/unicode/unirepl.h | 2 + deps/icu-small/source/i18n/unicode/unum.h | 38 +- deps/icu-small/source/i18n/unicode/unumsys.h | 2 + .../source/i18n/unicode/upluralrules.h | 8 +- deps/icu-small/source/i18n/unicode/uregex.h | 2 + deps/icu-small/source/i18n/unicode/uregion.h | 8 +- .../source/i18n/unicode/ureldatefmt.h | 20 +- deps/icu-small/source/i18n/unicode/usearch.h | 14 +- deps/icu-small/source/i18n/unicode/uspoof.h | 1135 +++- deps/icu-small/source/i18n/unicode/utmscale.h | 2 + deps/icu-small/source/i18n/unicode/utrans.h | 2 + deps/icu-small/source/i18n/unicode/vtzone.h | 2 + deps/icu-small/source/i18n/unum.cpp | 2 + deps/icu-small/source/i18n/unumsys.cpp | 2 + deps/icu-small/source/i18n/upluralrules.cpp | 2 + deps/icu-small/source/i18n/uregex.cpp | 2 + deps/icu-small/source/i18n/uregexc.cpp | 2 + deps/icu-small/source/i18n/uregion.cpp | 2 + deps/icu-small/source/i18n/usearch.cpp | 8 +- deps/icu-small/source/i18n/uspoof.cpp | 538 +- deps/icu-small/source/i18n/uspoof_build.cpp | 6 +- deps/icu-small/source/i18n/uspoof_conf.cpp | 254 +- deps/icu-small/source/i18n/uspoof_conf.h | 14 +- deps/icu-small/source/i18n/uspoof_impl.cpp | 624 +- deps/icu-small/source/i18n/uspoof_impl.h | 215 +- deps/icu-small/source/i18n/uspoof_wsconf.cpp | 435 -- deps/icu-small/source/i18n/uspoof_wsconf.h | 70 - deps/icu-small/source/i18n/usrchimp.h | 2 + .../source/i18n/utf16collationiterator.cpp | 2 + .../source/i18n/utf16collationiterator.h | 2 + .../source/i18n/utf8collationiterator.cpp | 2 + .../source/i18n/utf8collationiterator.h | 2 + deps/icu-small/source/i18n/utmscale.c | 2 + deps/icu-small/source/i18n/utrans.cpp | 2 + deps/icu-small/source/i18n/valueformatter.cpp | 2 + deps/icu-small/source/i18n/valueformatter.h | 2 + deps/icu-small/source/i18n/visibledigits.cpp | 23 +- deps/icu-small/source/i18n/visibledigits.h | 2 + deps/icu-small/source/i18n/vtzone.cpp | 2 + deps/icu-small/source/i18n/vzone.cpp | 2 + deps/icu-small/source/i18n/vzone.h | 2 + deps/icu-small/source/i18n/windtfmt.cpp | 18 +- deps/icu-small/source/i18n/windtfmt.h | 2 + deps/icu-small/source/i18n/winnmfmt.cpp | 22 +- deps/icu-small/source/i18n/winnmfmt.h | 2 + deps/icu-small/source/i18n/wintzimpl.cpp | 2 + deps/icu-small/source/i18n/wintzimpl.h | 2 + deps/icu-small/source/i18n/zonemeta.cpp | 2 + deps/icu-small/source/i18n/zonemeta.h | 2 + deps/icu-small/source/i18n/zrule.cpp | 2 + deps/icu-small/source/i18n/zrule.h | 2 + deps/icu-small/source/i18n/ztrans.cpp | 2 + deps/icu-small/source/i18n/ztrans.h | 2 + deps/icu-small/source/io/io.rc | 2 + deps/icu-small/source/io/locbund.cpp | 2 + deps/icu-small/source/io/locbund.h | 2 + deps/icu-small/source/io/sprintf.c | 4 +- deps/icu-small/source/io/sscanf.c | 4 +- deps/icu-small/source/io/ucln_io.cpp | 4 +- deps/icu-small/source/io/ucln_io.h | 2 + deps/icu-small/source/io/ufile.c | 2 + deps/icu-small/source/io/ufile.h | 2 + deps/icu-small/source/io/ufmt_cmn.c | 2 + deps/icu-small/source/io/ufmt_cmn.h | 2 + deps/icu-small/source/io/unicode/ustdio.h | 2 + deps/icu-small/source/io/unicode/ustream.h | 2 + deps/icu-small/source/io/uprintf.cpp | 2 + deps/icu-small/source/io/uprintf.h | 2 + deps/icu-small/source/io/uprntf_p.c | 2 + deps/icu-small/source/io/uscanf.c | 2 + deps/icu-small/source/io/uscanf.h | 2 + deps/icu-small/source/io/uscanf_p.c | 2 + deps/icu-small/source/io/ustdio.c | 4 +- deps/icu-small/source/io/ustream.cpp | 2 + deps/icu-small/source/stubdata/stubdata.c | 2 + .../source/tools/genccode/genccode.c | 2 + deps/icu-small/source/tools/gencmn/gencmn.c | 2 + deps/icu-small/source/tools/genrb/derb.cpp | 2 + deps/icu-small/source/tools/genrb/errmsg.c | 2 + deps/icu-small/source/tools/genrb/errmsg.h | 2 + deps/icu-small/source/tools/genrb/genrb.cpp | 2 + deps/icu-small/source/tools/genrb/genrb.h | 2 + deps/icu-small/source/tools/genrb/parse.cpp | 2 + deps/icu-small/source/tools/genrb/parse.h | 2 + .../icu-small/source/tools/genrb/prscmnts.cpp | 2 + deps/icu-small/source/tools/genrb/prscmnts.h | 2 + deps/icu-small/source/tools/genrb/rbutil.c | 2 + deps/icu-small/source/tools/genrb/rbutil.h | 2 + deps/icu-small/source/tools/genrb/read.c | 2 + deps/icu-small/source/tools/genrb/read.h | 2 + deps/icu-small/source/tools/genrb/reslist.cpp | 2 + deps/icu-small/source/tools/genrb/reslist.h | 2 + deps/icu-small/source/tools/genrb/rle.c | 2 + deps/icu-small/source/tools/genrb/rle.h | 2 + deps/icu-small/source/tools/genrb/ustr.c | 4 +- deps/icu-small/source/tools/genrb/ustr.h | 2 + deps/icu-small/source/tools/genrb/wrtjava.cpp | 2 + deps/icu-small/source/tools/genrb/wrtxml.cpp | 2 + deps/icu-small/source/tools/icupkg/icupkg.cpp | 2 + .../source/tools/pkgdata/pkgdata.cpp | 2 + .../icu-small/source/tools/pkgdata/pkgtypes.c | 2 + .../icu-small/source/tools/pkgdata/pkgtypes.h | 2 + .../source/tools/toolutil/collationinfo.cpp | 2 + .../source/tools/toolutil/collationinfo.h | 2 + .../source/tools/toolutil/dbgutil.cpp | 2 + .../icu-small/source/tools/toolutil/dbgutil.h | 2 + .../source/tools/toolutil/denseranges.cpp | 2 + .../source/tools/toolutil/denseranges.h | 2 + .../source/tools/toolutil/filestrm.c | 2 + .../source/tools/toolutil/filestrm.h | 2 + .../source/tools/toolutil/filetools.cpp | 26 +- .../source/tools/toolutil/filetools.h | 2 + .../source/tools/toolutil/flagparser.c | 4 +- .../source/tools/toolutil/flagparser.h | 2 + .../source/tools/toolutil/package.cpp | 4 +- .../icu-small/source/tools/toolutil/package.h | 2 + .../source/tools/toolutil/pkg_genc.c | 2 + .../source/tools/toolutil/pkg_genc.h | 2 + .../source/tools/toolutil/pkg_gencmn.c | 2 + .../source/tools/toolutil/pkg_gencmn.h | 2 + .../source/tools/toolutil/pkg_icu.cpp | 2 + .../icu-small/source/tools/toolutil/pkg_icu.h | 2 + .../icu-small/source/tools/toolutil/pkg_imp.h | 2 + .../source/tools/toolutil/pkgitems.cpp | 2 + .../icu-small/source/tools/toolutil/ppucd.cpp | 2 + deps/icu-small/source/tools/toolutil/ppucd.h | 2 + .../source/tools/toolutil/swapimpl.cpp | 4 +- .../source/tools/toolutil/swapimpl.h | 2 + .../source/tools/toolutil/toolutil.cpp | 4 +- .../source/tools/toolutil/toolutil.h | 2 + .../icu-small/source/tools/toolutil/ucbuf.cpp | 2 + deps/icu-small/source/tools/toolutil/ucbuf.h | 2 + .../source/tools/toolutil/ucln_tu.cpp | 2 + deps/icu-small/source/tools/toolutil/ucm.c | 6 +- deps/icu-small/source/tools/toolutil/ucm.h | 2 + .../source/tools/toolutil/ucmstate.c | 2 + .../source/tools/toolutil/udbgutil.cpp | 8 +- .../source/tools/toolutil/udbgutil.h | 2 + .../source/tools/toolutil/unewdata.c | 6 +- .../source/tools/toolutil/unewdata.h | 2 + .../source/tools/toolutil/uoptions.c | 2 + .../source/tools/toolutil/uoptions.h | 2 + deps/icu-small/source/tools/toolutil/uparse.c | 2 + deps/icu-small/source/tools/toolutil/uparse.h | 2 + .../source/tools/toolutil/writesrc.c | 34 +- .../source/tools/toolutil/writesrc.h | 2 + .../source/tools/toolutil/xmlparser.cpp | 2 + .../source/tools/toolutil/xmlparser.h | 2 + 897 files changed, 17113 insertions(+), 12491 deletions(-) delete mode 100644 deps/icu-small/license.html mode change 100644 => 100755 deps/icu-small/source/common/rbbicst.pl create mode 100644 deps/icu-small/source/common/ubiditransform.c create mode 100644 deps/icu-small/source/common/unicode/ubiditransform.h delete mode 100644 deps/icu-small/source/data/in/icudt57l.dat create mode 100644 deps/icu-small/source/data/in/icudt58l.dat create mode 100644 deps/icu-small/source/i18n/dt_impl.h delete mode 100644 deps/icu-small/source/i18n/identifier_info.cpp delete mode 100644 deps/icu-small/source/i18n/identifier_info.h mode change 100644 => 100755 deps/icu-small/source/i18n/regexcst.pl mode change 100644 => 100755 deps/icu-small/source/i18n/unicode/selfmt.h delete mode 100644 deps/icu-small/source/i18n/uspoof_wsconf.cpp delete mode 100644 deps/icu-small/source/i18n/uspoof_wsconf.h diff --git a/deps/icu-small/LICENSE b/deps/icu-small/LICENSE index 81662a05a769c3..90be7cdf052615 100644 --- a/deps/icu-small/LICENSE +++ b/deps/icu-small/LICENSE @@ -1,9 +1,50 @@ -ICU License - ICU 1.8.1 and later +COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later) + +Copyright © 1991-2016 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +--------------------- + +Third-Party Software Licenses + +This section contains third-party software notices and/or additional +terms for licensed third-party software components included within ICU +libraries. + +1. ICU License - ICU 1.8.1 to ICU 57.1 COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1995-2016 International Business Machines Corporation and others - All rights reserved. Permission is hereby granted, free of charge, to any person obtaining @@ -31,58 +72,9 @@ shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. - All trademarks and registered trademarks mentioned herein are the property of their respective owners. ---------------------- - -Third-Party Software Licenses - -This section contains third-party software notices and/or additional -terms for licensed third-party software components included within ICU -libraries. - -1. Unicode Data Files and Software - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2016 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in -http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, -(b) this copyright and permission notice appear in associated -documentation, and -(c) there is clear notice in each modified Data File or in the Software -as well as in the documentation associated with the Data File(s) or -Software that the data or software has been modified. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - 2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt) # The Google Chrome software developed by Google is licensed under diff --git a/deps/icu-small/README-SMALL-ICU.txt b/deps/icu-small/README-SMALL-ICU.txt index 3f614659fbf9dd..7b45134f658c39 100644 --- a/deps/icu-small/README-SMALL-ICU.txt +++ b/deps/icu-small/README-SMALL-ICU.txt @@ -1,8 +1,8 @@ Small ICU sources - auto generated by shrink-icu-src.py This directory contains the ICU subset used by --with-intl=small-icu (the default) -It is a strict subset of ICU 57 source files with the following exception(s): -* deps/icu-small/source/data/in/icudt57l.dat : Reduced-size data file +It is a strict subset of ICU 58 source files with the following exception(s): +* deps/icu-small/source/data/in/icudt58l.dat : Reduced-size data file To rebuild this directory, see ../../tools/icu/README.md diff --git a/deps/icu-small/license.html b/deps/icu-small/license.html deleted file mode 100644 index 3430616d661af7..00000000000000 --- a/deps/icu-small/license.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - -ICU License - moved to LICENSE - - - -

- The ICU license is now in plain text format, see LICENSE. -Update links and software appropriately. -

- - Copyright (c) 1995-2016 International Business Machines Corporation and others - - - diff --git a/deps/icu-small/source/common/appendable.cpp b/deps/icu-small/source/common/appendable.cpp index e46d0790181004..1a597b5de52e58 100644 --- a/deps/icu-small/source/common/appendable.cpp +++ b/deps/icu-small/source/common/appendable.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2012, International Business Machines diff --git a/deps/icu-small/source/common/bmpset.cpp b/deps/icu-small/source/common/bmpset.cpp index 7cd32eb99c9e33..ebcd0d23bf9f59 100644 --- a/deps/icu-small/source/common/bmpset.cpp +++ b/deps/icu-small/source/common/bmpset.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/bmpset.h b/deps/icu-small/source/common/bmpset.h index d9e08eaa66fe10..8975cd61d5cc21 100644 --- a/deps/icu-small/source/common/bmpset.h +++ b/deps/icu-small/source/common/bmpset.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/brkeng.cpp b/deps/icu-small/source/common/brkeng.cpp index c40bcdb0b581fe..96a7dc9348d810 100644 --- a/deps/icu-small/source/common/brkeng.cpp +++ b/deps/icu-small/source/common/brkeng.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************************ * Copyright (C) 2006-2016, International Business Machines Corporation diff --git a/deps/icu-small/source/common/brkeng.h b/deps/icu-small/source/common/brkeng.h index 932b8db2b5f8c5..73fdb81dffaaaa 100644 --- a/deps/icu-small/source/common/brkeng.h +++ b/deps/icu-small/source/common/brkeng.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ************************************************************************************ * Copyright (C) 2006-2012, International Business Machines Corporation and others. * diff --git a/deps/icu-small/source/common/brkiter.cpp b/deps/icu-small/source/common/brkiter.cpp index a05a0e4c20baa8..b768c20f0bac10 100644 --- a/deps/icu-small/source/common/brkiter.cpp +++ b/deps/icu-small/source/common/brkiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and @@ -418,6 +420,7 @@ BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status) break; case UBRK_SENTENCE: result = BreakIterator::buildInstance(loc, "sentence", kind, status); +#if !UCONFIG_NO_FILTERED_BREAK_ITERATION { char ssKeyValue[kKeyValueLenMax] = {0}; UErrorCode kvStatus = U_ZERO_ERROR; @@ -430,6 +433,7 @@ BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status) } } } +#endif break; case UBRK_TITLE: result = BreakIterator::buildInstance(loc, "title", kind, status); diff --git a/deps/icu-small/source/common/bytestream.cpp b/deps/icu-small/source/common/bytestream.cpp index ebd4148e02f2d1..5a5c2e4410e936 100644 --- a/deps/icu-small/source/common/bytestream.cpp +++ b/deps/icu-small/source/common/bytestream.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (C) 2009-2011, International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/common/bytestrie.cpp b/deps/icu-small/source/common/bytestrie.cpp index 8a1ab4c62bbc17..093cd8ddb12106 100644 --- a/deps/icu-small/source/common/bytestrie.cpp +++ b/deps/icu-small/source/common/bytestrie.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2011, International Business Machines diff --git a/deps/icu-small/source/common/bytestriebuilder.cpp b/deps/icu-small/source/common/bytestriebuilder.cpp index f252e2d41fe5d7..913d85a21217be 100644 --- a/deps/icu-small/source/common/bytestriebuilder.cpp +++ b/deps/icu-small/source/common/bytestriebuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines @@ -35,7 +37,7 @@ class BytesTrieElement : public UMemory { public: // Use compiler's default constructor, initializes nothing. - void setTo(const StringPiece &s, int32_t val, CharString &strings, UErrorCode &errorCode); + void setTo(StringPiece s, int32_t val, CharString &strings, UErrorCode &errorCode); StringPiece getString(const CharString &strings) const { int32_t offset=stringOffset; @@ -86,7 +88,7 @@ class BytesTrieElement : public UMemory { }; void -BytesTrieElement::setTo(const StringPiece &s, int32_t val, +BytesTrieElement::setTo(StringPiece s, int32_t val, CharString &strings, UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return; @@ -143,7 +145,7 @@ BytesTrieBuilder::~BytesTrieBuilder() { } BytesTrieBuilder & -BytesTrieBuilder::add(const StringPiece &s, int32_t value, UErrorCode &errorCode) { +BytesTrieBuilder::add(StringPiece s, int32_t value, UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return *this; } @@ -165,7 +167,7 @@ BytesTrieBuilder::add(const StringPiece &s, int32_t value, UErrorCode &errorCode return *this; // error instead of dereferencing null } if(elementsLength>0) { - uprv_memcpy(newElements, elements, elementsLength*sizeof(BytesTrieElement)); + uprv_memcpy(newElements, elements, (size_t)elementsLength*sizeof(BytesTrieElement)); } delete[] elements; elements=newElements; diff --git a/deps/icu-small/source/common/bytestrieiterator.cpp b/deps/icu-small/source/common/bytestrieiterator.cpp index e50f07c24fee65..4d04247c4933d0 100644 --- a/deps/icu-small/source/common/bytestrieiterator.cpp +++ b/deps/icu-small/source/common/bytestrieiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines @@ -139,7 +141,6 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { } else { pos_=skipValue(pos, node); } - sp_.set(str_->data(), str_->length()); return TRUE; } if(maxLength_>0 && str_->length()==maxLength_) { @@ -167,10 +168,14 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { } } +StringPiece +BytesTrie::Iterator::getString() const { + return str_ == NULL ? StringPiece() : str_->toStringPiece(); +} + UBool BytesTrie::Iterator::truncateAndStop() { pos_=NULL; - sp_.set(str_->data(), str_->length()); value_=-1; // no real value for str return TRUE; } @@ -199,7 +204,6 @@ BytesTrie::Iterator::branchNext(const uint8_t *pos, int32_t length, UErrorCode & str_->append((char)trieByte, errorCode); if(isFinal) { pos_=NULL; - sp_.set(str_->data(), str_->length()); value_=value; return NULL; } else { diff --git a/deps/icu-small/source/common/caniter.cpp b/deps/icu-small/source/common/caniter.cpp index ac1206df129501..c3af281b82f420 100644 --- a/deps/icu-small/source/common/caniter.cpp +++ b/deps/icu-small/source/common/caniter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 1996-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/chariter.cpp b/deps/icu-small/source/common/chariter.cpp index 2d923ea0a6b5a8..625ac49eaccdb9 100644 --- a/deps/icu-small/source/common/chariter.cpp +++ b/deps/icu-small/source/common/chariter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/common/charstr.cpp b/deps/icu-small/source/common/charstr.cpp index 1b27c683de2f18..c792181378ec0b 100644 --- a/deps/icu-small/source/common/charstr.cpp +++ b/deps/icu-small/source/common/charstr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2015, International Business Machines @@ -144,7 +146,7 @@ UBool CharString::ensureCapacity(int32_t capacity, return TRUE; } -CharString &CharString::appendPathPart(const StringPiece &s, UErrorCode &errorCode) { +CharString &CharString::appendPathPart(StringPiece s, UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return *this; } diff --git a/deps/icu-small/source/common/charstr.h b/deps/icu-small/source/common/charstr.h index d2e20c4813ce1d..9758c5c542b3f0 100644 --- a/deps/icu-small/source/common/charstr.h +++ b/deps/icu-small/source/common/charstr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2015, International Business Machines @@ -39,7 +41,7 @@ template class U_COMMON_API MaybeStackArray; class U_COMMON_API CharString : public UMemory { public: CharString() : len(0) { buffer[0]=0; } - CharString(const StringPiece &s, UErrorCode &errorCode) : len(0) { + CharString(StringPiece s, UErrorCode &errorCode) : len(0) { buffer[0]=0; append(s, errorCode); } @@ -76,7 +78,7 @@ class U_COMMON_API CharString : public UMemory { CharString &truncate(int32_t newLength); CharString &append(char c, UErrorCode &errorCode); - CharString &append(const StringPiece &s, UErrorCode &errorCode) { + CharString &append(StringPiece s, UErrorCode &errorCode) { return append(s.data(), s.length(), errorCode); } CharString &append(const CharString &s, UErrorCode &errorCode) { @@ -115,7 +117,7 @@ class U_COMMON_API CharString : public UMemory { * First appends a U_FILE_SEP_CHAR if necessary. * Does nothing if s is empty. */ - CharString &appendPathPart(const StringPiece &s, UErrorCode &errorCode); + CharString &appendPathPart(StringPiece s, UErrorCode &errorCode); /** * Appends a U_FILE_SEP_CHAR if this string is not empty diff --git a/deps/icu-small/source/common/cmemory.c b/deps/icu-small/source/common/cmemory.c index 2b624accc187db..0054e3de8b2466 100644 --- a/deps/icu-small/source/common/cmemory.c +++ b/deps/icu-small/source/common/cmemory.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/cmemory.h b/deps/icu-small/source/common/cmemory.h index 8c62868855a12b..d2e48e5f305fd9 100644 --- a/deps/icu-small/source/common/cmemory.h +++ b/deps/icu-small/source/common/cmemory.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -281,7 +283,7 @@ inline T *LocalMemory::allocateInsteadAndCopy(int32_t newCapacity, int32_t le if(length>newCapacity) { length=newCapacity; } - uprv_memcpy(p, LocalPointerBase::ptr, length*sizeof(T)); + uprv_memcpy(p, LocalPointerBase::ptr, (size_t)length*sizeof(T)); } uprv_free(LocalPointerBase::ptr); LocalPointerBase::ptr=p; @@ -428,7 +430,7 @@ inline T *MaybeStackArray::resize(int32_t newCapacity, int32_t if(length>newCapacity) { length=newCapacity; } - uprv_memcpy(p, ptr, length*sizeof(T)); + uprv_memcpy(p, ptr, (size_t)length*sizeof(T)); } releaseArray(); ptr=p; @@ -459,7 +461,7 @@ inline T *MaybeStackArray::orphanOrClone(int32_t length, int32 if(p==NULL) { return NULL; } - uprv_memcpy(p, ptr, length*sizeof(T)); + uprv_memcpy(p, ptr, (size_t)length*sizeof(T)); } resultCapacity=length; ptr=stackArray; @@ -607,7 +609,7 @@ inline H *MaybeStackHeaderAndArray::resize(int32_t newCapac length=newCapacity; } } - uprv_memcpy(p, ptr, sizeof(H)+length*sizeof(T)); + uprv_memcpy(p, ptr, sizeof(H)+(size_t)length*sizeof(T)); releaseMemory(); ptr=p; capacity=newCapacity; @@ -638,7 +640,7 @@ inline H *MaybeStackHeaderAndArray::orphanOrClone(int32_t l if(p==NULL) { return NULL; } - uprv_memcpy(p, ptr, sizeof(H)+length*sizeof(T)); + uprv_memcpy(p, ptr, sizeof(H)+(size_t)length*sizeof(T)); } resultCapacity=length; ptr=&stackHeader; diff --git a/deps/icu-small/source/common/common.rc b/deps/icu-small/source/common/common.rc index b6e405a93aec80..5c723a27c52820 100644 --- a/deps/icu-small/source/common/common.rc +++ b/deps/icu-small/source/common/common.rc @@ -1,6 +1,8 @@ // Do not edit with Microsoft Developer Studio Resource Editor. // It will permanently substitute version numbers that are intended to be // picked up by the pre-processor during each build. +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (c) 2001-2010 International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/common/cpputils.h b/deps/icu-small/source/common/cpputils.h index b2e0cbc8d61cc7..57af69a7129483 100644 --- a/deps/icu-small/source/common/cpputils.h +++ b/deps/icu-small/source/common/cpputils.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -24,45 +26,45 @@ static inline void uprv_arrayCopy(const double* src, double* dst, int32_t count) -{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const double* src, int32_t srcStart, double* dst, int32_t dstStart, int32_t count) -{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int8_t* src, int8_t* dst, int32_t count) - { uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); } + { uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int8_t* src, int32_t srcStart, int8_t* dst, int32_t dstStart, int32_t count) -{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int16_t* src, int16_t* dst, int32_t count) -{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int16_t* src, int32_t srcStart, int16_t* dst, int32_t dstStart, int32_t count) -{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int32_t* src, int32_t* dst, int32_t count) -{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const int32_t* src, int32_t srcStart, int32_t* dst, int32_t dstStart, int32_t count) -{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); } static inline void uprv_arrayCopy(const UChar *src, int32_t srcStart, UChar *dst, int32_t dstStart, int32_t count) -{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); } +{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); } /** * Copy an array of UnicodeString OBJECTS (not pointers). diff --git a/deps/icu-small/source/common/cstr.cpp b/deps/icu-small/source/common/cstr.cpp index c30719361eacc5..356367e0bcaea3 100644 --- a/deps/icu-small/source/common/cstr.cpp +++ b/deps/icu-small/source/common/cstr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015-2016, International Business Machines @@ -6,22 +8,40 @@ * file name: charstr.cpp */ #include "unicode/utypes.h" +#include "unicode/putil.h" #include "unicode/unistr.h" -#include "charstr.h" #include "cstr.h" +#include "charstr.h" +#include "uinvchar.h" + U_NAMESPACE_BEGIN CStr::CStr(const UnicodeString &in) { UErrorCode status = U_ZERO_ERROR; - int32_t length = in.extract(0, in.length(), NULL, (uint32_t)0); +#if !UCONFIG_NO_CONVERSION || U_CHARSET_IS_UTF8 + int32_t length = in.extract(0, in.length(), static_cast(NULL), static_cast(0)); int32_t resultCapacity = 0; char *buf = s.getAppendBuffer(length, length, resultCapacity, status); if (U_SUCCESS(status)) { in.extract(0, in.length(), buf, resultCapacity); s.append(buf, length, status); } +#else + // No conversion available. Convert any invariant characters; substitute '?' for the rest. + // Note: can't just call u_UCharsToChars() or CharString.appendInvariantChars() on the + // whole string because they require that the entire input be invariant. + char buf[2]; + for (int i=0; ifirst()); + // Don't suppress a break opportunity at the beginning of text. + return fDelegate->first(); } int32_t @@ -415,7 +418,9 @@ SimpleFilteredSentenceBreakIterator::previous(void) { } UBool SimpleFilteredSentenceBreakIterator::isBoundary(int32_t offset) { - if(!fDelegate->isBoundary(offset)) return false; // no break to suppress + if (!fDelegate->isBoundary(offset)) return false; // no break to suppress + + if (fData->fBackwardsTrie.isNull()) return true; // no data = no suppressions UErrorCode status = U_ZERO_ERROR; resetState(status); @@ -476,13 +481,42 @@ SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(const Loc : fSet(status) { if(U_SUCCESS(status)) { - LocalUResourceBundlePointer b(ures_open(U_ICUDATA_BRKITR, fromLocale.getBaseName(), &status)); - LocalUResourceBundlePointer exceptions(ures_getByKeyWithFallback(b.getAlias(), "exceptions", NULL, &status)); - LocalUResourceBundlePointer breaks(ures_getByKeyWithFallback(exceptions.getAlias(), "SentenceBreak", NULL, &status)); - if(U_FAILURE(status)) return; // leaves the builder empty, if you try to use it. + UErrorCode subStatus = U_ZERO_ERROR; + LocalUResourceBundlePointer b(ures_open(U_ICUDATA_BRKITR, fromLocale.getBaseName(), &subStatus)); + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status +#if FB_DEBUG + fprintf(stderr, "open BUNDLE %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); +#endif + return; // leaves the builder empty, if you try to use it. + } + LocalUResourceBundlePointer exceptions(ures_getByKeyWithFallback(b.getAlias(), "exceptions", NULL, &subStatus)); + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status +#if FB_DEBUG + fprintf(stderr, "open EXCEPTIONS %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); +#endif + return; // leaves the builder empty, if you try to use it. + } + LocalUResourceBundlePointer breaks(ures_getByKeyWithFallback(exceptions.getAlias(), "SentenceBreak", NULL, &subStatus)); + +#if FB_DEBUG + { + UErrorCode subsub = subStatus; + fprintf(stderr, "open SentenceBreak %s => %s, %s\n", fromLocale.getBaseName(), ures_getLocale(breaks.getAlias(), &subsub), u_errorName(subStatus)); + } +#endif + + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status +#if FB_DEBUG + fprintf(stderr, "open %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); +#endif + return; // leaves the builder empty, if you try to use it. + } LocalUResourceBundlePointer strs; - UErrorCode subStatus = status; + subStatus = status; // Pick up inherited warning status now do { strs.adoptInstead(ures_getNextResource(breaks.getAlias(), strs.orphan(), &subStatus)); if(strs.isValid() && U_SUCCESS(subStatus)) { diff --git a/deps/icu-small/source/common/filterednormalizer2.cpp b/deps/icu-small/source/common/filterednormalizer2.cpp index 44ed9c13a0265e..fb6e831af7a4c5 100644 --- a/deps/icu-small/source/common/filterednormalizer2.cpp +++ b/deps/icu-small/source/common/filterednormalizer2.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/hash.h b/deps/icu-small/source/common/hash.h index d308a57c3d3024..a03fcae9548ab1 100644 --- a/deps/icu-small/source/common/hash.h +++ b/deps/icu-small/source/common/hash.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2014, International Business Machines diff --git a/deps/icu-small/source/common/icudataver.c b/deps/icu-small/source/common/icudataver.c index 227af0453e83e2..367e58f59b6910 100644 --- a/deps/icu-small/source/common/icudataver.c +++ b/deps/icu-small/source/common/icudataver.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/icuplug.cpp b/deps/icu-small/source/common/icuplug.cpp index 477a348b5acc4f..a0ec46b1f99bea 100644 --- a/deps/icu-small/source/common/icuplug.cpp +++ b/deps/icu-small/source/common/icuplug.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/icuplugimp.h b/deps/icu-small/source/common/icuplugimp.h index 0b5afb1ecd8a42..895b35357b0e4c 100644 --- a/deps/icu-small/source/common/icuplugimp.h +++ b/deps/icu-small/source/common/icuplugimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/listformatter.cpp b/deps/icu-small/source/common/listformatter.cpp index a02549eba9f3cd..9225c22f163eb7 100644 --- a/deps/icu-small/source/common/listformatter.cpp +++ b/deps/icu-small/source/common/listformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/loadednormalizer2impl.cpp b/deps/icu-small/source/common/loadednormalizer2impl.cpp index 42fafdce9e1abe..b3b7b5d6212496 100644 --- a/deps/icu-small/source/common/loadednormalizer2impl.cpp +++ b/deps/icu-small/source/common/loadednormalizer2impl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/common/localsvc.h b/deps/icu-small/source/common/localsvc.h index e8bc5a693c1526..4c0686d4495ed9 100644 --- a/deps/icu-small/source/common/localsvc.h +++ b/deps/icu-small/source/common/localsvc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 2006 International Business Machines Corporation * diff --git a/deps/icu-small/source/common/locavailable.cpp b/deps/icu-small/source/common/locavailable.cpp index 10782837f2ddd4..3a92c3c3eb65a3 100644 --- a/deps/icu-small/source/common/locavailable.cpp +++ b/deps/icu-small/source/common/locavailable.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/locbased.cpp b/deps/icu-small/source/common/locbased.cpp index ba289621f9a997..f2f56adda170f0 100644 --- a/deps/icu-small/source/common/locbased.cpp +++ b/deps/icu-small/source/common/locbased.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/common/locbased.h b/deps/icu-small/source/common/locbased.h index f740026b05623e..453d5a8a30299b 100644 --- a/deps/icu-small/source/common/locbased.h +++ b/deps/icu-small/source/common/locbased.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/common/locdispnames.cpp b/deps/icu-small/source/common/locdispnames.cpp index 6d6a06e680eaec..bb10b8946b3327 100644 --- a/deps/icu-small/source/common/locdispnames.cpp +++ b/deps/icu-small/source/common/locdispnames.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -852,7 +854,7 @@ uloc_getDisplayKeywordValue( const char* locale, /* now copy the dispName over if not NULL */ if(dispName != NULL){ if(dispNameLen <= destCapacity){ - uprv_memcpy(dest, dispName, dispNameLen * U_SIZEOF_UCHAR); + u_memcpy(dest, dispName, dispNameLen); return u_terminateUChars(dest, destCapacity, dispNameLen, status); }else{ *status = U_BUFFER_OVERFLOW_ERROR; diff --git a/deps/icu-small/source/common/locdspnm.cpp b/deps/icu-small/source/common/locdspnm.cpp index 7bd4ecead48d9b..a17478ce6d8a61 100644 --- a/deps/icu-small/source/common/locdspnm.cpp +++ b/deps/icu-small/source/common/locdspnm.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2016, International Business Machines Corporation and @@ -278,7 +280,11 @@ class LocaleDisplayNamesImpl : public LocaleDisplayNames { SimpleFormatter format; SimpleFormatter keyTypeFormat; UDisplayContext capitalizationContext; +#if !UCONFIG_NO_BREAK_ITERATION BreakIterator* capitalizationBrkIter; +#else + UObject* capitalizationBrkIter; +#endif static UMutex capitalizationBrkIterLock; UnicodeString formatOpenParen; UnicodeString formatReplaceOpenParen; @@ -341,6 +347,8 @@ class LocaleDisplayNamesImpl : public LocaleDisplayNames { UnicodeString& keyValueDisplayName(const char* key, const char* value, UnicodeString& result, UBool skipAdjust) const; void initialize(void); + + struct CapitalizationContextSink; }; UMutex LocaleDisplayNamesImpl::capitalizationBrkIterLock = U_MUTEX_INITIALIZER; @@ -386,6 +394,54 @@ LocaleDisplayNamesImpl::LocaleDisplayNamesImpl(const Locale& locale, initialize(); } +struct LocaleDisplayNamesImpl::CapitalizationContextSink : public ResourceSink { + UBool hasCapitalizationUsage; + LocaleDisplayNamesImpl& parent; + + CapitalizationContextSink(LocaleDisplayNamesImpl& _parent) + : hasCapitalizationUsage(FALSE), parent(_parent) {} + virtual ~CapitalizationContextSink(); + + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, + UErrorCode &errorCode) { + ResourceTable contexts = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; contexts.getKeyAndValue(i, key, value); ++i) { + + CapContextUsage usageEnum; + if (uprv_strcmp(key, "key") == 0) { + usageEnum = kCapContextUsageKey; + } else if (uprv_strcmp(key, "keyValue") == 0) { + usageEnum = kCapContextUsageKeyValue; + } else if (uprv_strcmp(key, "languages") == 0) { + usageEnum = kCapContextUsageLanguage; + } else if (uprv_strcmp(key, "script") == 0) { + usageEnum = kCapContextUsageScript; + } else if (uprv_strcmp(key, "territory") == 0) { + usageEnum = kCapContextUsageTerritory; + } else if (uprv_strcmp(key, "variant") == 0) { + usageEnum = kCapContextUsageVariant; + } else { + continue; + } + + int32_t len = 0; + const int32_t* intVector = value.getIntVector(len, errorCode); + if (U_FAILURE(errorCode)) { return; } + if (len < 2) { continue; } + + int32_t titlecaseInt = (parent.capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU) ? intVector[0] : intVector[1]; + if (titlecaseInt == 0) { continue; } + + parent.fCapitalization[usageEnum] = TRUE; + hasCapitalizationUsage = TRUE; + } + } +}; + +// Virtual destructors must be defined out of line. +LocaleDisplayNamesImpl::CapitalizationContextSink::~CapitalizationContextSink() {} + void LocaleDisplayNamesImpl::initialize(void) { LocaleDisplayNamesImpl *nonConstThis = (LocaleDisplayNamesImpl *)this; @@ -428,58 +484,21 @@ LocaleDisplayNamesImpl::initialize(void) { uprv_memset(fCapitalization, 0, sizeof(fCapitalization)); #if !UCONFIG_NO_BREAK_ITERATION - // The following is basically copied from DateFormatSymbols::initializeData - typedef struct { - const char * usageName; - LocaleDisplayNamesImpl::CapContextUsage usageEnum; - } ContextUsageNameToEnum; - const ContextUsageNameToEnum contextUsageTypeMap[] = { - // Entries must be sorted by usageTypeName; entry with NULL name terminates list. - { "key", kCapContextUsageKey }, - { "keyValue", kCapContextUsageKeyValue }, - { "languages", kCapContextUsageLanguage }, - { "script", kCapContextUsageScript }, - { "territory", kCapContextUsageTerritory }, - { "variant", kCapContextUsageVariant }, - { NULL, (CapContextUsage)0 }, - }; // Only get the context data if we need it! This is a const object so we know now... // Also check whether we will need a break iterator (depends on the data) UBool needBrkIter = FALSE; if (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_STANDALONE) { - int32_t len = 0; - UResourceBundle *localeBundle = ures_open(NULL, locale.getName(), &status); - if (U_SUCCESS(status)) { - UResourceBundle *contextTransforms = ures_getByKeyWithFallback(localeBundle, "contextTransforms", NULL, &status); - if (U_SUCCESS(status)) { - UResourceBundle *contextTransformUsage; - while ( (contextTransformUsage = ures_getNextResource(contextTransforms, NULL, &status)) != NULL ) { - const int32_t * intVector = ures_getIntVector(contextTransformUsage, &len, &status); - if (U_SUCCESS(status) && intVector != NULL && len >= 2) { - const char* usageKey = ures_getKey(contextTransformUsage); - if (usageKey != NULL) { - const ContextUsageNameToEnum * typeMapPtr = contextUsageTypeMap; - int32_t compResult = 0; - // linear search; list is short and we cannot be sure that bsearch is available - while ( typeMapPtr->usageName != NULL && (compResult = uprv_strcmp(usageKey, typeMapPtr->usageName)) > 0 ) { - ++typeMapPtr; - } - if (typeMapPtr->usageName != NULL && compResult == 0) { - int32_t titlecaseInt = (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU)? intVector[0]: intVector[1]; - if (titlecaseInt != 0) { - fCapitalization[typeMapPtr->usageEnum] = TRUE;; - needBrkIter = TRUE; - } - } - } - } - status = U_ZERO_ERROR; - ures_close(contextTransformUsage); - } - ures_close(contextTransforms); - } - ures_close(localeBundle); + LocalUResourceBundlePointer resource(ures_open(NULL, locale.getName(), &status)); + if (U_FAILURE(status)) { return; } + CapitalizationContextSink sink(*this); + ures_getAllItemsWithFallback(resource.getAlias(), "contextTransforms", sink, status); + if (status == U_MISSING_RESOURCE_ERROR) { + // Silently ignore. Not every locale has contextTransforms. + status = U_ZERO_ERROR; + } else if (U_FAILURE(status)) { + return; } + needBrkIter = sink.hasCapitalizationUsage; } // Get a sentence break iterator if we will need it if (needBrkIter || capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE) { @@ -494,8 +513,10 @@ LocaleDisplayNamesImpl::initialize(void) { } LocaleDisplayNamesImpl::~LocaleDisplayNamesImpl() { +#if !UCONFIG_NO_BREAK_ITERATION delete capitalizationBrkIter; - } +#endif +} const Locale& LocaleDisplayNamesImpl::getLocale() const { diff --git a/deps/icu-small/source/common/locid.cpp b/deps/icu-small/source/common/locid.cpp index d6ca74dfafeb64..d2781db95bdd8c 100644 --- a/deps/icu-small/source/common/locid.cpp +++ b/deps/icu-small/source/common/locid.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -42,6 +44,7 @@ #include "uhash.h" #include "ucln_cmn.h" #include "ustr_imp.h" +#include "charstr.h" U_CDECL_BEGIN static UBool U_CALLCONV locale_cleanup(void); @@ -57,6 +60,12 @@ static UMutex gDefaultLocaleMutex = U_MUTEX_INITIALIZER; static UHashtable *gDefaultLocalesHashT = NULL; static Locale *gDefaultLocale = NULL; +/** + * \def ULOC_STRING_LIMIT + * strings beyond this value crash in CharString + */ +#define ULOC_STRING_LIMIT 357913941 + U_NAMESPACE_END typedef enum ELocalePos { @@ -283,13 +292,12 @@ Locale::Locale( const char * newLanguage, } else { - MaybeStackArray togo; + UErrorCode status = U_ZERO_ERROR; int32_t size = 0; int32_t lsize = 0; int32_t csize = 0; int32_t vsize = 0; int32_t ksize = 0; - char *p; // Calculate the size of the resulting string. @@ -297,13 +305,23 @@ Locale::Locale( const char * newLanguage, if ( newLanguage != NULL ) { lsize = (int32_t)uprv_strlen(newLanguage); + if ( lsize < 0 || lsize > ULOC_STRING_LIMIT ) { // int32 wrap + setToBogus(); + return; + } size = lsize; } + CharString togo(newLanguage, lsize, status); // start with newLanguage + // _Country if ( newCountry != NULL ) { csize = (int32_t)uprv_strlen(newCountry); + if ( csize < 0 || csize > ULOC_STRING_LIMIT ) { // int32 wrap + setToBogus(); + return; + } size += csize; } @@ -318,6 +336,10 @@ Locale::Locale( const char * newLanguage, // remove trailing _'s vsize = (int32_t)uprv_strlen(newVariant); + if ( vsize < 0 || vsize > ULOC_STRING_LIMIT ) { // int32 wrap + setToBogus(); + return; + } while( (vsize>1) && (newVariant[vsize-1] == SEP_CHAR) ) { vsize--; @@ -342,70 +364,56 @@ Locale::Locale( const char * newLanguage, if ( newKeywords != NULL) { ksize = (int32_t)uprv_strlen(newKeywords); + if ( ksize < 0 || ksize > ULOC_STRING_LIMIT ) { + setToBogus(); + return; + } size += ksize + 1; } - // NOW we have the full locale string.. - - /*if the whole string is longer than our internal limit, we need - to go to the heap for temporary buffers*/ - if (size >= togo.getCapacity()) - { - // If togo_heap could not be created, initialize with default settings. - if (togo.resize(size+1) == NULL) { - init(NULL, FALSE); - } - } - - togo[0] = 0; - // Now, copy it back. - p = togo.getAlias(); - if ( lsize != 0 ) - { - uprv_strcpy(p, newLanguage); - p += lsize; - } + + // newLanguage is already copied if ( ( vsize != 0 ) || (csize != 0) ) // at least: __v { // ^ - *p++ = SEP_CHAR; + togo.append(SEP_CHAR, status); } if ( csize != 0 ) { - uprv_strcpy(p, newCountry); - p += csize; + togo.append(newCountry, status); } if ( vsize != 0) { - *p++ = SEP_CHAR; // at least: __v - - uprv_strncpy(p, newVariant, vsize); // Must use strncpy because - p += vsize; // of trimming (above). - *p = 0; // terminate + togo.append(SEP_CHAR, status) + .append(newVariant, vsize, status); } if ( ksize != 0) { if (uprv_strchr(newKeywords, '=')) { - *p++ = '@'; /* keyword parsing */ + togo.append('@', status); /* keyword parsing */ } else { - *p++ = '_'; /* Variant parsing with a script */ + togo.append('_', status); /* Variant parsing with a script */ if ( vsize == 0) { - *p++ = '_'; /* No country found */ + togo.append('_', status); /* No country found */ } } - uprv_strcpy(p, newKeywords); - p += ksize; + togo.append(newKeywords, status); } + if (U_FAILURE(status)) { + // Something went wrong with appending, etc. + setToBogus(); + return; + } // Parse it, because for example 'language' might really be a complete // string. - init(togo.getAlias(), FALSE); + init(togo.data(), FALSE); } } @@ -662,6 +670,7 @@ Locale::setToBogus() { *script = 0; *country = 0; fIsBogus = TRUE; + variantBegin = 0; } const Locale& U_EXPORT2 diff --git a/deps/icu-small/source/common/loclikely.cpp b/deps/icu-small/source/common/loclikely.cpp index 09b53298841ef9..9dcfc90cbd151c 100644 --- a/deps/icu-small/source/common/loclikely.cpp +++ b/deps/icu-small/source/common/loclikely.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -1330,6 +1332,8 @@ Locale::isRightToLeft() const { return uloc_isRightToLeft(getBaseName()); } +U_NAMESPACE_END + // The following must at least allow for rg key value (6) plus terminator (1). #define ULOC_RG_BUFLEN 8 @@ -1379,4 +1383,3 @@ ulocimp_getRegionForSupplementalData(const char *localeID, UBool inferRegion, return u_terminateChars(region, regionCapacity, rgLen, status); } -U_NAMESPACE_END diff --git a/deps/icu-small/source/common/locmap.c b/deps/icu-small/source/common/locmap.c index f545a04d487962..0d0aac42e15c19 100644 --- a/deps/icu-small/source/common/locmap.c +++ b/deps/icu-small/source/common/locmap.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1996-2016, International Business Machines @@ -213,11 +215,8 @@ ILCID_POSIX_ELEMENT_ARRAY(0x045c, chr,chr_US) ILCID_POSIX_SUBTABLE(ckb) { {0x92, "ckb"}, - {0x92, "ku"}, {0x7c92, "ckb_Arab"}, - {0x7c92, "ku_Arab"}, - {0x0492, "ckb_Arab_IQ"}, - {0x0492, "ku_Arab_IQ"} + {0x0492, "ckb_Arab_IQ"} }; /* Declared as cs_CZ to get around compiler errors on z/OS, which defines cs as a function */ @@ -1019,33 +1018,40 @@ uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UEr const char *pPosixID = NULL; #ifdef USE_WINDOWS_LOCALE_API - int32_t tmpLen = 0; - char locName[157]; /* ULOC_FULLNAME_CAPACITY */ - - tmpLen = GetLocaleInfoA(hostid, LOCALE_SNAME, (LPSTR)locName, UPRV_LENGTHOF(locName)); - if (tmpLen > 1) { - /* Windows locale name may contain sorting variant, such as "es-ES_tradnl". - In such case, we need special mapping data found in the hardcoded table - in this source file. */ - char *p = uprv_strchr(locName, '_'); - if (p) { - /* Keep the base locale, without variant */ - *p = 0; - tmpLen = uprv_strlen(locName); - } else { - /* No hardcoded table lookup necessary */ - bLookup = FALSE; - } - /* Change the tag separator from '-' to '_' */ - p = locName; - while (*p) { - if (*p == '-') { - *p = '_'; + // Note: Windows primary lang ID 0x92 in LCID is used for Central Kurdish and + // GetLocaleInfo() maps such LCID to "ku". However, CLDR uses "ku" for + // Northern Kurdish and "ckb" for Central Kurdish. For this reason, we cannot + // use the Windows API to resolve locale ID for this specific case. + if (hostid & 0x3FF != 0x92) { + int32_t tmpLen = 0; + char locName[157]; /* ULOC_FULLNAME_CAPACITY */ + + tmpLen = GetLocaleInfoA(hostid, LOCALE_SNAME, (LPSTR)locName, UPRV_LENGTHOF(locName)); + if (tmpLen > 1) { + /* Windows locale name may contain sorting variant, such as "es-ES_tradnl". + In such case, we need special mapping data found in the hardcoded table + in this source file. */ + char *p = uprv_strchr(locName, '_'); + if (p) { + /* Keep the base locale, without variant */ + *p = 0; + tmpLen = uprv_strlen(locName); + } + else { + /* No hardcoded table lookup necessary */ + bLookup = FALSE; + } + /* Change the tag separator from '-' to '_' */ + p = locName; + while (*p) { + if (*p == '-') { + *p = '_'; + } + p++; } - p++; + FIX_LANGUAGE_ID_TAG(locName, tmpLen); + pPosixID = locName; } - FIX_LANGUAGE_ID_TAG(locName, tmpLen); - pPosixID = locName; } #endif if (bLookup) { diff --git a/deps/icu-small/source/common/locmap.h b/deps/icu-small/source/common/locmap.h index 4345e216bd7136..a9b892ee426fc4 100644 --- a/deps/icu-small/source/common/locmap.h +++ b/deps/icu-small/source/common/locmap.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/locresdata.cpp b/deps/icu-small/source/common/locresdata.cpp index 15cbc38471cac2..9ede0cac20bfce 100644 --- a/deps/icu-small/source/common/locresdata.cpp +++ b/deps/icu-small/source/common/locresdata.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/locutil.cpp b/deps/icu-small/source/common/locutil.cpp index 0b73d9d3e740b5..2f704953a2d0ca 100644 --- a/deps/icu-small/source/common/locutil.cpp +++ b/deps/icu-small/source/common/locutil.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2002-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/locutil.h b/deps/icu-small/source/common/locutil.h index cf64e343d06649..64f7dcc2c052f7 100644 --- a/deps/icu-small/source/common/locutil.h +++ b/deps/icu-small/source/common/locutil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2002-2005, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/messageimpl.h b/deps/icu-small/source/common/messageimpl.h index 9af400cd27ddf2..980f777e8df7b4 100644 --- a/deps/icu-small/source/common/messageimpl.h +++ b/deps/icu-small/source/common/messageimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/messagepattern.cpp b/deps/icu-small/source/common/messagepattern.cpp index 7265b81eda1741..ddd2287e4cabd9 100644 --- a/deps/icu-small/source/common/messagepattern.cpp +++ b/deps/icu-small/source/common/messagepattern.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2012, International Business Machines @@ -114,7 +116,7 @@ MessagePatternList::copyFrom( errorCode=U_MEMORY_ALLOCATION_ERROR; return; } - uprv_memcpy(a.getAlias(), other.a.getAlias(), length*sizeof(T)); + uprv_memcpy(a.getAlias(), other.a.getAlias(), (size_t)length*sizeof(T)); } } diff --git a/deps/icu-small/source/common/msvcres.h b/deps/icu-small/source/common/msvcres.h index 4d087a2ac95a77..0514ee440ef554 100644 --- a/deps/icu-small/source/common/msvcres.h +++ b/deps/icu-small/source/common/msvcres.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html //{{NO_DEPENDENCIES}} // Copyright (c) 2003-2010 International Business Machines // Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/common/mutex.h b/deps/icu-small/source/common/mutex.h index cd2fcb16e48f95..78de718751f9f2 100644 --- a/deps/icu-small/source/common/mutex.h +++ b/deps/icu-small/source/common/mutex.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/norm2_nfc_data.h b/deps/icu-small/source/common/norm2_nfc_data.h index 9925afa3413761..4ddba0f8ba64c4 100644 --- a/deps/icu-small/source/common/norm2_nfc_data.h +++ b/deps/icu-small/source/common/norm2_nfc_data.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. @@ -10,524 +12,534 @@ #ifdef INCLUDED_FROM_NORMALIZER2_CPP static const UVersionInfo norm2_nfc_data_formatVersion={2,0,0,0}; -static const UVersionInfo norm2_nfc_data_dataVersion={8,0,0,0}; +static const UVersionInfo norm2_nfc_data_dataVersion={9,0,0,0}; static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={ -0x40,0x49c0,0x8614,0x8714,0x8714,0x8714,0x8714,0x8714,0xc0,0x300,0x56e,0x14e7,0x1e2a,0xfe00,0x941,0 +0x40,0x4bb8,0x880c,0x890c,0x890c,0x890c,0x890c,0x890c,0xc0,0x300,0x56e,0x14e7,0x1e2a,0xfe00,0x941,0 }; -static const uint16_t norm2_nfc_data_trieIndex[9400]={ -0x28d,0x295,0x29d,0x2a5,0x2b3,0x2bb,0x2c3,0x2cb,0x2d3,0x2db,0x2e3,0x2eb,0x2f3,0x2fb,0x301,0x309, -0x311,0x319,0x2ac,0x2b4,0x31e,0x326,0x2ac,0x2b4,0x32e,0x336,0x33e,0x346,0x34e,0x356,0x35e,0x366, -0x36e,0x376,0x37e,0x386,0x38e,0x396,0x39e,0x3a6,0x2ac,0x2b4,0x2ac,0x2b4,0x3ad,0x3b5,0x3bd,0x3c5, -0x3c9,0x3d1,0x3d7,0x3df,0x2ac,0x2b4,0x3e7,0x3ef,0x3f3,0x3fb,0x403,0x40b,0x2ac,0x2b4,0x409,0x411, -0x416,0x41d,0x421,0x2ac,0x2ac,0x2ac,0x2ac,0x429,0x2ac,0x431,0x439,0x2ac,0x2ac,0x441,0x449,0x2ac, -0x2ac,0x451,0x459,0x2ac,0x2ac,0x461,0x469,0x2ac,0x2ac,0x441,0x470,0x2ac,0x478,0x47e,0x486,0x2ac, -0x2ac,0x2ac,0x48d,0x2ac,0x2ac,0x493,0x49b,0x2ac,0x2ac,0x47e,0x4a2,0x2ac,0x2ac,0x2ac,0x4a8,0x2ac, -0x2ac,0x4b0,0x4b7,0x2ac,0x2ac,0x4ba,0x4c1,0x2ac,0x4c4,0x4cb,0x4d3,0x4db,0x4e3,0x4eb,0x4f2,0x2ac, -0x2ac,0x4f9,0x2ac,0x2ac,0x500,0x2ac,0x2ac,0x2ac,0x8ea,0x2ac,0x2ac,0x8f2,0x2ac,0x8f8,0x900,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x504,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x50c,0x50c,0x2ac,0x2ac,0x2ac,0x2ac,0x512,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x51a,0x2ac,0x2ac,0x2ac,0x51d,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x524,0x2ac,0x2ac,0x52c,0x2ac,0x534,0x2ac,0x2ac,0x53c,0x541,0x549,0x54f,0x2ac,0x555,0x2ac,0x55c, -0x2ac,0x561,0x2ac,0x2ac,0x2ac,0x2ac,0x567,0x56f,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x577,0x57c, -0x584,0x58c,0x594,0x59c,0x5a4,0x5ac,0x5b4,0x5bc,0x5c4,0x5cc,0x5d4,0x5dc,0x5e4,0x5ec,0x5f4,0x5fc, -0x604,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x608,0x610,0x2ac,0x617,0x2ac,0x2ac,0x61b,0x622,0x627,0x2ac, -0x62f,0x637,0x63f,0x647,0x64f,0x657,0x2ac,0x65f,0x2ac,0x665,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x668,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x670,0x2ac,0x2ac,0x2ac,0x675,0x2ac,0x2ac,0x2ac,0x67d, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x685,0x68c,0x694,0x69c,0x6a4,0x6ac,0x6b4,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x6bc,0x6c4,0x2ac,0x2ac,0x6cc,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x6d3,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x6da,0x6e2,0x2ac,0x6e8,0x6ec,0x2ac,0x2ac,0x562,0x6f4,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x6f8,0x700,0x703,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x469, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908, -0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x908,0x90f,0x2ac,0x2ac, -0x917,0x91e,0x28d,0x925,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d, -0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d,0x28d, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x70b,0x713,0x71b,0x723,0x72b,0x733,0x73b,0x743, -0x74b,0x753,0x75b,0x763,0x76b,0x773,0x77b,0x2ac,0x782,0x78a,0x792,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x79a,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0xab4,0xab4,0xacc,0xb0c,0xb4c,0xb8c,0xbcc,0xc04,0xc44,0xab0,0xc78,0xab0,0xcb8,0xcf8,0xd38,0xd78, -0xdb8,0xdf8,0xe38,0xe78,0xab0,0xab0,0xeb4,0xef4,0xf24,0xf5c,0xab0,0xf9c,0xfcc,0x100c,0xab0,0x1024, -0x880,0x8b0,0x8ee,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x928,0x188,0x188, -0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x944,0x188,0x188,0x97a,0x188,0x188,0x9b4,0x188,0x188, +static const uint16_t norm2_nfc_data_trieIndex[9652]={ +0x2a8,0x2b0,0x2b8,0x2c0,0x2ce,0x2d6,0x2de,0x2e6,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31c,0x324, +0x32c,0x334,0x2c7,0x2cf,0x339,0x341,0x2c7,0x2cf,0x349,0x351,0x359,0x361,0x369,0x371,0x379,0x381, +0x389,0x391,0x399,0x3a1,0x3a9,0x3b1,0x3b9,0x3c1,0x2c7,0x2cf,0x2c7,0x2cf,0x3c8,0x3d0,0x3d8,0x3e0, +0x3e4,0x3ec,0x3f2,0x3fa,0x2c7,0x2cf,0x402,0x40a,0x40e,0x416,0x41e,0x426,0x2c7,0x2cf,0x424,0x42c, +0x431,0x438,0x43c,0x2c7,0x2c7,0x2c7,0x443,0x44b,0x2c7,0x453,0x45b,0x2c7,0x2c7,0x463,0x46b,0x2c7, +0x2c7,0x473,0x47b,0x2c7,0x2c7,0x483,0x48b,0x2c7,0x2c7,0x463,0x492,0x2c7,0x49a,0x4a0,0x4a8,0x2c7, +0x2c7,0x2c7,0x4af,0x2c7,0x2c7,0x4b5,0x4bd,0x2c7,0x2c7,0x4a0,0x4c4,0x2c7,0x2c7,0x2c7,0x4ca,0x2c7, +0x2c7,0x4d2,0x4d9,0x2c7,0x2c7,0x4dc,0x4e3,0x2c7,0x4e6,0x4ed,0x4f5,0x4fd,0x505,0x50d,0x514,0x2c7, +0x2c7,0x51b,0x2c7,0x2c7,0x522,0x2c7,0x2c7,0x2c7,0x929,0x2c7,0x2c7,0x931,0x2c7,0x937,0x93f,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x526,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x52e,0x52e,0x2c7,0x2c7,0x2c7,0x2c7,0x534,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x53c,0x2c7,0x2c7,0x2c7,0x53f,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x546,0x2c7,0x2c7,0x54e,0x2c7,0x556,0x2c7,0x2c7,0x55e,0x563,0x56b,0x571,0x2c7,0x577,0x2c7,0x57e, +0x2c7,0x583,0x2c7,0x2c7,0x2c7,0x2c7,0x589,0x591,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x599,0x59e, +0x5a6,0x5ae,0x5b6,0x5be,0x5c6,0x5ce,0x5d6,0x5de,0x5e6,0x5ee,0x5f6,0x5fe,0x606,0x60e,0x616,0x61e, +0x626,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x62a,0x632,0x2c7,0x639,0x2c7,0x2c7,0x63d,0x644,0x649,0x2c7, +0x651,0x659,0x661,0x669,0x671,0x679,0x2c7,0x681,0x2c7,0x687,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x68a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x692,0x2c7,0x2c7,0x2c7,0x697,0x2c7,0x2c7,0x2c7,0x69f, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x6a7,0x6ae,0x6b6,0x6be,0x6c6,0x6ce,0x6d6,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x6de,0x6e6,0x2c7,0x2c7,0x6ee,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x6f5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x6fc,0x704,0x2c7,0x70a,0x70e,0x2c7,0x2c7,0x584,0x716,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x71a,0x722,0x725,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x48b, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947, +0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x94e,0x2c7,0x2c7, +0x956,0x95d,0x2a8,0x964,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8, +0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x72d,0x735,0x73d,0x745,0x74d,0x755,0x75d,0x765, +0x76d,0x775,0x77d,0x785,0x78d,0x795,0x79d,0x2c7,0x7a4,0x7ac,0x7b4,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x7bc,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0xb20,0xb20,0xb38,0xb78,0xbb8,0xbf8,0xc38,0xc70,0xcb0,0xb1c,0xce4,0xb1c,0xd24,0xd64,0xda4,0xde4, +0xe24,0xe64,0xea4,0xee4,0xb1c,0xb1c,0xf20,0xf60,0xf90,0xfc8,0xb1c,0x1008,0x1038,0x1078,0xb1c,0x1090, +0x880,0x8b0,0x8ee,0x928,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x951,0x188,0x188, +0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x96d,0x188,0x188,0x9a3,0x188,0x9e3,0xa1d,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, -0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x9f4, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x79e, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x7a6,0x2ac,0x2ac,0x2ac,0x7a9,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x7b0,0x7b4,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x7bc,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x6d3,0x675,0x7be,0x7c6,0x2ac,0x2ac,0x7ce,0x7d5,0x2ac,0x562,0x2ac,0x2ac,0x7dd,0x2ac,0x2ac,0x7e0, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x7e6,0x2ac,0x441,0x7ed,0x7f4,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x7fa,0x802,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x807,0x80f,0x2ac,0x2ac,0x675, -0x2ac,0x2ac,0x2ac,0x812,0x2ac,0x2ac,0x2ac,0x818,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x81c, -0x2ac,0x822,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x828,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x830,0x838,0x840,0x846,0x84e,0x2ac,0x2ac,0x2ac,0x856,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x85a,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x862,0x86a,0x872,0x87a,0x882,0x88a,0x892,0x89a,0x8a2,0x8aa,0x8b2,0x8ba, -0x8c2,0x8ca,0x8d2,0x8da,0x8e2,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,4,6,0,0,8,0x28,0x2e,0x38,0x44,0x66,0x68,0x76,0x84,0xa2,0xa4, -0xae,0xba,0xc0,0xd2,0xf2,0,0xf6,0x106,0x114,0x122,0x148,0x14c,0x158,0x15c,0x16e,0, -0,0,0,0,0,0x17a,0x19a,0x1a0,0x1aa,0x1b6,0x1d8,0x1da,0x1e8,0x1f8,0x214,0x218, -0x222,0x22e,0x234,0x246,0x266,0,0x26a,0x27a,0x288,0x298,0x2be,0x2c2,0x2d0,0x2d4,0x2e8,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x2f4,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x941,0x944,0x56f,0x947, -0x57a,0x57f,0x2fa,0x584,0x94a,0x94d,0x589,0x950,0x953,0x956,0x959,0x594,0,0x95c,0x95f,0x962, -0x599,0x5a4,0x5ad,0,0x2fe,0x965,0x968,0x96b,0x5b2,0x96e,0,0,0x971,0x974,0x5bd,0x977, -0x5c8,0x5cd,0x300,0x5d2,0x97a,0x97d,0x5d7,0x980,0x983,0x986,0x989,0x5e2,0,0x98c,0x98f,0x992, -0x5e7,0x5f2,0x5fb,0,0x304,0x995,0x998,0x99b,0x600,0x99e,0,0x9a1,0x9a4,0x9a7,0x60b,0x616, -0x9aa,0x9ad,0x9b0,0x9b3,0x9b6,0x9b9,0x9bc,0x9bf,0x9c2,0x9c5,0x9c8,0x9cb,0,0,0x621,0x628, -0x9ce,0x9d1,0x9d4,0x9d7,0x9da,0x9dd,0x9e0,0x9e3,0x9e6,0x9e9,0x9ec,0x9ef,0x9f2,0x9f5,0x9f8,0x9fb, -0x9fe,0xa01,0,0,0xa04,0xa07,0xa0a,0xa0d,0xa10,0xa13,0xa16,0xa19,0xa1c,0,0,0, -0xa1f,0xa22,0xa25,0xa28,0,0xa2b,0xa2e,0xa31,0xa34,0xa37,0xa3a,0,0,0,0,0xa3d, -0xa40,0xa43,0xa46,0xa49,0xa4c,0,0,0,0x62f,0x636,0xa4f,0xa52,0xa55,0xa58,0,0, -0xa5b,0xa5e,0xa61,0xa64,0xa67,0xa6a,0x63d,0x642,0xa6d,0xa70,0xa73,0xa76,0x647,0x64c,0xa79,0xa7c, -0xa7f,0xa82,0,0,0x651,0x656,0x65b,0x660,0xa85,0xa88,0xa8b,0xa8e,0xa91,0xa94,0xa97,0xa9a, -0xa9d,0xaa0,0xaa3,0xaa6,0xaa9,0xaac,0xaaf,0xab2,0xab5,0xab8,0xabb,0x306,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x665,0x672,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x67f,0x68c,0,0,0, -0,0,0,0x308,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xabe,0xac1,0xac4,0xac7,0xaca,0xacd,0xad0,0xad3,0xad7,0xadc,0xae1,0xae6,0xaeb,0xaf0,0xaf5, -0xafa,0,0xaff,0xb04,0xb09,0xb0e,0xb12,0xb15,0,0,0xb18,0xb1b,0xb1e,0xb21,0x699,0x69e, -0xb25,0xb2a,0xb2e,0xb31,0xb34,0,0,0,0xb37,0xb3a,0,0,0xb3d,0xb40,0xb44,0xb49, -0xb4d,0xb50,0xb53,0xb56,0xb59,0xb5c,0xb5f,0xb62,0xb65,0xb68,0xb6b,0xb6e,0xb71,0xb74,0xb77,0xb7a, -0xb7d,0xb80,0xb83,0xb86,0xb89,0xb8c,0xb8f,0xb92,0xb95,0xb98,0xb9b,0xb9e,0xba1,0xba4,0xba7,0xbaa, -0,0,0xbad,0xbb0,0,0,0,0,0,0,0x6a3,0x6a8,0x6ad,0x6b2,0xbb4,0xbb9, -0xbbe,0xbc3,0x6b7,0x6bc,0xbc8,0xbcd,0xbd1,0xbd4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x30a,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xffe6,0xfee6,0xfee6, -0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xffe6,0xffe6,0xfee6,0xffe6,0xfee6,0xffe6,0xfee6,0xfee6,0xffe8,0xffdc,0xffdc, -0xffdc,0xffdc,0xffe8,0xfed8,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffca,0xffca,0xfedc,0xfedc,0xfedc,0xfedc,0xfeca, -0xfeca,0xffdc,0xffdc,0xffdc,0xffdc,0xfedc,0xfedc,0xffdc,0xfedc,0xfedc,0xffdc,0xffdc,0xff01,0xff01,0xff01,0xff01, -0xfe01,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffe6,0x14e8,0x14eb,0xfee6,0x14ee,0x14f1,0xfef0,0xffe6,0xffdc, -0xffdc,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6, -0xffe8,0xffdc,0xffdc,0xffe6,0xffe9,0xffea,0xffea,0xffe9,0xffea,0xffea,0xffe9,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0x14f4,0,0,0, -0,0,0,0,0,0,0x14f6,0,0,0,0,0,0,0xbd7,0xbda,0x14f8, -0xbdd,0xbe0,0xbe3,0,0xbe6,0,0xbe9,0xbec,0xbf0,0x30c,0,0,0,0x31a,0,0x322, -0,0x32c,0,0,0,0,0,0x33a,0,0x342,0,0,0,0x344,0,0, -0,0x350,0xbf4,0xbf7,0x6c1,0xbfa,0x6c6,0xbfd,0xc01,0x35a,0,0,0,0x36a,0,0x372, -0,0x37e,0,0,0,0,0,0x38e,0,0x396,0,0,0,0x39a,0,0, -0,0x3aa,0x6cb,0x6d4,0xc05,0xc08,0x6dd,0,0,0,0x3b6,0xc0b,0xc0e,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xc11,0xc14,0,0xc17,0,0,0x3ba,0xc1a, -0,0,0,0,0xc1d,0xc20,0xc23,0,0x3bc,0,0,0x3c0,0,0x3c2,0x3c8,0x3cc, -0x3ce,0xc26,0x3d6,0,0,0,0x3d8,0,0,0,0,0x3da,0,0,0,0x3e2, -0,0,0,0x3e4,0,0x3e6,0,0,0x3e8,0,0,0x3ec,0,0x3ee,0x3f4,0x3f8, -0x3fa,0xc29,0x402,0,0,0,0x404,0,0,0,0,0x406,0,0,0,0x40e, -0,0,0,0x410,0,0x412,0,0,0xc2c,0xc2f,0,0xc32,0,0,0x414,0xc35, -0,0,0,0,0xc38,0xc3b,0xc3e,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x416,0x418,0xc41,0xc44, -0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xc47,0xc4a,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xc4d,0xc50,0xc53,0xc56,0,0,0xc59,0xc5c, -0x41a,0x41c,0xc5f,0xc62,0xc65,0xc68,0xc6b,0xc6e,0,0,0xc71,0xc74,0xc77,0xc7a,0xc7d,0xc80, -0x41e,0x420,0xc83,0xc86,0xc89,0xc8c,0xc8f,0xc92,0xc95,0xc98,0xc9b,0xc9e,0xca1,0xca4,0,0, -0xca7,0xcaa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffde,0xffdc, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6, -0xffe6,0xffde,0xffe4,0xffe6,0xff0a,0xff0b,0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,0xff13,0xff14, -0xff15,0xff16,0,0xff17,0,0xff18,0xff19,0,0xffe6,0xffdc,0,0xff12,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xa5d, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c0, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c8,0x2c7,0x2c7,0x2c7,0x7cb,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x7d2,0x7d6,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7de,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x6f5,0x697,0x7e0,0x7e8,0x2c7,0x2c7,0x7f0,0x7f7,0x2c7,0x584,0x2c7,0x2c7,0x7ff,0x2c7,0x2c7,0x802, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x808,0x2c7,0x463,0x80f,0x816,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x81e,0x2c7,0x2c7,0x822,0x82a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x82f,0x837,0x2c7,0x2c7,0x697, +0x2c7,0x2c7,0x2c7,0x83a,0x2c7,0x2c7,0x2c7,0x840,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x697,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x844,0x2c7,0x84a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x850,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x858,0x860,0x868, +0x86e,0x876,0x2c7,0x2c7,0x2c7,0x87e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x886,0x88e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x892,0x2c7,0x2c7,0x2c7,0x899,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8a1,0x8a9,0x8b1, +0x8b9,0x8c1,0x8c9,0x8d1,0x8d9,0x8e1,0x8e9,0x8f1,0x8f9,0x901,0x909,0x911,0x919,0x921,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2a7,0x2a7,0x2a7, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,0, +0,8,0x28,0x2e,0x38,0x44,0x66,0x68,0x76,0x84,0xa2,0xa4,0xae,0xba,0xc0,0xd2, +0xf2,0,0xf6,0x106,0x114,0x122,0x148,0x14c,0x158,0x15c,0x16e,0,0,0,0,0, +0,0x17a,0x19a,0x1a0,0x1aa,0x1b6,0x1d8,0x1da,0x1e8,0x1f8,0x214,0x218,0x222,0x22e,0x234,0x246, +0x266,0,0x26a,0x27a,0x288,0x298,0x2be,0x2c2,0x2d0,0x2d4,0x2e8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x2f4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x941,0x944,0x56f,0x947,0x57a,0x57f,0x2fa,0x584, +0x94a,0x94d,0x589,0x950,0x953,0x956,0x959,0x594,0,0x95c,0x95f,0x962,0x599,0x5a4,0x5ad,0, +0x2fe,0x965,0x968,0x96b,0x5b2,0x96e,0,0,0x971,0x974,0x5bd,0x977,0x5c8,0x5cd,0x300,0x5d2, +0x97a,0x97d,0x5d7,0x980,0x983,0x986,0x989,0x5e2,0,0x98c,0x98f,0x992,0x5e7,0x5f2,0x5fb,0, +0x304,0x995,0x998,0x99b,0x600,0x99e,0,0x9a1,0x9a4,0x9a7,0x60b,0x616,0x9aa,0x9ad,0x9b0,0x9b3, +0x9b6,0x9b9,0x9bc,0x9bf,0x9c2,0x9c5,0x9c8,0x9cb,0,0,0x621,0x628,0x9ce,0x9d1,0x9d4,0x9d7, +0x9da,0x9dd,0x9e0,0x9e3,0x9e6,0x9e9,0x9ec,0x9ef,0x9f2,0x9f5,0x9f8,0x9fb,0x9fe,0xa01,0,0, +0xa04,0xa07,0xa0a,0xa0d,0xa10,0xa13,0xa16,0xa19,0xa1c,0,0,0,0xa1f,0xa22,0xa25,0xa28, +0,0xa2b,0xa2e,0xa31,0xa34,0xa37,0xa3a,0,0,0,0,0xa3d,0xa40,0xa43,0xa46,0xa49, +0xa4c,0,0,0,0x62f,0x636,0xa4f,0xa52,0xa55,0xa58,0,0,0xa5b,0xa5e,0xa61,0xa64, +0xa67,0xa6a,0x63d,0x642,0xa6d,0xa70,0xa73,0xa76,0x647,0x64c,0xa79,0xa7c,0xa7f,0xa82,0,0, +0x651,0x656,0x65b,0x660,0xa85,0xa88,0xa8b,0xa8e,0xa91,0xa94,0xa97,0xa9a,0xa9d,0xaa0,0xaa3,0xaa6, +0xaa9,0xaac,0xaaf,0xab2,0xab5,0xab8,0xabb,0x306,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x665,0x672,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x67f,0x68c,0,0,0,0,0,0,0x308, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xabe,0xac1,0xac4, +0xac7,0xaca,0xacd,0xad0,0xad3,0xad7,0xadc,0xae1,0xae6,0xaeb,0xaf0,0xaf5,0xafa,0,0xaff,0xb04, +0xb09,0xb0e,0xb12,0xb15,0,0,0xb18,0xb1b,0xb1e,0xb21,0x699,0x69e,0xb25,0xb2a,0xb2e,0xb31, +0xb34,0,0,0,0xb37,0xb3a,0,0,0xb3d,0xb40,0xb44,0xb49,0xb4d,0xb50,0xb53,0xb56, +0xb59,0xb5c,0xb5f,0xb62,0xb65,0xb68,0xb6b,0xb6e,0xb71,0xb74,0xb77,0xb7a,0xb7d,0xb80,0xb83,0xb86, +0xb89,0xb8c,0xb8f,0xb92,0xb95,0xb98,0xb9b,0xb9e,0xba1,0xba4,0xba7,0xbaa,0,0,0xbad,0xbb0, +0,0,0,0,0,0,0x6a3,0x6a8,0x6ad,0x6b2,0xbb4,0xbb9,0xbbe,0xbc3,0x6b7,0x6bc, +0xbc8,0xbcd,0xbd1,0xbd4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x30a,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xffe6,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6, +0xfee6,0xffe6,0xffe6,0xfee6,0xffe6,0xfee6,0xffe6,0xfee6,0xfee6,0xffe8,0xffdc,0xffdc,0xffdc,0xffdc,0xffe8,0xfed8, +0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffca,0xffca,0xfedc,0xfedc,0xfedc,0xfedc,0xfeca,0xfeca,0xffdc,0xffdc,0xffdc, +0xffdc,0xfedc,0xfedc,0xffdc,0xfedc,0xfedc,0xffdc,0xffdc,0xff01,0xff01,0xff01,0xff01,0xfe01,0xffdc,0xffdc,0xffdc, +0xffdc,0xffe6,0xffe6,0xffe6,0x14e8,0x14eb,0xfee6,0x14ee,0x14f1,0xfef0,0xffe6,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6, +0xffe6,0xffdc,0xffdc,0,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe8,0xffdc,0xffdc,0xffe6, +0xffe9,0xffea,0xffea,0xffe9,0xffea,0xffea,0xffe9,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0x14f4,0,0,0,0,0,0,0, +0,0,0x14f6,0,0,0,0,0,0,0xbd7,0xbda,0x14f8,0xbdd,0xbe0,0xbe3,0, +0xbe6,0,0xbe9,0xbec,0xbf0,0x30c,0,0,0,0x31a,0,0x322,0,0x32c,0,0, +0,0,0,0x33a,0,0x342,0,0,0,0x344,0,0,0,0x350,0xbf4,0xbf7, +0x6c1,0xbfa,0x6c6,0xbfd,0xc01,0x35a,0,0,0,0x36a,0,0x372,0,0x37e,0,0, +0,0,0,0x38e,0,0x396,0,0,0,0x39a,0,0,0,0x3aa,0x6cb,0x6d4, +0xc05,0xc08,0x6dd,0,0,0,0x3b6,0xc0b,0xc0e,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xc11,0xc14,0,0xc17,0,0,0x3ba,0xc1a,0,0,0,0, +0xc1d,0xc20,0xc23,0,0x3bc,0,0,0x3c0,0,0x3c2,0x3c8,0x3cc,0x3ce,0xc26,0x3d6,0, +0,0,0x3d8,0,0,0,0,0x3da,0,0,0,0x3e2,0,0,0,0x3e4, +0,0x3e6,0,0,0x3e8,0,0,0x3ec,0,0x3ee,0x3f4,0x3f8,0x3fa,0xc29,0x402,0, +0,0,0x404,0,0,0,0,0x406,0,0,0,0x40e,0,0,0,0x410, +0,0x412,0,0,0xc2c,0xc2f,0,0xc32,0,0,0x414,0xc35,0,0,0,0, +0xc38,0xc3b,0xc3e,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x416,0x418,0xc41,0xc44,0,0,0,0, +0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xc47,0xc4a,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xc4d,0xc50,0xc53,0xc56,0,0,0xc59,0xc5c,0x41a,0x41c,0xc5f,0xc62, +0xc65,0xc68,0xc6b,0xc6e,0,0,0xc71,0xc74,0xc77,0xc7a,0xc7d,0xc80,0x41e,0x420,0xc83,0xc86, +0xc89,0xc8c,0xc8f,0xc92,0xc95,0xc98,0xc9b,0xc9e,0xca1,0xca4,0,0,0xca7,0xcaa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffde,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffde,0xffe4,0xffe6, +0xff0a,0xff0b,0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,0xff13,0xff14,0xff15,0xff16,0,0xff17, +0,0xff18,0xff19,0,0xffe6,0xffdc,0,0xff12,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xff1e,0xff1f,0xff20,0,0,0,0,0, +0,0,0xcad,0xcb0,0xcb3,0xcb6,0xcb9,0x422,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x428,0,0x42a,0xff1b,0xff1c,0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xfee6,0xfee6,0xfedc,0xffdc,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff23,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xcbc,0x42c,0xcbf,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x42e,0xcc2,0,0x430,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0,0,0xffe6, +0xffe6,0,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xff24,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc, +0xffdc,0xffdc,0xffe6,0xffdc,0xffdc,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffdc,0xffe6,0xffdc,0xffe6, +0xffdc,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xff1e,0xff1f,0xff20,0, -0,0,0,0,0,0,0xcad,0xcb0,0xcb3,0xcb6,0xcb9,0x422,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x428,0,0x42a,0xff1b,0xff1c,0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xfee6, -0xfee6,0xfedc,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff23,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xcbc,0x42c,0xcbf,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x42e,0xcc2, -0,0x430,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc, -0xffe6,0,0,0xffe6,0xffe6,0,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xff24,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffdc,0xffe6,0xffe6, -0xffdc,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffe6,0xffdc,0xffdc,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6, -0xffdc,0xffe6,0xffdc,0xffe6,0xffdc,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffdc,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffdc, +0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xff1b,0xff1c,0xff1d,0xffe6, +0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0, +0,0,0,0,0x432,0xcc5,0,0,0,0,0,0,0x434,0xcc8,0,0x436, +0xccb,0,0,0,0,0,0,0,0xfe07,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0xffe6,0xffdc,0xffe6, +0xffe6,0,0,0,0x14fa,0x14fd,0x1500,0x1503,0x1506,0x1509,0x150c,0x150f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff07,0,0xfe00,0,0,0,0,0, +0,0,0,0x438,0,0,0,0xcce,0xcd1,0xff09,0,0,0,0,0,0, +0,0,0,0xfe00,0,0,0,0,0x1512,0x1515,0,0x1518,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x151b, +0,0,0x151e,0,0,0,0,0,0xff07,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0, +0,0,0,0,0,0x1521,0x1524,0x1527,0,0,0x152a,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff07,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x43c, +0xcd4,0,0,0xcd7,0xcda,0xff09,0,0,0,0,0,0,0,0,0xfe00,0xfe00, +0,0,0,0,0x152d,0x1530,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x442,0,0xcdd,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe00,0, +0,0,0,0,0,0,0x444,0x448,0,0,0xce0,0xce3,0xce6,0xff09,0,0, +0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0, +0,0,0x44a,0,0xce9,0,0,0,0,0xff09,0,0,0,0,0,0, +0,0xff54,0xfe5b,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xff07,0,0,0x44c,0xcec,0,0xfe00,0,0,0,0x44e,0xcef,0xcf2,0,0x6e2,0xcf6, +0,0xff09,0,0,0,0,0,0,0,0xfe00,0xfe00,0,0,0,0,0, +0,0,0,0,0,0,0x454,0x458,0,0,0xcfa,0xcfd,0xd00,0xff09,0,0, +0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0, +0,0,0xfe09,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0, +0,0x45a,0xd03,0,0x6e7,0xd07,0xd0b,0xfe00,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xff67,0xff67,0xff09,0,0,0,0,0,0,0,0,0,0xff6b,0xff6b,0xff6b,0xff6b, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff76,0xff76,0,0,0,0,0,0, +0,0,0,0,0xff7a,0xff7a,0xff7a,0xff7a,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffdc,0xffdc,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xffdc,0,0xffdc,0,0xffd8,0,0, +0,0,0,0,0,0,0,0x1533,0,0,0,0,0,0,0,0, +0,0x1536,0,0,0,0,0x1539,0,0,0,0,0x153c,0,0,0,0, +0x153f,0,0,0,0,0,0,0,0,0,0,0,0,0x1542,0,0, +0,0,0,0,0,0xff81,0xff82,0x1546,0xff84,0x154a,0x154d,0,0x1550,0,0xff82,0xff82, +0xff82,0xff82,0,0,0xff82,0x1554,0xffe6,0xffe6,0xff09,0,0xffe6,0xffe6,0,0,0,0, +0,0,0,0,0,0,0,0x1557,0,0,0,0,0,0,0,0, +0,0x155a,0,0,0,0,0x155d,0,0,0,0,0x1560,0,0,0,0, +0x1563,0,0,0,0,0,0,0,0,0,0,0,0,0x1566,0,0, +0,0,0,0,0,0,0xffdc,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x460,0xd0e,0,0,0,0,0,0,0,0xfe00,0,0,0,0,0, +0,0,0,0xff07,0,0xff09,0xff09,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xffdc,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0xffe6,0,0, +0,0,0,0,0,0,0,0,0,0xffe4,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xffde,0xffe6,0xffdc,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6, -0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc, -0,0,0,0,0,0,0,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6, -0xffe6,0xffdc,0xffdc,0xffdc,0xff1b,0xff1c,0xff1d,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffdc,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0x432,0xcc5,0,0, -0,0,0,0,0x434,0xcc8,0,0x436,0xccb,0,0,0,0,0,0,0, -0xfe07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff09,0,0,0,0xffe6,0xffdc,0xffe6,0xffe6,0,0,0,0x14fa,0x14fd,0x1500,0x1503, -0x1506,0x1509,0x150c,0x150f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xff07,0,0xfe00,0,0,0,0,0,0,0,0,0x438,0,0,0,0xcce, -0xcd1,0xff09,0,0,0,0,0,0,0,0,0,0xfe00,0,0,0,0, -0x1512,0x1515,0,0x1518,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x151b,0,0,0x151e,0,0,0,0,0, -0xff07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff09,0,0,0,0,0,0,0,0,0,0,0,0x1521,0x1524,0x1527, -0,0,0x152a,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xff07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x43c,0xcd4,0,0,0xcd7,0xcda,0xff09,0,0, -0,0,0,0,0,0,0xfe00,0xfe00,0,0,0,0,0x152d,0x1530,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x442,0,0xcdd,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0x444,0x448, -0,0,0xce0,0xce3,0xce6,0xff09,0,0,0,0,0,0,0,0,0,0xfe00, -0,0,0,0,0,0,0,0,0,0,0x44a,0,0xce9,0,0,0, -0,0xff09,0,0,0,0,0,0,0,0xff54,0xfe5b,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xff07,0,0,0x44c,0xcec,0,0xfe00,0, -0,0,0x44e,0xcef,0xcf2,0,0x6e2,0xcf6,0,0xff09,0,0,0,0,0,0, -0,0xfe00,0xfe00,0,0,0,0,0,0,0,0,0,0,0,0x454,0x458, -0,0,0xcfa,0xcfd,0xd00,0xff09,0,0,0,0,0,0,0,0,0,0xfe00, -0,0,0,0,0,0,0,0,0,0,0xfe09,0,0,0,0,0xfe00, -0,0,0,0,0,0,0,0,0,0x45a,0xd03,0,0x6e7,0xd07,0xd0b,0xfe00, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xff67,0xff67,0xff09,0,0,0,0,0, -0,0,0,0,0xff6b,0xff6b,0xff6b,0xff6b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xff76,0xff76,0,0,0,0,0,0,0,0,0,0,0xff7a,0xff7a,0xff7a,0xff7a, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xffdc,0xffdc,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xffdc,0,0xffdc,0,0xffd8,0,0,0,0,0,0,0,0,0,0x1533, -0,0,0,0,0,0,0,0,0,0x1536,0,0,0,0,0x1539,0, -0,0,0,0x153c,0,0,0,0,0x153f,0,0,0,0,0,0,0, -0,0,0,0,0,0x1542,0,0,0,0,0,0,0,0xff81,0xff82,0x1546, -0xff84,0x154a,0x154d,0,0x1550,0,0xff82,0xff82,0xff82,0xff82,0,0,0xff82,0x1554,0xffe6,0xffe6, -0xff09,0,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0x1557, -0,0,0,0,0,0,0,0,0,0x155a,0,0,0,0,0x155d,0, -0,0,0,0x1560,0,0,0,0,0x1563,0,0,0,0,0,0,0, -0,0,0,0,0,0x1566,0,0,0,0,0,0,0,0,0xffdc,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x460,0xd0e,0,0,0,0,0, -0,0,0xfe00,0,0,0,0,0,0,0,0,0xff07,0,0xff09,0xff09,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xffdc,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffdc,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffdc,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc, +0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0x462,0xd11,0x464, +0xd14,0x466,0xd17,0x468,0xd1a,0x46a,0xd1d,0,0,0x46c,0xd20,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0, -0,0,0,0,0,0xffe6,0,0,0,0,0,0,0,0,0,0, -0,0xffe4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xffde,0xffe6,0xffdc, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xffe6,0xffdc,0,0,0,0,0,0,0, +0xff07,0xfe00,0,0,0,0,0x46e,0xd23,0x470,0xd26,0x472,0x474,0xd29,0xd2c,0x476,0xd2f, 0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffdc, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0,0, -0,0,0,0,0,0x462,0xd11,0x464,0xd14,0x466,0xd17,0x468,0xd1a,0x46a,0xd1d,0, -0,0x46c,0xd20,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xff07,0xfe00,0,0,0,0,0x46e,0xd23, -0x470,0xd26,0x472,0x474,0xd29,0xd2c,0x476,0xd2f,0xff09,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6, +0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xff09,0xff09,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff07,0, +0,0,0,0,0,0,0,0,0,0,0xff09,0xff09,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xff07,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xffe6,0xffe6,0xffe6,0,0xff01,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6, +0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0,0xff01,0xff01,0xff01,0xff01,0xff01,0xff01,0xff01,0,0,0, +0,0xffdc,0,0,0,0,0,0,0xffe6,0,0,0,0xffe6,0xffe6,0,0, +0,0,0,0,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6, +0xffe6,0xffea,0xffd6,0xffdc,0xffca,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0, +0,0,0,0xffe6,0xffe9,0xffdc,0xffe6,0xffdc,0xd32,0xd35,0xd38,0xd3b,0xd3e,0xd41,0xd44,0xd47, +0xd4b,0xd50,0xd54,0xd57,0xd5a,0xd5d,0xd60,0xd63,0xd66,0xd69,0xd6c,0xd6f,0xd73,0xd78,0xd7d,0xd82, +0xd86,0xd89,0xd8c,0xd8f,0xd93,0xd98,0xd9c,0xd9f,0xda2,0xda5,0xda8,0xdab,0xdae,0xdb1,0xdb4,0xdb7, +0xdba,0xdbd,0xdc0,0xdc3,0xdc6,0xdc9,0xdcd,0xdd2,0xdd6,0xdd9,0xddc,0xddf,0xde2,0xde5,0x6ec,0x6f1, +0xde9,0xdee,0xdf2,0xdf5,0xdf8,0xdfb,0xdfe,0xe01,0xe04,0xe07,0xe0a,0xe0d,0xe10,0xe13,0xe16,0xe19, +0xe1c,0xe1f,0xe22,0xe25,0xe29,0xe2e,0xe33,0xe38,0xe3d,0xe42,0xe47,0xe4c,0xe50,0xe53,0xe56,0xe59, +0xe5c,0xe5f,0x6f6,0x6fb,0xe63,0xe68,0xe6c,0xe6f,0xe72,0xe75,0x700,0x705,0xe79,0xe7e,0xe83,0xe88, +0xe8d,0xe92,0xe96,0xe99,0xe9c,0xe9f,0xea2,0xea5,0xea8,0xeab,0xeae,0xeb1,0xeb4,0xeb7,0xeba,0xebd, +0xec1,0xec6,0xecb,0xed0,0xed4,0xed7,0xeda,0xedd,0xee0,0xee3,0xee6,0xee9,0xeec,0xeef,0xef2,0xef5, +0xef8,0xefb,0xefe,0xf01,0xf04,0xf07,0xf0a,0xf0d,0xf10,0xf13,0xf16,0xf19,0xf1c,0xf1f,0xf22,0xf25, +0xf28,0xf2b,0,0xf2e,0,0,0,0,0x70a,0x711,0xf31,0xf34,0xf38,0xf3d,0xf42,0xf47, +0xf4c,0xf51,0xf56,0xf5b,0xf60,0xf65,0xf6a,0xf6f,0xf74,0xf79,0xf7e,0xf83,0xf88,0xf8d,0xf92,0xf97, +0x718,0x71d,0xf9b,0xf9e,0xfa1,0xfa4,0xfa8,0xfad,0xfb2,0xfb7,0xfbc,0xfc1,0xfc6,0xfcb,0xfd0,0xfd5, +0xfd9,0xfdc,0xfdf,0xfe2,0x722,0x727,0xfe5,0xfe8,0xfec,0xff1,0xff6,0xffb,0x1000,0x1005,0x100a,0x100f, +0x1014,0x1019,0x101e,0x1023,0x1028,0x102d,0x1032,0x1037,0x103c,0x1041,0x1046,0x104b,0x104f,0x1052,0x1055,0x1058, +0x105c,0x1061,0x1066,0x106b,0x1070,0x1075,0x107a,0x107f,0x1084,0x1089,0x108d,0x1090,0x1093,0x1096,0x1099,0x109c, +0x109f,0x10a2,0,0,0,0,0,0,0x72c,0x737,0x743,0x74a,0x751,0x758,0x75f,0x766, +0x76c,0x777,0x783,0x78a,0x791,0x798,0x79f,0x7a6,0x7ac,0x7b3,0x10a6,0x10ab,0x10b0,0x10b5,0,0, +0x7ba,0x7c1,0x10ba,0x10bf,0x10c4,0x10c9,0,0,0x7c8,0x7d3,0x7df,0x7e6,0x7ed,0x7f4,0x7fb,0x802, +0x808,0x813,0x81f,0x826,0x82d,0x834,0x83b,0x842,0x848,0x851,0x10ce,0x10d3,0x10d8,0x10dd,0x10e2,0x10e7, +0x85a,0x863,0x10ec,0x10f1,0x10f6,0x10fb,0x1100,0x1105,0x86c,0x873,0x110a,0x110f,0x1114,0x1119,0,0, +0x87a,0x881,0x111e,0x1123,0x1128,0x112d,0,0,0x888,0x891,0x1132,0x1137,0x113c,0x1141,0x1146,0x114b, +0,0x89a,0,0x1150,0,0x1155,0,0x115a,0x8a3,0x8ae,0x8ba,0x8c1,0x8c8,0x8cf,0x8d6,0x8dd, +0x8e3,0x8ee,0x8fa,0x901,0x908,0x90f,0x916,0x91d,0x923,0x156a,0x115e,0x156e,0x928,0x1572,0x1161,0x1576, +0x1164,0x157a,0x1167,0x157e,0x92d,0x1582,0,0,0x116b,0x1170,0x1177,0x117f,0x1187,0x118f,0x1197,0x119f, +0x11a5,0x11aa,0x11b1,0x11b9,0x11c1,0x11c9,0x11d1,0x11d9,0x11df,0x11e4,0x11eb,0x11f3,0x11fb,0x1203,0x120b,0x1213, +0x1219,0x121e,0x1225,0x122d,0x1235,0x123d,0x1245,0x124d,0x1253,0x1258,0x125f,0x1267,0x126f,0x1277,0x127f,0x1287, +0x128d,0x1292,0x1299,0x12a1,0x12a9,0x12b1,0x12b9,0x12c1,0x12c6,0x12c9,0x12cd,0x12d1,0x12d5,0,0x932,0x12da, +0x12de,0x12e1,0x12e4,0x1586,0x12e7,0,0x1589,0x478,0,0x12ea,0x12ee,0x12f2,0x12f6,0,0x937,0x12fb, +0x12ff,0x158c,0x1302,0x1590,0x1305,0x1308,0x130b,0x130e,0x1311,0x1314,0x1318,0x1595,0,0,0x131c,0x1320, +0x1324,0x1327,0x132a,0x159a,0,0x132d,0x1330,0x1333,0x1336,0x1339,0x133d,0x159f,0x1341,0x1344,0x1347,0x134b, +0x134f,0x1352,0x1355,0x15a4,0x1358,0x135b,0x15a8,0x15ab,0,0,0x135f,0x1363,0x1367,0,0x93c,0x136c, +0x1370,0x15ae,0x1373,0x15b2,0x1376,0x15b5,0x47e,0,0xfdc1,0xfdc1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xff01,0xff01,0xffe6,0xffe6,0xffe6,0xffe6, +0xff01,0xff01,0xff01,0xffe6,0xffe6,0,0,0,0,0xffe6,0,0,0,0xff01,0xff01,0xffe6, +0xffdc,0xffe6,0xff01,0xff01,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x15b7,0,0,0,0x15b9,0x15bc, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x484,0,0x486,0,0x488,0,0,0,0,0,0x1379,0x137c, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x137f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x1382,0x1385,0x1388,0x48a,0,0x48c,0,0x48e,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x490,0x138b,0,0,0,0x492,0x138e,0,0x494, +0x1391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x496,0x1394,0x498,0x1397,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x49a,0,0,0,0,0x139a,0,0x49c,0x139d,0x49e,0,0x13a0,0x4a0,0x13a3,0,0, +0,0x4a2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x13a6,0x4a4,0x13a9,0,0x4a6,0x4a8,0,0,0,0,0,0, +0,0x13ac,0x13af,0x13b2,0x13b5,0x13b8,0x4aa,0x4ac,0x13bb,0x13be,0x4ae,0x4b0,0x13c1,0x13c4,0x4b2,0x4b4, +0x4b6,0x4b8,0,0,0x13c7,0x13ca,0x4ba,0x4bc,0x13cd,0x13d0,0x4be,0x4c0,0x13d3,0x13d6,0,0, +0,0,0,0,0,0x4c2,0x4c4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x4c6,0,0,0,0,0,0x4c8,0x4ca,0,0x4cc, +0x13d9,0x13dc,0x13df,0x13e2,0,0,0x4ce,0x4d0,0x4d2,0x4d4,0,0,0,0,0,0, +0,0,0,0,0x13e5,0x13e8,0x13eb,0x13ee,0,0,0,0,0,0,0x13f1,0x13f4, +0x13f7,0x13fa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x15bf,0x15c1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x15c3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xff09,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0, +0,0,0,0,0,0,0xffda,0xffe4,0xffe8,0xffde,0xffe0,0xffe0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x4d6,0, +0,0,0,0x4d8,0x13fd,0x4da,0x1400,0x4dc,0x1403,0x4de,0x1406,0x4e0,0x1409,0x4e2,0x140c,0x4e4, +0x140f,0x4e6,0x1412,0x4e8,0x1415,0x4ea,0x1418,0x4ec,0x141b,0x4ee,0x141e,0,0x4f0,0x1421,0x4f2,0x1424, +0x4f4,0x1427,0,0,0,0,0,0x4f6,0x142a,0x142d,0x4fa,0x1430,0x1433,0x4fe,0x1436,0x1439, +0x502,0x143c,0x143f,0x506,0x1442,0x1445,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1448,0,0,0, +0,0xfe08,0xfe08,0,0,0x50a,0x144b,0,0,0,0,0,0,0,0x50c,0, +0,0,0,0x50e,0x144e,0x510,0x1451,0x512,0x1454,0x514,0x1457,0x516,0x145a,0x518,0x145d,0x51a, +0x1460,0x51c,0x1463,0x51e,0x1466,0x520,0x1469,0x522,0x146c,0x524,0x146f,0,0x526,0x1472,0x528,0x1475, +0x52a,0x1478,0,0,0,0,0,0x52c,0x147b,0x147e,0x530,0x1481,0x1484,0x534,0x1487,0x148a, +0x538,0x148d,0x1490,0x53c,0x1493,0x1496,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x540,0x542,0x544,0x546,0,0x1499,0,0,0x149c, +0x149f,0x14a2,0x14a5,0,0,0x548,0x14a8,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xffe6,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xffe6,0xffe6,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xffe6,0xffe6,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0xff09, +0,0,0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xff07,0,0,0,0,0,0,0,0,0, -0,0,0xff09,0xff09,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xff07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0, -0xff01,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0,0xff01,0xff01, -0xff01,0xff01,0xff01,0xff01,0xff01,0,0,0,0,0xffdc,0,0,0,0,0,0, -0xffe6,0,0,0,0xffe6,0xffe6,0,0,0,0,0,0,0xffe6,0xffe6,0xffdc,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffea,0xffd6,0xffdc,0xffca,0xffe6,0xffe6,0xffe6, 0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0xffe9,0xffdc,0xffe6,0xffdc, -0xd32,0xd35,0xd38,0xd3b,0xd3e,0xd41,0xd44,0xd47,0xd4b,0xd50,0xd54,0xd57,0xd5a,0xd5d,0xd60,0xd63, -0xd66,0xd69,0xd6c,0xd6f,0xd73,0xd78,0xd7d,0xd82,0xd86,0xd89,0xd8c,0xd8f,0xd93,0xd98,0xd9c,0xd9f, -0xda2,0xda5,0xda8,0xdab,0xdae,0xdb1,0xdb4,0xdb7,0xdba,0xdbd,0xdc0,0xdc3,0xdc6,0xdc9,0xdcd,0xdd2, -0xdd6,0xdd9,0xddc,0xddf,0xde2,0xde5,0x6ec,0x6f1,0xde9,0xdee,0xdf2,0xdf5,0xdf8,0xdfb,0xdfe,0xe01, -0xe04,0xe07,0xe0a,0xe0d,0xe10,0xe13,0xe16,0xe19,0xe1c,0xe1f,0xe22,0xe25,0xe29,0xe2e,0xe33,0xe38, -0xe3d,0xe42,0xe47,0xe4c,0xe50,0xe53,0xe56,0xe59,0xe5c,0xe5f,0x6f6,0x6fb,0xe63,0xe68,0xe6c,0xe6f, -0xe72,0xe75,0x700,0x705,0xe79,0xe7e,0xe83,0xe88,0xe8d,0xe92,0xe96,0xe99,0xe9c,0xe9f,0xea2,0xea5, -0xea8,0xeab,0xeae,0xeb1,0xeb4,0xeb7,0xeba,0xebd,0xec1,0xec6,0xecb,0xed0,0xed4,0xed7,0xeda,0xedd, -0xee0,0xee3,0xee6,0xee9,0xeec,0xeef,0xef2,0xef5,0xef8,0xefb,0xefe,0xf01,0xf04,0xf07,0xf0a,0xf0d, -0xf10,0xf13,0xf16,0xf19,0xf1c,0xf1f,0xf22,0xf25,0xf28,0xf2b,0,0xf2e,0,0,0,0, -0x70a,0x711,0xf31,0xf34,0xf38,0xf3d,0xf42,0xf47,0xf4c,0xf51,0xf56,0xf5b,0xf60,0xf65,0xf6a,0xf6f, -0xf74,0xf79,0xf7e,0xf83,0xf88,0xf8d,0xf92,0xf97,0x718,0x71d,0xf9b,0xf9e,0xfa1,0xfa4,0xfa8,0xfad, -0xfb2,0xfb7,0xfbc,0xfc1,0xfc6,0xfcb,0xfd0,0xfd5,0xfd9,0xfdc,0xfdf,0xfe2,0x722,0x727,0xfe5,0xfe8, -0xfec,0xff1,0xff6,0xffb,0x1000,0x1005,0x100a,0x100f,0x1014,0x1019,0x101e,0x1023,0x1028,0x102d,0x1032,0x1037, -0x103c,0x1041,0x1046,0x104b,0x104f,0x1052,0x1055,0x1058,0x105c,0x1061,0x1066,0x106b,0x1070,0x1075,0x107a,0x107f, -0x1084,0x1089,0x108d,0x1090,0x1093,0x1096,0x1099,0x109c,0x109f,0x10a2,0,0,0,0,0,0, -0x72c,0x737,0x743,0x74a,0x751,0x758,0x75f,0x766,0x76c,0x777,0x783,0x78a,0x791,0x798,0x79f,0x7a6, -0x7ac,0x7b3,0x10a6,0x10ab,0x10b0,0x10b5,0,0,0x7ba,0x7c1,0x10ba,0x10bf,0x10c4,0x10c9,0,0, -0x7c8,0x7d3,0x7df,0x7e6,0x7ed,0x7f4,0x7fb,0x802,0x808,0x813,0x81f,0x826,0x82d,0x834,0x83b,0x842, -0x848,0x851,0x10ce,0x10d3,0x10d8,0x10dd,0x10e2,0x10e7,0x85a,0x863,0x10ec,0x10f1,0x10f6,0x10fb,0x1100,0x1105, -0x86c,0x873,0x110a,0x110f,0x1114,0x1119,0,0,0x87a,0x881,0x111e,0x1123,0x1128,0x112d,0,0, -0x888,0x891,0x1132,0x1137,0x113c,0x1141,0x1146,0x114b,0,0x89a,0,0x1150,0,0x1155,0,0x115a, -0x8a3,0x8ae,0x8ba,0x8c1,0x8c8,0x8cf,0x8d6,0x8dd,0x8e3,0x8ee,0x8fa,0x901,0x908,0x90f,0x916,0x91d, -0x923,0x156a,0x115e,0x156e,0x928,0x1572,0x1161,0x1576,0x1164,0x157a,0x1167,0x157e,0x92d,0x1582,0,0, -0x116b,0x1170,0x1177,0x117f,0x1187,0x118f,0x1197,0x119f,0x11a5,0x11aa,0x11b1,0x11b9,0x11c1,0x11c9,0x11d1,0x11d9, -0x11df,0x11e4,0x11eb,0x11f3,0x11fb,0x1203,0x120b,0x1213,0x1219,0x121e,0x1225,0x122d,0x1235,0x123d,0x1245,0x124d, -0x1253,0x1258,0x125f,0x1267,0x126f,0x1277,0x127f,0x1287,0x128d,0x1292,0x1299,0x12a1,0x12a9,0x12b1,0x12b9,0x12c1, -0x12c6,0x12c9,0x12cd,0x12d1,0x12d5,0,0x932,0x12da,0x12de,0x12e1,0x12e4,0x1586,0x12e7,0,0x1589,0x478, -0,0x12ea,0x12ee,0x12f2,0x12f6,0,0x937,0x12fb,0x12ff,0x158c,0x1302,0x1590,0x1305,0x1308,0x130b,0x130e, -0x1311,0x1314,0x1318,0x1595,0,0,0x131c,0x1320,0x1324,0x1327,0x132a,0x159a,0,0x132d,0x1330,0x1333, -0x1336,0x1339,0x133d,0x159f,0x1341,0x1344,0x1347,0x134b,0x134f,0x1352,0x1355,0x15a4,0x1358,0x135b,0x15a8,0x15ab, -0,0,0x135f,0x1363,0x1367,0,0x93c,0x136c,0x1370,0x15ae,0x1373,0x15b2,0x1376,0x15b5,0x47e,0, -0xfdc1,0xfdc1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xffe6,0xffe6,0xff01,0xff01,0xffe6,0xffe6,0xffe6,0xffe6,0xff01,0xff01,0xff01,0xffe6,0xffe6,0,0,0, -0,0xffe6,0,0,0,0xff01,0xff01,0xffe6,0xffdc,0xffe6,0xff01,0xff01,0xffdc,0xffdc,0xffdc,0xffdc, -0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x15b7,0,0,0,0x15b9,0x15bc,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x484,0,0x486,0, -0x488,0,0,0,0,0,0x1379,0x137c,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x137f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x1382,0x1385,0x1388,0x48a,0,0x48c,0, -0x48e,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x490, -0x138b,0,0,0,0x492,0x138e,0,0x494,0x1391,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x496, -0x1394,0x498,0x1397,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x49a,0,0,0,0,0x139a,0,0x49c, -0x139d,0x49e,0,0x13a0,0x4a0,0x13a3,0,0,0,0x4a2,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x13a6,0x4a4,0x13a9,0, -0x4a6,0x4a8,0,0,0,0,0,0,0,0x13ac,0x13af,0x13b2,0x13b5,0x13b8,0x4aa,0x4ac, -0x13bb,0x13be,0x4ae,0x4b0,0x13c1,0x13c4,0x4b2,0x4b4,0x4b6,0x4b8,0,0,0x13c7,0x13ca,0x4ba,0x4bc, -0x13cd,0x13d0,0x4be,0x4c0,0x13d3,0x13d6,0,0,0,0,0,0,0,0x4c2,0x4c4,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x4c6,0, -0,0,0,0,0x4c8,0x4ca,0,0x4cc,0x13d9,0x13dc,0x13df,0x13e2,0,0,0x4ce,0x4d0, -0x4d2,0x4d4,0,0,0,0,0,0,0,0,0,0,0x13e5,0x13e8,0x13eb,0x13ee, -0,0,0,0,0,0,0x13f1,0x13f4,0x13f7,0x13fa,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x15bf,0x15c1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x15c3,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6, 0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xffdc,0xffdc,0xffdc,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0, +0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff09,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0xffda,0xffe4, -0xffe8,0xffde,0xffe0,0xffe0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x4d6,0,0,0,0,0x4d8,0x13fd,0x4da,0x1400,0x4dc, -0x1403,0x4de,0x1406,0x4e0,0x1409,0x4e2,0x140c,0x4e4,0x140f,0x4e6,0x1412,0x4e8,0x1415,0x4ea,0x1418,0x4ec, -0x141b,0x4ee,0x141e,0,0x4f0,0x1421,0x4f2,0x1424,0x4f4,0x1427,0,0,0,0,0,0x4f6, -0x142a,0x142d,0x4fa,0x1430,0x1433,0x4fe,0x1436,0x1439,0x502,0x143c,0x143f,0x506,0x1442,0x1445,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1448,0,0,0,0,0xfe08,0xfe08,0,0,0x50a,0x144b,0, -0,0,0,0,0,0,0x50c,0,0,0,0,0x50e,0x144e,0x510,0x1451,0x512, -0x1454,0x514,0x1457,0x516,0x145a,0x518,0x145d,0x51a,0x1460,0x51c,0x1463,0x51e,0x1466,0x520,0x1469,0x522, -0x146c,0x524,0x146f,0,0x526,0x1472,0x528,0x1475,0x52a,0x1478,0,0,0,0,0,0x52c, -0x147b,0x147e,0x530,0x1481,0x1484,0x534,0x1487,0x148a,0x538,0x148d,0x1490,0x53c,0x1493,0x1496,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x540, -0x542,0x544,0x546,0,0x1499,0,0,0x149c,0x149f,0x14a2,0x14a5,0,0,0x548,0x14a8,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6, -0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0, +0,0,0,0,0,0,0,0,0xffe6,0,0xffe6,0xffe6,0xffdc,0,0,0xffe6, +0xffe6,0,0,0,0,0,0xffe6,0xffe6,0,0xffe6,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6, +0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0, +0,0,0,0,0x15c6,0x15c8,0x15ca,0x15cc,0x15ce,0x15d0,0x15d2,0x15d4,0x15d4,0x15d6,0x15d8,0x15da, +0x15dc,0x15de,0x15e0,0x15e2,0x15e4,0x15e6,0x15e8,0x15ea,0x15ec,0x15ee,0x15f0,0x15f2,0x15f4,0x15f6,0x15f8,0x15fa, +0x15fc,0x15fe,0x1600,0x1602,0x1604,0x1606,0x1608,0x160a,0x160c,0x160e,0x1610,0x1612,0x1614,0x1616,0x1618,0x161a, +0x161c,0x161e,0x1620,0x1622,0x1624,0x1626,0x1628,0x162a,0x162c,0x162e,0x1630,0x1632,0x1634,0x1636,0x1638,0x163a, +0x163c,0x163e,0x1640,0x1642,0x1644,0x1646,0x1648,0x164a,0x164c,0x164e,0x1650,0x1652,0x1654,0x1656,0x1658,0x165a, +0x165c,0x165e,0x1660,0x1662,0x1664,0x1666,0x1668,0x166a,0x166c,0x166e,0x1670,0x1672,0x1674,0x1676,0x1678,0x167a, +0x15ec,0x167c,0x167e,0x1680,0x1682,0x1684,0x1686,0x1688,0x168a,0x168c,0x168e,0x1690,0x1692,0x1694,0x1696,0x1698, +0x169a,0x169c,0x169e,0x16a0,0x16a2,0x16a4,0x16a6,0x16a8,0x16aa,0x16ac,0x16ae,0x16b0,0x16b2,0x16b4,0x16b6,0x16b8, +0x16ba,0x16bc,0x16be,0x16c0,0x16c2,0x16c4,0x16c6,0x16c8,0x16ca,0x16cc,0x16ce,0x16d0,0x16d2,0x16d4,0x16d6,0x16d8, +0x16da,0x16dc,0x16de,0x16e0,0x16e2,0x16e4,0x16e6,0x16e8,0x16ea,0x16ec,0x16ee,0x16f0,0x16f2,0x16f4,0x16f6,0x16f8, +0x16fa,0x16fc,0x16fe,0x1700,0x1702,0x16a0,0x1704,0x1706,0x1708,0x170a,0x170c,0x170e,0x1710,0x1712,0x1680,0x1714, +0x1716,0x1718,0x171a,0x171c,0x171e,0x1720,0x1722,0x1724,0x1726,0x1728,0x172a,0x172c,0x172e,0x1730,0x1732,0x1734, +0x1736,0x1738,0x173a,0x15ec,0x173c,0x173e,0x1740,0x1742,0x1744,0x1746,0x1748,0x174a,0x174c,0x174e,0x1750,0x1752, +0x1754,0x1756,0x1758,0x175a,0x175c,0x175e,0x1760,0x1762,0x1764,0x1766,0x1768,0x176a,0x176c,0x176e,0x1770,0x1684, +0x1772,0x1774,0x1776,0x1778,0x177a,0x177c,0x177e,0x1780,0x1782,0x1784,0x1786,0x1788,0x178a,0x178c,0x178e,0x1790, +0x1792,0x1794,0x1796,0x1798,0x179a,0x179c,0x179e,0x17a0,0x17a2,0x17a4,0x17a6,0x17a8,0x17aa,0x17ac,0x17ae,0x17b0, +0x17b2,0x17b4,0x17b6,0x17b8,0x17ba,0x17bc,0x17be,0x17c0,0x17c2,0x17c4,0x17c6,0x17c8,0x17ca,0x17cc,0x17ce,0x17d0, +0x17d2,0x17d4,0,0,0x17d6,0,0x17d8,0,0,0x17da,0x17dc,0x17de,0x17e0,0x17e2,0x17e4,0x17e6, +0x17e8,0x17ea,0x17ec,0,0x17ee,0,0x17f0,0,0,0x17f2,0x17f4,0,0,0,0x17f6,0x17f8, +0x17fa,0x17fc,0x17fe,0x1800,0x1802,0x1804,0x1806,0x1808,0x180a,0x180c,0x180e,0x1810,0x1812,0x1814,0x1816,0x1818, +0x181a,0x181c,0x181e,0x1820,0x1822,0x1824,0x1826,0x1828,0x182a,0x182c,0x182e,0x1830,0x1832,0x1834,0x1836,0x1838, +0x183a,0x183c,0x183e,0x1840,0x1842,0x1844,0x1846,0x1848,0x184a,0x184c,0x184e,0x16ee,0x1850,0x1852,0x1854,0x1856, +0x1858,0x185a,0x185a,0x185c,0x185e,0x1860,0x1862,0x1864,0x1866,0x1868,0x186a,0x17f2,0x186c,0x186e,0x1870,0x1872, +0x1874,0x1877,0,0,0x1879,0x187b,0x187d,0x187f,0x1881,0x1883,0x1885,0x1887,0x180e,0x1889,0x188b,0x188d, +0x17d6,0x188f,0x1891,0x1893,0x1895,0x1897,0x1899,0x189b,0x189d,0x189f,0x18a1,0x18a3,0x18a5,0x1820,0x18a7,0x1822, +0x18a9,0x18ab,0x18ad,0x18af,0x18b1,0x17d8,0x1616,0x18b3,0x18b5,0x18b7,0x16a2,0x1750,0x18b9,0x18bb,0x1830,0x18bd, +0x1832,0x18bf,0x18c1,0x18c3,0x17dc,0x18c5,0x18c7,0x18c9,0x18cb,0x18cd,0x17de,0x18cf,0x18d1,0x18d3,0x18d5,0x18d7, +0x18d9,0x184e,0x18db,0x18dd,0x16ee,0x18df,0x1856,0x18e1,0x18e3,0x18e5,0x18e7,0x18e9,0x1860,0x18eb,0x17f0,0x18ed, +0x1862,0x167c,0x18ef,0x1864,0x18f1,0x1868,0x18f3,0x18f5,0x18f7,0x18f9,0x18fb,0x186c,0x17e8,0x18fd,0x186e,0x18ff, +0x1870,0x1901,0x15d4,0x1903,0x1906,0x1909,0x190c,0x190e,0x1910,0x1912,0x1915,0x1918,0x191b,0x191d,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x191f,0xff1a,0x1922, +0,0,0,0,0,0,0,0,0,0,0x1925,0x1928,0x192c,0x1931,0x1935,0x1938, +0x193b,0x193e,0x1941,0x1944,0x1947,0x194a,0x194d,0,0x1950,0x1953,0x1956,0x1959,0x195c,0,0x195f,0, +0x1962,0x1965,0,0x1968,0x196b,0,0x196e,0x1971,0x1974,0x1977,0x197a,0x197d,0x1980,0x1983,0x1986,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xffdc,0,0, +0xffdc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0,0, +0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xffdc,0,0xffe6,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0,0, -0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xffe6,0xff01,0xffdc,0,0,0,0,0xff09,0,0,0,0,0,0xffe6,0xffdc,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xffe6,0,0xffe6,0xffe6,0xffdc,0,0,0xffe6,0xffe6,0,0,0,0,0,0xffe6,0xffe6, -0,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xff09,0,0,0,0,0,0,0,0,0,0x15c6,0x15c8,0x15ca,0x15cc, -0x15ce,0x15d0,0x15d2,0x15d4,0x15d4,0x15d6,0x15d8,0x15da,0x15dc,0x15de,0x15e0,0x15e2,0x15e4,0x15e6,0x15e8,0x15ea, -0x15ec,0x15ee,0x15f0,0x15f2,0x15f4,0x15f6,0x15f8,0x15fa,0x15fc,0x15fe,0x1600,0x1602,0x1604,0x1606,0x1608,0x160a, -0x160c,0x160e,0x1610,0x1612,0x1614,0x1616,0x1618,0x161a,0x161c,0x161e,0x1620,0x1622,0x1624,0x1626,0x1628,0x162a, -0x162c,0x162e,0x1630,0x1632,0x1634,0x1636,0x1638,0x163a,0x163c,0x163e,0x1640,0x1642,0x1644,0x1646,0x1648,0x164a, -0x164c,0x164e,0x1650,0x1652,0x1654,0x1656,0x1658,0x165a,0x165c,0x165e,0x1660,0x1662,0x1664,0x1666,0x1668,0x166a, -0x166c,0x166e,0x1670,0x1672,0x1674,0x1676,0x1678,0x167a,0x15ec,0x167c,0x167e,0x1680,0x1682,0x1684,0x1686,0x1688, -0x168a,0x168c,0x168e,0x1690,0x1692,0x1694,0x1696,0x1698,0x169a,0x169c,0x169e,0x16a0,0x16a2,0x16a4,0x16a6,0x16a8, -0x16aa,0x16ac,0x16ae,0x16b0,0x16b2,0x16b4,0x16b6,0x16b8,0x16ba,0x16bc,0x16be,0x16c0,0x16c2,0x16c4,0x16c6,0x16c8, -0x16ca,0x16cc,0x16ce,0x16d0,0x16d2,0x16d4,0x16d6,0x16d8,0x16da,0x16dc,0x16de,0x16e0,0x16e2,0x16e4,0x16e6,0x16e8, -0x16ea,0x16ec,0x16ee,0x16f0,0x16f2,0x16f4,0x16f6,0x16f8,0x16fa,0x16fc,0x16fe,0x1700,0x1702,0x16a0,0x1704,0x1706, -0x1708,0x170a,0x170c,0x170e,0x1710,0x1712,0x1680,0x1714,0x1716,0x1718,0x171a,0x171c,0x171e,0x1720,0x1722,0x1724, -0x1726,0x1728,0x172a,0x172c,0x172e,0x1730,0x1732,0x1734,0x1736,0x1738,0x173a,0x15ec,0x173c,0x173e,0x1740,0x1742, -0x1744,0x1746,0x1748,0x174a,0x174c,0x174e,0x1750,0x1752,0x1754,0x1756,0x1758,0x175a,0x175c,0x175e,0x1760,0x1762, -0x1764,0x1766,0x1768,0x176a,0x176c,0x176e,0x1770,0x1684,0x1772,0x1774,0x1776,0x1778,0x177a,0x177c,0x177e,0x1780, -0x1782,0x1784,0x1786,0x1788,0x178a,0x178c,0x178e,0x1790,0x1792,0x1794,0x1796,0x1798,0x179a,0x179c,0x179e,0x17a0, -0x17a2,0x17a4,0x17a6,0x17a8,0x17aa,0x17ac,0x17ae,0x17b0,0x17b2,0x17b4,0x17b6,0x17b8,0x17ba,0x17bc,0x17be,0x17c0, -0x17c2,0x17c4,0x17c6,0x17c8,0x17ca,0x17cc,0x17ce,0x17d0,0x17d2,0x17d4,0,0,0x17d6,0,0x17d8,0, -0,0x17da,0x17dc,0x17de,0x17e0,0x17e2,0x17e4,0x17e6,0x17e8,0x17ea,0x17ec,0,0x17ee,0,0x17f0,0, -0,0x17f2,0x17f4,0,0,0,0x17f6,0x17f8,0x17fa,0x17fc,0x17fe,0x1800,0x1802,0x1804,0x1806,0x1808, -0x180a,0x180c,0x180e,0x1810,0x1812,0x1814,0x1816,0x1818,0x181a,0x181c,0x181e,0x1820,0x1822,0x1824,0x1826,0x1828, -0x182a,0x182c,0x182e,0x1830,0x1832,0x1834,0x1836,0x1838,0x183a,0x183c,0x183e,0x1840,0x1842,0x1844,0x1846,0x1848, -0x184a,0x184c,0x184e,0x16ee,0x1850,0x1852,0x1854,0x1856,0x1858,0x185a,0x185a,0x185c,0x185e,0x1860,0x1862,0x1864, -0x1866,0x1868,0x186a,0x17f2,0x186c,0x186e,0x1870,0x1872,0x1874,0x1877,0,0,0x1879,0x187b,0x187d,0x187f, -0x1881,0x1883,0x1885,0x1887,0x180e,0x1889,0x188b,0x188d,0x17d6,0x188f,0x1891,0x1893,0x1895,0x1897,0x1899,0x189b, -0x189d,0x189f,0x18a1,0x18a3,0x18a5,0x1820,0x18a7,0x1822,0x18a9,0x18ab,0x18ad,0x18af,0x18b1,0x17d8,0x1616,0x18b3, -0x18b5,0x18b7,0x16a2,0x1750,0x18b9,0x18bb,0x1830,0x18bd,0x1832,0x18bf,0x18c1,0x18c3,0x17dc,0x18c5,0x18c7,0x18c9, -0x18cb,0x18cd,0x17de,0x18cf,0x18d1,0x18d3,0x18d5,0x18d7,0x18d9,0x184e,0x18db,0x18dd,0x16ee,0x18df,0x1856,0x18e1, -0x18e3,0x18e5,0x18e7,0x18e9,0x1860,0x18eb,0x17f0,0x18ed,0x1862,0x167c,0x18ef,0x1864,0x18f1,0x1868,0x18f3,0x18f5, -0x18f7,0x18f9,0x18fb,0x186c,0x17e8,0x18fd,0x186e,0x18ff,0x1870,0x1901,0x15d4,0x1903,0x1906,0x1909,0x190c,0x190e, -0x1910,0x1912,0x1915,0x1918,0x191b,0x191d,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x191f,0xff1a,0x1922,0,0,0,0,0,0,0,0, -0,0,0x1925,0x1928,0x192c,0x1931,0x1935,0x1938,0x193b,0x193e,0x1941,0x1944,0x1947,0x194a,0x194d,0, -0x1950,0x1953,0x1956,0x1959,0x195c,0,0x195f,0,0x1962,0x1965,0,0x1968,0x196b,0,0x196e,0x1971, -0x1974,0x1977,0x197a,0x197d,0x1980,0x1983,0x1986,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc, -0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xffdc,0,0,0xffdc,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xffdc,0,0xffe6, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xffe6,0xff01,0xffdc,0,0,0,0,0xff09, -0,0,0,0,0,0xffe6,0xffdc,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x54a,0x14ab,0x54d,0x14b0,0,0,0,0,0,0,0,0,0x550,0,0, -0,0,0,0x14b5,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff09,0xfe07,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x54a,0x14ab,0x54d,0x14b0,0,0,0, +0,0,0,0,0,0x550,0,0,0,0,0,0x14b5,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xff09,0xfe07,0,0,0,0,0, +0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe00,0,0,0,0,0,0,0x14ba,0x14bf,0,0x553,0x556,0xff09, +0xff09,0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0, +0,0,0,0,0,0,0xff07,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0xff07,0, +0,0,0,0,0,0,0,0,0,0xff07,0xff09,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x559,0,0,0,0x14c4,0x14c9,0xff09,0,0,0,0,0,0, +0,0,0,0xfe00,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0xff07,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfe00,0,0,0,0, -0,0,0x14ba,0x14bf,0,0x553,0x556,0xff09,0xff09,0,0,0,0,0,0,0, -0,0,0,0,0xff09,0,0,0,0,0,0,0,0,0,0xff07,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xff09,0xff07,0,0,0,0,0,0,0,0,0, -0,0xff07,0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x559,0,0,0,0x14c4, -0x14c9,0xff09,0,0,0,0,0,0,0,0,0,0xfe00,0,0,0,0, -0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0, -0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0, 0,0x55f,0xfe00,0x14ce,0x14d3,0xfe00,0x14d8,0,0,0,0xff09,0xff07,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -552,59 +564,65 @@ static const uint16_t norm2_nfc_data_trieIndex[9400]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0, +0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6, +0xffe6,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0,0xffe6,0xffe6, +0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0, -0,0,0,0,0,0,0,0,0x1a09,0x1a0b,0x1a0d,0x1a0f,0x1a12,0x1802,0x1a14,0x1a16, -0x1a18,0x1a1a,0x1804,0x1a1c,0x1a1e,0x1a20,0x1806,0x1a23,0x1a25,0x1a27,0x1a29,0x1a2c,0x1a2e,0x1a30,0x1a32,0x1a35, -0x1a37,0x1a39,0x1a3b,0x187b,0x1a3d,0x1a40,0x1a42,0x1a44,0x1a46,0x1a48,0x1a4a,0x1a4c,0x1a4e,0x1885,0x1808,0x180a, -0x1887,0x1a50,0x1a52,0x1688,0x1a54,0x180c,0x1a56,0x1a58,0x1a5a,0x1a5c,0x1a5c,0x1a5c,0x1a5e,0x1a61,0x1a63,0x1a65, -0x1a67,0x1a6a,0x1a6c,0x1a6e,0x1a70,0x1a72,0x1a74,0x1a76,0x1a78,0x1a7a,0x1a7c,0x1a7e,0x1a80,0x1a82,0x1a82,0x188b, -0x1a84,0x1a86,0x1a88,0x1a8a,0x1810,0x1a8c,0x1a8e,0x1a90,0x17ba,0x1a92,0x1a94,0x1a96,0x1a98,0x1a9a,0x1a9c,0x1a9e, -0x1aa0,0x1aa2,0x1aa5,0x1aa7,0x1aa9,0x1aab,0x1aad,0x1aaf,0x1ab1,0x1ab4,0x1ab7,0x1ab9,0x1abb,0x1abd,0x1abf,0x1ac1, -0x1ac3,0x1ac5,0x1ac7,0x1ac7,0x1ac9,0x1acc,0x1ace,0x1680,0x1ad0,0x1ad2,0x1ad5,0x1ad7,0x1ad9,0x1adb,0x1add,0x1adf, -0x181a,0x1ae1,0x1ae3,0x1ae5,0x1ae8,0x1aea,0x1aed,0x1aef,0x1af1,0x1af3,0x1af5,0x1af7,0x1af9,0x1afb,0x1afd,0x1aff, -0x1b01,0x1b03,0x1b06,0x1b08,0x1b0a,0x1b0c,0x1614,0x1b0e,0x1b11,0x1b13,0x1b13,0x1b16,0x1b18,0x1b18,0x1b1a,0x1b1c, -0x1b1f,0x1b22,0x1b24,0x1b26,0x1b28,0x1b2a,0x1b2c,0x1b2e,0x1b30,0x1b32,0x1b34,0x181c,0x1b36,0x1b39,0x1b3b,0x1b3d, -0x18a3,0x1b3d,0x1b3f,0x1820,0x1b41,0x1b43,0x1b45,0x1b47,0x1822,0x15de,0x1b49,0x1b4b,0x1b4d,0x1b4f,0x1b51,0x1b53, -0x1b55,0x1b58,0x1b5a,0x1b5c,0x1b5e,0x1b60,0x1b62,0x1b65,0x1b67,0x1b69,0x1b6b,0x1b6d,0x1b6f,0x1b71,0x1b73,0x1b75, -0x1824,0x1b77,0x1b79,0x1b7c,0x1b7e,0x1b80,0x1b82,0x1828,0x1b84,0x1b86,0x1b88,0x1b8a,0x1b8c,0x1b8e,0x1b90,0x1b92, -0x1616,0x18b3,0x1b94,0x1b96,0x1b98,0x1b9a,0x1b9d,0x1b9f,0x1ba1,0x1ba3,0x182a,0x1ba5,0x1ba8,0x1baa,0x1bac,0x190c, -0x1bae,0x1bb0,0x1bb2,0x1bb4,0x1bb6,0x1bb9,0x1bbb,0x1bbd,0x1bbf,0x1bc2,0x1bc4,0x1bc6,0x1bc8,0x16a2,0x1bca,0x1bcc, -0x1bcf,0x1bd2,0x1bd5,0x1bd7,0x1bda,0x1bdc,0x1bde,0x1be0,0x1be2,0x182c,0x1750,0x1be4,0x1be6,0x1be8,0x1bea,0x1bed, -0x1bef,0x1bf1,0x1bf3,0x18bb,0x1bf5,0x1bf7,0x1bfa,0x1bfc,0x1bfe,0x1c01,0x1c04,0x1c06,0x18bd,0x1c08,0x1c0a,0x1c0c, -0x1c0e,0x1c10,0x1c12,0x1c14,0x1c17,0x1c19,0x1c1c,0x1c1e,0x1c21,0x18c1,0x1c23,0x1c25,0x1c28,0x1c2a,0x1c2c,0x1c2f, -0x1c32,0x1c34,0x1c36,0x1c38,0x1c3a,0x1c3a,0x1c3c,0x1c3e,0x18c5,0x1c40,0x1c42,0x1c44,0x1c46,0x1c48,0x1c4b,0x1c4d, -0x1686,0x1c50,0x1c53,0x1c55,0x1c58,0x1c5b,0x1c5e,0x1c60,0x18d1,0x1c62,0x1c65,0x1c68,0x1c6b,0x1c6e,0x1c70,0x1c70, -0x18d3,0x1910,0x1c72,0x1c74,0x1c76,0x1c78,0x1c7b,0x163a,0x18d7,0x1c7d,0x1c7f,0x1842,0x1c82,0x1c85,0x17e6,0x1c88, -0x1c8a,0x184a,0x1c8c,0x1c8e,0x1c90,0x1c93,0x1c93,0x1c96,0x1c98,0x1c9a,0x1c9d,0x1c9f,0x1ca1,0x1ca3,0x1ca6,0x1ca8, -0x1caa,0x1cac,0x1cae,0x1cb0,0x1cb3,0x1cb5,0x1cb7,0x1cb9,0x1cbb,0x1cbd,0x1cbf,0x1cc2,0x1cc5,0x1cc7,0x1cca,0x1ccc, -0x1ccf,0x1cd1,0x1856,0x1cd3,0x1cd6,0x1cd9,0x1cdb,0x1cde,0x1ce0,0x1ce3,0x1ce5,0x1ce7,0x1ce9,0x1ceb,0x1ced,0x1cef, -0x1cf2,0x1cf5,0x1cf8,0x1b16,0x1cfb,0x1cfd,0x1cff,0x1d01,0x1d03,0x1d05,0x1d07,0x1d09,0x1d0b,0x1d0d,0x1d0f,0x1d11, -0x16aa,0x1d14,0x1d16,0x1d18,0x1d1a,0x1d1c,0x1d1e,0x185c,0x1d20,0x1d22,0x1d24,0x1d26,0x1d28,0x1d2b,0x1d2e,0x1d31, -0x1d33,0x1d35,0x1d37,0x1d39,0x1d3c,0x1d3e,0x1d41,0x1d43,0x1d45,0x1d48,0x1d4b,0x1d4d,0x1630,0x1d4f,0x1d51,0x1d53, -0x1d55,0x1d57,0x1d59,0x18e5,0x1d5b,0x1d5d,0x1d5f,0x1d61,0x1d63,0x1d65,0x1d67,0x1d69,0x1d6b,0x1d6d,0x1d70,0x1d72, -0x1d74,0x1d76,0x1d78,0x1d7a,0x1d7d,0x1d80,0x1d82,0x1d84,0x18ef,0x18f1,0x1d86,0x1d88,0x1d8b,0x1d8d,0x1d8f,0x1d91, -0x1d93,0x1d96,0x1d99,0x1d9b,0x1d9d,0x1d9f,0x1da2,0x18f3,0x1da4,0x1da7,0x1daa,0x1dac,0x1dae,0x1db0,0x1db3,0x1db5, -0x1db7,0x1db9,0x1dbb,0x1dbd,0x1dbf,0x1dc1,0x1dc4,0x1dc6,0x1dc8,0x1dca,0x1dcd,0x1dcf,0x1dd1,0x1dd3,0x1dd5,0x1dd8, -0x1ddb,0x1ddd,0x1ddf,0x1de1,0x1de4,0x1de6,0x18ff,0x18ff,0x1de9,0x1deb,0x1dee,0x1df0,0x1df2,0x1df4,0x1df6,0x1df8, -0x1dfa,0x1dfc,0x1901,0x1dff,0x1e01,0x1e03,0x1e05,0x1e07,0x1e09,0x1e0c,0x1e0e,0x1e11,0x1e14,0x1e17,0x1e19,0x1e1b, -0x1e1d,0x1e1f,0x1e21,0x1e23,0x1e25,0x1e27,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, -0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0,0, -0,0,0,0,0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, -0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, -0xff00,0xff00,0xff00,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e, +0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xff07,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1a09,0x1a0b,0x1a0d,0x1a0f,0x1a12,0x1802,0x1a14,0x1a16,0x1a18,0x1a1a,0x1804,0x1a1c, +0x1a1e,0x1a20,0x1806,0x1a23,0x1a25,0x1a27,0x1a29,0x1a2c,0x1a2e,0x1a30,0x1a32,0x1a35,0x1a37,0x1a39,0x1a3b,0x187b, +0x1a3d,0x1a40,0x1a42,0x1a44,0x1a46,0x1a48,0x1a4a,0x1a4c,0x1a4e,0x1885,0x1808,0x180a,0x1887,0x1a50,0x1a52,0x1688, +0x1a54,0x180c,0x1a56,0x1a58,0x1a5a,0x1a5c,0x1a5c,0x1a5c,0x1a5e,0x1a61,0x1a63,0x1a65,0x1a67,0x1a6a,0x1a6c,0x1a6e, +0x1a70,0x1a72,0x1a74,0x1a76,0x1a78,0x1a7a,0x1a7c,0x1a7e,0x1a80,0x1a82,0x1a82,0x188b,0x1a84,0x1a86,0x1a88,0x1a8a, +0x1810,0x1a8c,0x1a8e,0x1a90,0x17ba,0x1a92,0x1a94,0x1a96,0x1a98,0x1a9a,0x1a9c,0x1a9e,0x1aa0,0x1aa2,0x1aa5,0x1aa7, +0x1aa9,0x1aab,0x1aad,0x1aaf,0x1ab1,0x1ab4,0x1ab7,0x1ab9,0x1abb,0x1abd,0x1abf,0x1ac1,0x1ac3,0x1ac5,0x1ac7,0x1ac7, +0x1ac9,0x1acc,0x1ace,0x1680,0x1ad0,0x1ad2,0x1ad5,0x1ad7,0x1ad9,0x1adb,0x1add,0x1adf,0x181a,0x1ae1,0x1ae3,0x1ae5, +0x1ae8,0x1aea,0x1aed,0x1aef,0x1af1,0x1af3,0x1af5,0x1af7,0x1af9,0x1afb,0x1afd,0x1aff,0x1b01,0x1b03,0x1b06,0x1b08, +0x1b0a,0x1b0c,0x1614,0x1b0e,0x1b11,0x1b13,0x1b13,0x1b16,0x1b18,0x1b18,0x1b1a,0x1b1c,0x1b1f,0x1b22,0x1b24,0x1b26, +0x1b28,0x1b2a,0x1b2c,0x1b2e,0x1b30,0x1b32,0x1b34,0x181c,0x1b36,0x1b39,0x1b3b,0x1b3d,0x18a3,0x1b3d,0x1b3f,0x1820, +0x1b41,0x1b43,0x1b45,0x1b47,0x1822,0x15de,0x1b49,0x1b4b,0x1b4d,0x1b4f,0x1b51,0x1b53,0x1b55,0x1b58,0x1b5a,0x1b5c, +0x1b5e,0x1b60,0x1b62,0x1b65,0x1b67,0x1b69,0x1b6b,0x1b6d,0x1b6f,0x1b71,0x1b73,0x1b75,0x1824,0x1b77,0x1b79,0x1b7c, +0x1b7e,0x1b80,0x1b82,0x1828,0x1b84,0x1b86,0x1b88,0x1b8a,0x1b8c,0x1b8e,0x1b90,0x1b92,0x1616,0x18b3,0x1b94,0x1b96, +0x1b98,0x1b9a,0x1b9d,0x1b9f,0x1ba1,0x1ba3,0x182a,0x1ba5,0x1ba8,0x1baa,0x1bac,0x190c,0x1bae,0x1bb0,0x1bb2,0x1bb4, +0x1bb6,0x1bb9,0x1bbb,0x1bbd,0x1bbf,0x1bc2,0x1bc4,0x1bc6,0x1bc8,0x16a2,0x1bca,0x1bcc,0x1bcf,0x1bd2,0x1bd5,0x1bd7, +0x1bda,0x1bdc,0x1bde,0x1be0,0x1be2,0x182c,0x1750,0x1be4,0x1be6,0x1be8,0x1bea,0x1bed,0x1bef,0x1bf1,0x1bf3,0x18bb, +0x1bf5,0x1bf7,0x1bfa,0x1bfc,0x1bfe,0x1c01,0x1c04,0x1c06,0x18bd,0x1c08,0x1c0a,0x1c0c,0x1c0e,0x1c10,0x1c12,0x1c14, +0x1c17,0x1c19,0x1c1c,0x1c1e,0x1c21,0x18c1,0x1c23,0x1c25,0x1c28,0x1c2a,0x1c2c,0x1c2f,0x1c32,0x1c34,0x1c36,0x1c38, +0x1c3a,0x1c3a,0x1c3c,0x1c3e,0x18c5,0x1c40,0x1c42,0x1c44,0x1c46,0x1c48,0x1c4b,0x1c4d,0x1686,0x1c50,0x1c53,0x1c55, +0x1c58,0x1c5b,0x1c5e,0x1c60,0x18d1,0x1c62,0x1c65,0x1c68,0x1c6b,0x1c6e,0x1c70,0x1c70,0x18d3,0x1910,0x1c72,0x1c74, +0x1c76,0x1c78,0x1c7b,0x163a,0x18d7,0x1c7d,0x1c7f,0x1842,0x1c82,0x1c85,0x17e6,0x1c88,0x1c8a,0x184a,0x1c8c,0x1c8e, +0x1c90,0x1c93,0x1c93,0x1c96,0x1c98,0x1c9a,0x1c9d,0x1c9f,0x1ca1,0x1ca3,0x1ca6,0x1ca8,0x1caa,0x1cac,0x1cae,0x1cb0, +0x1cb3,0x1cb5,0x1cb7,0x1cb9,0x1cbb,0x1cbd,0x1cbf,0x1cc2,0x1cc5,0x1cc7,0x1cca,0x1ccc,0x1ccf,0x1cd1,0x1856,0x1cd3, +0x1cd6,0x1cd9,0x1cdb,0x1cde,0x1ce0,0x1ce3,0x1ce5,0x1ce7,0x1ce9,0x1ceb,0x1ced,0x1cef,0x1cf2,0x1cf5,0x1cf8,0x1b16, +0x1cfb,0x1cfd,0x1cff,0x1d01,0x1d03,0x1d05,0x1d07,0x1d09,0x1d0b,0x1d0d,0x1d0f,0x1d11,0x16aa,0x1d14,0x1d16,0x1d18, +0x1d1a,0x1d1c,0x1d1e,0x185c,0x1d20,0x1d22,0x1d24,0x1d26,0x1d28,0x1d2b,0x1d2e,0x1d31,0x1d33,0x1d35,0x1d37,0x1d39, +0x1d3c,0x1d3e,0x1d41,0x1d43,0x1d45,0x1d48,0x1d4b,0x1d4d,0x1630,0x1d4f,0x1d51,0x1d53,0x1d55,0x1d57,0x1d59,0x18e5, +0x1d5b,0x1d5d,0x1d5f,0x1d61,0x1d63,0x1d65,0x1d67,0x1d69,0x1d6b,0x1d6d,0x1d70,0x1d72,0x1d74,0x1d76,0x1d78,0x1d7a, +0x1d7d,0x1d80,0x1d82,0x1d84,0x18ef,0x18f1,0x1d86,0x1d88,0x1d8b,0x1d8d,0x1d8f,0x1d91,0x1d93,0x1d96,0x1d99,0x1d9b, +0x1d9d,0x1d9f,0x1da2,0x18f3,0x1da4,0x1da7,0x1daa,0x1dac,0x1dae,0x1db0,0x1db3,0x1db5,0x1db7,0x1db9,0x1dbb,0x1dbd, +0x1dbf,0x1dc1,0x1dc4,0x1dc6,0x1dc8,0x1dca,0x1dcd,0x1dcf,0x1dd1,0x1dd3,0x1dd5,0x1dd8,0x1ddb,0x1ddd,0x1ddf,0x1de1, +0x1de4,0x1de6,0x18ff,0x18ff,0x1de9,0x1deb,0x1dee,0x1df0,0x1df2,0x1df4,0x1df6,0x1df8,0x1dfa,0x1dfc,0x1901,0x1dff, +0x1e01,0x1e03,0x1e05,0x1e07,0x1e09,0x1e0c,0x1e0e,0x1e11,0x1e14,0x1e17,0x1e19,0x1e1b,0x1e1d,0x1e1f,0x1e21,0x1e23, +0x1e25,0x1e27,0,0,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, +0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0,0,0,0,0,0, +0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, +0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x56e,0x56e,0x56e,0x56e, 0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e, +0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1e29,0,0x1e29,0,0x1e29,0x1e29,0,0x1e29, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1e29,0,0x1e29,0, -0x1e29,0x1e29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x1e29,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x1e29,0,0,0,0,0x1e29,0,0,0, 0,0,0x1e29,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x1e29,0,0,0,0,0x1e29,0,0,0,0x1e29,0,0x1e29,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x1e27,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e27,0, +0,0,0,0 }; static const uint16_t norm2_nfc_data_extraData[7722]={ @@ -1094,7 +1112,7 @@ static const uint16_t norm2_nfc_data_extraData[7722]={ }; static const uint8_t norm2_nfc_data_smallFCD[256]={ -0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0x87,0x66,0x66,0x46,0x64,0x44,0x66,0x5b, +0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0xc7,0x66,0x66,0x46,0x64,0x44,0x66,0x5b, 0x12,0,0,4,0,0,0,0x43,0x20,2,0x29,0xae,0xc2,0xc0,0xff,0xff, 0xc0,0x72,0xbf,0,0,0,0,0,0,0,0x40,0,0x80,0x88,0,0, 0xfe,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1114,16 +1132,16 @@ static const uint8_t norm2_nfc_data_smallFCD[256]={ static const UTrie2 norm2_nfc_data_trie={ norm2_nfc_data_trieIndex, - norm2_nfc_data_trieIndex+2612, + norm2_nfc_data_trieIndex+2720, NULL, - 2612, - 6788, + 2720, + 6932, 0x188, - 0xab0, + 0xb1c, 0x0, 0x0, 0x30000, - 0x24b4, + 0x25b0, NULL, 0, FALSE, FALSE, 0, NULL }; diff --git a/deps/icu-small/source/common/norm2allmodes.h b/deps/icu-small/source/common/norm2allmodes.h index 64c84a217c348a..943e83d56704c6 100644 --- a/deps/icu-small/source/common/norm2allmodes.h +++ b/deps/icu-small/source/common/norm2allmodes.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/common/normalizer2.cpp b/deps/icu-small/source/common/normalizer2.cpp index af80e98edb89d2..34f1cf063d50bc 100644 --- a/deps/icu-small/source/common/normalizer2.cpp +++ b/deps/icu-small/source/common/normalizer2.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/normalizer2impl.cpp b/deps/icu-small/source/common/normalizer2impl.cpp index 84b67b9df02771..906c03a689bc16 100644 --- a/deps/icu-small/source/common/normalizer2impl.cpp +++ b/deps/icu-small/source/common/normalizer2impl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/normalizer2impl.h b/deps/icu-small/source/common/normalizer2impl.h index eb026dbecda12a..a6bf967979f48a 100644 --- a/deps/icu-small/source/common/normalizer2impl.h +++ b/deps/icu-small/source/common/normalizer2impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/normlzr.cpp b/deps/icu-small/source/common/normlzr.cpp index 7c4c54ce368e5e..3cf7446f174a4f 100644 --- a/deps/icu-small/source/common/normlzr.cpp +++ b/deps/icu-small/source/common/normlzr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************* * COPYRIGHT: diff --git a/deps/icu-small/source/common/parsepos.cpp b/deps/icu-small/source/common/parsepos.cpp index 26f882051292b8..af6ac6c1f7d1b7 100644 --- a/deps/icu-small/source/common/parsepos.cpp +++ b/deps/icu-small/source/common/parsepos.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2003-2003, International Business Machines diff --git a/deps/icu-small/source/common/patternprops.cpp b/deps/icu-small/source/common/patternprops.cpp index b2c524998667e3..30c3f683914816 100644 --- a/deps/icu-small/source/common/patternprops.cpp +++ b/deps/icu-small/source/common/patternprops.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/patternprops.h b/deps/icu-small/source/common/patternprops.h index 0ceab510a1c071..f309c2dbadb083 100644 --- a/deps/icu-small/source/common/patternprops.h +++ b/deps/icu-small/source/common/patternprops.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/pluralmap.cpp b/deps/icu-small/source/common/pluralmap.cpp index 61c36e4a7f4a3a..d3e892124ea24c 100644 --- a/deps/icu-small/source/common/pluralmap.cpp +++ b/deps/icu-small/source/common/pluralmap.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines Corporation and * others. All Rights Reserved. diff --git a/deps/icu-small/source/common/pluralmap.h b/deps/icu-small/source/common/pluralmap.h index 63ccf8d31d14f9..76e95c5826003a 100644 --- a/deps/icu-small/source/common/pluralmap.h +++ b/deps/icu-small/source/common/pluralmap.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/propname.cpp b/deps/icu-small/source/common/propname.cpp index b638547ff6f801..4107869ee1e0d4 100644 --- a/deps/icu-small/source/common/propname.cpp +++ b/deps/icu-small/source/common/propname.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines diff --git a/deps/icu-small/source/common/propname.h b/deps/icu-small/source/common/propname.h index c20ae45490d9b5..c93d3d75032503 100644 --- a/deps/icu-small/source/common/propname.h +++ b/deps/icu-small/source/common/propname.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2011, International Business Machines diff --git a/deps/icu-small/source/common/propname_data.h b/deps/icu-small/source/common/propname_data.h index 3acc640b19a9a6..4863b26dc7ec12 100644 --- a/deps/icu-small/source/common/propname_data.h +++ b/deps/icu-small/source/common/propname_data.h @@ -1,104 +1,108 @@ -/* - * Copyright (C) 1999-2016, International Business Machines - * Corporation and others. All Rights Reserved. - * - * file name: propname_data.h - * - * machine-generated by: icu/tools/unicode/c/genprops/pnamesbuilder.cpp - */ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +// +// Copyright (C) 1999-2016, International Business Machines +// Corporation and others. All Rights Reserved. +// +// file name: propname_data.h +// +// machine-generated by: icu/tools/unicode/c/genprops/pnamesbuilder.cpp + #ifdef INCLUDED_FROM_PROPNAME_CPP U_NAMESPACE_BEGIN -const int32_t PropNameData::indexes[8]={0x20,0x12d0,0x446f,0x8a58,0x8a58,0x8a58,0x2f,0}; +const int32_t PropNameData::indexes[8]={0x20,0x135c,0x468d,0x8e95,0x8e95,0x8e95,0x2f,0}; -const int32_t PropNameData::valueMaps[1196]={ +const int32_t PropNameData::valueMaps[1231]={ 6,0,0x3d,0,0xd5,0x356,0xd5,0x36c,0xd5,0x381,0xd5,0x397,0xd5,0x3a2,0xd5,0x3c3, 0xd5,0x3d3,0xd5,0x3e2,0xd5,0x3f0,0xd5,0x414,0xd5,0x42b,0xd5,0x443,0xd5,0x45a,0xd5,0x469, 0xd5,0x478,0xd5,0x489,0xd5,0x497,0xd5,0x4a9,0xd5,0x4c3,0xd5,0x4de,0xd5,0x4f3,0xd5,0x510, 0xd5,0x521,0xd5,0x52c,0xd5,0x54b,0xd5,0x561,0xd5,0x572,0xd5,0x582,0xd5,0x59d,0xd5,0x5b6, -0xd5,0x5c7,0xd5,0x5e1,0xd5,0x5f4,0xd5,0x604,0xd5,0x61e,0xd5,0x62b,0xd5,0x642,0xd5,0x656, -0xd5,0x66c,0xd5,0x680,0xd5,0x696,0xd5,0x6b0,0xd5,0x6c8,0xd5,0x6e4,0xd5,0x6ec,0xd5,0x6f4, -0xd5,0x6fc,0xd5,0x704,0xd5,0x70d,0xd5,0x71a,0xd5,0x72d,0xd5,0x74a,0xd5,0x767,0xd5,0x784, -0xd5,0x7a2,0xd5,0x7c0,0xd5,0x7e4,0xd5,0x7f1,0xd5,0x818,0xd5,0x837,0xd5,0x1000,0x1016,0x860, -0x14f,0xa80,0x16a,0x292f,0xdb,0x294e,0x275,0x2a8c,0x28b,0x2ae6,0x295,0x2d43,0x2b7,0x3458,0x311,0x34c8, -0x31b,0x3756,0x347,0x3794,0x34f,0x40ea,0x3fa,0x4168,0x404,0x418d,0x40a,0x41a7,0x410,0x41c8,0x417,0x41e2, -0xdb,0x4207,0xdb,0x422d,0x41e,0x42b3,0x42f,0x432c,0x442,0x43c9,0x457,0x2000,0x2001,0x4400,0x45e,0x3000, -0x3001,0x448c,0,0x4000,0x400e,0x449e,0,0x44a7,0,0x44c1,0,0x44d2,0,0x44e3,0,0x44f9, -0,0x4502,0,0x451f,0,0x453d,0,0x455b,0,0x4579,0,0x458f,0,0x45a3,0,0x45b9, -0,0x7000,0x7001,0x45d2,0,0x6f5,0x12,0,1,0x12,0x20,0x713,0x49,0,1,7, +0xd5,0x5c7,0xd5,0x5e1,0xd5,0x5f4,0xd5,0x604,0xd5,0x61e,0xd5,0x637,0xd5,0x64e,0xd5,0x662, +0xd5,0x678,0xd5,0x68c,0xd5,0x6a2,0xd5,0x6bc,0xd5,0x6d4,0xd5,0x6f0,0xd5,0x6f8,0xd5,0x700, +0xd5,0x708,0xd5,0x710,0xd5,0x719,0xd5,0x726,0xd5,0x739,0xd5,0x756,0xd5,0x773,0xd5,0x790, +0xd5,0x7ae,0xd5,0x7cc,0xd5,0x7f0,0xd5,0x7fd,0xd5,0x824,0xd5,0x843,0xd5,0x1000,0x1016,0x86c, +0x14f,0xa8c,0x16a,0x2a61,0xdb,0x2a80,0x280,0x2bbe,0x296,0x2c18,0x2a0,0x2e75,0x2c2,0x35d7,0x31f,0x3647, +0x329,0x38f8,0x358,0x3936,0x360,0x42e5,0x413,0x4363,0x41d,0x4388,0x423,0x43a2,0x429,0x43c3,0x430,0x43dd, +0xdb,0x4402,0xdb,0x4428,0x437,0x44d2,0x44d,0x454b,0x460,0x45e8,0x47a,0x2000,0x2001,0x461f,0x481,0x3000, +0x3001,0x46ab,0,0x4000,0x400e,0x46bd,0,0x46c6,0,0x46e0,0,0x46f1,0,0x4702,0,0x4718, +0,0x4721,0,0x473e,0,0x475c,0,0x477a,0,0x4798,0,0x47ae,0,0x47c2,0,0x47d8, +0,0x7000,0x7001,0x47f1,0,0x702,0x12,0,1,0x12,0x20,0x720,0x49,0,1,7, 8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67, 0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2, 0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6, 0xb3,0xc0,0xcd,0xda,0xe7,0xf4,0x101,0x10e,0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176, 0x183,0x190,0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254, -0x263,0x27d,0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x8a5, -1,0,0x17,0x86f,0x880,0x891,0x8a5,0x8bc,0x8d4,0x8e6,0x8fb,0x912,0x927,0x937,0x949,0x966, -0x982,0x994,0x9b1,0x9cd,0x9e9,0x9fe,0xa13,0xa2d,0xa48,0xa63,0xa47,1,0,0x107,0xa8b,0xa98, -0xaab,0xad3,0xaf1,0xb0f,0xb27,0xb52,0xb7c,0xb94,0xba7,0xbba,0xbc9,0xbd8,0xbe7,0xbf6,0xc0d,0xc1e, -0xc31,0xc44,0xc51,0xc5e,0xc6d,0xc7e,0xc93,0xca4,0xcaf,0xcb8,0xcc9,0xcda,0xced,0xcff,0xd12,0xd25, -0xd64,0xd71,0xd7e,0xd8b,0xda0,0xdd0,0xdea,0xe0b,0xe36,0xe59,0xeb7,0xede,0xef9,0xf08,0xf2f,0xf57, -0xf7a,0xf9d,0xfc7,0xfe0,0xfff,0x1022,0x1046,0x1059,0x1073,0x109d,0x10b5,0x10dd,0x1106,0x1119,0x112c,0x113f, -0x1166,0x1175,0x1195,0x11c3,0x11e1,0x120f,0x122b,0x1246,0x125f,0x1278,0x1299,0x12c9,0x12e8,0x130a,0x133e,0x136b, -0x13b0,0x13d1,0x13fb,0x141c,0x1445,0x1458,0x148b,0x14a2,0x14b1,0x14c2,0x14ed,0x1504,0x1535,0x1563,0x15a6,0x15b1, -0x15ea,0x15fb,0x160c,0x1619,0x162c,0x1666,0x168a,0x16ae,0x16e8,0x1720,0x174b,0x1763,0x178f,0x17bb,0x17c8,0x17d7, -0x17f4,0x1816,0x1844,0x1864,0x188b,0x18b2,0x18d1,0x18e4,0x18f5,0x1906,0x192b,0x1950,0x1977,0x19ab,0x19d8,0x19f6, -0x1a09,0x1a22,0x1a5b,0x1a6a,0x1a8a,0x1aac,0x1ace,0x1ae5,0x1afc,0x1b29,0x1b42,0x1b5b,0x1b8c,0x1bb6,0x1bd1,0x1be4, -0x1c03,0x1c0c,0x1c1f,0x1c3d,0x1c5b,0x1c6e,0x1c85,0x1c9a,0x1ccf,0x1cf3,0x1d08,0x1d17,0x1d2a,0x1d4e,0x1d57,0x1d7b, -0x1d92,0x1da5,0x1db4,0x1dbf,0x1de0,0x1df8,0x1e07,0x1e16,0x1e25,0x1e3c,0x1e51,0x1e66,0x1e9f,0x1eb2,0x1ece,0x1ed9, -0x1ee6,0x1f14,0x1f38,0x1f5b,0x1f6e,0x1f90,0x1fa3,0x1fbe,0x1fe1,0x2004,0x2029,0x203a,0x2069,0x2096,0x20ad,0x20c8, -0x20d7,0x2102,0x213a,0x2174,0x21a2,0x21b3,0x21c0,0x21e4,0x21f3,0x220f,0x2229,0x2246,0x227e,0x2293,0x22c0,0x22df, -0x230d,0x232d,0x2361,0x2370,0x239a,0x23bd,0x23e8,0x23f3,0x2404,0x241f,0x2443,0x2450,0x2465,0x248c,0x24b7,0x24ee, -0x2501,0x2512,0x2542,0x2553,0x2562,0x2577,0x2595,0x25a8,0x25bb,0x25d2,0x25ef,0x25fa,0x2603,0x2625,0x263a,0x265f, -0x2676,0x269f,0x26ba,0x26cf,0x26e8,0x2709,0x273e,0x274f,0x2780,0x27a4,0x27b5,0x27ce,0x27d9,0x2806,0x2828,0x2856, -0x2889,0x2898,0x28a9,0x28c6,0x2908,0x1afc,1,0,0x12,0x2965,0x2975,0x2988,0x2998,0x29a8,0x29b7,0x29c7, -0x29d9,0x29ec,0x29fe,0x2a0e,0x2a1e,0x2a2d,0x2a3c,0x2a4c,0x2a59,0x2a68,0x2a7c,0x1bba,1,0,6,0x2aa1, -0x2aac,0x2ab9,0x2ac6,0x2ad3,0x2ade,0x1bfe,1,0,0x1e,0x2afb,0x2b0a,0x2b1f,0x2b34,0x2b49,0x2b5d,0x2b6e, -0x2b82,0x2b95,0x2ba6,0x2bbf,0x2bd1,0x2be2,0x2bf6,0x2c09,0x2c21,0x2c33,0x2c3e,0x2c4e,0x2c5c,0x2c71,0x2c86,0x2c9c, -0x2cb6,0x2ccc,0x2cdc,0x2cf0,0x2d04,0x2d15,0x2d2d,0x1e29,1,0,0x56,0x2d55,0x2d78,0x2d81,0x2d8e,0x2d99, -0x2da2,0x2dad,0x2db6,0x2dcf,0x2dd4,0x2ddd,0x2dfa,0x2e03,0x2e10,0x2e19,0x2e3d,0x2e44,0x2e4d,0x2e60,0x2e6b,0x2e74, -0x2e7f,0x2e98,0x2ea1,0x2eb0,0x2ebb,0x2ec4,0x2ecf,0x2ed8,0x2edf,0x2ee8,0x2ef3,0x2efc,0x2f15,0x2f1e,0x2f2b,0x2f36, -0x2f47,0x2f52,0x2f67,0x2f7e,0x2f87,0x2f90,0x2fa9,0x2fb4,0x2fbd,0x2fc6,0x2fdd,0x2ffa,0x3005,0x3016,0x3021,0x3028, -0x3035,0x3042,0x306f,0x3084,0x308d,0x30a8,0x30cb,0x30ec,0x310d,0x3132,0x3159,0x317a,0x319d,0x31be,0x31e5,0x3206, -0x322b,0x324a,0x3269,0x3288,0x32a5,0x32c6,0x32e7,0x330a,0x332f,0x334e,0x336d,0x338e,0x33b5,0x33da,0x33f9,0x341a, -0x343d,0x20dd,1,0,6,0x3469,0x3478,0x3488,0x3498,0x34a8,0x34b9,0x213b,1,0,0x28,0x34d7, -0x34e3,0x34f1,0x3500,0x350f,0x351f,0x3530,0x3544,0x3559,0x356f,0x3582,0x3596,0x35a6,0x35af,0x35ba,0x35ca,0x35e6, -0x35f8,0x3606,0x3615,0x3621,0x3636,0x364a,0x365d,0x366b,0x367f,0x368d,0x3697,0x36a9,0x36b5,0x36c3,0x36d3,0x36da, -0x36e1,0x36e8,0x36ef,0x36f6,0x370c,0x372d,0x373f,0x237d,1,0,4,0x3767,0x3772,0x377e,0x3788,0x23a3, -1,0,0xa7,0x379f,0x37ac,0x37c1,0x37ce,0x37dd,0x37eb,0x37fa,0x3809,0x381b,0x382a,0x3838,0x3849,0x3858, -0x3867,0x3874,0x3880,0x388f,0x389e,0x38a8,0x38b5,0x38c2,0x38d1,0x38df,0x38ee,0x38fa,0x3904,0x3910,0x3920,0x3930, -0x393e,0x394a,0x395b,0x3967,0x3973,0x3981,0x398e,0x399a,0x39a7,0xca4,0x39b4,0x39c2,0x39dc,0x39e5,0x39f3,0x3a01, -0x3a0d,0x3a1c,0x3a2a,0x3a38,0x3a44,0x3a53,0x3a61,0x3a6f,0x3a7c,0x3a8b,0x3aa6,0x3ab5,0x3ac6,0x3ad7,0x3aea,0x3afc, -0x3b0b,0x3b1d,0x3b2c,0x3b38,0x3b43,0x1db4,0x3b50,0x3b5b,0x3b66,0x3b71,0x3b7c,0x3b97,0x3ba2,0x3bad,0x3bb8,0x3bcb, -0x3bdf,0x3bea,0x3bf9,0x3c08,0x3c13,0x3c1e,0x3c2b,0x3c3a,0x3c48,0x3c53,0x3c6e,0x3c78,0x3c89,0x3c9a,0x3ca9,0x3cba, -0x3cc5,0x3cd0,0x3cdb,0x3ce6,0x3cf1,0x3cfc,0x3d07,0x3d11,0x3d1c,0x3d2c,0x3d37,0x3d45,0x3d52,0x3d5d,0x3d6c,0x3d79, -0x3d86,0x3d95,0x3da2,0x3db3,0x3dc5,0x3dd5,0x3de0,0x3df3,0x3e0a,0x3e18,0x3e25,0x3e30,0x3e3d,0x3e4e,0x3e6a,0x3e80, -0x3e8b,0x3ea8,0x3eb8,0x3ec7,0x3ed2,0x3edd,0x1ece,0x3ee9,0x3ef4,0x3f0c,0x3f1c,0x3f2b,0x3f39,0x3f47,0x3f52,0x3f5d, -0x3f71,0x3f88,0x3fa0,0x3fb0,0x3fc0,0x3fd0,0x3fe2,0x3fed,0x3ff8,0x4002,0x400d,0x401b,0x402e,0x403a,0x4045,0x4050, -0x406c,0x4079,0x4087,0x40a0,0x27ce,0x40af,0x25ef,0x40bc,0x40ca,0x40dc,0x2c00,1,0,6,0x4104,0x4117, -0x4127,0x4135,0x4146,0x4156,0x2c5c,0x12,0,1,0x4180,0x4186,0x2c69,0x12,0,1,0x4180,0x4186, -0x2c76,1,0,3,0x4180,0x4186,0x41bf,0x2c8c,1,0,3,0x4180,0x4186,0x41bf,0x2ca2,1, -0,0xd,0x4249,0x4253,0x425f,0x4266,0x4271,0x4276,0x427d,0x4284,0x428d,0x4292,0x4297,0x42a7,0x373f,0x2d10, -1,0,0xf,0x4249,0x42c6,0x42d0,0x42da,0x42e5,0x3615,0x42ef,0x42fb,0x4303,0x430a,0x4314,0x425f,0x4266, -0x4276,0x431e,0x2d97,1,0,0x11,0x4249,0x433b,0x42da,0x4347,0x4354,0x4362,0x3615,0x436d,0x425f,0x437e, -0x4276,0x438d,0x439b,0x373f,0x372d,0x43a7,0x43b8,0x2e6f,1,0,3,0x43e7,0x43ef,0x43f7,0x2e88,0x36, -1,2,4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00, -0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000, -0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,0x2afb,0x2b0a,0x2b1f,0x2b34,0x442e,0x2b49,0x2b5d,0x4424,0x2b6e,0x2b82, -0x2b95,0x443f,0x2ba6,0x2bbf,0x2bd1,0x4456,0x2be2,0x2bf6,0x2c09,0x447f,0x2c21,0x2c33,0x2c3e,0x2c4e,0x441b,0x2c5c, -0x2c71,0x2c86,0x2c9c,0x2cb6,0x2ccc,0x2cdc,0x2cf0,0x2d04,0x4475,0x2d15,0x2d2d,0x4460 +0x263,0x27d,0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x8b2, +1,0,0x17,0x87b,0x88c,0x89d,0x8b1,0x8c8,0x8e0,0x8f2,0x907,0x91e,0x933,0x943,0x955,0x972, +0x98e,0x9a0,0x9bd,0x9d9,0x9f5,0xa0a,0xa1f,0xa39,0xa54,0xa6f,0xa54,1,0,0x112,0xa97,0xaa4, +0xab7,0xadf,0xafd,0xb1b,0xb33,0xb5e,0xb88,0xba0,0xbb3,0xbc6,0xbd5,0xbe4,0xbf3,0xc02,0xc19,0xc2a, +0xc3d,0xc50,0xc5d,0xc6a,0xc79,0xc8a,0xc9f,0xcb0,0xcbb,0xcc4,0xcd5,0xce6,0xcf9,0xd0b,0xd1e,0xd31, +0xd70,0xd7d,0xd8a,0xd97,0xdac,0xddc,0xdf6,0xe17,0xe42,0xe65,0xec3,0xeea,0xf05,0xf14,0xf3b,0xf63, +0xf86,0xfa9,0xfd3,0xfec,0x100b,0x102e,0x1052,0x1065,0x107f,0x10a9,0x10c1,0x10e9,0x1112,0x1125,0x1138,0x114b, +0x1172,0x1181,0x11a1,0x11cf,0x11ed,0x121b,0x1237,0x1252,0x126b,0x1284,0x12a5,0x12d5,0x12f4,0x1316,0x134a,0x1377, +0x13bc,0x13dd,0x1407,0x1428,0x1451,0x1464,0x1497,0x14ae,0x14bd,0x14ce,0x14f9,0x1510,0x1541,0x156f,0x15b2,0x15bd, +0x15f6,0x1607,0x1618,0x1625,0x1638,0x1672,0x1696,0x16ba,0x16f4,0x172c,0x1757,0x176f,0x179b,0x17c7,0x17d4,0x17e3, +0x1800,0x1822,0x1850,0x1870,0x1897,0x18be,0x18dd,0x18f0,0x1901,0x1912,0x1937,0x195c,0x1983,0x19b7,0x19e4,0x1a02, +0x1a15,0x1a2e,0x1a67,0x1a76,0x1a96,0x1ab8,0x1ada,0x1af1,0x1b08,0x1b35,0x1b4e,0x1b67,0x1b98,0x1bc2,0x1bdd,0x1bf0, +0x1c0f,0x1c18,0x1c2b,0x1c49,0x1c67,0x1c7a,0x1c91,0x1ca6,0x1cdb,0x1cff,0x1d14,0x1d23,0x1d36,0x1d5a,0x1d63,0x1d87, +0x1d9e,0x1db1,0x1dc0,0x1dcb,0x1dec,0x1e04,0x1e13,0x1e22,0x1e31,0x1e48,0x1e5d,0x1e72,0x1eab,0x1ebe,0x1eda,0x1ee5, +0x1ef2,0x1f20,0x1f44,0x1f67,0x1f7a,0x1f9c,0x1faf,0x1fca,0x1fed,0x2010,0x2035,0x2046,0x2075,0x20a2,0x20b9,0x20d4, +0x20e3,0x210e,0x2146,0x2180,0x21ae,0x21bf,0x21cc,0x21f0,0x21ff,0x221b,0x2235,0x2252,0x228a,0x229f,0x22cc,0x22eb, +0x2319,0x2339,0x236d,0x237c,0x23a6,0x23c9,0x23f4,0x23ff,0x2410,0x242b,0x244f,0x245c,0x2471,0x2498,0x24c3,0x24fa, +0x250d,0x251e,0x254e,0x255f,0x256e,0x2583,0x25a1,0x25b4,0x25c7,0x25de,0x25fb,0x2606,0x260f,0x2631,0x2646,0x266b, +0x2682,0x26ab,0x26c6,0x26db,0x26f4,0x2715,0x274a,0x275b,0x278c,0x27b0,0x27c1,0x27da,0x27e5,0x2812,0x2834,0x2862, +0x2895,0x28a4,0x28b5,0x28d2,0x2914,0x293b,0x2948,0x295d,0x2981,0x29a7,0x29e0,0x29f1,0x2a15,0x2a20,0x2a2d,0x2a3c, +0x1b91,1,0,0x12,0x2a97,0x2aa7,0x2aba,0x2aca,0x2ada,0x2ae9,0x2af9,0x2b0b,0x2b1e,0x2b30,0x2b40,0x2b50, +0x2b5f,0x2b6e,0x2b7e,0x2b8b,0x2b9a,0x2bae,0x1c4f,1,0,6,0x2bd3,0x2bde,0x2beb,0x2bf8,0x2c05,0x2c10, +0x1c93,1,0,0x1e,0x2c2d,0x2c3c,0x2c51,0x2c66,0x2c7b,0x2c8f,0x2ca0,0x2cb4,0x2cc7,0x2cd8,0x2cf1,0x2d03, +0x2d14,0x2d28,0x2d3b,0x2d53,0x2d65,0x2d70,0x2d80,0x2d8e,0x2da3,0x2db8,0x2dce,0x2de8,0x2dfe,0x2e0e,0x2e22,0x2e36, +0x2e47,0x2e5f,0x1ebe,1,0,0x59,0x2e87,0x2eaa,0x2eb3,0x2ec0,0x2ecb,0x2ed4,0x2edf,0x2ee8,0x2f01,0x2f06, +0x2f0f,0x2f2c,0x2f35,0x2f42,0x2f4b,0x2f6f,0x2f76,0x2f7f,0x2f92,0x2f9d,0x2fa6,0x2fb1,0x2fca,0x2fd3,0x2fe2,0x2fed, +0x2ff6,0x3001,0x300a,0x3011,0x301a,0x3025,0x302e,0x3047,0x3050,0x305d,0x3068,0x3079,0x3084,0x3099,0x30b0,0x30b9, +0x30c2,0x30db,0x30e6,0x30ef,0x30f8,0x310f,0x312c,0x3137,0x3148,0x3153,0x315a,0x3167,0x3174,0x31a1,0x31b6,0x31bf, +0x31da,0x31fd,0x321e,0x323f,0x3264,0x328b,0x32ac,0x32cf,0x32f0,0x3317,0x3338,0x335d,0x337c,0x339b,0x33ba,0x33d7, +0x33f8,0x3419,0x343c,0x3461,0x3480,0x349f,0x34c0,0x34e7,0x350c,0x352b,0x354c,0x356f,0x358a,0x35a3,0x35be,0x2191, +1,0,6,0x35e8,0x35f7,0x3607,0x3617,0x3627,0x3638,0x21ef,1,0,0x2b,0x3656,0x3662,0x3670, +0x367f,0x368e,0x369e,0x36af,0x36c3,0x36d8,0x36ee,0x3701,0x3715,0x3725,0x372e,0x3739,0x3749,0x3765,0x3777,0x3785, +0x3794,0x37a0,0x37b5,0x37c9,0x37dc,0x37ea,0x37fe,0x380c,0x3816,0x3828,0x3834,0x3842,0x3852,0x3859,0x3860,0x3867, +0x386e,0x3875,0x388b,0x38ac,0x38be,0x38d5,0x38e0,0x38ef,0x2448,1,0,4,0x3909,0x3914,0x3920,0x392a, +0x246e,1,0,0xaf,0x3941,0x394e,0x3963,0x3970,0x397f,0x398d,0x399c,0x39ab,0x39bd,0x39cc,0x39da,0x39eb, +0x39fa,0x3a09,0x3a16,0x3a22,0x3a31,0x3a40,0x3a4a,0x3a57,0x3a64,0x3a73,0x3a81,0x3a90,0x3a9c,0x3aa6,0x3ab2,0x3ac2, +0x3ad2,0x3ae0,0x3aec,0x3afd,0x3b09,0x3b15,0x3b23,0x3b30,0x3b3c,0x3b49,0xcb0,0x3b56,0x3b64,0x3b7e,0x3b87,0x3b95, +0x3ba3,0x3baf,0x3bbe,0x3bcc,0x3bda,0x3be6,0x3bf5,0x3c03,0x3c11,0x3c1e,0x3c2d,0x3c48,0x3c57,0x3c68,0x3c79,0x3c8c, +0x3c9e,0x3cad,0x3cbf,0x3cce,0x3cda,0x3ce5,0x1dc0,0x3cf2,0x3cfd,0x3d08,0x3d13,0x3d1e,0x3d39,0x3d44,0x3d4f,0x3d5a, +0x3d6d,0x3d81,0x3d8c,0x3d9b,0x3daa,0x3db5,0x3dc0,0x3dcd,0x3ddc,0x3dea,0x3df5,0x3e10,0x3e1a,0x3e2b,0x3e3c,0x3e4b, +0x3e5c,0x3e67,0x3e72,0x3e7d,0x3e88,0x3e93,0x3e9e,0x3ea9,0x3eb3,0x3ebe,0x3ece,0x3ed9,0x3ee7,0x3ef4,0x3eff,0x3f0e, +0x3f1b,0x3f28,0x3f37,0x3f44,0x3f55,0x3f67,0x3f77,0x3f82,0x3f95,0x3fac,0x3fba,0x3fc7,0x3fd2,0x3fdf,0x3ff0,0x400c, +0x4022,0x402d,0x404a,0x405a,0x4069,0x4074,0x407f,0x1eda,0x408b,0x4096,0x40ae,0x40be,0x40cd,0x40db,0x40e9,0x40f4, +0x40ff,0x4113,0x412a,0x4142,0x4152,0x4162,0x4172,0x4184,0x418f,0x419a,0x41a4,0x41af,0x41bd,0x41d0,0x41dc,0x41e9, +0x41f4,0x4210,0x421d,0x422b,0x4244,0x27da,0x4253,0x25fb,0x4260,0x426e,0x4280,0x428e,0x429a,0x42aa,0x2a15,0x42b8, +0x42c4,0x42cf,0x42da,0x2d1f,1,0,6,0x42ff,0x4312,0x4322,0x4330,0x4341,0x4351,0x2d7b,0x12,0, +1,0x437b,0x4381,0x2d88,0x12,0,1,0x437b,0x4381,0x2d95,1,0,3,0x437b,0x4381,0x43ba, +0x2dab,1,0,3,0x437b,0x4381,0x43ba,0x2dc1,1,0,0x12,0x4444,0x444e,0x445a,0x4461,0x446c, +0x4471,0x4478,0x447f,0x4488,0x448d,0x4492,0x44a2,0x38be,0x38d5,0x44ae,0x38e0,0x44be,0x38ef,0x2e6a,1,0, +0xf,0x4444,0x44e5,0x44ef,0x44f9,0x4504,0x3794,0x450e,0x451a,0x4522,0x4529,0x4533,0x445a,0x4461,0x4471,0x453d, +0x2ef1,1,0,0x16,0x4444,0x455a,0x44f9,0x4566,0x4573,0x4581,0x3794,0x458c,0x445a,0x459d,0x4471,0x45ac, +0x45ba,0x38be,0x38ac,0x45c6,0x45d7,0x38d5,0x44ae,0x38e0,0x44be,0x38ef,0x3001,1,0,3,0x4606,0x460e, +0x4616,0x301a,0x36,1,2,4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200, +0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000, +0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,0x2c2d,0x2c3c,0x2c51,0x2c66,0x464d,0x2c7b,0x2c8f, +0x4643,0x2ca0,0x2cb4,0x2cc7,0x465e,0x2cd8,0x2cf1,0x2d03,0x4675,0x2d14,0x2d28,0x2d3b,0x469e,0x2d53,0x2d65,0x2d70, +0x2d80,0x463a,0x2d8e,0x2da3,0x2db8,0x2dce,0x2de8,0x2dfe,0x2e0e,0x2e22,0x2e36,0x4694,0x2e47,0x2e5f,0x467f }; -const uint8_t PropNameData::bytesTries[12703]={ -0,0x15,0x6d,0xc3,0x16,0x73,0xc1,0xea,0x76,0x5f,0x76,0x68,0x77,0x90,0x78,1, +const uint8_t PropNameData::bytesTries[13105]={ +0,0x15,0x6d,0xc3,0x23,0x73,0xc1,0xf7,0x76,0x5f,0x76,0x68,0x77,0x90,0x78,1, 0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,0x63, 0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,0x81, 1,0x61,0x24,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c, 0x65,0x63,0x74,0x6f,0x72,0x69,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13, 0x70,0x61,0x63,0x65,0x5f,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16, -0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x2e,0x75, +0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75, 3,0x63,0xd9,0x40,0xc,0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13, 0x63,0x61,0x73,0x65,0x5c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc, 0x12,0x64,0x65,0x6f,0x5b,0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69, @@ -114,781 +118,807 @@ const uint8_t PropNameData::bytesTries[12703]={ 0x70,0x69,0x6e,0x67,0xd9,0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63, 0x34,0x64,0x57,0x65,0x6e,0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9, 0x40,6,0x72,0x28,0x78,0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65, -0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x50,0x6e, -1,0x73,0x3a,0x74,0x18,0x65,0x6e,0x63,0x65,0x62,0x72,0x65,0x61,0x6b,0xc3,0x13, -0x14,0x69,0x74,0x69,0x76,0x65,0x65,1,0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74, -0x73,0x19,0x65,0x6e,0x74,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x73,3,0x63,0x66, -0x65,0x72,0x69,0x98,0x72,0x19,0x61,0x69,0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63, -0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73, -0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63,0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e, -0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59, -0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9, -0x40,0xa,0x6d,0x42,0x6e,0x48,0x70,0xa2,0xda,0x71,0xa4,9,0x72,0x15,0x61,0x64, -0x69,0x63,0x61,0x6c,0x55,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74, -0xc3,9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61, -0x63,0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d, -0x65,0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0, -0x12,0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98, -0x64,0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd, -0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72, -0x74,0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63, -0x68,0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71, -1,0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe, -0x13,0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17, -0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b, -0xd8,0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68, -0x61,0x72,0x51,1,0x61,0x2c,0x72,0x12,0x69,0x6e,0x74,0x7f,0x10,0x74,2,0x73, -0x2c,0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1, -0x73,0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79, -0x6e,0x74,0x61,0x78,0x75,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,0x69,0x6f, -0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xb9,0x69,0xc0, -0xfd,0x69,0xa2,0x6f,0x6a,0xa2,0xca,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65,0x98, -0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,0x13,0x63, -0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,4,0x11, -0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,0x70,0x74, -0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,0x64,0x63, -0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69, -0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,0x65,0x61, -0x6b,0xc3,8,1,0x64,0x44,0x73,1,0x63,0xd9,0x40,3,0x6f,0x16,0x63,0x6f, -0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,0x65,0x90,0x73,0x40,1, -0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70, -0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,0x44,0x1c,0x69,0x6e,0x61, -0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x3e,0x16,0x6f,0x6e,0x74, -0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,0x61,0x70,0x68,0x69,0x63, -0x43,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,0x4a, -0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,0x72, -0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,0x86, -0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,0x65, -0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74, -0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,0x10, -0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74, -0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,0xa2, -0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e, -0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,0x65, -0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,0x72, -0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,0x65, -0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,0x1c, -0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,0x13, -0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0x50,0x62,0xa2,0x7e,0x63,0xa2,0xf0, -0x64,0xa4,0xbd,0x65,2,0x61,0x3a,0x6d,0x58,0x78,0x10,0x74,0x30,0x14,0x65,0x6e, -0x64,0x65,0x72,0x31,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,0x69, -0x64,0x74,0x68,0xc3,4,0x12,0x6f,0x6a,0x69,0x92,1,0x6d,0x3c,0x70,0x1a,0x72, -0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x16,0x6f,0x64,0x69,0x66, -0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,0x6c, -0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,0x10, -0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,0x20, -0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0,0x69, -0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,0x15, -0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,0x62, -0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,0x15, -0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,0x73, -0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,0x67, -0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b,0xc3, -1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,1, -6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,0x36, -0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,0x18, -0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,0x7e, -0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,0x61, -0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c, -0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,0x1c, -0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,0x69, -0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,0x61, -0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,0x64, -0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x65, -0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,0x61, -0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62, -0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,2, -3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,2, -0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,0x1d, -0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,3, -0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x63, -0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,0x72, -0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,0x65, -0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,0x72, -0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,0x24, -0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,0x61, -0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e, -3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,0x72, -0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,0x6e, -0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3, -0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,1,0x6f,0x26, -0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3, -0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,0x74, -0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,0x6c, -0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65, -0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8, -0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,0x72, -0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,2, -0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c, -0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,0x11, -0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,0x10, -0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,0x47, -0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,0x37, -0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a, -2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,0x36, -0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34, -0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,0x5f, -0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75, -0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62, -0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48, -0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33, -0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74, -0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65, -0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d, -0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74, -0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53, -0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69, -0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d, -0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73, -0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f, -0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61, -0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72, -0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72, -2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68, -0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65, -0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61, -0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65, -0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74, -0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61, -0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73, -0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62, -0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69, -0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74, -0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e, -0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x15,0x6d,0xc7,0x44,0x73,0xc3,0x75,0x76, -0x9c,0x76,0x92,0x77,0xa2,0x8b,0x79,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17, -0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74, -0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, -0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,2,0x61,0x36,0x65, -0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e, -0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2, -0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64, -0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14, -0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3, -0xaf,0x18,0x61,0x72,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x73,0xa2,0x4b, -0x74,0xa6,0x2b,0x75,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64, -0x63,0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69, -0x6e,0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78, -0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74, -0xa3,0xad,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,7,0x6f,0xc1,0x5b,0x6f, -0x54,0x70,0x68,0x75,0xa2,0x43,0x79,1,0x6c,0x2c,0x72,0x12,0x69,0x61,0x63,0x3b, -0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,0x18,0x72,0x61,0x73,0x6f, -0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,0x6c, -0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65, -0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,0x1d, -0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,6, -0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16, -0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d, -0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64, -0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1, -0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75, -0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73, -0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1, -0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, -0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70, -0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3, -0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d, -0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61, -0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62, -0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63, -0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e, -0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,0xa2, -0x5b,0x6d,0x16,0x61,0x6c,0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16, -0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61, -0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac, -1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d, -0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76, -0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e, -0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75, -0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,4,0x61, -0x68,0x65,0xa2,0x74,0x68,0xa2,0x77,0x69,0xa2,0x7f,0x72,0x1c,0x61,0x6e,0x73,0x70, -0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62, -0x6f,0x6c,0x73,0xa3,0xcf,3,0x67,0x34,0x69,0x5a,0x6b,0xa2,0x46,0x6d,0x11,0x69, -0x6c,0x49,2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62, -0x13,0x61,0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16, -0x75,0x61,0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c, -0x73,0xa3,0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65, -0x74,0xa3,0xb7,0x11,0x72,0x69,0xa3,0xdc,0x13,0x6c,0x75,0x67,0x75,0x4b,0x10,0x61, -1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c,0x72,0x13, -0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61, -0x67,0x68,0xa3,0x90,0x6d,0x84,0x6e,0xa6,0x1a,0x6f,0xa6,0x4e,0x70,0xa8,2,0x72, -1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0, -0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3, -0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,6,0x6f,0x76,0x6f,0x6c,0x72,0xa2,0x51, -0x75,0xa2,0x52,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2, -0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6, -0x62,0xa3,0xee,1,0x64,0x32,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6b,0x10, -0x69,0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65, -0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73, -0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61, -0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5, -3,0x61,0xa2,0x9b,0x65,0xa4,0x1f,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5, -0x70,0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61, -0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d, -0x19,0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62, -0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c, -0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68, -0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1, -0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61, -0x6e,0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68, -0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,3, -0x68,0xa2,0x4f,0x6c,0xa2,0x65,0x6e,0xa2,0x6a,0x74,0x10,0x68,2,0x61,0x3a,0x65, -0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68, -0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61, -0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f, -0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, -0xa3,0x5d,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c, -0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x15,0x61,0x79,0x61,0x6c, -0x61,0x6d,0x4f,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea, -0x12,0x61,0x69,0x63,0xa3,0xc6,2,0x65,0x66,0x6e,0x98,0x72,0x14,0x6f,0x69,0x74, -0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68, -0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x74,0x65,0x69, -0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e, -0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75, -0x69,0xa3,0xeb,5,0x6b,0x1b,0x6b,0x3c,0x6f,0x40,0x75,0x18,0x6d,0x62,0x65,0x72, -0x66,0x6f,0x72,0x6d,0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b, -0x21,0x61,0x3a,0x62,0x21,0x65,0x16,0x77,0x74,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b, -0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,5,0x70,0x43,0x70,0x36,0x72, -0x6a,0x73,0x14,0x6d,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x18,0x74,0x69,0x63,0x61,0x6c, -0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e, -0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74, -0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47, -0x63,0xa2,0x66,0x67,0xa2,0x66,0x6c,1,0x63,0xa2,0x57,0x64,5,0x70,0x2d,0x70, -0x36,0x73,0x56,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1, -0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x1a,0x6f, -0x75,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x68,0x42,0x69,0x54, -0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17, -0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63, -0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d, -0x65,5,0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63, -0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73, -0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72, -0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61, -0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a, -0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d, -0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61, -0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72, -1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73, -0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15, -0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f, -0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96, -0x67,0xc3,0x8a,0x6a,0xc1,0x81,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,0x54, -0x65,0xa2,0x61,0x69,0xa2,0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,0x69, -0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69, -0x6e,1,0x31,0x82,0x65,0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,0x94, -0x64,0xa3,0x95,0x65,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,0x29, -0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,0x69, -0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d, -0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d, -0x2e,0x6e,0x34,0x73,0x10,0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61, -0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62, -0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76, -0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61, -1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12, -0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,0x61, -0x3c,0x6d,0x4c,0x6f,0x64,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16, -0x72,0x6f,0x73,0x68,0x74,0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,0x79, -0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x38, -0x6e,0x40,0x74,0x9c,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69, -0xa3,0xc1,3,0x61,0x34,0x62,0x50,0x67,0x56,0x6e,0x12,0x61,0x64,0x61,0x4d,0x12, -0x73,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11, -0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c, -0x73,0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f, -0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73, -0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0x84,0x68,0xa4,0x24,0x69,3,0x64, -0x4a,0x6d,0x8e,0x6e,0xa2,0x44,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e, -0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x1c,0x6f,0x67,0x72,0x61,0x70, -0x68,0x69,0x63,0x64,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63, -0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61, -0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63, -0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14, -0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x1c,0x69, -0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65, -0x58,0x6c,0xa2,0x63,0x6f,0xa2,0x6b,0x72,0xa2,0x6f,0x75,1,0x6a,0x30,0x72,0x14, -0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,1,0x6e,0x8c, -0x6f,1,0x6d,0x4e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,0x12,0x73,0x75,0x70,0xa2, -0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x1a,0x65,0x74,0x72,0x69, -0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65, -0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74, -0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63, -0xa3,0x88,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b, -0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f, -0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3, -0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xcf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67, -0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67, -0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f, -0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73, -0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32, -0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70, -0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69, -0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c, -0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,1, -0x67,0x2e,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63, -0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f, -0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f, -0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64, -1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa2,0xe9, -0x62,0xa6,0x20,0x63,0xa6,0xe8,0x64,0xac,0x5f,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e, -0x96,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75, -0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74, -0xa2,0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61, -0xa3,0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f, -0x73,0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61, -0x70,0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73, -0x11,0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c, -0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74, -0x74,0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61, -0x36,0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79, -0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f, -0x72,0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72, -0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,6,0x6e,0xc0,0xe5,0x6e,0x3e,0x72, -0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61, -0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f, -0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d, -0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c, -0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69, -0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2, -0x61,0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38, -3,0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70, -0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65, -0x14,0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65, -0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74, -0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e, -0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1, -0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69, -0x69,0x23,0x65,0x98,0x68,0xa2,0x47,0x6c,1,0x63,0x62,0x70,0x17,0x68,0x61,0x62, -0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74, -0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d, -0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0, -0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f, -0x6d,0xa3,0xfd,6,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b, -0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61, -0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64, -0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65, -0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68, -0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73, -0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14, -0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,0x42,0x65,0xa2,0x4b,0x6c,0x1a,0x6f,0x63, -0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73, -0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11, -0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65, -0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15, -0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,5,0x6f, -0xc1,0x46,0x6f,0xa2,0x4f,0x75,0xa4,0xa,0x79,1,0x70,0x90,0x72,0x14,0x69,0x6c, -0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c, -0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74, -2,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3, -0x9e,0x62,0xa3,0xa0,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61, -0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e, -0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61, -0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61, -0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d, -0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77, -0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73, -0x2e,2,0x65,0x40,0x66,0xa6,0x1b,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65, -0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61, -0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64, -0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b, -0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69, -0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73, -0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62, -0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75, -0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74, -0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xda,0x68,0xa4,4,0x6a,0x10, -0x6b,0xa2,0x47,4,0x63,0x8e,0x65,0xa2,0x81,0x72,0xa2,0x91,0x73,0xa2,0xa3,0x75, -0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68, -0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,4,0x61,0xa3, -0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,0x65,0xa5,0,0x14,0x6f,0x6d, -0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64,0x17,0x65,0x6f, -0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14,0x69, -0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67,0x72, -0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74,4,0x61,0xa3, -0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,0x65,0xa5,0,0x19,0x61,0x64, -0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e, -0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f, -0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69, -0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69, -0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e, -0xa3,0xa8,1,0x61,0x50,0x65,0x14,0x72,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75, -0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26, -0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d, -0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61, -0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e, -0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e, -0x14,0x67,0x62,0x61,0x74,0x73,0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c, -0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74, -0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x13,0x6d,0x69, -0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,8,0x6d,0x5f,0x6d, -0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65, -0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28, -0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f, -0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72, -0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61, -0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58, -0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74, -0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69, -0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e, -0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2, -0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10, -0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68, -0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67, -0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27, -0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65, -0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e, -0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70, -0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67, -0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61, -0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53, -0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74, -0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65, -0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64, -0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f, -0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c, -0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65, -0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b, -0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c, -0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d, -0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65, -0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65, -0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66, -0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e, -0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d, -0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79, -0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d, -0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10, -0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, -0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c, -0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28, -0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35, -0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64, -0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b, -0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e, -0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42, -0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f, -0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66, -0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, -0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d, -0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12,0x6d,0xc1,0xec,0x73,0xa1, -0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73,0x7a,1,0x61,0x2c,0x68, -0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74,0x22,0x74,0x38,0x77,0x4c, -0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,0x69,0x67,0x68, -0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,0x61,0x2e, -0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,0x65,1,0x65, -0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,1,0x61,0x4e,0x65,1, -0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,0x74,0x13, -0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11,0x61,0x77,0x79,1,0x65, -0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34, -0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65, -0x7d,0x6d,0x6c,0x6e,0xa4,0x18,0x70,0xa4,0x35,0x71,0xa4,0x35,0x72,1,0x65,0x38, -0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76, -0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61,0x2e,0x65,0xa2,0xeb,0x69, -0x10,0x6d,0x53,0x17,0x6e,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76, -0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69, -0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11, -0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74, -0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f, -0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64, -0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68, -0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48, -0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66, -0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75, -0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70, -0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64, -0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12, -0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d, -0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x11,0x65,0x6d,0x51,2,0x6f, -0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f, -0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65, -0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,0x66,0x7b,0x66,0x42,0x67,0x7a, -0x68,0x8a,0x6b,0xa2,0x56,0x6c,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,2, -0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68, -0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,0x10,0x61,1, -0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,0x74, -0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,1,0x68,0x3b,0x6d,0x1a,0x7a, -0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44, -0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10, -0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2c,0x62,0x4c,0x64,0x86,0x65,0x31,1, -0x69,0x38,0x6c,1,0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x10,0x6e, -0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79, -0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b, -0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e, -0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69, -0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67, -0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23, -0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e, -0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19, -0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0,0x13,0x6e,0xc0,0xcd, -0x73,0x46,0x73,0x42,0x75,0x72,0x77,0x7e,0x78,0x96,0x7a,0x10,0x77,0x58,0x14,0x73, -0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57, -0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15, -0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f, -0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50, -0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c, -0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f, -0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c, -0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70, -0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49, -1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69, -0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63, -0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68, -0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74, -0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34, -0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c, -0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65, -0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65, -0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e, -0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66, -0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63,0xa2, -0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,2,0x69,0x23,0x6c, -0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68,0x61, -0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72, -0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c, -0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27, -0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72, -0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74, -0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a, -0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1, -0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18, -0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b, -0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73, -0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,0x10, -0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,1,0x64,0x42, -0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65, -0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d, -0x61,0x6c,0x23,0,0x18,0x6e,0xc3,0x79,0x74,0xc1,0x2f,0x77,0x5d,0x77,0x80,0x78, -0xa2,0x44,0x79,0xa2,0x4e,0x7a,5,0x78,0x13,0x78,0x30,0x79,0x36,0x7a,0x11,0x7a, -0x7a,0xa3,0x67,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x69,0x30,0x6d,0x34, -0x73,0x11,0x79,0x6d,0xa3,0x81,0x11,0x6e,0x68,0x23,0x11,0x74,0x68,0xa3,0x80,1, -0x61,0x2c,0x6f,0x11,0x6c,0x65,0xa3,0x9b,0x11,0x72,0x61,0xa2,0x92,0x15,0x6e,0x67, -0x63,0x69,0x74,0x69,0xa3,0x92,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11, -0x65,0x6f,0x9b,0x10,0x69,0x72,0x11,0x69,0x69,0x73,0x74,0x4a,0x75,0xa2,0xb5,0x76, -1,0x61,0x2c,0x69,0x11,0x73,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3, -0x63,5,0x67,0x36,0x67,0x68,0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10, -0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74, -0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61, -1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x56,0x66, -0x11,0x6e,0x67,0x99,6,0x6c,0x1c,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74, -0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10, -0x67,0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99, -1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75, -2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12, -0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68, -0x11,0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67, -0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc0,0xef,0x71,0xa2,0xc1, -0x72,0xa2,0xc6,0x73,6,0x69,0x6d,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x58,0x79, -1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e, -0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72, -0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61, -0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77, -0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,0x11,0x72,0x61,0xa2,0x98,0x16,0x73,0x6f, -0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65, -0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64, -0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12, -0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61, -0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69, -0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3, -0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e, -0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67, -0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,0x11,0x72,0x6f,0xa3,0x5d,0x6e,0xa2,0x83,0x6f, -0xa2,0xbc,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65, -0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11, -0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e, -0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a, -0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c, -0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69, -0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3, -0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d, -0xa3,0x59,4,0x61,0x38,0x62,0x56,0x65,0x5c,0x6b,0x6a,0x73,0x11,0x68,0x75,0xa3, -0x96,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e, -0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,0x16,0x77,0x74,0x61,0x69,0x6c,0x75,0x65,0x97, -1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,3,0x67, -0x3e,0x6c,0x50,0x72,0xa2,0x7a,0x73,0x11,0x6d,0x61,0x84,0x12,0x6e,0x79,0x61,0x85, -1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x55,0x64, -5,0x70,0x2c,0x70,0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58, -0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3, -0x59,0x1a,0x6f,0x75,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x68, -0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e, -0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61, -0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d, -2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3, -0x58,0x68,0xc2,0x9c,0x6b,0xc1,0xcf,0x6b,0xa2,0xdc,0x6c,0xa4,0x5d,0x6d,8,0x6f, -0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72, -0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3, -0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10, -0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2, -0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x34,0x65,0xa0,0x69,0xa2,0x83,0x6c,0x11, -0x79,0x6d,0x55,3,0x68,0x32,0x6c,0x48,0x6e,0x54,0x79,0x10,0x61,0xa3,0x55,1, -0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x15,0x61,0x79,0x61, -0x6c,0x61,0x6d,0x55,1,0x64,0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61, -0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,2,0x65,0x72,0x6e,0x84, -0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,1,0x63,0x3c, -0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x56,0x15,0x75, -0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b, -0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3, -0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70,0x36,0x74,0x11,0x68, -0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,0x2e,0x68, -0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e,0x48,0x74,0x56,0x79, -0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,0x69,0xa3, -0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,0x6b,0x61,0x6e,0x61, -0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,3,0x61,0x3c, -0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0x91,0x10,0x72, -0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24,0x72,0x4f,0x10,0x72, -0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,0x5c,0x65,0x90,0x69, -0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e, -0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46, -0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10, -0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3, -0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75, -0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62, -0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x60,0x69,0xa2,0x79,0x6a,2,0x61,0x30,0x70, -0x44,0x75,0x11,0x72,0x63,0xa3,0x94,0x11,0x76,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73, -0x65,0xa3,0x4e,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72, -0x40,0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3, -0x4b,0x11,0x6b,0x74,0x8d,0x61,0x3a,0x65,0x86,0x69,0x11,0x72,0x61,0x48,0x13,0x67, -0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3, -0xa2,0x42,5,0x73,0xc,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f, -0x77,0x67,0x28,0x69,0x43,0x6f,0x77,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46, -0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70, -0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64, -0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70, -0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61, -0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23, -0x64,0xc0,0xc7,0x64,0xa2,0x60,0x65,0xa2,0x88,0x67,4,0x65,0x62,0x6c,0x7a,0x6f, -0x8e,0x72,0x9a,0x75,1,0x6a,0x38,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b, -0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x10,0x6f, -1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90, -0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,0x11,0x74,0x68,0x3a,0x11,0x69,0x63,0x3b, -1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89, -0x12,0x74,0x68,0x61,0xa3,0x89,2,0x65,0x3e,0x73,0x64,0x75,0x11,0x70,0x6c,0xa2, -0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15, -0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,0x11,0x72,0x74, -0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63, -0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69, -0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,0x11, -0x62,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xa2,0x62,0xa2,0xf9, -0x63,6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2, -0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69, -0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d, -0x6f,0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3, -0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e, -0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e, -0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64, -0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69, -0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,0x10,0x72,0x2c,0x13,0x6f, -0x6b,0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,5, -0x6e,0x43,0x6e,0x44,0x72,0x6c,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13, -0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68, -0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e,0x6d, -2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10,0x62, -0x24,0x11,0x69,0x63,0x25,0x66,0x30,0x67,0x36,0x68,0x11,0x6f,0x6d,0xa3,0xa1,0x11, -0x61,0x6b,0xa3,0x93,0x11,0x68,0x62,0xa3,0x9f,5,0x6f,0x36,0x6f,0x4e,0x72,0x5e, -0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13, -0x6e,0x65,0x73,0x65,0x8f,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10, -0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69, -0xa3,0x41,0x61,0x2e,0x65,0x82,0x6c,0x11,0x69,0x73,0xa1,3,0x6c,0x3a,0x6d,0x48, -0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e, -0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86, -0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29, -3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a, -0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17, -0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c, -0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21, -0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a, -0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79, -0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65, -0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73, -0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e, -0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10, -0x6f,0x21,9,0x72,0x31,0x72,0x34,0x73,0x5c,0x74,0x31,0x76,0x33,0x78,0x10,0x78, -0x21,1,0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64, -0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e, -0x67,0x6d,0x61,0x72,0x6b,0x35,0x63,0x44,0x65,0x5c,0x6c,0x6a,0x6f,0x78,0x70,1, -0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,2,0x6e,0x23,0x6f,0x24,0x72, -0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,0x10,0x78,0x26,0x13,0x74,0x65,0x6e,0x64, -0x27,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21, -9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10, -0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65, -0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31, -0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65, -0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63, -0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65, -0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24, -0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f, -0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0xd,0x6c,0x76,0x6f,0x36,0x6f,0x30,0x72,0x38, -0x73,0x60,0x78,0x10,0x78,0x21,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x24,0x69, -0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f, -0x72,0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74, -0x65,0x3f,0x6c,0x50,0x6d,0x56,0x6e,2,0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d, -0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,1,0x65,0x23,0x66, -0x35,3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e, -0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29, -0x65,0x3d,0x65,0x40,0x66,0x5e,0x68,0x6c,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b, -0x61,0x6e,0x61,0x27,0x10,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75, -0x6d,0x6c,0x65,0x74,0x2f,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x65, -0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61, -0x46,0x63,0x52,0x64,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75, -0x6f,0x74,0x65,0x41,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,2, -0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73, -0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c, -0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70, -0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff, -8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf, -0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72, -0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16, -0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0, -0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70, -0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61, -0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65, -0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73, -0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8, -0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0, -0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0, -0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61, -0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64, -0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72, -0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9, -0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d, -0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67, -0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1, -3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8, -0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72, -0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0, -0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9, -0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4, -0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69, -0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4, -0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1, -0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70, -0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10, -0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, -0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74, -0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74, -0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72, -0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70, -0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b, -0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80, -1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72, -0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22, -0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e, -0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70, -0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62, -0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80, -0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74, -0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0, -0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0, -0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0 +0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e, +1,0x73,0x54,0x74,0x13,0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72, +0x6d,0x69,0x6e,0x61,0x6c,0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74, +0x69,0x76,0x65,0x65,1,0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65, +0x6e,0x74,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69, +0x98,0x72,0x19,0x61,0x69,0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c, +0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11, +0xd8,0x40,0xa,0x11,0x63,0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61, +0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c, +0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d, +0x42,0x6e,0x48,0x70,0xa2,0xda,0x71,0xa4,9,0x72,0x15,0x61,0x64,0x69,0x63,0x61, +0x6c,0x55,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9,0x75, +0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,0x74,0x65, +0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,0x72,0x69, +0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,0x79,0x70, +0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64,0xa2,0x53, +0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75,0x17,0x69, +0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74,0x6d,1, +0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63, +0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1,0x63,0xc3, +0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13,0x6e,0x65, +0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69,0x63,0x6b, +0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8,0x40,5, +1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61,0x72,0x51, +1,0x61,0x2c,0x72,0x12,0x69,0x6e,0x74,0x7f,0x10,0x74,2,0x73,0x2c,0x74,0x30, +0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,0x38,0x77, +0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,0x74,0x61, +0x78,0x75,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61, +0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xb9,0x69,0xc0,0xfd,0x69,0xa2, +0x6f,0x6a,0xa2,0xca,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65,0x98,0x69,0xa2,0x56, +0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,0x13,0x63,0x61,0x73,0x65, +0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,4,0x11,0x69,0x63,0x1f, +0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e, +0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,0x64,0x63,0x61,0x6e,0x6f, +0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63, +0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,0x65,0x61,0x6b,0xc3,8, +1,0x64,0x44,0x73,1,0x63,0xd9,0x40,3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65, +0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,0x65,0x90,0x73,0x40,1,0x62,0x52,0x74, +0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61, +0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f, +0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75, +0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,2,0x67, +0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e, +0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70, +0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a, +0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f, +0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65, +0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb, +0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, +0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2, +0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11, +0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12, +0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b, +0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78, +0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72, +0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73, +0x6b,0xd9,0x20,0,0x61,0xa2,0x50,0x62,0xa2,0x7e,0x63,0xa2,0xf0,0x64,0xa4,0xbd, +0x65,2,0x61,0x3a,0x6d,0x58,0x78,0x10,0x74,0x30,0x14,0x65,0x6e,0x64,0x65,0x72, +0x31,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68, +0xc3,4,0x12,0x6f,0x6a,0x69,0x92,1,0x6d,0x3c,0x70,0x1a,0x72,0x65,0x73,0x65, +0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72, +0x96,0x13,0x62,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a, +0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40, +0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65, +0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0,0x69,0x3e,0x6c,0xa2, +0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,0x11,0x64,0x69, +2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,0x61,0x63, +0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,1,0x6c, +0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,0,0x26, +0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,0x6c,0x79, +0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11, +0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,1,6,0x68,0x7c, +0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74, +0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67, +0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75, +0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73,0x65,1, +0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64, +0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63, +0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65, +0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2, +0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a, +0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c, +0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65, +0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69, +0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,2,3,0x61,0x30, +0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66, +0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70, +0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75, +0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65, +0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69, +0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20, +0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23, +0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13, +0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2, +0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f, +0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72, +0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f, +0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0,0x61,0x5c, +0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,1,0x6f,0x26,0x73,0xa3,0xf0, +0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,0xa2,0xe6, +3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74, +0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2, +0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14, +0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10, +0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67, +0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c, +0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13, +0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,0x11,0x63,0x63,4, +0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b, +9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31, +0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36, +0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3, +0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57, +0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33, +8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10, +0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65, +1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65, +0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1,0x68, +0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1,0x69, +0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f,0x6c, +0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69, +0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f, +0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2,0x61, +0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x61, +0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f,0x72, +0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61, +0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73,0x10, +0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43, +1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x35, +0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65,0x37, +0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20,2, +0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17,0x6d, +0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x49, +3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e,2, +0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x29, +0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72, +0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72,0x6f, +0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63,1, +0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61,0x74, +0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1,0x6c, +0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72,0x3b, +0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75,0x74, +0x72,0x61,0x6c,0x45,0,0x15,0x6d,0xc7,0x81,0x73,0xc3,0x8b,0x76,0x9c,0x76,0x92, +0x77,0xa2,0x8b,0x79,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c, +0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65, +0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16, +0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,2,0x61,0x36,0x65,0x7a,0x73,0xa2, +0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74, +0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73, +0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19, +0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65, +0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,0x18,0x61, +0x72,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x73,0xa2,0x4b,0x74,0xa6,0x2b, +0x75,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e, +0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c, +0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e, +0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa3,0xad,0x15, +0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,7,0x6f,0xc1,0x5b,0x6f,0x54,0x70,0x68, +0x75,0xa2,0x43,0x79,1,0x6c,0x2c,0x72,0x12,0x69,0x61,0x63,0x3b,0x17,0x6f,0x74, +0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,0x18,0x72,0x61,0x73,0x6f,0x6d,0x70,0x65, +0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,0x6c,0x73,0xa3,0x56, +0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x6c,0x65, +0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,0x1d,0x74,0x6f,0x6e, +0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,6,0x15,0x64,0x61, +0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65, +0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2, +0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63, +0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73, +0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63, +0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74, +0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75, +1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15, +0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76, +0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3, +0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f, +0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73, +0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63, +0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f, +0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75, +0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,0xa2,0x5b,0x6d,0x16, +0x61,0x6c,0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69, +0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74, +0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52, +0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63, +0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61, +0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61, +0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65, +0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,4,0x61,0x68,0x65,0xa2, +0x8a,0x68,0xa2,0x8d,0x69,0xa2,0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74, +0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, +0xa3,0xcf,4,0x67,0x58,0x69,0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67, +0x75,0x74,0xa4,0x10,0x19,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5, +0x11,2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13, +0x61,0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75, +0x61,0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, +0xa3,0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74, +0xa3,0xb7,0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75, +0x4b,0x10,0x61,1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66, +0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14, +0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,0x6d,0x84,0x6e,0xa6,0x34,0x6f,0xa6,0x6d,0x70, +0xa8,0x29,0x72,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10, +0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f, +0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,6,0x6f,0x86,0x6f,0x6c, +0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65, +0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1, +0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61, +0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, +0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19, +0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74, +0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2, +0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61, +0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x29,0x69,1,0x61,0xa2,0x8f,0x73, +0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e, +0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66, +0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61, +0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d, +0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61, +0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f, +0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73, +0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72, +0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f, +0xa3,0xd8,4,0x68,0xa2,0x52,0x6c,0xa2,0x68,0x6e,0xa2,0x6d,0x72,0xa2,0x7d,0x74, +0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72, +0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74, +0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72, +0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73, +0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67, +0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3, +0xe9,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,1,0x64,0x34,0x69,0x15,0x63,0x68, +0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,0x13,0x63,0x68,0x65, +0x6e,0xa5,0xc,2,0x65,0x66,0x6e,0x98,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1, +0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7, +0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x74,0x65,0x69,0x6d,0x61,0x79, +0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f, +0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb, +5,0x6b,0x1b,0x6b,0x3c,0x6f,0x40,0x75,0x18,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72, +0x6d,0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,0x61,0x44, +0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65, +0xa3,0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,5,0x70,0x4b,0x70, +0x46,0x72,0x7a,0x73,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11, +0x67,0x65,0xa5,0xf,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61, +0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85, +1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67, +0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x66,0x67,0xa2,0x66, +0x6c,1,0x63,0xa2,0x57,0x64,5,0x70,0x2d,0x70,0x36,0x73,0x56,0x74,0x14,0x75, +0x72,0x6b,0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61, +0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x1a,0x6f,0x75,0x74,0x68,0x61,0x72,0x61, +0x62,0x69,0x61,0x6e,0xa3,0xbb,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68, +0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69, +0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x13,0x68,0x69,0x6b, +0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65,5,0x72,0x35,0x72,0x44, +0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72, +0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76, +0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61, +0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68, +0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15, +0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e, +0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75, +0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e, +0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69, +0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,0x67,0xc3,0xb9,0x6a,0xc1,0x81, +0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,0x78, +0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69, +0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,0x11, +0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,0xe7, +0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95, +0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24, +0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70, +0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c, +0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x2e,0x6e,0x34,0x73,0x10,0x75, +0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62, +1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17, +0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72, +0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61, +0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3, +0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,0x61,0x3c,0x6d,0x4c,0x6f,0x64,0x75, +0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,0x68, +0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3, +0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x38,0x6e,0x40,0x74,0x9c,0x79,0x13, +0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,0x34,0x62, +0x50,0x67,0x56,0x6e,0x12,0x61,0x64,0x61,0x4d,0x12,0x73,0x75,0x70,0xa2,0xcb,0x16, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78, +0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61,0x6b,0x61, +0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63, +0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3, +0x6b,0x67,0xa2,0xa3,0x68,0xa4,0x53,0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2, +0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73, +0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64, +0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63, +0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65, +0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69, +0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e, +0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd, +0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x1c,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72, +0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,0x58,0x6c,0xa2,0x63,0x6f,0xa2,0x7b, +0x72,0xa2,0x7f,0x75,1,0x6a,0x30,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14, +0x61,0x72,0x61,0x74,0x69,0x45,1,0x6e,0x8c,0x6f,1,0x6d,0x4e,0x72,0x13,0x67, +0x69,0x61,0x6e,0x5a,0x12,0x73,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65, +0x6e,0x74,0xa3,0x87,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73, +0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e, +0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71, +0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4, +0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63, +0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78, +0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74, +0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2, +0xcf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1, +0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1, +0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c, +0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67, +0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e, +0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61, +0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d, +0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3, +0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,1,0x67,0x2e,0x75,0x12,0x6e,0x6f,0x6f, +0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c, +0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62, +0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c, +0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9, +0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa2,0xe9,0x62,0xa6,0x29,0x63,0xa6,0xfe,0x64, +0xac,0x7b,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,0x74,0x15,0x68,0x69,0x6f,0x70, +0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65, +0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,1,0x61,0xa3,0xc8,0x65, +0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,0xc8,0x16,0x6f,0x74,0x69,0x63, +0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a,0x63, +0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75,0x70, +0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68, +0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13,0x72, +0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3, +0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e,0x64, +0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x36,0x67,0x62,0x6c,0x14,0x62,0x61, +0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74, +0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x10,0x79,0x1f, +0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73, +0xa3,0xc2,7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14, +0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74, +1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65, +0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13, +0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f, +0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f, +0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x71,0x72,0x12, +0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x66,0x70,0xa2, +0x43,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, +0x80,0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa3, +0xd2,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c, +0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f, +0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74, +0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14, +0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42, +0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63, +0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f, +0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c, +0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d, +0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77, +0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58, +0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b, +0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78, +0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0, +0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61, +1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72, +0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3, +0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2, +0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3, +0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65, +0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76, +0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61, +0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1, +0x4c,0x6f,0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c, +0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65, +0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3, +0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,0x13,0x6e,0x64,0x65,0x64,2, +0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79, +0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70, +0xa2,0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e, +0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70, +0x15,0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2, +0x64,0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d, +0x62,0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c, +0x6d,0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x1b,0x73,0x18,0x75,0x70, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65, +0x64,0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f, +0x6e,0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72, +0x6d,0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65, +0x73,0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75, +0x6d,0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63, +0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d, +0xa2,0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64, +0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xda, +0x68,0xa4,4,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x8e,0x65,0xa2,0x81,0x72,0xa2, +0x91,0x73,0xa2,0xa3,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f, +0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69, +0x6f,0x6e,4,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,0x65, +0xa5,0,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62, +0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75, +0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18, +0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70, +0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11, +0x78,0x74,4,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,0x65, +0xa5,0,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70, +0x6c,0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c, +0x73,0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75, +0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3, +0xde,0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73, +0x63,0x12,0x69,0x61,0x6e,0xa3,0xa8,1,0x61,0x50,0x65,0x14,0x72,0x6f,0x6b,0x65, +0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, +0xa3,0xff,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,3,0x65,0x3e, +0x69,0x7e,0x6f,0xa2,0x5d,0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1, +0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74, +0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3, +0x5a,1,0x61,0x30,0x6e,0x14,0x67,0x62,0x61,0x74,0x73,0x91,0x18,0x63,0x72,0x69, +0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70, +0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c, +0x73,0x77,0x13,0x6d,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3, +0xab,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69, +0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62, +0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10, +0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d, +0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1, +0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63, +0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f, +0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c, +0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10, +0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27, +0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74, +0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4, +0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22, +0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77, +0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25, +0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72, +0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49, +0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75, +0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69, +0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74, +0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61, +0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65, +0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73, +0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66, +0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75, +0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72, +0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33, +0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72, +0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70, +0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b, +0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, +0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60, +0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c, +0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29, +0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72, +0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74, +0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63, +0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74, +0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74, +0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75, +0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, +0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e, +0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75, +0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12, +0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f, +0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74, +0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69, +0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12, +0x6d,0xc1,0xec,0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73, +0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74, +0x22,0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18, +0x72,0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b, +0x61,0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11, +0x68,0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67, +1,0x61,0x4e,0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62, +0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11, +0x61,0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10, +0x68,0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14, +0x61,0x72,0x72,0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x18,0x70,0xa4,0x35,0x71,0xa4, +0x35,0x72,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68, +0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61, +0x2e,0x65,0xa2,0xeb,0x69,0x10,0x6d,0x53,0x17,0x6e,0x69,0x63,0x68,0x61,0x65,0x61, +0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42, +0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65, +0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a, +0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e, +0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77, +0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a, +0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3, +0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68, +0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c, +0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68, +0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44, +0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79, +0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,0x61, +0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x11, +0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f, +0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21, +0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,0x66, +0x7b,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x56,0x6c,0x11,0x61,0x6d,0x4c,0x12, +0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65, +0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10, +0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65, +0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,1, +0x68,0x3b,0x6d,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d, +2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b, +1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2e,0x62,0x8a, +0x64,0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10, +0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e, +0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e, +0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61, +0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29, +0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68, +0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a, +0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69, +0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e, +0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f, +0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69, +0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0, +0x13,0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,0x7a,0x10, +0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67, +0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72, +0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a, +0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e, +0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f, +0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72, +0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72, +0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61, +0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74, +0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69, +0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78, +0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74, +0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65, +0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d, +4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e, +0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28, +0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d, +0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62, +0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c, +0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64, +0x43,0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11, +0x75,0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75, +0x73,0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27, +0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e, +0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1, +0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51, +0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74, +0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74, +0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74, +0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f, +0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b, +0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61, +0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65, +0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72, +0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c, +0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16, +0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75, +0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69, +0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18, +0x6e,0xc3,0x95,0x74,0xc1,0x38,0x77,0x61,0x77,0x88,0x78,0xa2,0x48,0x79,0xa2,0x52, +0x7a,5,0x78,0x13,0x78,0x30,0x79,0x36,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x11,0x78, +0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x69,0x38,0x6d,0x3c,0x73,0x10,0x79,1,0x65, +0xa3,0xae,0x6d,0xa3,0x81,0x11,0x6e,0x68,0x23,0x11,0x74,0x68,0xa3,0x80,1,0x61, +0x2c,0x6f,0x11,0x6c,0x65,0xa3,0x9b,0x11,0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63, +0x69,0x74,0x69,0xa3,0x92,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65, +0x6f,0x9b,0x10,0x69,0x72,0x11,0x69,0x69,0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1, +0x61,0x2c,0x69,0x11,0x73,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63, +5,0x67,0x36,0x67,0x68,0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68, +0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61, +0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1, +0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11, +0x6e,0x67,0x99,6,0x6c,0x21,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3, +0x7f,1,0x65,0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67, +0xa2,0x9a,0x11,0x75,0x74,0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99, +0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12, +0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f, +0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3, +0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f, +0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc0, +0xef,0x71,0xa2,0xc1,0x72,0xa2,0xc6,0x73,6,0x69,0x6d,0x69,0x72,0x6f,0xa2,0x4c, +0x75,0xa2,0x58,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c, +0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69, +0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91, +0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3, +0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,0x11,0x72,0x61,0xa2, +0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71, +0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61, +0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64, +0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72, +0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3, +0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85, +0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e, +0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13, +0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,0x11,0x72,0x6f,0xa3,0x5d, +0x6e,0xa2,0x83,0x6f,0xa2,0xc1,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b, +0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72, +0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61, +0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b, +0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3, +0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63, +0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d, +0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3, +0x90,0x11,0x72,0x6d,0xa3,0x59,4,0x61,0x38,0x62,0x56,0x65,0x5c,0x6b,0x74,0x73, +0x11,0x68,0x75,0xa3,0x96,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74, +0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,0x10,0x77,1,0x61,0xa3, +0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,1,0x67,0x2e,0x6f,0xa2,0x57,0x10, +0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,3,0x67,0x5a,0x6c,0x6c,0x72,0xa2,0x88,0x73, +2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67, +0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10, +0x6d,0x5b,1,0x63,0xa2,0x55,0x64,5,0x70,0x2c,0x70,0x36,0x73,0x54,0x74,0x14, +0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69, +0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x1a,0x6f,0x75,0x74,0x68,0x61,0x72,0x61, +0x62,0x69,0x61,0x6e,0xa3,0x85,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68, +0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69, +0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3, +0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f, +0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,0xb3,0x6b,0xc1,0xdc,0x6b,0xa2, +0xe9,0x6c,0xa4,0x6a,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86, +0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64, +0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14, +0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65, +0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x36, +0x65,0xa2,0x4c,0x69,0xa2,0x8f,0x6c,0x11,0x79,0x6d,0x55,4,0x68,0x36,0x6c,0x4c, +0x6e,0x58,0x72,0x82,0x79,0x10,0x61,0xa3,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13, +0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x64, +0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12, +0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,2, +0x65,0x72,0x6e,0x84,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69, +0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73, +0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,0x17,0x74,0x65,0x69,0x6d, +0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61, +0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70, +0x36,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3, +0x8a,0x61,0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e, +0x48,0x74,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3, +0x78,0x10,0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61, +0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61, +0x8d,3,0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69, +0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24, +0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61, +0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2, +0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2, +0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53, +0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52, +0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10, +0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1, +0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x83,0x6a, +2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10, +0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61, +0x6e,0xa3,0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,0x75,0x11,0x6e,0x67, +0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,0x11,0x6b,0x74,0x8d, +0x61,0x3a,0x65,0x8c,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1, +0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe, +0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3, +0xac,0x67,0x24,0x69,0x43,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65, +0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72, +0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68, +0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1, +0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69, +0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc0, +0xc7,0x64,0xa2,0x60,0x65,0xa2,0x88,0x67,4,0x65,0x62,0x6c,0x7a,0x6f,0x8e,0x72, +0x9a,0x75,1,0x6a,0x38,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69, +0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x10,0x6f,1,0x6b, +0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,0x6f, +0x6c,0x69,0x74,0x69,0x63,0x91,0x11,0x74,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x61, +0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74, +0x68,0x61,0xa3,0x89,2,0x65,0x3e,0x73,0x64,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13, +0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61, +0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,0x11,0x72,0x74,0x33,2, +0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10, +0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e, +0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,0x11,0x62,0x61, +0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xa2,0x62,0xa4,7,0x63,6, +0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2,0x69,0x2a, +0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69,0x6f,0x74, +0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e, +0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61, +0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72, +0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61, +0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61, +0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68, +0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65, +0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,6,0x68,0x4a, +0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13, +0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f, +0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3, +0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69, +0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,0x11, +0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7, +0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,1, +0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,0x65, +0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f, +0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11, +0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,0xa3, +0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,0x73, +0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65, +0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,0x13, +0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,3, +0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61, +0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,0x73, +0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65, +0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,0x6f, +0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,0x72, +0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,0x22, +0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73, +0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23, +0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a, +0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f, +0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10, +0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,0x69, +0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,0x6d, +0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c, +0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,0x28, +1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,0x4c, +0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a, +0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,0x74, +0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,0x64, +0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d, +0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f, +0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,0x72, +0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,0x74, +0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,0x6d, +0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10, +0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,0x6c, +2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,0x12, +0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,0x10, +0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,0x74, +0x27,0xf,0x6c,0x7c,0x72,0x34,0x72,0x32,0x73,0x5a,0x78,0x76,0x7a,0x11,0x77,0x6a, +0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64, +0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c, +0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76, +0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69, +0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12, +0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39, +0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39, +0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b, +0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a, +0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49, +1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72, +0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13, +0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61, +0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64, +0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72, +0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65, +0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c, +0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,0xd,0x6e,0xc1,0x86,0x73,0xa8, +0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20, +0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c, +0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c, +0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d, +0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3, +0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0, +0,0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,0,0,0, +0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65, +0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c, +0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61, +0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe, +0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80, +0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8, +0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69, +0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0, +0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0, +0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, +0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75, +0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69, +0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6, +0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c, +0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62, +0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd, +0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79, +0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15, +0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c, +0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74, +0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5, +0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61, +0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0, +0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61, +0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f, +0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65, +0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74, +0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73, +0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96, +0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80, +0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b, +0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0, +0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e, +1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f, +0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0, +0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63, +0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63, +0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c, +0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74, +0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7, +0 }; -const char PropNameData::nameGroups[17897]={ +const char PropNameData::nameGroups[18440]={ 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0, 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0, 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0, @@ -954,8 +984,9 @@ const char PropNameData::nameGroups[17897]={ 2,'X','I','D','C',0,'X','I','D','_','C','o','n','t','i','n','u','e',0, 2,'X','I','D','S',0,'X','I','D','_','S','t','a','r','t',0, 2,'S','e','n','s','i','t','i','v','e',0,'C','a','s','e','_','S','e','n','s','i','t','i','v','e',0, -2,'S','T','e','r','m',0,'S','T','e','r','m',0,2,'V','S',0,'V','a','r','i','a','t','i','o','n','_','S','e','l','e','c', -'t','o','r',0,2,'n','f','d','i','n','e','r','t',0,'N','F','D','_','I','n','e','r','t',0, +2,'S','T','e','r','m',0,'S','e','n','t','e','n','c','e','_','T','e','r','m','i','n','a','l',0, +2,'V','S',0,'V','a','r','i','a','t','i','o','n','_','S','e','l','e','c','t','o','r',0, +2,'n','f','d','i','n','e','r','t',0,'N','F','D','_','I','n','e','r','t',0, 2,'n','f','k','d','i','n','e','r','t',0,'N','F','K','D','_','I','n','e','r','t',0, 2,'n','f','c','i','n','e','r','t',0,'N','F','C','_','I','n','e','r','t',0, 2,'n','f','k','c','i','n','e','r','t',0,'N','F','K','C','_','I','n','e','r','t',0, @@ -1297,6 +1328,17 @@ const char PropNameData::nameGroups[17897]={ 's',0,'S','u','p','p','l','e','m','e','n','t','a','l','_','S','y','m','b','o','l','s','_','A','n','d','_','P','i','c','t','o', 'g','r','a','p','h','s',0,2,'S','u','t','t','o','n','_','S','i','g','n','W','r','i','t','i','n','g',0, 'S','u','t','t','o','n','_','S','i','g','n','W','r','i','t','i','n','g',0, +2,'A','d','l','a','m',0,'A','d','l','a','m',0,2,'B','h','a','i','k','s','u','k','i',0, +'B','h','a','i','k','s','u','k','i',0,2,'C','y','r','i','l','l','i','c','_','E','x','t','_','C',0, +'C','y','r','i','l','l','i','c','_','E','x','t','e','n','d','e','d','_','C',0, +2,'G','l','a','g','o','l','i','t','i','c','_','S','u','p',0,'G','l','a','g','o','l','i','t','i','c','_','S','u','p','p','l', +'e','m','e','n','t',0,2,'I','d','e','o','g','r','a','p','h','i','c','_','S','y','m','b','o','l','s',0, +'I','d','e','o','g','r','a','p','h','i','c','_','S','y','m','b','o','l','s','_','A','n','d','_','P','u','n','c','t','u','a','t', +'i','o','n',0,2,'M','a','r','c','h','e','n',0,'M','a','r','c','h','e','n',0, +2,'M','o','n','g','o','l','i','a','n','_','S','u','p',0,'M','o','n','g','o','l','i','a','n','_','S','u','p','p','l','e','m', +'e','n','t',0,2,'N','e','w','a',0,'N','e','w','a',0,2,'O','s','a','g','e',0,'O','s','a','g','e',0, +2,'T','a','n','g','u','t',0,'T','a','n','g','u','t',0,2,'T','a','n','g','u','t','_','C','o','m','p','o','n','e','n','t', +'s',0,'T','a','n','g','u','t','_','C','o','m','p','o','n','e','n','t','s',0, 2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i','n','g','_','C','l','a','s','s',0, 2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0, 3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0, @@ -1415,6 +1457,9 @@ const char PropNameData::nameGroups[17897]={ 2,'M','a','n','i','c','h','a','e','a','n','_','Y','o','d','h',0,'M','a','n','i','c','h','a','e','a','n','_','Y','o','d','h', 0,2,'M','a','n','i','c','h','a','e','a','n','_','Z','a','y','i','n',0,'M','a','n','i','c','h','a','e','a','n','_','Z','a', 'y','i','n',0,2,'S','t','r','a','i','g','h','t','_','W','a','w',0,'S','t','r','a','i','g','h','t','_','W','a','w',0, +2,'A','f','r','i','c','a','n','_','F','e','h',0,'A','f','r','i','c','a','n','_','F','e','h',0, +2,'A','f','r','i','c','a','n','_','N','o','o','n',0,'A','f','r','i','c','a','n','_','N','o','o','n',0, +2,'A','f','r','i','c','a','n','_','Q','a','f',0,'A','f','r','i','c','a','n','_','Q','a','f',0, 2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0, 2,'U',0,'N','o','n','_','J','o','i','n','i','n','g',0,2,'C',0,'J','o','i','n','_','C','a','u','s','i','n','g',0, 2,'D',0,'D','u','a','l','_','J','o','i','n','i','n','g',0, @@ -1449,7 +1494,8 @@ const char PropNameData::nameGroups[17897]={ 's','i','s',0,2,'C','J',0,'C','o','n','d','i','t','i','o','n','a','l','_','J','a','p','a','n','e','s','e','_','S','t','a', 'r','t','e','r',0,2,'H','L',0,'H','e','b','r','e','w','_','L','e','t','t','e','r',0, 2,'R','I',0,'R','e','g','i','o','n','a','l','_','I','n','d','i','c','a','t','o','r',0, -2,'n','t',0,'N','u','m','e','r','i','c','_','T','y','p','e',0, +2,'E','B',0,'E','_','B','a','s','e',0,2,'E','M',0,'E','_','M','o','d','i','f','i','e','r',0, +2,'Z','W','J',0,'Z','W','J',0,2,'n','t',0,'N','u','m','e','r','i','c','_','T','y','p','e',0, 2,'N','o','n','e',0,'N','o','n','e',0,2,'D','e',0,'D','e','c','i','m','a','l',0, 2,'D','i',0,'D','i','g','i','t',0,2,'N','u',0,'N','u','m','e','r','i','c',0, 2,'s','c',0,'S','c','r','i','p','t',0,2,'Z','y','y','y',0,'C','o','m','m','o','n',0, @@ -1543,15 +1589,19 @@ const char PropNameData::nameGroups[17897]={ 2,'A','f','a','k',0,'A','f','a','k',0,2,'J','u','r','c',0,'J','u','r','c',0, 2,'M','r','o','o',0,'M','r','o',0,2,'N','s','h','u',0,'N','s','h','u',0, 2,'S','h','r','d',0,'S','h','a','r','a','d','a',0,2,'S','o','r','a',0,'S','o','r','a','_','S','o','m','p','e','n','g', -0,2,'T','a','k','r',0,'T','a','k','r','i',0,2,'T','a','n','g',0,'T','a','n','g',0, +0,2,'T','a','k','r',0,'T','a','k','r','i',0,2,'T','a','n','g',0,'T','a','n','g','u','t',0, 2,'W','o','l','e',0,'W','o','l','e',0,2,'H','l','u','w',0,'A','n','a','t','o','l','i','a','n','_','H','i','e','r','o', 'g','l','y','p','h','s',0,2,'K','h','o','j',0,'K','h','o','j','k','i',0, 2,'T','i','r','h',0,'T','i','r','h','u','t','a',0,2,'A','g','h','b',0,'C','a','u','c','a','s','i','a','n','_','A','l', 'b','a','n','i','a','n',0,2,'M','a','h','j',0,'M','a','h','a','j','a','n','i',0, 2,'H','a','t','r',0,'H','a','t','r','a','n',0,2,'M','u','l','t',0,'M','u','l','t','a','n','i',0, 2,'P','a','u','c',0,'P','a','u','_','C','i','n','_','H','a','u',0, -2,'S','i','d','d',0,'S','i','d','d','h','a','m',0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b', -'l','e','_','T','y','p','e',0,2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, +2,'S','i','d','d',0,'S','i','d','d','h','a','m',0,2,'A','d','l','m',0,'A','d','l','a','m',0, +2,'B','h','k','s',0,'B','h','a','i','k','s','u','k','i',0, +2,'M','a','r','c',0,'M','a','r','c','h','e','n',0,2,'O','s','g','e',0,'O','s','a','g','e',0, +2,'H','a','n','b',0,'H','a','n','b',0,2,'J','a','m','o',0,'J','a','m','o',0, +2,'Z','s','y','e',0,'Z','s','y','e',0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_', +'T','y','p','e',0,2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, 2,'L',0,'L','e','a','d','i','n','g','_','J','a','m','o',0, 2,'V',0,'V','o','w','e','l','_','J','a','m','o',0,2,'T',0,'T','r','a','i','l','i','n','g','_','J','a','m','o',0, 2,'L','V',0,'L','V','_','S','y','l','l','a','b','l','e',0, @@ -1568,7 +1618,9 @@ const char PropNameData::nameGroups[17897]={ 2,'E','X',0,'E','x','t','e','n','d',0,2,'L',0,'L',0, 2,'L','F',0,'L','F',0,2,'L','V',0,'L','V',0,2,'L','V','T',0,'L','V','T',0, 2,'T',0,'T',0,2,'V',0,'V',0,2,'S','M',0,'S','p','a','c','i','n','g','M','a','r','k',0, -2,'P','P',0,'P','r','e','p','e','n','d',0,2,'S','B',0,'S','e','n','t','e','n','c','e','_','B','r','e','a','k',0, +2,'P','P',0,'P','r','e','p','e','n','d',0,2,'E','B','G',0,'E','_','B','a','s','e','_','G','A','Z',0, +2,'G','A','Z',0,'G','l','u','e','_','A','f','t','e','r','_','Z','w','j',0, +2,'S','B',0,'S','e','n','t','e','n','c','e','_','B','r','e','a','k',0, 2,'A','T',0,'A','T','e','r','m',0,2,'C','L',0,'C','l','o','s','e',0, 2,'F','O',0,'F','o','r','m','a','t',0,2,'L','O',0,'L','o','w','e','r',0, 2,'L','E',0,'O','L','e','t','t','e','r',0,2,'S','E',0,'S','e','p',0, diff --git a/deps/icu-small/source/common/propsvec.c b/deps/icu-small/source/common/propsvec.c index f91a155cf8da0d..ed4d89954b872f 100644 --- a/deps/icu-small/source/common/propsvec.c +++ b/deps/icu-small/source/common/propsvec.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -218,7 +220,7 @@ upvec_setValue(UPropsVectors *pv, *pErrorCode=U_MEMORY_ALLOCATION_ERROR; return; } - uprv_memcpy(newVectors, pv->v, rows*columns*4); + uprv_memcpy(newVectors, pv->v, (size_t)rows*columns*4); firstRow=newVectors+(firstRow-pv->v); lastRow=newVectors+(lastRow-pv->v); uprv_free(pv->v); @@ -240,7 +242,7 @@ upvec_setValue(UPropsVectors *pv, if(splitFirstRow) { /* copy all affected rows up one and move the lastRow pointer */ count = (int32_t)((lastRow-firstRow)+columns); - uprv_memmove(firstRow+columns, firstRow, count*4); + uprv_memmove(firstRow+columns, firstRow, (size_t)count*4); lastRow+=columns; /* split the range and move the firstRow pointer */ @@ -251,7 +253,7 @@ upvec_setValue(UPropsVectors *pv, /* split the last row */ if(splitLastRow) { /* copy the last row data */ - uprv_memcpy(lastRow+columns, lastRow, columns*4); + uprv_memcpy(lastRow+columns, lastRow, (size_t)columns*4); /* split the range and move the firstRow pointer */ lastRow[1]=lastRow[columns]=(uint32_t)limit; @@ -415,7 +417,7 @@ upvec_compact(UPropsVectors *pv, UPVecCompactHandler *handler, void *context, UE /* add a new values vector if it is different from the current one */ if(count<0 || 0!=uprv_memcmp(row+2, pv->v+count, valueColumns*4)) { count+=valueColumns; - uprv_memmove(pv->v+count, row+2, valueColumns*4); + uprv_memmove(pv->v+count, row+2, (size_t)valueColumns*4); } if(startd_name; if (uprv_strcmp(dirName, SKIP1) != 0 && uprv_strcmp(dirName, SKIP2) != 0) { /* Create a newpath with the new entry to test each entry in the directory. */ - char newpath[MAX_PATH_SIZE]; - uprv_strcpy(newpath, curpath); - uprv_strcat(newpath, dirName); + CharString newpath(curpath, status); + newpath.append(dirName, -1, status); + if (U_FAILURE(status)) { + return NULL; + } - if ((subDirp = opendir(newpath)) != NULL) { + if ((subDirp = opendir(newpath.data())) != NULL) { /* If this new path is a directory, make a recursive call with the newpath. */ closedir(subDirp); - uprv_strcat(newpath, "/"); - result = searchForTZFile(newpath, tzInfo); + newpath.append('/', status); + if (U_FAILURE(status)) { + return NULL; + } + result = searchForTZFile(newpath.data(), tzInfo); /* Have to get out here. Otherwise, we'd keep looking and return the first match in the top-level directory @@ -955,11 +976,19 @@ static char* searchForTZFile(const char* path, DefaultTZInfo* tzInfo) { if (result != NULL) break; } else if (uprv_strcmp(TZFILE_SKIP, dirName) != 0 && uprv_strcmp(TZFILE_SKIP2, dirName) != 0) { - if(compareBinaryFiles(TZDEFAULT, newpath, tzInfo)) { - const char* zoneid = newpath + (sizeof(TZZONEINFO)) - 1; + if(compareBinaryFiles(TZDEFAULT, newpath.data(), tzInfo)) { + int32_t amountToSkip = sizeof(TZZONEINFO) - 1; + if (amountToSkip > newpath.length()) { + amountToSkip = newpath.length(); + } + const char* zoneid = newpath.data() + amountToSkip; skipZoneIDPrefix(&zoneid); - uprv_strcpy(SEARCH_TZFILE_RESULT, zoneid); - result = SEARCH_TZFILE_RESULT; + gSearchTZFileResult->clear(); + gSearchTZFileResult->append(zoneid, -1, status); + if (U_FAILURE(status)) { + return NULL; + } + result = gSearchTZFileResult->data(); /* Get out after the first one found. */ break; } @@ -970,6 +999,15 @@ static char* searchForTZFile(const char* path, DefaultTZInfo* tzInfo) { return result; } #endif + +U_CAPI void U_EXPORT2 +uprv_tzname_clear_cache() +{ +#if defined(CHECK_LOCALTIME_LINK) && !defined(DEBUG_SKIP_LOCALTIME_LINK) + gTimeZoneBufferPtr = NULL; +#endif +} + U_CAPI const char* U_EXPORT2 uprv_tzname(int n) { @@ -1019,7 +1057,7 @@ uprv_tzname(int n) because the tzfile contents is underspecified. This isn't guaranteed to work because it may not be a symlink. */ - int32_t ret = (int32_t)readlink(TZDEFAULT, gTimeZoneBuffer, sizeof(gTimeZoneBuffer)); + int32_t ret = (int32_t)readlink(TZDEFAULT, gTimeZoneBuffer, sizeof(gTimeZoneBuffer)-1); if (0 < ret) { int32_t tzZoneInfoLen = uprv_strlen(TZZONEINFO); gTimeZoneBuffer[ret] = 0; @@ -1139,6 +1177,11 @@ static UBool U_CALLCONV putil_cleanup(void) gTimeZoneFilesDirectory = NULL; gTimeZoneFilesInitOnce.reset(); +#ifdef SEARCH_TZFILE + delete gSearchTZFileResult; + gSearchTZFileResult = NULL; +#endif + #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API if (gCorrectedPOSIXLocale) { uprv_free(gCorrectedPOSIXLocale); diff --git a/deps/icu-small/source/common/putilimp.h b/deps/icu-small/source/common/putilimp.h index b52a91c7ac0262..cb783508255dd6 100644 --- a/deps/icu-small/source/common/putilimp.h +++ b/deps/icu-small/source/common/putilimp.h @@ -1,7 +1,9 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * -* Copyright (C) 1997-2015, International Business Machines +* Copyright (C) 1997-2016, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -148,7 +150,7 @@ typedef size_t uintptr_t; #ifdef U_HAVE_MMAP /* Use the predefined value. */ -#elif U_PLATFORM_HAS_WIN32_API +#elif U_PLATFORM_USES_ONLY_WIN32_API # define U_HAVE_MMAP 0 #else # define U_HAVE_MMAP 1 @@ -171,7 +173,7 @@ typedef size_t uintptr_t; */ #ifdef U_HAVE_DIRENT_H /* Use the predefined value. */ -#elif U_PLATFORM_HAS_WIN32_API +#elif U_PLATFORM_USES_ONLY_WIN32_API # define U_HAVE_DIRENT_H 0 #else # define U_HAVE_DIRENT_H 1 @@ -478,6 +480,12 @@ U_INTERNAL int32_t U_EXPORT2 uprv_timezone(void); */ U_INTERNAL const char* U_EXPORT2 uprv_tzname(int n); +/** + * Reset the global tzname cache. + * @internal + */ +U_INTERNAL void uprv_tzname_clear_cache(); + /** * Get UTC (GMT) time measured in milliseconds since 0:00 on 1/1/1970. * This function is affected by 'faketime' and should be the bottleneck for all user-visible ICU time functions. diff --git a/deps/icu-small/source/common/rbbi.cpp b/deps/icu-small/source/common/rbbi.cpp index 8b6f7c0cc6a9eb..daba40b741406d 100644 --- a/deps/icu-small/source/common/rbbi.cpp +++ b/deps/icu-small/source/common/rbbi.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 1999-2016 International Business Machines Corporation @@ -72,21 +74,6 @@ RuleBasedBreakIterator::RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode } } -/** - * Same as above but does not adopt memory - */ -RuleBasedBreakIterator::RuleBasedBreakIterator(const RBBIDataHeader* data, enum EDontAdopt, UErrorCode &status) -{ - init(); - fData = new RBBIDataWrapper(data, RBBIDataWrapper::kDontAdopt, status); // status checked in constructor - if (U_FAILURE(status)) {return;} - if(fData == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } -} - - // // Construct from precompiled binary rules (tables). This constructor is public API, // taking the rules as a (const uint8_t *) to match the type produced by getBinaryRules(). diff --git a/deps/icu-small/source/common/rbbicst.pl b/deps/icu-small/source/common/rbbicst.pl old mode 100644 new mode 100755 index 82f770615372b8..839b9501dda953 --- a/deps/icu-small/source/common/rbbicst.pl +++ b/deps/icu-small/source/common/rbbicst.pl @@ -1,4 +1,8 @@ #************************************************************************** +# Copyright (C) 2016 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html#License +#************************************************************************** +#************************************************************************** # Copyright (C) 2002-2016 International Business Machines Corporation # and others. All rights reserved. #************************************************************************** diff --git a/deps/icu-small/source/common/rbbidata.cpp b/deps/icu-small/source/common/rbbidata.cpp index 3f151b42bbf496..afa87eb6a83f6b 100644 --- a/deps/icu-small/source/common/rbbidata.cpp +++ b/deps/icu-small/source/common/rbbidata.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 1999-2014 International Business Machines Corporation * diff --git a/deps/icu-small/source/common/rbbidata.h b/deps/icu-small/source/common/rbbidata.h index 3e53c44ad5b7ae..0d6cde2d942284 100644 --- a/deps/icu-small/source/common/rbbidata.h +++ b/deps/icu-small/source/common/rbbidata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/rbbinode.cpp b/deps/icu-small/source/common/rbbinode.cpp index 221f8f2661a72e..d0949a3f7f045a 100644 --- a/deps/icu-small/source/common/rbbinode.cpp +++ b/deps/icu-small/source/common/rbbinode.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 2002-2016 International Business Machines Corporation * @@ -23,6 +25,8 @@ #include "unicode/uniset.h" #include "unicode/uchar.h" #include "unicode/parsepos.h" + +#include "cstr.h" #include "uvector.h" #include "rbbirb.h" @@ -165,8 +169,6 @@ RBBINode *RBBINode::cloneTree() { } } } - n->fRuleRoot = this->fRuleRoot; - n->fChainIn = this->fChainIn; return n; } @@ -192,8 +194,12 @@ RBBINode *RBBINode::cloneTree() { //------------------------------------------------------------------------- RBBINode *RBBINode::flattenVariables() { if (fType == varRef) { - RBBINode *retNode = fLeftChild->cloneTree(); - delete this; + RBBINode *retNode = fLeftChild->cloneTree(); + if (retNode != NULL) { + retNode->fRuleRoot = this->fRuleRoot; + retNode->fChainIn = this->fChainIn; + } + delete this; // TODO: undefined behavior. Fix. return retNode; } @@ -284,7 +290,7 @@ static int32_t serial(const RBBINode *node) { } -void RBBINode::printNode() { +void RBBINode::printNode(const RBBINode *node) { static const char * const nodeTypeNames[] = { "setRef", "uset", @@ -304,15 +310,16 @@ void RBBINode::printNode() { "opLParen" }; - if (this==NULL) { - RBBIDebugPrintf("%10p", (void *)this); + if (node==NULL) { + RBBIDebugPrintf("%10p", (void *)node); } else { RBBIDebugPrintf("%10p %5d %12s %c%c %5d %5d %5d %6d %d ", - (void *)this, fSerialNum, nodeTypeNames[fType], fRuleRoot?'R':' ', fChainIn?'C':' ', - serial(fLeftChild), serial(fRightChild), serial(fParent), - fFirstPos, fVal); - if (fType == varRef) { - RBBI_DEBUG_printUnicodeString(fText); + (void *)node, node->fSerialNum, nodeTypeNames[node->fType], + node->fRuleRoot?'R':' ', node->fChainIn?'C':' ', + serial(node->fLeftChild), serial(node->fRightChild), serial(node->fParent), + node->fFirstPos, node->fVal); + if (node->fType == varRef) { + RBBI_DEBUG_printUnicodeString(node->fText); } } RBBIDebugPrintf("\n"); @@ -321,16 +328,8 @@ void RBBINode::printNode() { #ifdef RBBI_DEBUG -U_CFUNC void RBBI_DEBUG_printUnicodeString(const UnicodeString &s, int minWidth) -{ - int i; - for (i=0; iprintNode(); - if (this != NULL) { + printNode(node); + if (node != NULL) { // Only dump the definition under a variable reference if asked to. // Unconditinally dump children of all other node types. - if (fType != varRef) { - if (fLeftChild != NULL) { - fLeftChild->printTree(FALSE); + if (node->fType != varRef) { + if (node->fLeftChild != NULL) { + printTree(node->fLeftChild, FALSE); } - if (fRightChild != NULL) { - fRightChild->printTree(FALSE); + if (node->fRightChild != NULL) { + printTree(node->fRightChild, FALSE); } } } diff --git a/deps/icu-small/source/common/rbbinode.h b/deps/icu-small/source/common/rbbinode.h index 4960e38f69cf41..ac26ceefaf449f 100644 --- a/deps/icu-small/source/common/rbbinode.h +++ b/deps/icu-small/source/common/rbbinode.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2001-2016, International Business Machines Corporation and @@ -100,8 +102,8 @@ class RBBINode : public UMemory { #ifdef RBBI_DEBUG static void printNodeHeader(); - void printNode(); - void printTree(UBool withHeading); + static void printNode(const RBBINode *n); + static void printTree(const RBBINode *n, UBool withHeading); #endif private: diff --git a/deps/icu-small/source/common/rbbirb.cpp b/deps/icu-small/source/common/rbbirb.cpp index c2dce683172e52..475fdd7f8369e7 100644 --- a/deps/icu-small/source/common/rbbirb.cpp +++ b/deps/icu-small/source/common/rbbirb.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // file: rbbirb.cpp // diff --git a/deps/icu-small/source/common/rbbirb.h b/deps/icu-small/source/common/rbbirb.h index b454b609fd993d..1a9d3023254139 100644 --- a/deps/icu-small/source/common/rbbirb.h +++ b/deps/icu-small/source/common/rbbirb.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // rbbirb.h // diff --git a/deps/icu-small/source/common/rbbirpt.h b/deps/icu-small/source/common/rbbirpt.h index f628c938154022..542a396df089b7 100644 --- a/deps/icu-small/source/common/rbbirpt.h +++ b/deps/icu-small/source/common/rbbirpt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html //--------------------------------------------------------------------------------- // // Generated Header File. Do not edit by hand. diff --git a/deps/icu-small/source/common/rbbiscan.cpp b/deps/icu-small/source/common/rbbiscan.cpp index e19a6479c31748..57432509454057 100644 --- a/deps/icu-small/source/common/rbbiscan.cpp +++ b/deps/icu-small/source/common/rbbiscan.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // file: rbbiscan.cpp // @@ -1103,6 +1105,17 @@ void RBBIRuleScanner::parse() { } + if (U_FAILURE(*fRB->fStatus)) { + return; + } + + // If there are no forward rules set an error. + // + if (fRB->fForwardTree == NULL) { + error(U_BRK_RULE_SYNTAX); + return; + } + // // If there were NO user specified reverse rules, set up the equivalent of ".*;" // @@ -1126,16 +1139,15 @@ void RBBIRuleScanner::parse() { // #ifdef RBBI_DEBUG if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "symbols")) {fSymbolTable->rbbiSymtablePrint();} - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ptree")) - { + if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ptree")) { RBBIDebugPrintf("Completed Forward Rules Parse Tree...\n"); - fRB->fForwardTree->printTree(TRUE); + RBBINode::printTree(fRB->fForwardTree, TRUE); RBBIDebugPrintf("\nCompleted Reverse Rules Parse Tree...\n"); - fRB->fReverseTree->printTree(TRUE); + RBBINode::printTree(fRB->fReverseTree, TRUE); RBBIDebugPrintf("\nCompleted Safe Point Forward Rules Parse Tree...\n"); - fRB->fSafeFwdTree->printTree(TRUE); + RBBINode::printTree(fRB->fSafeFwdTree, TRUE); RBBIDebugPrintf("\nCompleted Safe Point Reverse Rules Parse Tree...\n"); - fRB->fSafeRevTree->printTree(TRUE); + RBBINode::printTree(fRB->fSafeRevTree, TRUE); } #endif } @@ -1150,7 +1162,7 @@ void RBBIRuleScanner::parse() { void RBBIRuleScanner::printNodeStack(const char *title) { int i; RBBIDebugPrintf("%s. Dumping node stack...\n", title); - for (i=fNodeStackPtr; i>0; i--) {fNodeStack[i]->printTree(TRUE);} + for (i=fNodeStackPtr; i>0; i--) {RBBINode::printTree(fNodeStack[i], TRUE);} } #endif diff --git a/deps/icu-small/source/common/rbbiscan.h b/deps/icu-small/source/common/rbbiscan.h index ede5aaa35e4049..6be2f9668ff6cf 100644 --- a/deps/icu-small/source/common/rbbiscan.h +++ b/deps/icu-small/source/common/rbbiscan.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // rbbiscan.h // diff --git a/deps/icu-small/source/common/rbbisetb.cpp b/deps/icu-small/source/common/rbbisetb.cpp index a419289bc752ea..22ec28c1350638 100644 --- a/deps/icu-small/source/common/rbbisetb.cpp +++ b/deps/icu-small/source/common/rbbisetb.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // rbbisetb.cpp // @@ -546,7 +548,7 @@ void RBBISetBuilder::printSets() { RBBI_DEBUG_printUnicodeString(usetNode->fText); RBBIDebugPrintf("\n"); if (usetNode->fLeftChild != NULL) { - usetNode->fLeftChild->printTree(TRUE); + RBBINode::printTree(usetNode->fLeftChild, TRUE); } } RBBIDebugPrintf("\n"); diff --git a/deps/icu-small/source/common/rbbisetb.h b/deps/icu-small/source/common/rbbisetb.h index c8bc1df7786c49..89bfb9865cda15 100644 --- a/deps/icu-small/source/common/rbbisetb.h +++ b/deps/icu-small/source/common/rbbisetb.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // rbbisetb.h /* diff --git a/deps/icu-small/source/common/rbbistbl.cpp b/deps/icu-small/source/common/rbbistbl.cpp index c35efc7eb90ce0..f48485868c81e0 100644 --- a/deps/icu-small/source/common/rbbistbl.cpp +++ b/deps/icu-small/source/common/rbbistbl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // file: rbbistbl.cpp Implementation of the ICU RBBISymbolTable class // @@ -17,10 +19,10 @@ #include "unicode/uchar.h" #include "unicode/parsepos.h" -#include "umutex.h" - -#include "rbbirb.h" +#include "cstr.h" #include "rbbinode.h" +#include "rbbirb.h" +#include "umutex.h" // @@ -226,9 +228,9 @@ RBBISymbolTableEntry::~RBBISymbolTableEntry() { // #ifdef RBBI_DEBUG void RBBISymbolTable::rbbiSymtablePrint() const { - RBBIDebugPrintf("Variable Definitions\n" - "Name Node Val String Val\n" - "----------------------------------------------------------------------\n"); + RBBIDebugPrintf("Variable Definitions Symbol Table\n" + "Name Node serial String Val\n" + "-------------------------------------------------------------------\n"); int32_t pos = UHASH_FIRST; const UHashElement *e = NULL; @@ -239,10 +241,8 @@ void RBBISymbolTable::rbbiSymtablePrint() const { } RBBISymbolTableEntry *s = (RBBISymbolTableEntry *)e->value.pointer; - RBBI_DEBUG_printUnicodeString(s->key, 15); - RBBIDebugPrintf(" %8p ", (void *)s->val); - RBBI_DEBUG_printUnicodeString(s->val->fLeftChild->fText); - RBBIDebugPrintf("\n"); + RBBIDebugPrintf("%-19s %8p %7d ", CStr(s->key)(), (void *)s->val, s->val->fSerialNum); + RBBIDebugPrintf(" %s\n", CStr(s->val->fLeftChild->fText)()); } RBBIDebugPrintf("\nParsed Variable Definitions\n"); @@ -253,8 +253,9 @@ void RBBISymbolTable::rbbiSymtablePrint() const { break; } RBBISymbolTableEntry *s = (RBBISymbolTableEntry *)e->value.pointer; - RBBI_DEBUG_printUnicodeString(s->key); - s->val->fLeftChild->printTree(TRUE); + RBBIDebugPrintf("%s\n", CStr(s->key)()); + RBBINode::printTree(s->val, TRUE); + RBBINode::printTree(s->val->fLeftChild, FALSE); RBBIDebugPrintf("\n"); } } diff --git a/deps/icu-small/source/common/rbbitblb.cpp b/deps/icu-small/source/common/rbbitblb.cpp index c2057e167a3d28..c765e610526552 100644 --- a/deps/icu-small/source/common/rbbitblb.cpp +++ b/deps/icu-small/source/common/rbbitblb.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2016, International Business Machines @@ -79,7 +81,7 @@ void RBBITableBuilder::build() { #ifdef RBBI_DEBUG if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ftree")) { RBBIDebugPuts("\nParse tree after flattening variable references."); - fTree->printTree(TRUE); + RBBINode::printTree(fTree, TRUE); } #endif @@ -137,7 +139,7 @@ void RBBITableBuilder::build() { #ifdef RBBI_DEBUG if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "stree")) { RBBIDebugPuts("\nParse tree after flattening Unicode Set references."); - fTree->printTree(TRUE); + RBBINode::printTree(fTree, TRUE); } #endif @@ -1058,7 +1060,7 @@ void RBBITableBuilder::printPosSets(RBBINode *n) { } printf("\n"); RBBINode::printNodeHeader(); - n->printNode(); + RBBINode::printNode(n); RBBIDebugPrintf(" Nullable: %s\n", n->fNullable?"TRUE":"FALSE"); RBBIDebugPrintf(" firstpos: "); diff --git a/deps/icu-small/source/common/rbbitblb.h b/deps/icu-small/source/common/rbbitblb.h index 9e65bd93d01a22..d71a0245874b5d 100644 --- a/deps/icu-small/source/common/rbbitblb.h +++ b/deps/icu-small/source/common/rbbitblb.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // rbbitblb.h // diff --git a/deps/icu-small/source/common/resbund.cpp b/deps/icu-small/source/common/resbund.cpp index 8d91184da53066..2976791761f88f 100644 --- a/deps/icu-small/source/common/resbund.cpp +++ b/deps/icu-small/source/common/resbund.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2013, International Business Machines diff --git a/deps/icu-small/source/common/resbund_cnv.cpp b/deps/icu-small/source/common/resbund_cnv.cpp index ecb2e8ab5f07f0..80a4daa3b7f627 100644 --- a/deps/icu-small/source/common/resbund_cnv.cpp +++ b/deps/icu-small/source/common/resbund_cnv.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/resource.cpp b/deps/icu-small/source/common/resource.cpp index 7a4c4181bf834c..62b3aa46a5c083 100644 --- a/deps/icu-small/source/common/resource.cpp +++ b/deps/icu-small/source/common/resource.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2015, International Business Machines +* Copyright (C) 2015-2016, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * resource.cpp @@ -11,50 +13,10 @@ #include "resource.h" -#include "unicode/utypes.h" -#include "unicode/uobject.h" -#include "unicode/ures.h" - U_NAMESPACE_BEGIN ResourceValue::~ResourceValue() {} - -ResourceArraySink::~ResourceArraySink() {} - -void ResourceArraySink::put( - int32_t /*index*/, const ResourceValue & /*value*/, UErrorCode & /*errorCode*/) {} - -ResourceArraySink *ResourceArraySink::getOrCreateArraySink( - int32_t /*index*/, int32_t /*size*/, UErrorCode & /*errorCode*/) { - return NULL; -} - -ResourceTableSink *ResourceArraySink::getOrCreateTableSink( - int32_t /*index*/, int32_t /*initialSize*/, UErrorCode & /*errorCode*/) { - return NULL; -} - -void ResourceArraySink::leave(UErrorCode & /*errorCode*/) {} - - -ResourceTableSink::~ResourceTableSink() {} - -void ResourceTableSink::put( - const char * /*key*/, const ResourceValue & /*value*/, UErrorCode & /*errorCode*/) {} - -void ResourceTableSink::putNoFallback(const char * /*key*/, UErrorCode & /*errorCode*/) {} - -ResourceArraySink *ResourceTableSink::getOrCreateArraySink( - const char * /*key*/, int32_t /*size*/, UErrorCode & /*errorCode*/) { - return NULL; -} - -ResourceTableSink *ResourceTableSink::getOrCreateTableSink( - const char * /*key*/, int32_t /*initialSize*/, UErrorCode & /*errorCode*/) { - return NULL; -} - -void ResourceTableSink::leave(UErrorCode & /*errorCode*/) {} +ResourceSink::~ResourceSink() {} U_NAMESPACE_END diff --git a/deps/icu-small/source/common/resource.h b/deps/icu-small/source/common/resource.h index 042e298b798242..43c3309b5e9917 100644 --- a/deps/icu-small/source/common/resource.h +++ b/deps/icu-small/source/common/resource.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2015, International Business Machines +* Copyright (C) 2015-2016, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * resource.h @@ -27,13 +29,80 @@ #include "unicode/unistr.h" #include "unicode/ures.h" +struct ResourceData; + U_NAMESPACE_BEGIN -class ResourceTableSink; +class ResourceValue; // Note: In C++, we use const char * pointers for keys, // rather than an abstraction like Java UResource.Key. +/** + * Interface for iterating over a resource bundle array resource. + */ +class U_COMMON_API ResourceArray { +public: + /** Constructs an empty array object. */ + ResourceArray() : items16(NULL), items32(NULL), length(0) {} + + /** Only for implementation use. @internal */ + ResourceArray(const uint16_t *i16, const uint32_t *i32, int32_t len) : + items16(i16), items32(i32), length(len) {} + + /** + * @return The number of items in the array resource. + */ + int32_t getSize() const { return length; } + /** + * @param i Array item index. + * @param value Output-only, receives the value of the i'th item. + * @return TRUE if i is non-negative and less than getSize(). + */ + UBool getValue(int32_t i, ResourceValue &value) const; + + /** Only for implementation use. @internal */ + uint32_t internalGetResource(const ResourceData *pResData, int32_t i) const; + +private: + const uint16_t *items16; + const uint32_t *items32; + int32_t length; +}; + +/** + * Interface for iterating over a resource bundle table resource. + */ +class U_COMMON_API ResourceTable { +public: + /** Constructs an empty table object. */ + ResourceTable() : keys16(NULL), keys32(NULL), items16(NULL), items32(NULL), length(0) {} + + /** Only for implementation use. @internal */ + ResourceTable(const uint16_t *k16, const int32_t *k32, + const uint16_t *i16, const uint32_t *i32, int32_t len) : + keys16(k16), keys32(k32), items16(i16), items32(i32), length(len) {} + + /** + * @return The number of items in the array resource. + */ + int32_t getSize() const { return length; } + /** + * @param i Array item index. + * @param key Output-only, receives the key of the i'th item. + * @param value Output-only, receives the value of the i'th item. + * @return TRUE if i is non-negative and less than getSize(). + */ + UBool getKeyAndValue(int32_t i, const char *&key, ResourceValue &value) const; + +private: + const uint16_t *keys16; + const int32_t *keys32; + const uint16_t *items16; + const uint32_t *items32; + int32_t length; +}; + /** * Represents a resource bundle item's value. * Avoids object creations as much as possible. @@ -100,147 +169,109 @@ class U_COMMON_API ResourceValue : public UObject { */ virtual const uint8_t *getBinary(int32_t &length, UErrorCode &errorCode) const = 0; -protected: - ResourceValue() {} - -private: - ResourceValue(const ResourceValue &); // no copy constructor - ResourceValue &operator=(const ResourceValue &); // no assignment operator -}; + /** + * Sets U_RESOURCE_TYPE_MISMATCH if this is not an array resource + */ + virtual ResourceArray getArray(UErrorCode &errorCode) const = 0; -/** - * Sink for ICU resource array contents. - * The base class does nothing. - * - * Nested arrays and tables are stored as nested sinks, - * never put() as ResourceValue items. - */ -class U_COMMON_API ResourceArraySink : public UObject { -public: - ResourceArraySink() {} - virtual ~ResourceArraySink(); + /** + * Sets U_RESOURCE_TYPE_MISMATCH if this is not a table resource + */ + virtual ResourceTable getTable(UErrorCode &errorCode) const = 0; /** - * Adds a value from a resource array. + * Is this a no-fallback/no-inheritance marker string? + * Such a marker is used for + * CLDR no-fallback data values of (three empty-set symbols)=={2205, 2205, 2205} + * when enumerating tables with fallback from the specific resource bundle to root. * - * @param index of the resource array item - * @param value resource value + * @return TRUE if this is a no-inheritance marker string */ - virtual void put(int32_t index, const ResourceValue &value, UErrorCode &errorCode); + virtual UBool isNoInheritanceMarker() const = 0; /** - * Returns a nested resource array at the array index as another sink. - * Creates the sink if none exists for the key. - * Returns NULL if nested arrays are not supported. - * The default implementation always returns NULL. + * Sets the dest strings from the string values in this array resource. * - * This sink (not the caller) owns the nested sink. + * @return the number of strings in this array resource. + * If greater than capacity, then an overflow error is set. * - * @param index of the resource array item - * @param size number of array items - * @return nested-array sink, or NULL + * Sets U_RESOURCE_TYPE_MISMATCH if this is not an array resource + * or if any of the array items is not a string */ - virtual ResourceArraySink *getOrCreateArraySink( - int32_t index, int32_t size, UErrorCode &errorCode); + virtual int32_t getStringArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const = 0; /** - * Returns a nested resource table at the array index as another sink. - * Creates the sink if none exists for the key. - * Returns NULL if nested tables are not supported. - * The default implementation always returns NULL. - * - * This sink (not the caller) owns the nested sink. + * Same as + *
+     * if (getType() == URES_STRING) {
+     *     return new String[] { getString(); }
+     * } else {
+     *     return getStringArray();
+     * }
+     * 
* - * @param index of the resource array item - * @param initialSize size hint for creating the sink if necessary - * @return nested-table sink, or NULL + * Sets U_RESOURCE_TYPE_MISMATCH if this is + * neither a string resource nor an array resource containing strings + * @see getString() + * @see getStringArray() */ - virtual ResourceTableSink *getOrCreateTableSink( - int32_t index, int32_t initialSize, UErrorCode &errorCode); + virtual int32_t getStringArrayOrStringAsArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const = 0; /** - * "Leaves" the array. - * Indicates that all of the resources and sub-resources of the current array - * have been enumerated. + * Same as + *
+     * if (getType() == URES_STRING) {
+     *     return getString();
+     * } else {
+     *     return getStringArray()[0];
+     * }
+     * 
+ * + * Sets U_RESOURCE_TYPE_MISMATCH if this is + * neither a string resource nor an array resource containing strings + * @see getString() + * @see getStringArray() */ - virtual void leave(UErrorCode &errorCode); + virtual UnicodeString getStringOrFirstOfArray(UErrorCode &errorCode) const = 0; + +protected: + ResourceValue() {} private: - ResourceArraySink(const ResourceArraySink &); // no copy constructor - ResourceArraySink &operator=(const ResourceArraySink &); // no assignment operator + ResourceValue(const ResourceValue &); // no copy constructor + ResourceValue &operator=(const ResourceValue &); // no assignment operator }; /** - * Sink for ICU resource table contents. - * The base class does nothing. - * - * Nested arrays and tables are stored as nested sinks, - * never put() as ResourceValue items. + * Sink for ICU resource bundle contents. */ -class U_COMMON_API ResourceTableSink : public UObject { +class U_COMMON_API ResourceSink : public UObject { public: - ResourceTableSink() {} - virtual ~ResourceTableSink(); - - /** - * Adds a key-value pair from a resource table. - * - * @param key resource key string - * @param value resource value - */ - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode); + ResourceSink() {} + virtual ~ResourceSink(); /** - * Adds a no-fallback/no-inheritance marker for this key. - * Used for CLDR no-fallback data values of (three empty-set symbols)=={2205, 2205, 2205} - * when enumerating tables with fallback from the specific resource bundle to root. - * - * The default implementation does nothing. - * - * @param key to be removed - */ - virtual void putNoFallback(const char *key, UErrorCode &errorCode); - - /** - * Returns a nested resource array for the key as another sink. - * Creates the sink if none exists for the key. - * Returns NULL if nested arrays are not supported. - * The default implementation always returns NULL. - * - * This sink (not the caller) owns the nested sink. + * Called once for each bundle (child-parent-...-root). + * The value is normally an array or table resource, + * and implementations of this method normally iterate over the + * tree of resource items stored there. * - * @param key resource key string - * @param size number of array items - * @return nested-array sink, or NULL - */ - virtual ResourceArraySink *getOrCreateArraySink( - const char *key, int32_t size, UErrorCode &errorCode); - - /** - * Returns a nested resource table for the key as another sink. - * Creates the sink if none exists for the key. - * Returns NULL if nested tables are not supported. - * The default implementation always returns NULL. - * - * This sink (not the caller) owns the nested sink. - * - * @param key resource key string - * @param initialSize size hint for creating the sink if necessary - * @return nested-table sink, or NULL - */ - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t initialSize, UErrorCode &errorCode); - - /** - * "Leaves" the table. - * Indicates that all of the resources and sub-resources of the current table - * have been enumerated. + * @param key The key string of the enumeration-start resource. + * Empty if the enumeration starts at the top level of the bundle. + * @param value Call getArray() or getTable() as appropriate. + * Then reuse for output values from Array and Table getters. + * @param noFallback true if the bundle has no parent; + * that is, its top-level table has the nofallback attribute, + * or it is the root bundle of a locale tree. */ - virtual void leave(UErrorCode &errorCode); + virtual void put(const char *key, ResourceValue &value, UBool noFallback, + UErrorCode &errorCode) = 0; private: - ResourceTableSink(const ResourceTableSink &); // no copy constructor - ResourceTableSink &operator=(const ResourceTableSink &); // no assignment operator + ResourceSink(const ResourceSink &); // no copy constructor + ResourceSink &operator=(const ResourceSink &); // no assignment operator }; U_NAMESPACE_END diff --git a/deps/icu-small/source/common/ruleiter.cpp b/deps/icu-small/source/common/ruleiter.cpp index 667795efabcf39..6e27b4dd8c609e 100644 --- a/deps/icu-small/source/common/ruleiter.cpp +++ b/deps/icu-small/source/common/ruleiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2011, International Business Machines diff --git a/deps/icu-small/source/common/ruleiter.h b/deps/icu-small/source/common/ruleiter.h index 2fad54f01c9b8d..b0b8e5435f49c6 100644 --- a/deps/icu-small/source/common/ruleiter.h +++ b/deps/icu-small/source/common/ruleiter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2011, International Business Machines diff --git a/deps/icu-small/source/common/schriter.cpp b/deps/icu-small/source/common/schriter.cpp index 17ce400186969a..cc413666f1a838 100644 --- a/deps/icu-small/source/common/schriter.cpp +++ b/deps/icu-small/source/common/schriter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1998-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/serv.cpp b/deps/icu-small/source/common/serv.cpp index b0add499832407..9f05c1943ae1b6 100644 --- a/deps/icu-small/source/common/serv.cpp +++ b/deps/icu-small/source/common/serv.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation. diff --git a/deps/icu-small/source/common/serv.h b/deps/icu-small/source/common/serv.h index 602c3d3b1342f1..c82c6d1dd8197f 100644 --- a/deps/icu-small/source/common/serv.h +++ b/deps/icu-small/source/common/serv.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2011, International Business Machines Corporation. * diff --git a/deps/icu-small/source/common/servlk.cpp b/deps/icu-small/source/common/servlk.cpp index 5636091fd962dc..cdd4e3f7f0c1ab 100644 --- a/deps/icu-small/source/common/servlk.cpp +++ b/deps/icu-small/source/common/servlk.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servlkf.cpp b/deps/icu-small/source/common/servlkf.cpp index b03d29befbae41..d8617cee489f21 100644 --- a/deps/icu-small/source/common/servlkf.cpp +++ b/deps/icu-small/source/common/servlkf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servloc.h b/deps/icu-small/source/common/servloc.h index ade941cc34a906..5a2b669d7f9d90 100644 --- a/deps/icu-small/source/common/servloc.h +++ b/deps/icu-small/source/common/servloc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2011, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servls.cpp b/deps/icu-small/source/common/servls.cpp index cc53ab5e92d8ae..10f3b88aa7ba4f 100644 --- a/deps/icu-small/source/common/servls.cpp +++ b/deps/icu-small/source/common/servls.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servnotf.cpp b/deps/icu-small/source/common/servnotf.cpp index 33e7f177be871b..3d94c8690dcbf0 100644 --- a/deps/icu-small/source/common/servnotf.cpp +++ b/deps/icu-small/source/common/servnotf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2012, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servnotf.h b/deps/icu-small/source/common/servnotf.h index c8959f0c16d724..72ae93e6277000 100644 --- a/deps/icu-small/source/common/servnotf.h +++ b/deps/icu-small/source/common/servnotf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servrbf.cpp b/deps/icu-small/source/common/servrbf.cpp index 274016e94172c6..f67ed026ee76e2 100644 --- a/deps/icu-small/source/common/servrbf.cpp +++ b/deps/icu-small/source/common/servrbf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/servslkf.cpp b/deps/icu-small/source/common/servslkf.cpp index 0ee66b4cfe3c76..c01a2ad4c1c153 100644 --- a/deps/icu-small/source/common/servslkf.cpp +++ b/deps/icu-small/source/common/servslkf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/common/sharedobject.cpp b/deps/icu-small/source/common/sharedobject.cpp index bffd8a3fc8801f..8e5095e129255a 100644 --- a/deps/icu-small/source/common/sharedobject.cpp +++ b/deps/icu-small/source/common/sharedobject.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/common/sharedobject.h b/deps/icu-small/source/common/sharedobject.h index 7d3433b6b61059..6e205b14ba9798 100644 --- a/deps/icu-small/source/common/sharedobject.h +++ b/deps/icu-small/source/common/sharedobject.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015-2016, International Business Machines diff --git a/deps/icu-small/source/common/simpleformatter.cpp b/deps/icu-small/source/common/simpleformatter.cpp index 6dfa5b94ab4c80..eaeb60de143367 100644 --- a/deps/icu-small/source/common/simpleformatter.cpp +++ b/deps/icu-small/source/common/simpleformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014-2016, International Business Machines diff --git a/deps/icu-small/source/common/sprpimpl.h b/deps/icu-small/source/common/sprpimpl.h index 62973d39aeda6e..56c2f86eeff74f 100644 --- a/deps/icu-small/source/common/sprpimpl.h +++ b/deps/icu-small/source/common/sprpimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/stringpiece.cpp b/deps/icu-small/source/common/stringpiece.cpp index 0fb2b3e54cbff9..b032b474f65616 100644 --- a/deps/icu-small/source/common/stringpiece.cpp +++ b/deps/icu-small/source/common/stringpiece.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (C) 2009-2013, International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/common/stringtriebuilder.cpp b/deps/icu-small/source/common/stringtriebuilder.cpp index 109fcdc5f8a255..075d7c4324b0e5 100644 --- a/deps/icu-small/source/common/stringtriebuilder.cpp +++ b/deps/icu-small/source/common/stringtriebuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines diff --git a/deps/icu-small/source/common/uarrsort.c b/deps/icu-small/source/common/uarrsort.c index 22c769729e0036..bb1b5bdd785feb 100644 --- a/deps/icu-small/source/common/uarrsort.c +++ b/deps/icu-small/source/common/uarrsort.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -120,7 +122,7 @@ doInsertionSort(char *array, int32_t length, int32_t itemSize, if(insertionPointlength*sizeof(UBiDiLevel)); + uprv_memcpy(saveLevels, levels, (size_t)pBiDi->length*sizeof(UBiDiLevel)); saveTrailingWSStart=pBiDi->trailingWSStart; saveLength=pBiDi->length; saveDirection=pBiDi->direction; @@ -2512,7 +2514,7 @@ setParaRunsOnly(UBiDi *pBiDi, const UChar *text, int32_t length, if(saveLength>pBiDi->levelsSize) { saveLength=pBiDi->levelsSize; } - uprv_memcpy(pBiDi->levels, saveLevels, saveLength*sizeof(UBiDiLevel)); + uprv_memcpy(pBiDi->levels, saveLevels, (size_t)saveLength*sizeof(UBiDiLevel)); pBiDi->trailingWSStart=saveTrailingWSStart; if(pBiDi->runCount>1) { pBiDi->direction=UBIDI_MIXED; diff --git a/deps/icu-small/source/common/ubidi_props.c b/deps/icu-small/source/common/ubidi_props.c index 5c08885556095d..cba13ad6ea98b4 100644 --- a/deps/icu-small/source/common/ubidi_props.c +++ b/deps/icu-small/source/common/ubidi_props.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ubidi_props.h b/deps/icu-small/source/common/ubidi_props.h index 0533ed3b94ba63..4312230bc09b63 100644 --- a/deps/icu-small/source/common/ubidi_props.h +++ b/deps/icu-small/source/common/ubidi_props.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ubidi_props_data.h b/deps/icu-small/source/common/ubidi_props_data.h index 2650a6651b23b0..685d2b1e844c61 100644 --- a/deps/icu-small/source/common/ubidi_props_data.h +++ b/deps/icu-small/source/common/ubidi_props_data.h @@ -1,484 +1,495 @@ -/* - * Copyright (C) 1999-2016, International Business Machines - * Corporation and others. All Rights Reserved. - * - * file name: ubidi_props_data.h - * - * machine-generated by: icu/tools/unicode/c/genprops/bidipropsbuilder.cpp - */ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +// +// Copyright (C) 1999-2016, International Business Machines +// Corporation and others. All Rights Reserved. +// +// file name: ubidi_props_data.h +// +// machine-generated by: icu/tools/unicode/c/genprops/bidipropsbuilder.cpp + #ifdef INCLUDED_FROM_UBIDI_PROPS_C -static const UVersionInfo ubidi_props_dataVersion={8,0,0,0}; +static const UVersionInfo ubidi_props_dataVersion={9,0,0,0}; -static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x5ae8,0x5778,0x1a,0x620,0x8b8,0x10ac0,0x10af0,0,0,0,0,0,0,0,0x5502b6}; +static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x5df0,0x5a78,0x1a,0x620,0x8c0,0x10ac0,0x10af0,0,0,0,0,0,0,0,0x5802b6}; -static const uint16_t ubidi_props_trieIndex[11188]={ -0x34f,0x357,0x35f,0x367,0x37f,0x387,0x38f,0x397,0x36f,0x377,0x36f,0x377,0x36f,0x377,0x36f,0x377, -0x36f,0x377,0x36f,0x377,0x39d,0x3a5,0x3ad,0x3b5,0x3bd,0x3c5,0x3c1,0x3c9,0x3d1,0x3d9,0x3d4,0x3dc, -0x36f,0x377,0x36f,0x377,0x3e4,0x3ec,0x36f,0x377,0x36f,0x377,0x36f,0x377,0x3f2,0x3fa,0x402,0x40a, -0x412,0x41a,0x422,0x42a,0x430,0x438,0x440,0x448,0x450,0x458,0x45e,0x466,0x46e,0x476,0x47e,0x486, -0x492,0x48e,0x49a,0x404,0x404,0x4aa,0x46e,0x4a2,0x4b2,0x4b4,0x4bc,0x4c4,0x4cc,0x4cd,0x4d5,0x4dd, -0x4e5,0x4cd,0x4ed,0x4f2,0x4e5,0x4cd,0x4fa,0x502,0x4cc,0x507,0x50f,0x4c4,0x514,0x36f,0x51c,0x520, -0x528,0x529,0x531,0x539,0x4cc,0x541,0x549,0x4c4,0x4cc,0x36f,0x4d5,0x4c4,0x36f,0x36f,0x54f,0x36f, -0x36f,0x555,0x55d,0x36f,0x36f,0x561,0x569,0x36f,0x56d,0x574,0x36f,0x57c,0x584,0x58b,0x513,0x36f, -0x36f,0x593,0x59b,0x5a3,0x5ab,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x5b3,0x36f,0x5bb,0x36f,0x36f,0x36f, -0x5c3,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x5cb,0x36f,0x36f,0x36f,0x5d3,0x5d3,0x4d9,0x4d9,0x36f,0x5d9,0x5e1,0x5bb, -0x5f7,0x5e9,0x5e9,0x5ff,0x606,0x5ef,0x36f,0x36f,0x36f,0x60e,0x616,0x36f,0x36f,0x36f,0x618,0x620, -0x628,0x36f,0x62f,0x637,0x36f,0x63f,0x36f,0x36f,0x647,0x64a,0x514,0x652,0x3e6,0x65a,0x36f,0x661, -0x36f,0x666,0x36f,0x36f,0x36f,0x36f,0x66c,0x674,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x3bd,0x67c, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x684,0x68c,0x690, -0x6a8,0x6ae,0x698,0x6a0,0x6b6,0x6be,0x6c2,0x58e,0x6ca,0x6d2,0x6da,0x36f,0x6e2,0x620,0x620,0x620, -0x6f2,0x6fa,0x702,0x70a,0x70f,0x717,0x71f,0x6ea,0x727,0x72f,0x36f,0x735,0x73c,0x620,0x620,0x742, -0x620,0x53f,0x746,0x620,0x74e,0x36f,0x36f,0x61d,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620, -0x620,0x620,0x620,0x620,0x620,0x756,0x620,0x620,0x620,0x620,0x620,0x75c,0x620,0x620,0x764,0x76c, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x620,0x620,0x620,0x620,0x77c,0x783,0x78b,0x774, -0x79b,0x7a3,0x7ab,0x7b2,0x7ba,0x7c2,0x7c9,0x793,0x620,0x620,0x620,0x7d1,0x7d7,0x7dd,0x7e5,0x7ea, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x7f1,0x36f,0x36f,0x36f,0x7f9,0x36f,0x36f,0x36f,0x3bd, -0x801,0x809,0x540,0x36f,0x80c,0x620,0x620,0x623,0x620,0x620,0x620,0x620,0x620,0x620,0x813,0x819, -0x829,0x821,0x36f,0x36f,0x831,0x5c3,0x36f,0x396,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x620,0x7f8, -0x3a4,0x36f,0x839,0x841,0x36f,0x849,0x7ea,0x36f,0x36f,0x36f,0x36f,0x851,0x36f,0x36f,0x618,0x395, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x620,0x620, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x839,0x620,0x53f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x858,0x36f,0x36f,0x85d,0x529,0x36f,0x36f,0x56f,0x620,0x617,0x36f,0x36f,0x865,0x36f,0x36f,0x36f, -0x86d,0x874,0x5e9,0x87c,0x36f,0x36f,0x527,0x884,0x36f,0x88b,0x892,0x36f,0x4b2,0x897,0x36f,0x4cb, -0x36f,0x89f,0x8a7,0x4cd,0x36f,0x8ab,0x4cc,0x8b3,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x8ba, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x8ce,0x8c2,0x8c6,0x46e,0x46e,0x46e,0x46e,0x46e, -0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x8d6,0x46e,0x46e,0x46e,0x46e,0x8de,0x8e2, -0x8ea,0x8f2,0x8f6,0x8fe,0x46e,0x46e,0x46e,0x902,0x90a,0x35f,0x912,0x91a,0x36f,0x36f,0x36f,0x922, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0xdbc,0xdbc,0xdfc,0xe3c,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xe74,0xeb4,0xef4,0xf04,0xf44,0xf50, -0xdbc,0xdbc,0xf90,0xdbc,0xdbc,0xdbc,0xfc8,0x1008,0x1048,0x1088,0x10c0,0x1100,0x1140,0x1178,0x11b8,0x11f8, -0xa40,0xa80,0xac0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xafa,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb37,0x1a0,0x1a0,0xb6c,0xbac,0x1a0,0xbec,0xc2c,0xc6c, +static const uint16_t ubidi_props_trieIndex[11572]={ +0x36a,0x372,0x37a,0x382,0x39a,0x3a2,0x3aa,0x3b2,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x38a,0x392, +0x38a,0x392,0x38a,0x392,0x3b8,0x3c0,0x3c8,0x3d0,0x3d8,0x3e0,0x3dc,0x3e4,0x3ec,0x3f4,0x3ef,0x3f7, +0x38a,0x392,0x38a,0x392,0x3ff,0x407,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x40d,0x415,0x41d,0x425, +0x42d,0x435,0x43d,0x445,0x44b,0x453,0x45b,0x463,0x46b,0x473,0x479,0x481,0x489,0x491,0x499,0x4a1, +0x4ad,0x4a9,0x4b5,0x41f,0x41f,0x4c5,0x4cd,0x4bd,0x4d5,0x4d7,0x4df,0x4e7,0x4ef,0x4f0,0x4f8,0x500, +0x508,0x4f0,0x510,0x515,0x508,0x4f0,0x51d,0x525,0x4ef,0x52a,0x532,0x4e7,0x537,0x38a,0x53f,0x543, +0x54b,0x54c,0x554,0x55c,0x4ef,0x564,0x56c,0x4e7,0x4ef,0x38a,0x4f8,0x4e7,0x38a,0x38a,0x572,0x38a, +0x38a,0x578,0x580,0x38a,0x38a,0x584,0x58c,0x38a,0x590,0x597,0x38a,0x59f,0x5a7,0x5ae,0x536,0x38a, +0x38a,0x5b6,0x5be,0x5c6,0x5ce,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x5d6,0x38a,0x5de,0x38a,0x38a,0x38a, +0x5e6,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x5ee,0x38a,0x38a,0x38a,0x5f6,0x5f6,0x4fc,0x4fc,0x38a,0x5fc,0x604,0x5de, +0x61a,0x60c,0x60c,0x622,0x629,0x612,0x38a,0x38a,0x38a,0x631,0x639,0x38a,0x38a,0x38a,0x63b,0x643, +0x64b,0x38a,0x652,0x65a,0x38a,0x662,0x38a,0x38a,0x66a,0x66d,0x537,0x675,0x401,0x67d,0x38a,0x684, +0x38a,0x689,0x38a,0x38a,0x38a,0x38a,0x68f,0x697,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0x69f, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x6a7,0x6af,0x6b3, +0x6cb,0x6d1,0x6bb,0x6c3,0x6d9,0x6e1,0x6e5,0x5b1,0x6ed,0x6f5,0x6fd,0x38a,0x705,0x643,0x643,0x643, +0x715,0x71d,0x725,0x72d,0x732,0x73a,0x742,0x70d,0x74a,0x752,0x38a,0x758,0x75f,0x643,0x643,0x765, +0x643,0x562,0x76a,0x643,0x772,0x38a,0x38a,0x640,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643, +0x643,0x643,0x643,0x643,0x643,0x77a,0x643,0x643,0x643,0x643,0x643,0x780,0x643,0x643,0x788,0x790, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x643,0x643,0x7a0,0x7a7,0x7af,0x798, +0x7bf,0x7c7,0x7cf,0x7d6,0x7de,0x7e6,0x7ed,0x7b7,0x643,0x643,0x643,0x7f5,0x7fb,0x801,0x809,0x80e, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x815,0x38a,0x38a,0x38a,0x81d,0x38a,0x38a,0x38a,0x3d8, +0x825,0x82d,0x834,0x38a,0x83c,0x643,0x643,0x646,0x643,0x643,0x643,0x643,0x643,0x643,0x843,0x849, +0x859,0x851,0x38a,0x38a,0x861,0x5e6,0x38a,0x3b1,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x81c, +0x3bf,0x38a,0x838,0x869,0x38a,0x871,0x80e,0x38a,0x38a,0x38a,0x38a,0x879,0x38a,0x38a,0x63b,0x3b0, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x838,0x643,0x562,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x880,0x38a,0x38a,0x885,0x54c,0x38a,0x38a,0x592,0x643,0x63a,0x38a,0x38a,0x88d,0x38a,0x38a,0x38a, +0x895,0x89c,0x60c,0x8a4,0x38a,0x38a,0x8ab,0x8b3,0x38a,0x8ba,0x8c1,0x38a,0x4d5,0x8c6,0x38a,0x4ee, +0x38a,0x8ce,0x8d6,0x4f0,0x38a,0x8da,0x4ef,0x8e2,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8e9, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8fd,0x8f1,0x8f5,0x489,0x489,0x489,0x489,0x489, +0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x905,0x489,0x489,0x489,0x489,0x90d,0x911, +0x919,0x921,0x925,0x92d,0x489,0x489,0x489,0x931,0x939,0x37a,0x941,0x949,0x38a,0x38a,0x38a,0x951, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0xe28,0xe28,0xe68,0xea8,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xee0,0xf20,0xf60,0xf70,0xfb0,0xfbc, +0xe28,0xe28,0xffc,0xe28,0xe28,0xe28,0x1034,0x1074,0x10b4,0x10f4,0x112c,0x116c,0x11ac,0x11e4,0x1224,0x1264, +0xa40,0xa80,0xac0,0xafa,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb23,0x1a0,0x1a0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb60,0x1a0,0x1a0,0xb95,0xbd5,0xc15,0xc55,0xc95,0xcd5, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, -0xcec,0xcfc,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, +0xd55,0xd65,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xcac, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x92a,0x36f,0x620,0x620,0x932,0x5c3,0x36f,0x4c5, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x93a,0x36f,0x36f,0x36f,0x941,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x949,0x404,0x404,0x404,0x404,0x404,0x404,0x404, -0x951,0x955,0x404,0x404,0x404,0x404,0x965,0x95d,0x404,0x96d,0x404,0x404,0x975,0x97b,0x404,0x404, -0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404, -0x404,0x404,0x404,0x983,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404, -0x4cc,0x98b,0x992,0x999,0x3e6,0x99c,0x36f,0x36f,0x4b2,0x9a4,0x36f,0x9aa,0x3e6,0x9af,0x5d5,0x36f, -0x36f,0x9b7,0x36f,0x36f,0x36f,0x36f,0x7f9,0x9bf,0x3e6,0x4cd,0x528,0x9c6,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x9cc,0x9d4,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x9d8,0x9e0,0x36f, -0x36f,0x9e8,0x528,0x36f,0x36f,0x9f0,0x36f,0x36f,0x5b3,0x9f8,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x9fc,0x36f,0xa02,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0xa08,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x4e6,0xa10,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0xa17,0xa1f,0xa25,0x36f,0x36f,0x620,0x620,0xa2d,0x36f, -0x36f,0x36f,0x36f,0x36f,0x620,0x620,0x743,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0xa2f,0x36f,0xa36,0x36f,0xa32,0x36f,0xa39,0x36f,0xa41,0xa45,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x3bd,0xa4d,0x3bd,0xa54, -0xa5b,0xa63,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x404,0x404,0x404,0x404, -0x404,0x404,0xa6b,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404, -0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404, -0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x46e,0x46e,0x46e,0x46e, -0x46e,0x46e,0x46e,0xa73,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x404,0x620,0xa7b,0x620,0x620, -0x623,0xa80,0xa84,0x813,0xa8c,0x36f,0x36f,0xa92,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x620, -0x620,0x620,0x620,0x620,0x620,0x620,0x620,0x80c,0x620,0xa9a,0x620,0x620,0x620,0x620,0x620,0x620, -0x620,0x620,0xa9e,0xaa6,0x620,0x620,0x620,0x623,0x620,0x620,0xa9d,0x36f,0xa7b,0x620,0xaae,0x620, -0xab6,0x815,0x36f,0x36f,0xac6,0x36f,0x36f,0x36f,0xacb,0x36f,0x5c3,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0xabe,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f, -0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0xabe,0xadb,0xad3,0xad3,0xad3, -0xadc,0xadc,0xadc,0xadc,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0xae4,0xadc,0xadc,0xadc,0xadc, -0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc, -0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc, -0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc, -0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0xadc,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4, -4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, -2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12, -0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4, -4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2, -0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, -0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x959,0x38a,0x643,0x643,0x961,0x5e6,0x38a,0x4e8, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x969,0x38a,0x38a,0x38a,0x970,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x978,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f, +0x980,0x984,0x41f,0x41f,0x41f,0x41f,0x994,0x98c,0x41f,0x99c,0x41f,0x41f,0x9a4,0x9aa,0x41f,0x41f, +0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f, +0x41f,0x41f,0x41f,0x9b2,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f, +0x4ef,0x8ad,0x9ba,0x9c1,0x401,0x9c4,0x38a,0x38a,0x4d5,0x9cc,0x38a,0x9d2,0x401,0x9d7,0x5f8,0x38a, +0x38a,0x9df,0x38a,0x38a,0x38a,0x38a,0x81d,0x9e7,0x401,0x4f0,0x54b,0x9ee,0x38a,0x38a,0x38a,0x38a, +0x38a,0x8ad,0x9f6,0x38a,0x38a,0x9fa,0xa02,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa06,0xa0e,0x38a, +0x38a,0xa16,0x54b,0x832,0x38a,0xa1e,0x38a,0x38a,0x5d6,0xa26,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa2a,0x38a,0x38a,0xa32,0xa38, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa3e,0x38a,0xa44,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa4a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x509,0xa52,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0xa59,0xa61,0xa67,0x38a,0x38a,0x643,0x643,0xa6f,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x767, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa71,0x38a,0xa78,0x38a,0xa74, +0x38a,0xa7b,0x38a,0xa83,0xa87,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0xa8f,0x3d8,0xa96,0xa9d,0xaa5,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0xaad,0xab5,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0xabd,0x41f,0xac5,0xac5,0xacc, +0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f, +0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f, +0x41f,0x41f,0x41f,0x41f,0x41f,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0xad4,0x41f,0x41f,0x41f, +0x41f,0x41f,0x41f,0x41f,0x41f,0x643,0xadc,0x643,0x643,0x646,0xae1,0xae5,0x843,0xaed,0x38a,0x38a, +0xaf3,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x643, +0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643, +0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x768,0xafb,0x643,0x643,0x643, +0x646,0x643,0x643,0x830,0x38a,0xadc,0x643,0xb03,0x643,0xb0b,0x845,0x38a,0x38a,0xb1b,0xb23,0xb2b, +0x38a,0x844,0x38a,0x5e6,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0xb13,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a, +0x38a,0x38a,0x38a,0x38a,0xb13,0xb3b,0xb33,0xb33,0xb33,0xb3c,0xb3c,0xb3c,0xb3c,0x3d8,0x3d8,0x3d8, +0x3d8,0x3d8,0x3d8,0x3d8,0xb44,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c, +0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c, +0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c, +0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c, +0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0x369,0x369,0x369,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4,4,4,0xa,0xa, +0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,2,2,2,2, +2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12,0x12,7,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4,4,4,0xa,0xa, +0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2,0xa,0,0xa,0xa, +0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0,0, +0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0,0,0,0,0, -0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0, +0,0,0,0,0xa,0xa,0,0xa,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0, +0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1, +0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,5,5,5,5,5,0xa,0xa, -0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d, -0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5, -5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d, -0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d, -2,2,2,2,2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad, -0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d, +1,1,1,1,5,5,5,5,5,5,0xa,0xa,0xd,4,4,0xd, +6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd, +0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d, -0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5,5,5,4,5, +5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d, +0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,2,2,2,2, +2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,0x8d,0xb1,0x4d,0x4d, +0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd, +0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d, +0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1, -1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,1,1,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa, -0xa,0xa,0x21,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1, -1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1, -0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81, -0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,1,1, -1,0xb1,0xb1,0xb1,1,1,1,1,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,0xa,0xa,0x21,1, +1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1, +0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1, +0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,1,1,1,0xb1,0xb1,0xb1, +1,1,1,1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d, +0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0xd,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d, +0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, 0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,0,0,0,0,0,0,0,4,0,0,0,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0, 0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0, 0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,4, -0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1, -0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, -0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, -0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xa0, +0,0,0,0,0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0xa0,0,0,0,0,0,0,0xa0,0,0,0,0,0, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, +0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0, +0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0, +0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, -0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0,0,0, +0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0, +0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4, -0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4,0,0xb1,0,0, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0,0,0,0x40, +0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a, +0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0, +0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0, +0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1, +0,0,0,0,0xa,0,0,0,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, -0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0, -0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0, -0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0, +0xb1,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, -0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9, -0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -2,0,0,0,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0, -9,9,9,9,9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa, -0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, -2,2,3,3,0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa, +6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2, +0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0, +2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9, +9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae, +0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa, +0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,3,3, +0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa, -0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa, -0,0xa,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0, -0,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a, -0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa, -0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa, -0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0xa,0x100a,0xa, -0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa, -0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa, -0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a, -0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0, +0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0, +0,0,4,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, +0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa, +0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a, +0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a, +0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a, +0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a, +0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa, +0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a, +0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, @@ -530,6 +541,9 @@ static const uint16_t ubidi_props_trieIndex[11188]={ 0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -541,8 +555,6 @@ static const uint16_t ubidi_props_trieIndex[11188]={ 0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa, 0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, @@ -559,74 +571,74 @@ static const uint16_t ubidi_props_trieIndex[11188]={ 0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, 0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0, -0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1, -0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0, -0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, -0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1, +0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0, +0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1, +0xb1,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0, +0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0,0, +0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,1,1,1,1,1,1,1,1,3,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa, -0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0, -0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a, +0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa, +0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa, -0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,2,2,2,2, -2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0, +0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3, +6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa, +0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a, +0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,0xa,0xa,0xa,4,4,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0, +0,0,0,0,4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa, +0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0xb1,2,2,2,2,2,2,2, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0xb1,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xa, +1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1, +0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81, +0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1, -0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1, -1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41, -0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1, -1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41, -0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41, -0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5, +1,1,1,1,1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81, +0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +5,5,5,5,5,5,5,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -637,76 +649,90 @@ static const uint16_t ubidi_props_trieIndex[11188]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0, -0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1, -0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb2,0xb2,0xb2,0xb2,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0xb2, -0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1, +0xb1,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a, +0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -2,2,2,2,2,2,2,2,2,2,2,0xa,0xa,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa, +0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1, +1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x12,0x12,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,0xa, 0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2, +0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x12,0x12,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xb2,0xb2,0xb2,0xb2, 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12, 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, @@ -721,7 +747,7 @@ static const uint32_t ubidi_props_mirrors[26]={ 0x16022fb,0x18022fc,0x1a022fd,0x1c022fe,0x8029b8,0x4029f5,0xa02ade,0xe02ae3,0xc02ae4,0x1002ae5 }; -static const uint8_t ubidi_props_jgArray[664]={ +static const uint8_t ubidi_props_jgArray[672]={ 0x2d,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6, 6,0x1f,0x1f,0x23,0x23,0x21,0x21,0x28,0x28,1,1,0xb,0xb,0x37,0x37,0x37, 0,9,0x1d,0x13,0x16,0x18,0x1a,0x10,0x2c,0x2d,0x2d,0,0,0,0,0, @@ -763,7 +789,7 @@ static const uint8_t ubidi_props_jgArray[664]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4,4,0xd,0x28,9,0x1d,0x16,0x18,0x2d,0x2d,0x1f,0x2c,0x39,0,6,0x21, -0xb,0x55,0x1f,1,0x13,0,0,0 +0xb,0x55,0x1f,1,0x13,0,4,4,4,0x1f,0x2d,0x56,0x58,0x57,0,0 }; static const uint8_t ubidi_props_jgArray2[48]={ @@ -780,16 +806,16 @@ static const UBiDiProps ubidi_props_singleton={ ubidi_props_jgArray2, { ubidi_props_trieIndex, - ubidi_props_trieIndex+3388, + ubidi_props_trieIndex+3496, NULL, - 3388, - 7800, + 3496, + 8076, 0x1a0, - 0xdbc, + 0xe28, 0x0, 0x0, 0x110000, - 0x2bb0, + 0x2d30, NULL, 0, FALSE, FALSE, 0, NULL }, { 2,2,0,0 } diff --git a/deps/icu-small/source/common/ubidiimp.h b/deps/icu-small/source/common/ubidiimp.h index 9a23dc03a81275..a62d8b259ece03 100644 --- a/deps/icu-small/source/common/ubidiimp.h +++ b/deps/icu-small/source/common/ubidiimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ubidiln.c b/deps/icu-small/source/common/ubidiln.c index f03defe625b2e0..688ca4c31ed3a3 100644 --- a/deps/icu-small/source/common/ubidiln.c +++ b/deps/icu-small/source/common/ubidiln.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ubiditransform.c b/deps/icu-small/source/common/ubiditransform.c new file mode 100644 index 00000000000000..15e3c7cc941d16 --- /dev/null +++ b/deps/icu-small/source/common/ubiditransform.c @@ -0,0 +1,528 @@ +/* +****************************************************************************** +* +* Copyright (C) 2016 and later: Unicode, Inc. and others. +* License & terms of use: http://www.unicode.org/copyright.html +* +****************************************************************************** +* file name: ubiditransform.c +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* created on: 2016jul24 +* created by: Lina Kemmel +* +*/ + +#include "cmemory.h" +#include "unicode/ubidi.h" +#include "unicode/ustring.h" +#include "unicode/ushape.h" +#include "unicode/utf16.h" +#include "ustr_imp.h" +#include "unicode/ubiditransform.h" + +/* Some convenience defines */ +#define LTR UBIDI_LTR +#define RTL UBIDI_RTL +#define LOGICAL UBIDI_LOGICAL +#define VISUAL UBIDI_VISUAL +#define SHAPE_LOGICAL U_SHAPE_TEXT_DIRECTION_LOGICAL +#define SHAPE_VISUAL U_SHAPE_TEXT_DIRECTION_VISUAL_LTR + +#define CHECK_LEN(STR, LEN, ERROR) { \ + if (LEN == 0) return 0; \ + if (LEN < -1) { *(ERROR) = U_ILLEGAL_ARGUMENT_ERROR; return 0; } \ + if (LEN == -1) LEN = u_strlen(STR); \ + } + +#define MAX_ACTIONS 7 + +/** + * Typedef for a pointer to a function, which performs some operation (such as + * reordering, setting "inverse" mode, character mirroring, etc.). Return value + * indicates whether the text was changed in the course of this operation or + * not. + */ +typedef UBool (*UBiDiAction)(UBiDiTransform *, UErrorCode *); + +/** + * Structure that holds a predefined reordering scheme, including the following + * information: + *
    + *
  • an input base direction,
  • + *
  • an input order,
  • + *
  • an output base direction,
  • + *
  • an output order,
  • + *
  • a digit shaping direction,
  • + *
  • a letter shaping direction,
  • + *
  • a base direction that should be applied when the reordering engine is + * invoked (which can not always be derived from the caller-defined + * options),
  • + *
  • an array of pointers to functions that accomplish the bidi layout + * transformation.
  • + *
+ */ +typedef struct { + UBiDiLevel inLevel; /* input level */ + UBiDiOrder inOrder; /* input order */ + UBiDiLevel outLevel; /* output level */ + UBiDiOrder outOrder; /* output order */ + uint32_t digitsDir; /* digit shaping direction */ + uint32_t lettersDir; /* letter shaping direction */ + UBiDiLevel baseLevel; /* paragraph level to be used with setPara */ + const UBiDiAction actions[MAX_ACTIONS]; /* array of pointers to functions carrying out the transformation */ +} ReorderingScheme; + +struct UBiDiTransform { + UBiDi *pBidi; /* pointer to a UBiDi object */ + const ReorderingScheme *pActiveScheme; /* effective reordering scheme */ + UChar *src; /* input text */ + UChar *dest; /* output text */ + uint32_t srcLength; /* input text length - not really needed as we are zero-terminated and can u_strlen */ + uint32_t srcSize; /* input text capacity excluding the trailing zero */ + uint32_t destSize; /* output text capacity */ + uint32_t *pDestLength; /* number of UChars written to dest */ + uint32_t reorderingOptions; /* reordering options - currently only suppot DO_MIRRORING */ + uint32_t digits; /* digit option for ArabicShaping */ + uint32_t letters; /* letter option for ArabicShaping */ +}; + +U_DRAFT UBiDiTransform* U_EXPORT2 +ubiditransform_open(UErrorCode *pErrorCode) +{ + UBiDiTransform *pBiDiTransform = NULL; + if (U_SUCCESS(*pErrorCode)) { + pBiDiTransform = (UBiDiTransform*) uprv_calloc(1, sizeof(UBiDiTransform)); + if (pBiDiTransform == NULL) { + *pErrorCode = U_MEMORY_ALLOCATION_ERROR; + } + } + return pBiDiTransform; +} + +U_DRAFT void U_EXPORT2 +ubiditransform_close(UBiDiTransform *pBiDiTransform) +{ + if (pBiDiTransform != NULL) { + if (pBiDiTransform->pBidi != NULL) { + ubidi_close(pBiDiTransform->pBidi); + } + if (pBiDiTransform->src != NULL) { + uprv_free(pBiDiTransform->src); + } + uprv_free(pBiDiTransform); + } +} + +/** + * Performs Bidi resolution of text. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_resolve(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + ubidi_setPara(pTransform->pBidi, pTransform->src, pTransform->srcLength, + pTransform->pActiveScheme->baseLevel, NULL, pErrorCode); + return FALSE; +} + +/** + * Performs basic reordering of text (Logical -> Visual LTR). + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + ubidi_writeReordered(pTransform->pBidi, pTransform->dest, pTransform->destSize, + pTransform->reorderingOptions, pErrorCode); + + *pTransform->pDestLength = pTransform->srcLength; + pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT; + return TRUE; +} + +/** + * Sets "inverse" mode on the UBiDi object. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_setInverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + ubidi_setInverse(pTransform->pBidi, TRUE); + ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_INVERSE_LIKE_DIRECT); + return FALSE; +} + +/** + * Sets "runs only" reordering mode indicating a Logical LTR <-> Logical RTL + * transformation. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_setRunsOnly(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_RUNS_ONLY); + return FALSE; +} + +/** + * Performs string reverse. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_reverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + ubidi_writeReverse(pTransform->src, pTransform->srcLength, + pTransform->dest, pTransform->destSize, + UBIDI_REORDER_DEFAULT, pErrorCode); + *pTransform->pDestLength = pTransform->srcLength; + return TRUE; +} + +/** + * Applies a new value to the text that serves as input at the current + * processing step. This value is identical to the original one when we begin + * the processing, but usually changes as the transformation progresses. + * + * @param pTransform A pointer to the UBiDiTransform structure. + * @param newSrc A pointer whose value is to be used as input text. + * @param newLength A length of the new text in UChars. + * @param newSize A new source capacity in UChars. + * @param pErrorCode Pointer to the error code value. + */ +static void +updateSrc(UBiDiTransform *pTransform, const UChar *newSrc, uint32_t newLength, + uint32_t newSize, UErrorCode *pErrorCode) +{ + if (newSize < newLength) { + *pErrorCode = U_BUFFER_OVERFLOW_ERROR; + return; + } + if (newSize > pTransform->srcSize) { + newSize += 50; // allocate slightly more than needed right now + if (pTransform->src != NULL) { + uprv_free(pTransform->src); + pTransform->src = NULL; + } + pTransform->src = (UChar *)uprv_malloc(newSize * sizeof(UChar)); + if (pTransform->src == NULL) { + *pErrorCode = U_MEMORY_ALLOCATION_ERROR; + //pTransform->srcLength = pTransform->srcSize = 0; + return; + } + pTransform->srcSize = newSize; + } + u_strncpy(pTransform->src, newSrc, newLength); + pTransform->srcLength = u_terminateUChars(pTransform->src, + pTransform->srcSize, newLength, pErrorCode); +} + +/** + * Calls a lower level shaping function. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param options Shaping options. + * @param pErrorCode Pointer to the error code value. + */ +static void +doShape(UBiDiTransform *pTransform, uint32_t options, UErrorCode *pErrorCode) +{ + *pTransform->pDestLength = u_shapeArabic(pTransform->src, + pTransform->srcLength, pTransform->dest, pTransform->destSize, + options, pErrorCode); +} + +/** + * Performs digit and letter shaping. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_shapeArabic(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + if ((pTransform->letters | pTransform->digits) == 0) { + return FALSE; + } + if (pTransform->pActiveScheme->lettersDir == pTransform->pActiveScheme->digitsDir) { + doShape(pTransform, pTransform->letters | pTransform->digits | pTransform->pActiveScheme->lettersDir, + pErrorCode); + } else { + doShape(pTransform, pTransform->digits | pTransform->pActiveScheme->digitsDir, pErrorCode); + if (U_SUCCESS(*pErrorCode)) { + updateSrc(pTransform, pTransform->dest, *pTransform->pDestLength, + *pTransform->pDestLength, pErrorCode); + doShape(pTransform, pTransform->letters | pTransform->pActiveScheme->lettersDir, + pErrorCode); + } + } + return TRUE; +} + +/** + * Performs character mirroring. + * + * @param pTransform Pointer to the UBiDiTransform structure. + * @param pErrorCode Pointer to the error code value. + * + * @return Whether or not this function modifies the text. Besides the return + * value, the caller should also check U_SUCCESS(*pErrorCode). + */ +static UBool +action_mirror(UBiDiTransform *pTransform, UErrorCode *pErrorCode) +{ + UChar32 c; + uint32_t i = 0, j = 0; + if (0 == (pTransform->reorderingOptions & UBIDI_DO_MIRRORING)) { + return FALSE; + } + if (pTransform->destSize < pTransform->srcLength) { + *pErrorCode = U_BUFFER_OVERFLOW_ERROR; + return FALSE; + } + do { + UBool isOdd = ubidi_getLevelAt(pTransform->pBidi, i) & 1; + U16_NEXT(pTransform->src, i, pTransform->srcLength, c); + U16_APPEND_UNSAFE(pTransform->dest, j, isOdd ? u_charMirror(c) : c); + } while (i < pTransform->srcLength); + + *pTransform->pDestLength = pTransform->srcLength; + pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT; + return TRUE; +} + +/** + * All possible reordering schemes. + * + */ +static const ReorderingScheme Schemes[] = +{ + /* 0: Logical LTR => Visual LTR */ + {LTR, LOGICAL, LTR, VISUAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_shapeArabic, action_resolve, action_reorder, NULL}}, + /* 1: Logical RTL => Visual LTR */ + {RTL, LOGICAL, LTR, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, RTL, + {action_resolve, action_reorder, action_shapeArabic, NULL}}, + /* 2: Logical LTR => Visual RTL */ + {LTR, LOGICAL, RTL, VISUAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_shapeArabic, action_resolve, action_reorder, action_reverse, NULL}}, + /* 3: Logical RTL => Visual RTL */ + {RTL, LOGICAL, RTL, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, RTL, + {action_resolve, action_reorder, action_shapeArabic, action_reverse, NULL}}, + /* 4: Visual LTR => Logical RTL */ + {LTR, VISUAL, RTL, LOGICAL, SHAPE_LOGICAL, SHAPE_VISUAL, RTL, + {action_shapeArabic, action_setInverse, action_resolve, action_reorder, NULL}}, + /* 5: Visual RTL => Logical RTL */ + {RTL, VISUAL, RTL, LOGICAL, SHAPE_LOGICAL, SHAPE_VISUAL, RTL, + {action_reverse, action_shapeArabic, action_setInverse, action_resolve, action_reorder, NULL}}, + /* 6: Visual LTR => Logical LTR */ + {LTR, VISUAL, LTR, LOGICAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_setInverse, action_resolve, action_reorder, action_shapeArabic, NULL}}, + /* 7: Visual RTL => Logical LTR */ + {RTL, VISUAL, LTR, LOGICAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_reverse, action_setInverse, action_resolve, action_reorder, action_shapeArabic, NULL}}, + /* 8: Logical LTR => Logical RTL */ + {LTR, LOGICAL, RTL, LOGICAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_shapeArabic, action_resolve, action_mirror, action_setRunsOnly, action_resolve, action_reorder, NULL}}, + /* 9: Logical RTL => Logical LTR */ + {RTL, LOGICAL, LTR, LOGICAL, SHAPE_LOGICAL, SHAPE_LOGICAL, RTL, + {action_resolve, action_mirror, action_setRunsOnly, action_resolve, action_reorder, action_shapeArabic, NULL}}, + /* 10: Visual LTR => Visual RTL */ + {LTR, VISUAL, RTL, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, LTR, + {action_shapeArabic, action_setInverse, action_resolve, action_mirror, action_reverse, NULL}}, + /* 11: Visual RTL => Visual LTR */ + {RTL, VISUAL, LTR, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, LTR, + {action_reverse, action_shapeArabic, action_setInverse, action_resolve, action_mirror, NULL}}, + /* 12: Logical LTR => Logical LTR */ + {LTR, LOGICAL, LTR, LOGICAL, SHAPE_LOGICAL, SHAPE_LOGICAL, LTR, + {action_resolve, action_mirror, action_shapeArabic, NULL}}, + /* 13: Logical RTL => Logical RTL */ + {RTL, LOGICAL, RTL, LOGICAL, SHAPE_VISUAL, SHAPE_LOGICAL, RTL, + {action_resolve, action_mirror, action_shapeArabic, NULL}}, + /* 14: Visual LTR => Visual LTR */ + {LTR, VISUAL, LTR, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, LTR, + {action_resolve, action_mirror, action_shapeArabic, NULL}}, + /* 15: Visual RTL => Visual RTL */ + {RTL, VISUAL, RTL, VISUAL, SHAPE_LOGICAL, SHAPE_VISUAL, LTR, + {action_reverse, action_resolve, action_mirror, action_shapeArabic, action_reverse, NULL}} +}; + +static const uint32_t nSchemes = sizeof(Schemes) / sizeof(*Schemes); + +/** + * When the direction option is UBIDI_DEFAULT_LTR or + * UBIDI_DEFAULT_RTL, resolve the base direction according to that + * of the first strong bidi character. + */ +static void +resolveBaseDirection(const UChar *text, uint32_t length, + UBiDiLevel *pInLevel, UBiDiLevel *pOutLevel) +{ + switch (*pInLevel) { + case UBIDI_DEFAULT_LTR: + case UBIDI_DEFAULT_RTL: { + UBiDiLevel level = ubidi_getBaseDirection(text, length); + *pInLevel = level != UBIDI_NEUTRAL ? level + : *pInLevel == UBIDI_DEFAULT_RTL ? RTL : LTR; + break; + } + default: + *pInLevel &= 1; + break; + } + switch (*pOutLevel) { + case UBIDI_DEFAULT_LTR: + case UBIDI_DEFAULT_RTL: + *pOutLevel = *pInLevel; + break; + default: + *pOutLevel &= 1; + break; + } +} + +/** + * Finds a valid ReorderingScheme matching the + * caller-defined scheme. + * + * @return A valid ReorderingScheme object or NULL + */ +static const ReorderingScheme* +findMatchingScheme(UBiDiLevel inLevel, UBiDiLevel outLevel, + UBiDiOrder inOrder, UBiDiOrder outOrder) +{ + uint32_t i; + for (i = 0; i < nSchemes; i++) { + const ReorderingScheme *pScheme = Schemes + i; + if (inLevel == pScheme->inLevel && outLevel == pScheme->outLevel + && inOrder == pScheme->inOrder && outOrder == pScheme->outOrder) { + return pScheme; + } + } + return NULL; +} + +U_DRAFT uint32_t U_EXPORT2 +ubiditransform_transform(UBiDiTransform *pBiDiTransform, + const UChar *src, int32_t srcLength, + UChar *dest, int32_t destSize, + UBiDiLevel inParaLevel, UBiDiOrder inOrder, + UBiDiLevel outParaLevel, UBiDiOrder outOrder, + UBiDiMirroring doMirroring, uint32_t shapingOptions, + UErrorCode *pErrorCode) +{ + uint32_t destLength = 0; + UBool textChanged = FALSE; + const UBiDiTransform *pOrigTransform = pBiDiTransform; + const UBiDiAction *action = NULL; + + if (U_FAILURE(*pErrorCode)) { + return 0; + } + if (src == NULL || dest == NULL) { + *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } + CHECK_LEN(src, srcLength, pErrorCode); + CHECK_LEN(dest, destSize, pErrorCode); + + if (pBiDiTransform == NULL) { + pBiDiTransform = ubiditransform_open(pErrorCode); + if (U_FAILURE(*pErrorCode)) { + return 0; + } + } + /* Current limitation: in multiple paragraphs will be resolved according + to the 1st paragraph */ + resolveBaseDirection(src, srcLength, &inParaLevel, &outParaLevel); + + pBiDiTransform->pActiveScheme = findMatchingScheme(inParaLevel, outParaLevel, + inOrder, outOrder); + if (pBiDiTransform->pActiveScheme == NULL) { + goto cleanup; + } + pBiDiTransform->reorderingOptions = doMirroring ? UBIDI_DO_MIRRORING + : UBIDI_REORDER_DEFAULT; + + /* Ignore TEXT_DIRECTION_* flags, as we apply our own depending on the text + scheme at the time shaping is invoked. */ + shapingOptions &= ~U_SHAPE_TEXT_DIRECTION_MASK; + pBiDiTransform->digits = shapingOptions & ~U_SHAPE_LETTERS_MASK; + pBiDiTransform->letters = shapingOptions & ~U_SHAPE_DIGITS_MASK; + + updateSrc(pBiDiTransform, src, srcLength, destSize > srcLength ? destSize : srcLength, pErrorCode); + if (U_FAILURE(*pErrorCode)) { + goto cleanup; + } + if (pBiDiTransform->pBidi == NULL) { + pBiDiTransform->pBidi = ubidi_openSized(0, 0, pErrorCode); + if (U_FAILURE(*pErrorCode)) { + goto cleanup; + } + } + pBiDiTransform->dest = dest; + pBiDiTransform->destSize = destSize; + pBiDiTransform->pDestLength = &destLength; + + /* Checking for U_SUCCESS() within the loop to bail out on first failure. */ + for (action = pBiDiTransform->pActiveScheme->actions; *action && U_SUCCESS(*pErrorCode); action++) { + if ((*action)(pBiDiTransform, pErrorCode)) { + if (action + 1) { + updateSrc(pBiDiTransform, pBiDiTransform->dest, *pBiDiTransform->pDestLength, + *pBiDiTransform->pDestLength, pErrorCode); + } + textChanged = TRUE; + } + } + ubidi_setInverse(pBiDiTransform->pBidi, FALSE); + + if (!textChanged && U_SUCCESS(*pErrorCode)) { + /* Text was not changed - just copy src to dest */ + if (destSize < srcLength) { + *pErrorCode = U_BUFFER_OVERFLOW_ERROR; + } else { + u_strncpy(dest, src, srcLength); + destLength = srcLength; + } + } +cleanup: + if (pOrigTransform != pBiDiTransform) { + ubiditransform_close(pBiDiTransform); + } else { + pBiDiTransform->dest = NULL; + pBiDiTransform->pDestLength = NULL; + pBiDiTransform->srcLength = 0; + pBiDiTransform->destSize = 0; + } + return U_FAILURE(*pErrorCode) ? 0 : destLength; +} diff --git a/deps/icu-small/source/common/ubidiwrt.c b/deps/icu-small/source/common/ubidiwrt.c index 2c6495967ca9c2..1d0c36a5d2815b 100644 --- a/deps/icu-small/source/common/ubidiwrt.c +++ b/deps/icu-small/source/common/ubidiwrt.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ubrk.cpp b/deps/icu-small/source/common/ubrk.cpp index 161c0ac4d32aad..b02c966b107d7f 100644 --- a/deps/icu-small/source/common/ubrk.cpp +++ b/deps/icu-small/source/common/ubrk.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1996-2015, International Business Machines diff --git a/deps/icu-small/source/common/ubrkimpl.h b/deps/icu-small/source/common/ubrkimpl.h index e4909712566461..36ca6688593b6c 100644 --- a/deps/icu-small/source/common/ubrkimpl.h +++ b/deps/icu-small/source/common/ubrkimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2006, International Business Machines diff --git a/deps/icu-small/source/common/ucase.cpp b/deps/icu-small/source/common/ucase.cpp index 343d79feeccf36..5c9354e73b7da0 100644 --- a/deps/icu-small/source/common/ucase.cpp +++ b/deps/icu-small/source/common/ucase.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -619,6 +621,18 @@ ucase_getCaseLocale(const char *locale, int32_t *locCache) { result=UCASE_LOC_LITHUANIAN; } } + } else if(is_e(c)) { + /* el or ell? */ + c=*locale++; + if(is_l(c)) { + c=*locale++; + if(is_l(c)) { + c=*locale; + } + if(is_sep(c)) { + result=UCASE_LOC_GREEK; + } + } } else if(is_n(c)) { /* nl or nld? */ c=*locale++; @@ -801,8 +815,9 @@ U_CAPI int32_t U_EXPORT2 ucase_toFullLower(const UCaseProps *csp, UChar32 c, UCaseContextIterator *iter, void *context, const UChar **pString, - const char *locale, int32_t *locCache) -{ + const char *locale, int32_t *locCache) { + // The sign of the result has meaning, input must be non-negative so that it can be returned as is. + U_ASSERT(c >= 0); UChar32 result=c; uint16_t props=UTRIE2_GET16(&csp->trie, c); if(!PROPS_HAS_EXCEPTION(props)) { @@ -947,6 +962,8 @@ toUpperOrTitle(const UCaseProps *csp, UChar32 c, const UChar **pString, const char *locale, int32_t *locCache, UBool upperNotTitle) { + // The sign of the result has meaning, input must be non-negative so that it can be returned as is. + U_ASSERT(c >= 0); UChar32 result=c; uint16_t props=UTRIE2_GET16(&csp->trie, c); if(!PROPS_HAS_EXCEPTION(props)) { @@ -1155,8 +1172,9 @@ ucase_fold(const UCaseProps *csp, UChar32 c, uint32_t options) { U_CAPI int32_t U_EXPORT2 ucase_toFullFolding(const UCaseProps *csp, UChar32 c, const UChar **pString, - uint32_t options) -{ + uint32_t options) { + // The sign of the result has meaning, input must be non-negative so that it can be returned as is. + U_ASSERT(c >= 0); UChar32 result=c; uint16_t props=UTRIE2_GET16(&csp->trie, c); if(!PROPS_HAS_EXCEPTION(props)) { diff --git a/deps/icu-small/source/common/ucase.h b/deps/icu-small/source/common/ucase.h index 8f24769de388a8..29ea71a533d8c5 100644 --- a/deps/icu-small/source/common/ucase.h +++ b/deps/icu-small/source/common/ucase.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -62,6 +64,7 @@ enum { UCASE_LOC_ROOT, UCASE_LOC_TURKISH, UCASE_LOC_LITHUANIAN, + UCASE_LOC_GREEK, UCASE_LOC_DUTCH }; @@ -156,7 +159,7 @@ U_NAMESPACE_END U_CAPI int32_t U_EXPORT2 ucase_getType(const UCaseProps *csp, UChar32 c); -/** @return same as ucase_getType(), or <0 if c is case-ignorable */ +/** @return like ucase_getType() but also sets UCASE_IGNORABLE if c is case-ignorable */ U_CAPI int32_t U_EXPORT2 ucase_getTypeOrIgnorable(const UCaseProps *csp, UChar32 c); diff --git a/deps/icu-small/source/common/ucase_props_data.h b/deps/icu-small/source/common/ucase_props_data.h index 5b3a3ff9878a24..aa51bac691c9da 100644 --- a/deps/icu-small/source/common/ucase_props_data.h +++ b/deps/icu-small/source/common/ucase_props_data.h @@ -1,153 +1,155 @@ -/* - * Copyright (C) 1999-2016, International Business Machines - * Corporation and others. All Rights Reserved. - * - * file name: ucase_props_data.h - * - * machine-generated by: icu/tools/unicode/c/genprops/casepropsbuilder.cpp - */ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +// +// Copyright (C) 1999-2016, International Business Machines +// Corporation and others. All Rights Reserved. +// +// file name: ucase_props_data.h +// +// machine-generated by: icu/tools/unicode/c/genprops/casepropsbuilder.cpp + #ifdef INCLUDED_FROM_UCASE_CPP -static const UVersionInfo ucase_props_dataVersion={8,0,0,0}; +static const UVersionInfo ucase_props_dataVersion={9,0,0,0}; -static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x67ea,0x5658,0x737,0x172,0,0,0,0,0,0,0,0,0,0,3}; +static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x6c6c,0x5a10,0x79c,0x172,0,0,0,0,0,0,0,0,0,0,3}; -static const uint16_t ucase_props_trieIndex[11044]={ -0x316,0x31e,0x326,0x32e,0x33c,0x344,0x34c,0x354,0x35c,0x364,0x36b,0x373,0x37b,0x383,0x38b,0x393, -0x399,0x3a1,0x3a9,0x3b1,0x3b9,0x3c1,0x3c9,0x3d1,0x3d9,0x3e1,0x3e9,0x3f1,0x3f9,0x401,0x409,0x411, -0x419,0x421,0x425,0x42d,0x435,0x43d,0x445,0x44d,0x449,0x451,0x456,0x45e,0x465,0x46d,0x475,0x47d, -0x485,0x48d,0x495,0x49d,0x335,0x33d,0x4a2,0x4aa,0x4af,0x4b7,0x4bf,0x4c7,0x4c6,0x4ce,0x4d3,0x4db, -0x4e2,0x4e9,0x4ed,0x335,0x335,0x316,0x335,0x4f5,0x4fd,0x4ff,0x507,0x50f,0x513,0x514,0x51c,0x524, -0x52c,0x514,0x534,0x539,0x52c,0x514,0x541,0x524,0x513,0x545,0x54d,0x524,0x552,0x335,0x55a,0x335, -0x48c,0x4c8,0x562,0x524,0x513,0x545,0x569,0x524,0x513,0x335,0x51c,0x524,0x335,0x335,0x56f,0x335, -0x335,0x575,0x57c,0x335,0x335,0x580,0x588,0x335,0x58c,0x593,0x335,0x59a,0x5a2,0x5a9,0x5b1,0x335, -0x335,0x5b6,0x5be,0x5c6,0x5ce,0x5d6,0x5de,0x47b,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x5e2,0x335,0x335,0x5f2,0x5fa,0x5ea, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x602,0x602,0x520,0x520,0x335,0x608,0x610,0x335, -0x618,0x335,0x620,0x335,0x335,0x626,0x335,0x335,0x335,0x62e,0x335,0x335,0x335,0x335,0x335,0x335, -0x635,0x335,0x63c,0x644,0x335,0x64c,0x335,0x335,0x654,0x657,0x65f,0x665,0x66d,0x675,0x335,0x67c, -0x335,0x681,0x335,0x687,0x335,0x335,0x68f,0x697,0x69f,0x6a4,0x6a7,0x6af,0x6bf,0x6b7,0x6cf,0x6c7, -0x35c,0x6d7,0x35c,0x6df,0x6e2,0x35c,0x6ea,0x35c,0x6f2,0x6fa,0x702,0x70a,0x712,0x71a,0x722,0x72a, -0x732,0x739,0x335,0x741,0x749,0x335,0x751,0x759,0x761,0x769,0x771,0x779,0x781,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x784,0x78a,0x790,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x798,0x79d,0x7a1,0x7a9,0x35c,0x35c,0x35c,0x7b1,0x7b9,0x7c1,0x335,0x7c6,0x335,0x335,0x335,0x7ce, -0x335,0x61d,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x512,0x7d6,0x335,0x335,0x7dd,0x335,0x335,0x7e5,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x7ed,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x687,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x7f3,0x335,0x35c,0x7fb,0x803,0x335,0x335,0x80b,0x813,0x81b,0x35c,0x820,0x828,0x82e,0x335,0x834, -0x83c,0x52b,0x335,0x335,0x335,0x335,0x843,0x84b,0x335,0x852,0x859,0x335,0x4fd,0x85e,0x866,0x52b, -0x335,0x86c,0x874,0x878,0x335,0x880,0x888,0x890,0x335,0x896,0x89a,0x8a2,0x8b2,0x8aa,0x335,0x8ba, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x8c2,0x335,0x335,0x335,0x335,0x8ca,0x66d,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x8cf,0x8d7,0x8db,0x335,0x335,0x335,0x335,0x318,0x31e,0x8e3,0x8eb,0x8f2,0x4c8,0x335,0x335,0x8fa, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0xcd8,0xcd8,0xcf0,0xd30,0xd70,0xdac,0xdec,0xe2c,0xe64,0xea4,0xee4,0xf24,0xf64,0xfa4,0xfe4,0x1024, -0x1064,0x1094,0x10d4,0x1114,0x1124,0x1158,0x1194,0x11d4,0x1214,0x1254,0xcd4,0x1288,0x12bc,0x12fc,0x1318,0x134c, +static const uint16_t ucase_props_trieIndex[11520]={ +0x327,0x32f,0x337,0x33f,0x34d,0x355,0x35d,0x365,0x36d,0x375,0x37c,0x384,0x38c,0x394,0x39c,0x3a4, +0x3aa,0x3b2,0x3ba,0x3c2,0x3ca,0x3d2,0x3da,0x3e2,0x3ea,0x3f2,0x3fa,0x402,0x40a,0x412,0x41a,0x422, +0x42a,0x432,0x43a,0x442,0x44a,0x452,0x45a,0x462,0x45e,0x466,0x46b,0x473,0x47a,0x482,0x48a,0x492, +0x49a,0x4a2,0x4aa,0x4b2,0x346,0x34e,0x4b7,0x4bf,0x4c4,0x4cc,0x4d4,0x4dc,0x4db,0x4e3,0x4e8,0x4f0, +0x4f7,0x4fe,0x502,0x346,0x346,0x327,0x512,0x50a,0x51a,0x51c,0x524,0x52c,0x530,0x531,0x539,0x541, +0x549,0x531,0x551,0x556,0x549,0x531,0x55e,0x541,0x530,0x562,0x56a,0x541,0x56f,0x346,0x577,0x346, +0x4a1,0x4dd,0x57f,0x541,0x530,0x562,0x586,0x541,0x530,0x346,0x539,0x541,0x346,0x346,0x58c,0x346, +0x346,0x592,0x599,0x346,0x346,0x59d,0x5a5,0x346,0x5a9,0x5b0,0x346,0x5b7,0x5bf,0x5c6,0x5ce,0x346, +0x346,0x5d3,0x5db,0x5e3,0x5eb,0x5f3,0x5fb,0x490,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x5ff,0x346,0x346,0x60f,0x617,0x607, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x61f,0x61f,0x53d,0x53d,0x346,0x625,0x62d,0x346, +0x635,0x346,0x63d,0x346,0x548,0x643,0x346,0x346,0x346,0x64b,0x346,0x346,0x346,0x346,0x346,0x346, +0x652,0x346,0x659,0x661,0x346,0x669,0x346,0x346,0x671,0x674,0x67c,0x682,0x68a,0x692,0x346,0x699, +0x346,0x69e,0x346,0x6a4,0x6ac,0x346,0x6b0,0x6b8,0x6c0,0x6c5,0x6c8,0x6d0,0x6e0,0x6d8,0x6f0,0x6e8, +0x36d,0x6f8,0x36d,0x700,0x703,0x36d,0x70b,0x36d,0x713,0x71b,0x723,0x72b,0x733,0x73b,0x743,0x74b, +0x753,0x75a,0x346,0x762,0x76a,0x346,0x772,0x77a,0x782,0x78a,0x792,0x79a,0x7a2,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x7a5,0x7ab,0x7b1,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x7b9,0x7be,0x7c2,0x7ca,0x36d,0x36d,0x36d,0x7d2,0x7da,0x7e2,0x346,0x7e7,0x346,0x346,0x346,0x7ef, +0x346,0x63a,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x52f,0x7f7,0x346,0x346,0x7fe,0x346,0x346,0x806,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x80e,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x6a4,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x814,0x346,0x81c,0x821,0x829,0x346,0x346,0x831,0x839,0x841,0x36d,0x846,0x84e,0x854,0x346,0x85a, +0x862,0x548,0x346,0x346,0x346,0x346,0x869,0x871,0x346,0x878,0x87f,0x346,0x51a,0x884,0x88c,0x548, +0x346,0x892,0x89a,0x89e,0x346,0x8a6,0x8ae,0x8b6,0x346,0x8bc,0x8c0,0x8c8,0x8d8,0x8d0,0x346,0x8e0, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x8e8,0x346,0x346,0x346,0x346,0x8f0,0x68a,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x8f5,0x8fd,0x901,0x346,0x346,0x346,0x346,0x329,0x32f,0x909,0x911,0x918,0x4dd,0x346,0x346,0x920, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0xd1c,0xd1c,0xd34,0xd74,0xdb4,0xdf0,0xe30,0xe70,0xea8,0xee8,0xf28,0xf68,0xfa8,0xfe8,0x1028,0x1068, +0x10a8,0x10e8,0x1128,0x1168,0x1178,0x11ac,0x11e8,0x1228,0x1268,0x12a8,0xd18,0x12dc,0x1310,0x1350,0x136c,0x13a0, 0x9e1,0xa11,0xa51,0xa8c,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xab5,0x188,0x188, -0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xaf2,0x188,0x188,0xb27,0xb66,0x188,0xba0,0xbd7,0x188, +0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xaf5,0x188,0x188,0xb2a,0xb69,0xba9,0xbe3,0xc1a,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, @@ -172,432 +174,445 @@ static const uint16_t ucase_props_trieIndex[11044]={ 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, -0xc17,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x621,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x902,0x335,0x335,0x335,0x905,0x335,0x335,0x335, -0x335,0x90d,0x913,0x917,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x91f,0x923,0x335,0x335,0x335,0x335,0x335,0x92b,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x933,0x937,0x93f,0x943,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x513,0x948,0x94f,0x951,0x66d,0x959,0x335,0x335,0x961,0x968,0x335,0x954,0x66d,0x96e,0x976, -0x335,0x335,0x97b,0x335,0x335,0x335,0x335,0x318,0x983,0x66d,0x514,0x98b,0x992,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x998,0x9a0,0x335,0x335,0x335,0x335,0x335,0x335,0x9a4,0x9ac, -0x335,0x335,0x9b4,0x48c,0x335,0x335,0x9bc,0x335,0x335,0x9c2,0x9ca,0x335,0x335,0x335,0x335,0x335, -0x335,0x41d,0x9d2,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x9da,0x335,0x9e0,0x654, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x9e6,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x9ee,0x654,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x9f6,0x9fe,0xa04,0x335,0x335,0x335,0x335,0xa0c,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0xa14,0xa1c,0xa21,0xa27,0xa2f,0xa37,0xa3f,0xa18,0xa47, -0xa4f,0xa57,0xa5e,0xa19,0xa14,0xa1c,0xa17,0xa27,0xa1a,0xa15,0xa66,0xa18,0xa6e,0xa76,0xa7e,0xa85, -0xa71,0xa79,0xa81,0xa88,0xa74,0xa90,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x813,0xa98,0x813,0xa9f,0xaa6,0xaae,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0xab2,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0xa10,0xaba,0xaba,0xac0,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x963,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x513,0x813,0x813,0x813,0x335,0x335,0x335,0x335,0x813, -0x813,0x813,0x813,0x813,0x813,0x813,0x9ea,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x335, -0x335,0x335,0x335,0x335,0x335,0x335,0x335,0x315,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,0,4,0,0,0,0,0,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x1a,0xba,0xfa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x17a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0,0,0,4,0,4,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, -0xf009,0x1f9,0xf029,0x299,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x319,0xf009,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xc5a,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x63e,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x928,0x346,0x346,0x346,0x92b,0x346,0x346,0x346, +0x346,0x933,0x939,0x93d,0x346,0x346,0x941,0x945,0x94b,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x953,0x957,0x346,0x346,0x346,0x346,0x346,0x95f,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x967,0x96b,0x973,0x977,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x530,0x97c,0x983,0x985,0x68a,0x98d,0x346,0x346,0x995,0x99c,0x346,0x988,0x68a,0x9a2,0x9aa, +0x346,0x346,0x9af,0x346,0x346,0x346,0x346,0x329,0x9b7,0x68a,0x531,0x9bf,0x9c6,0x346,0x346,0x346, +0x346,0x346,0x97c,0x9ce,0x346,0x346,0x9d2,0x9da,0x346,0x346,0x346,0x346,0x346,0x346,0x9de,0x9e6, +0x346,0x346,0x9ee,0x4a1,0x346,0x346,0x9f6,0x346,0x346,0x9fc,0xa04,0x346,0x346,0x346,0x346,0x346, +0x346,0xa0c,0xa14,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa1c,0x346,0x346, +0x8f0,0xa24,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa2a,0x346,0xa30,0x671, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0xa36,0x346,0x346,0x4a1,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa3e,0x671,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0xa46,0xa4e,0xa54,0x346,0x346,0x346,0x346,0xa5c,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa64,0xa6c,0xa71,0xa77,0xa7f,0xa87, +0xa8f,0xa68,0xa97,0xa9f,0xaa7,0xaae,0xa69,0xa64,0xa6c,0xa67,0xa77,0xa6a,0xa65,0xab6,0xa68,0xabe, +0xac6,0xace,0xad5,0xac1,0xac9,0xad1,0xad8,0xac4,0xae0,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x839,0xae8,0x839,0xaef,0xaf6,0xafe,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xb06,0xb0e,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xb12,0x346,0xb1a,0xb22,0xb29,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0xa60,0xb31,0xb31,0xb37,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x997,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x530,0x839,0x839,0x839,0x346,0x346, +0x346,0x346,0x839,0x839,0x839,0x839,0x839,0x839,0x839,0xa3a,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346, +0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x326,0x326,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0, +0,0,0,0,0,0,4,0,0,0,0,0,0,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x1a,0xba,0xfa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x17a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0,0,4,0,4,0xf009,0xf009,0xf009, +0xf009,0xf009,0xf009,0xf009,0xf009,0x1f9,0xf029,0x299,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x319, +0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,1,0,0,4,0,4, -0,0,0,0,4,0x399,0,4,4,0,1,0,0,0,0,0, -0x100a,0x100a,0x100a,0x100a,0x100a,0x3fa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x47a,0x4ba,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x4f9, -0xf009,0xf009,0xf009,0xf009,0xf009,0x639,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x3c89, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0, +0,4,0,4,0,0,0,0,4,0x399,0,4,4,0,1,0, +0,0,0,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x3fa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x47a,0x4ba,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x4f9,0xf009,0xf009,0xf009,0xf009,0xf009,0x639,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, +0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0xf009,0xf009,0xf009,0xf009, +0xf009,0xf009,0xf009,0x3c89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6ba,0xff89,0x8a,0xff89, +0x8a,0xff89,0x6fa,0xffa9,0x73a,0x7f9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,0x8a,0xff89,0x8a, +0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x899,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6ba,0xff89,0x8a,0xff89,0x8a,0xff89,0x6fa,0xffa9, -0x73a,0x7f9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a, -0xff89,0x8a,0xff89,0x8a,0xff89,0x899,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc38a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x999, +0x6189,0x690a,0x8a,0xff89,0x8a,0xff89,0x670a,0x8a,0xff89,0x668a,0x668a,0x8a,0xff89,1,0x278a,0x650a, +0x658a,0x8a,0xff89,0x668a,0x678a,0x3089,0x698a,0x688a,0x8a,0xff89,0x5189,1,0x698a,0x6a8a,0x4109,0x6b0a, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6d0a,0x8a,0xff89,0x6d0a,1,1,0x8a,0xff89,0x6d0a,0x8a, +0xff89,0x6c8a,0x6c8a,0x8a,0xff89,0x8a,0xff89,0x6d8a,0x8a,0xff89,1,0,0x8a,0xff89,1,0x1c09, +0,0,0,0,0x9fa,0xa5b,0xad9,0xb3a,0xb9b,0xc19,0xc7a,0xcdb,0xd59,0x8a,0xff89,0x8a, +0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xd889,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0xc38a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x999,0x6189,0x690a,0x8a,0xff89, -0x8a,0xff89,0x670a,0x8a,0xff89,0x668a,0x668a,0x8a,0xff89,1,0x278a,0x650a,0x658a,0x8a,0xff89,0x668a, -0x678a,0x3089,0x698a,0x688a,0x8a,0xff89,0x5189,1,0x698a,0x6a8a,0x4109,0x6b0a,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x6d0a,0x8a,0xff89,0x6d0a,1,1,0x8a,0xff89,0x6d0a,0x8a,0xff89,0x6c8a,0x6c8a,0x8a, -0xff89,0x8a,0xff89,0x6d8a,0x8a,0xff89,1,0,0x8a,0xff89,1,0x1c09,0,0,0,0, -0x9fa,0xa5b,0xad9,0xb3a,0xb9b,0xc19,0xc7a,0xcdb,0xd59,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a, -0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xd889,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xdb9,0xeba,0xf1b,0xf99, -0x8a,0xff89,0xcf8a,0xe40a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0xdb9,0xeba,0xf1b,0xf99,0x8a,0xff89,0xcf8a,0xe40a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0xbf0a,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,1,1,1,1,1,0xffa,0x8a, -0xff89,0xae8a,0x103a,0x1079,0x10b9,0x8a,0xff89,0x9e8a,0x228a,0x238a,0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x10f9,0x1139,0x1179,0x9709,0x9909,1,0x9989,0x9989,1,0x9b09,1,0x9a89, -0x11b9,1,1,1,0x9989,0x11f9,1,0x9889,1,0x1239,0x1279,1,0x97a9,0x9689,1,0x12b9, -0x12f9,1,1,0x9689,1,0x1339,0x9589,1,1,0x9509,1,1,1,1,1,1, -1,0x1379,1,1,0x9309,1,1,0x9309,1,1,1,0x13b9,0x9309,0xdd89,0x9389,0x9389, -0xdc89,1,1,1,1,1,0x9289,1,0,1,1,1,1,1,1,1, -1,0x13f9,0x1439,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,5,5,0x25,5,5,5,5,5,5,4,4,4, -0xc,4,0xc,4,5,5,4,4,4,4,4,4,4,4,4,4, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xbf0a,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,1,1,1, +1,1,0xffa,0x8a,0xff89,0xae8a,0x103a,0x1079,0x10b9,0x8a,0xff89,0x9e8a,0x228a,0x238a,0x8a,0xff89, +0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x10f9,0x1139,0x1179,0x9709,0x9909,1,0x9989,0x9989, +1,0x9b09,1,0x9a89,0x11b9,1,1,1,0x9989,0x11f9,1,0x9889,1,0x1239,0x1279,1, +0x97a9,0x9689,0x12b9,0x12f9,0x1339,1,1,0x9689,1,0x1379,0x9589,1,1,0x9509,1,1, +1,1,1,1,1,0x13b9,1,1,0x9309,1,1,0x9309,1,1,1,0x13f9, +0x9309,0xdd89,0x9389,0x9389,0xdc89,1,1,1,1,1,0x9289,1,0,1,1,1, +1,1,1,1,1,0x1439,0x1479,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,0x25,5,5,5,5,5, +5,4,4,4,0xc,4,0xc,4,5,5,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,5,5,5,5,5,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,0x4c,0x4c,0x44,0x44,0x44,0x44,0x44,0x147c,0x4c,0x44,0x4c,0x44, -0x4c,0x44,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +4,4,4,4,4,4,4,4,0x4c,0x4c,0x44,0x44,0x44,0x44,0x44,0x14bc, +0x4c,0x44,0x4c,0x44,0x4c,0x44,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x64,0x64,0x64, 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0x64,0x64,0x6c,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x44,0x149d,0x44,0x64,0x64,0x64,0x44,0x44, -0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x8a,0xff89,0x8a,0xff89,4,4,0x8a,0xff89,0,0,5,0x4109, -0x4109,0x4109,0,0x3a0a,0,0,0,0,4,4,0x130a,4,0x128a,0x128a,0x128a,0, -0x200a,0,0x1f8a,0x1f8a,0x1539,0x100a,0x16da,0x100a,0x100a,0x175a,0x100a,0x100a,0x17da,0x187a,0x191a,0x100a, -0x199a,0x100a,0x100a,0x100a,0x1a1a,0x1a9a,0,0x1b1a,0x100a,0x100a,0x1b9a,0x100a,0x100a,0x1c1a,0x100a,0x100a, -0xed09,0xed89,0xed89,0xed89,0x1c99,0xf009,0x1e39,0xf009,0xf009,0x1eb9,0xf009,0xf009,0x1f39,0x1fd9,0x2079,0xf009, -0x20f9,0xf009,0xf009,0xf009,0x2179,0x21f9,0x2279,0x22d9,0xf009,0xf009,0x2359,0xf009,0xf009,0x23d9,0xf009,0xf009, -0xe009,0xe089,0xe089,0x40a,0x2459,0x24b9,2,2,2,0x2559,0x25b9,0xfc09,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x2619,0x2679,0x389,0xc629,0x26da,0x2779,0,0x8a,0xff89,0xfc8a,0x8a,0xff89, -1,0xbf0a,0xbf0a,0xbf0a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a, -0x280a,0x280a,0x280a,0x280a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0xf009,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0xd829,0xd809,0xd829,0xd809,0xd809,0xd809, -0xd809,0xd809,0xd809,0xd809,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x6c,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x44,0x14dd,0x44,0x64, +0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44, +0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x8a,0xff89,0x8a,0xff89,4,4,0x8a,0xff89, +0,0,5,0x4109,0x4109,0x4109,0,0x3a0a,0,0,0,0,4,4,0x130a,4, +0x128a,0x128a,0x128a,0,0x200a,0,0x1f8a,0x1f8a,0x1579,0x100a,0x171a,0x100a,0x100a,0x179a,0x100a,0x100a, +0x181a,0x18ba,0x195a,0x100a,0x19da,0x100a,0x100a,0x100a,0x1a5a,0x1ada,0,0x1b5a,0x100a,0x100a,0x1bda,0x100a, +0x100a,0x1c5a,0x100a,0x100a,0xed09,0xed89,0xed89,0xed89,0x1cd9,0xf009,0x1e79,0xf009,0xf009,0x1ef9,0xf009,0xf009, +0x1f79,0x2019,0x20b9,0xf009,0x2139,0xf009,0xf009,0xf009,0x21b9,0x2239,0x22b9,0x2319,0xf009,0xf009,0x2399,0xf009, +0xf009,0x2419,0xf009,0xf009,0xe009,0xe089,0xe089,0x40a,0x2499,0x24f9,2,2,2,0x2599,0x25f9,0xfc09, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x44,0x44,0x44,0x44,0x44,4,4,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x2659,0x26b9,0x389,0xc629,0x271a,0x27b9,0,0x8a, +0xff89,0xfc8a,0x8a,0xff89,1,0xbf0a,0xbf0a,0xbf0a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a, +0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x100a,0x100a,0x281a,0x100a,0x289a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x291a,0x100a,0x100a,0x299a,0x2a1a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x2aba,0x100a,0x100a,0x100a,0x100a,0x100a,0xf009,0xf009,0x2b39,0xf009,0x2bb9,0xf009,0xf009,0xf009, +0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x2c39,0xf009,0xf009,0x2cb9,0x2d39,0xf009,0xf009,0xf009,0xf009,0xf009, +0xf009,0xf009,0x2dd9,0xf009,0xf009,0xf009,0xf009,0xf009,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0xd829,0xd809, +0xd829,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0x8a,0xff89,0x2e5a,0x2ed9,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x44,0x44,0x44,0x44,0x44, +4,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x78a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a, -0xff89,0x8a,0xff89,0xf889,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x78a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a, +0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xf889,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, -0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0, -0,4,0,0,0,0,0,0,0,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, +0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, +0x180a,0x180a,0x180a,0,0,4,0,0,0,0,0,0,0,0xe809,0xe809,0xe809, 0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809, -0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0x27d9,0,0,0,0, -0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64, -0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44, -0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64,0,0,0,0, +0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0x2f59, +0,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44, +0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64, +0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x64,0x64,0x64,0,4,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44, +0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0x64, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44, -0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0x44, -0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0, +0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64, +0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44, -0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44, -0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,0,0,0,0,0,0,0,0, +0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44, +0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,4,4,4,4,4,4,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44, -4,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44, -0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64, -0,0,0,0,0,0,0,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44, -0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44, -0x44,0x44,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,0x64,0,0,0,0,4,4,4, -4,4,4,4,4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44, -0x44,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0, -0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44, +4,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x64,0x64,0x64,0,0,0,0,0x44,0x44,4,0x64,0x44,0x44,0x64,0x44, +0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44, +0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,0,0,0,0,4,4,0,0,4,4,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0,0, +0,4,4,4,4,4,4,4,4,0,0,0,0,0x64,0,0, +0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0, +0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, 0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,4,4,0,4,4,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x64,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0, 0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x64,0,0,4,0,4,4,4,4,0,0,0,0,0,0,0, -0,0x64,0,0,0,0,0,0,0,0,4,0,0,0,0,0, +0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,4, -4,0,4,4,4,0x64,0,0,0,0,0,0,0,0x64,0x64,0, -0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4, -4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0x64,0, -0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64,4,4,4,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,0,0,4,4,4,4,0x64,0x64,0,4,4,0,0,0, -0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64,4,4,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x64,0x64,4,0x64,4,4,4, -4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44,0x64,0,0x44,0x44, -0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4, -0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0, +0,0,0,0,0,4,4,0,0,0,0,4,4,0,0,4, +4,0x64,0,0,0,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,4,4,4,4,4,0,4, +4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,4,0,4,4,4,4,4,0x64, -0,0x64,0x64,0,0,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x64,0,0,4,0,4,4,4,4,0,0,0, +0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,0,0,0,0,4,4,4,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,0,0,4,4,0, -0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,0x28da,0x291a,0x295a,0x299a,0x29da,0x2a1a,0x2a5a,0x2a9a, -0x2ada,0x2b1a,0x2b5a,0x2b9a,0x2bda,0x2c1a,0x2c5a,0x2c9a,0x2cda,0x2d1a,0x2d5a,0x2d9a,0x2dda,0x2e1a,0x2e5a,0x2e9a, -0x2eda,0x2f1a,0x2f5a,0x2f9a,0x2fda,0x301a,0x305a,0x309a,0x30da,0x311a,0x315a,0x319a,0x31da,0x321a,0,0x325a, -0,0,0,0,0,0x329a,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x44,0x44,0x44,0x4ada,0x4b3a,0x4b9a,0x4bfa,0x4c5a,0x4cba,0x4d1a,0x4d7a, -0x4dda,0x4e3a,0x4e9a,0x4efa,0x4f5a,0x4fba,0x501a,0x507a,0x50da,0x513a,0x519a,0x51fa,0x525a,0x52ba,0,0, -0x5319,0x5379,0x53d9,0x5439,0x5499,0x54f9,0,0,0x32da,0x333a,0x339a,0x33fa,0x345a,0x34ba,0x351a,0x357a, -0x35da,0x363a,0x369a,0x36fa,0x375a,0x37ba,0x381a,0x387a,0x38da,0x393a,0x399a,0x39fa,0x3a5a,0x3aba,0x3b1a,0x3b7a, -0x3bda,0x3c3a,0x3c9a,0x3cfa,0x3d5a,0x3dba,0x3e1a,0x3e7a,0x3eda,0x3f3a,0x3f9a,0x3ffa,0x405a,0x40ba,0x411a,0x417a, -0x41da,0x423a,0x429a,0x42fa,0x435a,0x43ba,0x441a,0x447a,0x44da,0x453a,0x459a,0x45fa,0x465a,0x46ba,0x471a,0x477a, -0x47da,0x483a,0x489a,0x48fa,0x495a,0x49ba,0x4a1a,0x4a7a,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,0x64,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,4,4,4,0,4,4,4,0x64,0,0,0,0,0,0, +0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,4,0, +0,0,0,0,4,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0, +0,0,4,4,4,0,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0,0,4,4,4,4, +0x64,0x64,0x64,0,0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64, +4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0,4, +4,0,0,0,0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64, +4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,4,4,4,4,4,4,4,0,0, -0,0,0,0,0,0,4,0,0,4,4,4,4,4,4,4, -4,4,0x64,4,0,0,0,4,0,0,0,0,0,0x44,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0, +0,0,0,0,0,0x64,0,0x64,0,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,4, +0x64,4,4,4,4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44, +0x64,0,0x44,0x44,0,0,0,0,0,4,4,4,4,4,4,4, +4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,0,0,0,0,0,0,0,0,0,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,4,4,4,0,4,4, +4,4,4,0x64,0,0x64,0x64,0,0,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0,0,4, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,0, -0x64,0,4,0,0,4,4,4,4,4,4,4,4,0,0,0, -0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64, +0,0,0,0,4,4,0,0,0,0,4,4,4,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, +0,4,4,0,0,0,0,0,0,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0,0,0x305a,0x309a,0x30da,0x311a, +0x315a,0x319a,0x31da,0x321a,0x325a,0x329a,0x32da,0x331a,0x335a,0x339a,0x33da,0x341a,0x345a,0x349a,0x34da,0x351a, +0x355a,0x359a,0x35da,0x361a,0x365a,0x369a,0x36da,0x371a,0x375a,0x379a,0x37da,0x381a,0x385a,0x389a,0x38da,0x391a, +0x395a,0x399a,0,0x39da,0,0,0,0,0,0x3a1a,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x525a,0x52ba,0x531a,0x537a, +0x53da,0x543a,0x549a,0x54fa,0x555a,0x55ba,0x561a,0x567a,0x56da,0x573a,0x579a,0x57fa,0x585a,0x58ba,0x591a,0x597a, +0x59da,0x5a3a,0,0,0x5a99,0x5af9,0x5b59,0x5bb9,0x5c19,0x5c79,0,0,0x3a5a,0x3aba,0x3b1a,0x3b7a, +0x3bda,0x3c3a,0x3c9a,0x3cfa,0x3d5a,0x3dba,0x3e1a,0x3e7a,0x3eda,0x3f3a,0x3f9a,0x3ffa,0x405a,0x40ba,0x411a,0x417a, +0x41da,0x423a,0x429a,0x42fa,0x435a,0x43ba,0x441a,0x447a,0x44da,0x453a,0x459a,0x45fa,0x465a,0x46ba,0x471a,0x477a, +0x47da,0x483a,0x489a,0x48fa,0x495a,0x49ba,0x4a1a,0x4a7a,0x4ada,0x4b3a,0x4b9a,0x4bfa,0x4c5a,0x4cba,0x4d1a,0x4d7a, +0x4dda,0x4e3a,0x4e9a,0x4efa,0x4f5a,0x4fba,0x501a,0x507a,0x50da,0x513a,0x519a,0x51fa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, +0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,4,4,4,4,4, +4,4,0,0,0,0,0,0,0,0,4,0,0,4,4,4, +4,4,4,4,4,4,0x64,4,0,0,0,4,0,0,0,0, +0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0, -4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x64,0,4,4,4,4,4,0,4,0,0,0,0,0,4,0, -0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0, +0,0,0,4,4,0,0,0,0,0,0,0,0,0,4,0, +0,0,0,0,0,0x64,0x44,0x64,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, -0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,4,4,4,0,0,4,4,0x60,0x64, -4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x64,0,4,4,0,0,0,4,0,4, -4,4,0x60,0x60,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,4,4,0,0,4,0x64,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, -0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0,0x64,0x64, -0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0, -0x44,0,0,0,0x44,0x44,0,0,0,0,0,0,1,1,1,1, +0x64,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,0,4,4,4,4, +4,4,4,0,0x64,0,4,0,0,4,4,4,4,4,4,4, +4,0,0,0,0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0,0,0x64,0,0,0,0,0,0,0,4,0,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44, +0x44,0x64,4,0,4,4,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x64,0,4,4,4,4,4,0,4,0,0,0, +0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0, +4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0, +0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, +0x5cd9,0x5d39,0x5d99,0x5df9,0x5e59,0x5ef9,0x5f99,0x5ff9,0x6059,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64, +0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0, +0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x25,5, -5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1, -1,1,1,1,5,0x5559,1,1,1,0x5599,1,1,5,5,5,5, -0x25,5,5,5,0x25,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,0x60b9,1,1,1,0x60f9,1,1, +5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0x21,1,1,1,1,5,5,5,5,5,0x44,0x44,0x44,0x44, +1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0,0,0,0,0,0,0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x55da,0x5659,0x8a,0xff89, +0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x44,0x64,0x64,0x44,0x64, +0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64, +0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x56d9,0x57d9, -0x58d9,0x59d9,0x5ad9,0x5bd9,1,1,0x5c3a,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409,0x409,0x409,0,0, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409,0x409,0x409,0,0, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,0x5cd9,0x409,0x5dd9,0x409,0x5f39,0x409,0x6099,0x409, -0,0xfc0a,0,0xfc0a,0,0xfc0a,0,0xfc0a,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409, -0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x2509,0x2509,0x2b09,0x2b09,0x2b09,0x2b09,0x3209,0x3209, -0x4009,0x4009,0x3809,0x3809,0x3f09,0x3f09,0,0,0x61f9,0x62d9,0x63b9,0x6499,0x6579,0x6659,0x6739,0x6819, -0x68fb,0x69db,0x6abb,0x6b9b,0x6c7b,0x6d5b,0x6e3b,0x6f1b,0x6ff9,0x70d9,0x71b9,0x7299,0x7379,0x7459,0x7539,0x7619, -0x76fb,0x77db,0x78bb,0x799b,0x7a7b,0x7b5b,0x7c3b,0x7d1b,0x7df9,0x7ed9,0x7fb9,0x8099,0x8179,0x8259,0x8339,0x8419, -0x84fb,0x85db,0x86bb,0x879b,0x887b,0x895b,0x8a3b,0x8b1b,0x409,0x409,0x8bf9,0x8cf9,0x8dd9,0,0x8ed9,0x8fd9, -0xfc0a,0xfc0a,0xdb0a,0xdb0a,0x913b,4,0x9219,4,4,4,0x92b9,0x93b9,0x9499,0,0x9599,0x9699, -0xd50a,0xd50a,0xd50a,0xd50a,0x97fb,4,4,4,0x409,0x409,0x98d9,0x9a39,0,0,0x9bd9,0x9cd9, -0xfc0a,0xfc0a,0xce0a,0xce0a,0,4,4,4,0x409,0x409,0x9e39,0x9f99,0xa139,0x389,0xa239,0xa339, -0xfc0a,0xfc0a,0xc80a,0xc80a,0xfc8a,4,4,4,0,0,0xa499,0xa599,0xa679,0,0xa779,0xa879, -0xc00a,0xc00a,0xc10a,0xc10a,0xa9db,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0, -4,4,0,0,0,0,0,0,4,0,0,4,0,0,4,4, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,0,4,4,4,4,4,4, -4,4,4,4,0,0x25,0,0,0,0,0,0,0,0,0,0, -0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44, -0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44,0x64,0x44,0x64,0x64, -0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,2,0,0,0,0,2,0,0,1,2, -2,2,1,1,2,2,2,1,0,2,0,0,0,2,2,2, -2,2,0,0,0,0,0,0,2,0,0xaaba,0,2,0,0xab3a,0xabba, -2,2,0,1,2,2,0xe0a,2,1,0,0,0,0,1,0,0, -1,1,2,2,0,0,0,0,0,2,1,1,0x21,0x21,0,0, -0,0,0xf209,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a, -0x80a,0x80a,0x80a,0x80a,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809, -0xf809,0xf809,0xf809,0xf809,0,0,0,0x8a,0xff89,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a, -0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309, -0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, +0x613a,0x61b9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x6239,0x6339,0x6439,0x6539,0x6639,0x6739,1,1,0x679a,1,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x409,0x409,0x409,0x409, +0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409, +0x409,0x409,0,0,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,0x409,0x409,0x409,0x409, +0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409, +0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x409,0x409,0x409,0x409, +0x409,0x409,0,0,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,0x6839,0x409,0x6939,0x409, +0x6a99,0x409,0x6bf9,0x409,0,0xfc0a,0,0xfc0a,0,0xfc0a,0,0xfc0a,0x409,0x409,0x409,0x409, +0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0x2509,0x2509,0x2b09,0x2b09, +0x2b09,0x2b09,0x3209,0x3209,0x4009,0x4009,0x3809,0x3809,0x3f09,0x3f09,0,0,0x6d59,0x6e39,0x6f19,0x6ff9, +0x70d9,0x71b9,0x7299,0x7379,0x745b,0x753b,0x761b,0x76fb,0x77db,0x78bb,0x799b,0x7a7b,0x7b59,0x7c39,0x7d19,0x7df9, +0x7ed9,0x7fb9,0x8099,0x8179,0x825b,0x833b,0x841b,0x84fb,0x85db,0x86bb,0x879b,0x887b,0x8959,0x8a39,0x8b19,0x8bf9, +0x8cd9,0x8db9,0x8e99,0x8f79,0x905b,0x913b,0x921b,0x92fb,0x93db,0x94bb,0x959b,0x967b,0x409,0x409,0x9759,0x9859, +0x9939,0,0x9a39,0x9b39,0xfc0a,0xfc0a,0xdb0a,0xdb0a,0x9c9b,4,0x9d79,4,4,4,0x9e19,0x9f19, +0x9ff9,0,0xa0f9,0xa1f9,0xd50a,0xd50a,0xd50a,0xd50a,0xa35b,4,4,4,0x409,0x409,0xa439,0xa599, +0,0,0xa739,0xa839,0xfc0a,0xfc0a,0xce0a,0xce0a,0,4,4,4,0x409,0x409,0xa999,0xaaf9, +0xac99,0x389,0xad99,0xae99,0xfc0a,0xfc0a,0xc80a,0xc80a,0xfc8a,4,4,4,0,0,0xaff9,0xb0f9, +0xb1d9,0,0xb2d9,0xb3d9,0xc00a,0xc00a,0xc10a,0xc10a,0xb53b,4,4,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0, +0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4, +0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4, +4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0, +0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, +0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44, +0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2, +0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0, +0,2,2,2,2,2,0,0,0,0,0,0,2,0,0xb61a,0, +2,0,0xb69a,0xb71a,2,2,0,1,2,2,0xe0a,2,1,0,0,0, +0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1, +0x21,0x21,0,0,0,0,0xf209,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a, +0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809, +0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0,0,0,0x8a,0xff89,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a, +0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xf309,0xf309,0xf309,0xf309, +0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, 0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a, -0x180a,0x180a,0x180a,0,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809, +0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809, 0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809, -0xe809,0xe809,0xe809,0,0x8a,0xff89,0xac3a,0xac7a,0xacba,0xacf9,0xad39,0x8a,0xff89,0x8a,0xff89,0x8a, -0xff89,0xad7a,0xadba,0xadfa,0xae3a,1,0x8a,0xff89,1,0x8a,0xff89,1,1,1,1,1, -0x25,5,0xae7a,0xaeba,0x8a,0xff89,0x8a,0xff89,1,0,0,0,0,0,0,0x8a, -0xff89,0x8a,0xff89,0x44,0x44,0x44,0x8a,0xff89,0,0,0,0,0,0,0,0, -0,0,0,0,0xaef9,0xaf39,0xaf79,0xafb9,0xaff9,0xb039,0xb079,0xb0b9,0xb0f9,0xb139,0xb179,0xb1b9, -0xb1f9,0xb239,0xb279,0xb2b9,0xb2f9,0xb339,0xb379,0xb3b9,0xb3f9,0xb439,0xb479,0xb4b9,0xb4f9,0xb539,0xb579,0xb5b9, -0xb5f9,0xb639,0xb679,0xb6b9,0xb6f9,0xb739,0xb779,0xb7b9,0xb7f9,0xb839,0,0xb879,0,0,0,0, -0,0xb8b9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0,0x8a,0xff89,0xb79a,0xb7da,0xb81a,0xb859,0xb899,0x8a, +0xff89,0x8a,0xff89,0x8a,0xff89,0xb8da,0xb91a,0xb95a,0xb99a,1,0x8a,0xff89,1,0x8a,0xff89,1, +1,1,1,1,0x25,5,0xb9da,0xba1a,0x8a,0xff89,0x8a,0xff89,1,0,0,0, +0,0,0,0x8a,0xff89,0x8a,0xff89,0x44,0x44,0x44,0x8a,0xff89,0,0,0,0, +0,0,0,0,0,0,0,0,0xba59,0xba99,0xbad9,0xbb19,0xbb59,0xbb99,0xbbd9,0xbc19, +0xbc59,0xbc99,0xbcd9,0xbd19,0xbd59,0xbd99,0xbdd9,0xbe19,0xbe59,0xbe99,0xbed9,0xbf19,0xbf59,0xbf99,0xbfd9,0xc019, +0xc059,0xc099,0xc0d9,0xc119,0xc159,0xc199,0xc1d9,0xc219,0xc259,0xc299,0xc2d9,0xc319,0xc359,0xc399,0,0xc3d9, +0,0,0,0,0,0xc419,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, -0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,4, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, +0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4, +4,4,0,0,0,0,0,4,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x44,4,4,4,0, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x8a,0xff89,0x8a,0xff89, +0,0x64,0x64,4,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc45a,0xc4d9,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,5,5,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,1,0x8a,0xff89, +0x8a,0xff89,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -5,1,1,1,1,1,1,1,1,0x8a,0xff89,0x8a,0xff89,0xb8fa,0x8a,0xff89, -0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,4,4,4,0x8a,0xff89,0xb93a,1,0, +5,5,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, 0x8a,0xff89,0x8a,0xff89,1,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, -0x8a,0xff89,0xb97a,0xb9ba,0xb9fa,0xba3a,0,0,0xba7a,0xbaba,0xbafa,0xbb3a,0x8a,0xff89,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,5,1,1,1,1,1,1,1, +1,0x8a,0xff89,0x8a,0xff89,0xc55a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89, +4,4,4,0x8a,0xff89,0xc59a,1,0,0x8a,0xff89,0x8a,0xff89,1,1,0x8a,0xff89, +0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc5da,0xc61a,0xc65a,0xc69a,0xc6da,0, +0xc71a,0xc75a,0xc79a,0xc7da,0x8a,0xff89,0x8a,0xff89,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,1,0,0,0,0,0, -0,0,4,0,0,0,0x64,0,0,0,0,4,0,0,0,0, +5,5,1,0,0,0,0,0,0,0,4,0,0,0,0x64,0, +0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,4,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -4,4,4,4,4,4,0,0x60,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4,4, -4,4,0,0,4,0,0,0,0x60,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0, -0,4,4,0,0,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,4,0x64,0x64,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,4,4,4,4,4,4,4,4,4,4,4,0,0x60, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x44,0,0x44,0x44,0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44, -0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, -0,0,0,4,4,0,0x64,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0xbb79,1,1,1,1, -1,1,1,4,5,5,5,5,1,1,1,1,1,1,0,0, -0,0,0,0,0,0,0,0,0xbbb9,0xbc19,0xbc79,0xbcd9,0xbd39,0xbd99,0xbdf9,0xbe59, -0xbeb9,0xbf19,0xbf79,0xbfd9,0xc039,0xc099,0xc0f9,0xc159,0xcdb9,0xce19,0xce79,0xced9,0xcf39,0xcf99,0xcff9,0xd059, -0xd0b9,0xd119,0xd179,0xd1d9,0xd239,0xd299,0xd2f9,0xd359,0xd3b9,0xd419,0xd479,0xd4d9,0xd539,0xd599,0xd5f9,0xd659, -0xd6b9,0xd719,0xd779,0xd7d9,0xd839,0xd899,0xd8f9,0xd959,0xc1b9,0xc219,0xc279,0xc2d9,0xc339,0xc399,0xc3f9,0xc459, -0xc4b9,0xc519,0xc579,0xc5d9,0xc639,0xc699,0xc6f9,0xc759,0xc7b9,0xc819,0xc879,0xc8d9,0xc939,0xc999,0xc9f9,0xca59, -0xcab9,0xcb19,0xcb79,0xcbd9,0xcc39,0xcc99,0xccf9,0xcd59,0,0,0,0,0,4,0,0, -4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xd9b9,0xdab9,0xdbb9,0xdcb9,0xde19,0xdf79,0xe0b9,0, -0,0,0,0,0,0,0,0,0,0,0,0xe1f9,0xe2f9,0xe3f9,0xe4f9,0xe5f9, -0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,4, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, -0,4,0,0,0,0,0,0,0,0,0,0,0,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0,0,4,0,4,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0x64,0,0,4,4,4,4,0,0,4,0,0,0, +0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,4,4,4,4,4,4,0,0,4,4,0,0,4,4,0, 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0,0x44,0x44,0x64,0,0,0x44, +0x44,0,0,0,0,0,0x44,0x44,0,0x44,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,4,0,0,0,0,0x64,0,0,0,0,0,0,0, +0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,0,0,0,0,0,4,4,0,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0, -0,0,0,0,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xc819,1,1,1,1,1,1,1,4,5,5,5,5, +1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, +0xc859,0xc8b9,0xc919,0xc979,0xc9d9,0xca39,0xca99,0xcaf9,0xcb59,0xcbb9,0xcc19,0xcc79,0xccd9,0xcd39,0xcd99,0xcdf9, +0xda59,0xdab9,0xdb19,0xdb79,0xdbd9,0xdc39,0xdc99,0xdcf9,0xdd59,0xddb9,0xde19,0xde79,0xded9,0xdf39,0xdf99,0xdff9, +0xe059,0xe0b9,0xe119,0xe179,0xe1d9,0xe239,0xe299,0xe2f9,0xe359,0xe3b9,0xe419,0xe479,0xe4d9,0xe539,0xe599,0xe5f9, +0xce59,0xceb9,0xcf19,0xcf79,0xcfd9,0xd039,0xd099,0xd0f9,0xd159,0xd1b9,0xd219,0xd279,0xd2d9,0xd339,0xd399,0xd3f9, +0xd459,0xd4b9,0xd519,0xd579,0xd5d9,0xd639,0xd699,0xd6f9,0xd759,0xd7b9,0xd819,0xd879,0xd8d9,0xd939,0xd999,0xd9f9, +0,0,0,0,0,4,0,0,4,0,0,0,0,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xe659,0xe759,0xe859,0xe959,0xeab9,0xec19,0xed59,0,0,0,0,0,0,0,0,0, +0,0,0,0xee99,0xef99,0xf099,0xf199,0xf299,0,0,0,0,0,0,0x64,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,0,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0, +0,0,4,0,4,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, +0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0, +0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x140a,0x140a,0x140a,0x140a, 0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a, -0x140a,0x140a,0x140a,0x140a,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09, -0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0xec09,0xec09,0xec09,0xec09, +0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09, +0xec09,0xec09,0xec09,0xec09,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a, +0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0,0,0,0,0xec09,0xec09,0xec09,0xec09, +0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09, +0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0,0,0,0,0,4,4,4, 0,4,4,0,0,0,0,0,4,0x64,4,0x44,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0, @@ -622,29 +637,36 @@ static const uint16_t ucase_props_trieIndex[11044]={ 4,4,4,4,4,4,4,0,0x60,0,0,0,0,0,0,0, 0,0,0x64,4,4,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,0, -4,0x60,0x64,4,0,0,0,0,0,0,0,0,0,0,0,4, +4,0x60,0x64,4,0,0,0,0,0,0,4,0,0,0,0,4, 4,4,4,4,4,0x64,0x64,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, 0,0,0,0,0,0,0,0,0,0x60,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x64,4,4,0,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,4,4,0,4,0,0,0,0,4, -4,0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, +4,0,4,0,0,0,0,4,4,0,0x64,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,4,4,0,0,0,0,0,0,4,4,0,0x64, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0, +0,0,0,0,4,4,0,0x64,0x64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,4,4,4,4,0,0,4,0,0x64, -0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0, -4,4,4,4,4,4,0x60,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, +4,4,4,0,0,4,0,0x64,0,0,0,0,0,0,0,0, +0,0,0,4,0,4,0,0,4,4,4,4,4,4,0x60,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +0,0,4,4,4,4,0,4,4,4,4,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,0,0,4,4,4,4,0,4, -4,4,4,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, 0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009, -0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +4,4,4,4,4,4,4,0,4,4,4,4,4,4,0,0x64, +4,4,4,4,4,4,4,4,0,0,4,4,4,4,4,4, +4,0,4,4,0,4,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, @@ -699,15 +721,24 @@ static const uint16_t ucase_props_trieIndex[11044]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4,4,4,4,4,0,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0,0x44,0x44, +0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0 +0,0,0,0,0,0,0,0,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a, +0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a, +0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09, +0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09, +0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0, +0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static const uint16_t ucase_props_exceptions[1847]={ +static const uint16_t ucase_props_exceptions[1948]={ 0xc041,0x69,2,0x130,0x131,0x4001,0x6a,0x41,0x6b,1,0x212a,0x41,0x73,1,0x17f,0x5044, 0x49,2,0x130,0x131,0x44,0x4b,1,0x212a,0x44,0x53,1,0x17f,6,0x3bc,0x39c,0x41, 0xe5,1,0x212b,0x4001,0xec,0x4001,0xed,0xc0,1,0x2220,0x73,0x73,0x53,0x53,0x53,0x73, @@ -717,113 +748,119 @@ static const uint16_t ucase_props_exceptions[1847]={ 0xc,0x1c7,0x1c8,9,0x1cc,0x1cb,0xd,0x1cc,0x1ca,0x1cb,0xc,0x1ca,0x1cb,0x80,0x2220,0x6a, 0x30c,0x4a,0x30c,0x4a,0x30c,9,0x1f3,0x1f2,0xd,0x1f3,0x1f1,0x1f2,0xc,0x1f1,0x1f2,1, 0x2c65,1,0x2c66,4,0x2c7e,4,0x2c7f,4,0x2c6f,4,0x2c6d,4,0x2c70,4,0xa7ab,4, -0xa7ac,4,0xa78d,4,0xa7aa,4,0x2c62,4,0xa7ad,4,0x2c6e,4,0x2c64,4,0xa7b1,0x1004, -0xa7b2,4,0xa7b0,0x6000,0x3046,0x3b9,0x399,1,0x1fbe,0xc0,1,0x3330,0x3b9,0x308,0x301,0x399, -0x308,0x301,0x399,0x308,0x301,0x1fd3,0x41,0x3b2,1,0x3d0,0x41,0x3b5,1,0x3f5,0x41,0x3b8, -2,0x3d1,0x3f4,0x41,0x3b9,2,0x345,0x1fbe,0x41,0x3ba,1,0x3f0,0x41,0x3bc,1,0xb5, -0x41,0x3c0,1,0x3d6,0x41,0x3c1,1,0x3f1,0x4041,0x3c3,1,0x3c2,0x41,0x3c6,1,0x3d5, -0x41,0x3c9,1,0x2126,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301, -0x1fe3,0x44,0x392,1,0x3d0,0x44,0x395,1,0x3f5,0x44,0x398,2,0x3d1,0x3f4,0x44,0x399, -2,0x345,0x1fbe,0x44,0x39a,1,0x3f0,0x44,0x39c,1,0xb5,0x44,0x3a0,1,0x3d6,0x44, -0x3a1,1,0x3f1,6,0x3c3,0x3a3,0x44,0x3a3,1,0x3c2,0x44,0x3a6,1,0x3d5,0x44,0x3a9, -1,0x2126,6,0x3b2,0x392,0x46,0x3b8,0x398,1,0x3f4,6,0x3c6,0x3a6,6,0x3c0,0x3a0, -6,0x3ba,0x39a,6,0x3c1,0x3a1,0x41,0x3b8,2,0x398,0x3d1,6,0x3b5,0x395,0x80,0x2220, -0x565,0x582,0x535,0x552,0x535,0x582,1,0x2d00,1,0x2d01,1,0x2d02,1,0x2d03,1,0x2d04, -1,0x2d05,1,0x2d06,1,0x2d07,1,0x2d08,1,0x2d09,1,0x2d0a,1,0x2d0b,1,0x2d0c, -1,0x2d0d,1,0x2d0e,1,0x2d0f,1,0x2d10,1,0x2d11,1,0x2d12,1,0x2d13,1,0x2d14, -1,0x2d15,1,0x2d16,1,0x2d17,1,0x2d18,1,0x2d19,1,0x2d1a,1,0x2d1b,1,0x2d1c, -1,0x2d1d,1,0x2d1e,1,0x2d1f,1,0x2d20,1,0x2d21,1,0x2d22,1,0x2d23,1,0x2d24, -1,0x2d25,1,0x2d27,1,0x2d2d,3,0xab70,0x13a0,3,0xab71,0x13a1,3,0xab72,0x13a2,3, -0xab73,0x13a3,3,0xab74,0x13a4,3,0xab75,0x13a5,3,0xab76,0x13a6,3,0xab77,0x13a7,3,0xab78, -0x13a8,3,0xab79,0x13a9,3,0xab7a,0x13aa,3,0xab7b,0x13ab,3,0xab7c,0x13ac,3,0xab7d,0x13ad, -3,0xab7e,0x13ae,3,0xab7f,0x13af,3,0xab80,0x13b0,3,0xab81,0x13b1,3,0xab82,0x13b2,3, -0xab83,0x13b3,3,0xab84,0x13b4,3,0xab85,0x13b5,3,0xab86,0x13b6,3,0xab87,0x13b7,3,0xab88, -0x13b8,3,0xab89,0x13b9,3,0xab8a,0x13ba,3,0xab8b,0x13bb,3,0xab8c,0x13bc,3,0xab8d,0x13bd, -3,0xab8e,0x13be,3,0xab8f,0x13bf,3,0xab90,0x13c0,3,0xab91,0x13c1,3,0xab92,0x13c2,3, -0xab93,0x13c3,3,0xab94,0x13c4,3,0xab95,0x13c5,3,0xab96,0x13c6,3,0xab97,0x13c7,3,0xab98, -0x13c8,3,0xab99,0x13c9,3,0xab9a,0x13ca,3,0xab9b,0x13cb,3,0xab9c,0x13cc,3,0xab9d,0x13cd, -3,0xab9e,0x13ce,3,0xab9f,0x13cf,3,0xaba0,0x13d0,3,0xaba1,0x13d1,3,0xaba2,0x13d2,3, -0xaba3,0x13d3,3,0xaba4,0x13d4,3,0xaba5,0x13d5,3,0xaba6,0x13d6,3,0xaba7,0x13d7,3,0xaba8, -0x13d8,3,0xaba9,0x13d9,3,0xabaa,0x13da,3,0xabab,0x13db,3,0xabac,0x13dc,3,0xabad,0x13dd, -3,0xabae,0x13de,3,0xabaf,0x13df,3,0xabb0,0x13e0,3,0xabb1,0x13e1,3,0xabb2,0x13e2,3, -0xabb3,0x13e3,3,0xabb4,0x13e4,3,0xabb5,0x13e5,3,0xabb6,0x13e6,3,0xabb7,0x13e7,3,0xabb8, -0x13e8,3,0xabb9,0x13e9,3,0xabba,0x13ea,3,0xabbb,0x13eb,3,0xabbc,0x13ec,3,0xabbd,0x13ed, -3,0xabbe,0x13ee,3,0xabbf,0x13ef,3,0x13f8,0x13f0,3,0x13f9,0x13f1,3,0x13fa,0x13f2,3, -0x13fb,0x13f3,3,0x13fc,0x13f4,3,0x13fd,0x13f5,6,0x13f0,0x13f0,6,0x13f1,0x13f1,6,0x13f2, -0x13f2,6,0x13f3,0x13f3,6,0x13f4,0x13f4,6,0x13f5,0x13f5,4,0xa77d,4,0x2c63,0x41,0x1e61, -1,0x1e9b,0x44,0x1e60,1,0x1e9b,0x80,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x80,0x2220, -0x74,0x308,0x54,0x308,0x54,0x308,0x80,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x80,0x2220, -0x79,0x30a,0x59,0x30a,0x59,0x30a,0x80,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,6,0x1e61, -0x1e60,0x81,0xdf,0x20,0x73,0x73,0x80,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x80,0x3330, -0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,0x300,0x80,0x3330,0x3c5,0x313,0x301,0x3a5,0x313, -0x301,0x3a5,0x313,0x301,0x80,0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x84, -0x1f88,0x220,0x1f00,0x3b9,0x1f08,0x399,0x84,0x1f89,0x220,0x1f01,0x3b9,0x1f09,0x399,0x84,0x1f8a,0x220, -0x1f02,0x3b9,0x1f0a,0x399,0x84,0x1f8b,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x84,0x1f8c,0x220,0x1f04,0x3b9, -0x1f0c,0x399,0x84,0x1f8d,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x84,0x1f8e,0x220,0x1f06,0x3b9,0x1f0e,0x399, -0x84,0x1f8f,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x81,0x1f80,0x220,0x1f00,0x3b9,0x1f08,0x399,0x81,0x1f81, -0x220,0x1f01,0x3b9,0x1f09,0x399,0x81,0x1f82,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x81,0x1f83,0x220,0x1f03, -0x3b9,0x1f0b,0x399,0x81,0x1f84,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x81,0x1f85,0x220,0x1f05,0x3b9,0x1f0d, -0x399,0x81,0x1f86,0x220,0x1f06,0x3b9,0x1f0e,0x399,0x81,0x1f87,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x84, -0x1f98,0x220,0x1f20,0x3b9,0x1f28,0x399,0x84,0x1f99,0x220,0x1f21,0x3b9,0x1f29,0x399,0x84,0x1f9a,0x220, -0x1f22,0x3b9,0x1f2a,0x399,0x84,0x1f9b,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x84,0x1f9c,0x220,0x1f24,0x3b9, -0x1f2c,0x399,0x84,0x1f9d,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x84,0x1f9e,0x220,0x1f26,0x3b9,0x1f2e,0x399, -0x84,0x1f9f,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x81,0x1f90,0x220,0x1f20,0x3b9,0x1f28,0x399,0x81,0x1f91, -0x220,0x1f21,0x3b9,0x1f29,0x399,0x81,0x1f92,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x81,0x1f93,0x220,0x1f23, -0x3b9,0x1f2b,0x399,0x81,0x1f94,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x81,0x1f95,0x220,0x1f25,0x3b9,0x1f2d, -0x399,0x81,0x1f96,0x220,0x1f26,0x3b9,0x1f2e,0x399,0x81,0x1f97,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x84, -0x1fa8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x84,0x1fa9,0x220,0x1f61,0x3b9,0x1f69,0x399,0x84,0x1faa,0x220, -0x1f62,0x3b9,0x1f6a,0x399,0x84,0x1fab,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x84,0x1fac,0x220,0x1f64,0x3b9, -0x1f6c,0x399,0x84,0x1fad,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x84,0x1fae,0x220,0x1f66,0x3b9,0x1f6e,0x399, -0x84,0x1faf,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x81,0x1fa0,0x220,0x1f60,0x3b9,0x1f68,0x399,0x81,0x1fa1, -0x220,0x1f61,0x3b9,0x1f69,0x399,0x81,0x1fa2,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x81,0x1fa3,0x220,0x1f63, -0x3b9,0x1f6b,0x399,0x81,0x1fa4,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x81,0x1fa5,0x220,0x1f65,0x3b9,0x1f6d, -0x399,0x81,0x1fa6,0x220,0x1f66,0x3b9,0x1f6e,0x399,0x81,0x1fa7,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x80, -0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x84,0x1fbc,0x220,0x3b1,0x3b9,0x391,0x399,0x80,0x2220, -0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x80,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,0x80,0x3330, -0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,0x345,0x81,0x1fb3,0x220,0x3b1,0x3b9,0x391,0x399, -0x46,0x3b9,0x399,1,0x345,0x80,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x84,0x1fcc,0x220, -0x3b7,0x3b9,0x397,0x399,0x80,0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x80,0x2220,0x3b7,0x342, -0x397,0x342,0x397,0x342,0x80,0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0x81, -0x1fc3,0x220,0x3b7,0x3b9,0x397,0x399,0x80,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308, -0x300,0xc0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x390,0x80,0x2220, -0x3b9,0x342,0x399,0x342,0x399,0x342,0x80,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308, -0x342,0x80,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0xc0,1,0x3330,0x3c5, -0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x3b0,0x80,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1, -0x313,0x80,0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,0x342,0x80,0x3330,0x3c5,0x308,0x342,0x3a5,0x308, -0x342,0x3a5,0x308,0x342,0x80,0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x84,0x1ffc,0x220,0x3c9, -0x3b9,0x3a9,0x399,0x80,0x2220,0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x80,0x2220,0x3c9,0x342,0x3a9, -0x342,0x3a9,0x342,0x80,0x3330,0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,0x81,0x1ff3, -0x220,0x3c9,0x3b9,0x3a9,0x399,0x41,0x3c9,1,0x3a9,0x41,0x6b,1,0x4b,0x41,0xe5,1, -0xc5,1,0x26b,1,0x1d7d,1,0x27d,4,0x23a,4,0x23e,1,0x251,1,0x271,1, -0x250,1,0x252,1,0x23f,1,0x240,4,0x10a0,4,0x10a1,4,0x10a2,4,0x10a3,4, -0x10a4,4,0x10a5,4,0x10a6,4,0x10a7,4,0x10a8,4,0x10a9,4,0x10aa,4,0x10ab,4, -0x10ac,4,0x10ad,4,0x10ae,4,0x10af,4,0x10b0,4,0x10b1,4,0x10b2,4,0x10b3,4, -0x10b4,4,0x10b5,4,0x10b6,4,0x10b7,4,0x10b8,4,0x10b9,4,0x10ba,4,0x10bb,4, -0x10bc,4,0x10bd,4,0x10be,4,0x10bf,4,0x10c0,4,0x10c1,4,0x10c2,4,0x10c3,4, -0x10c4,4,0x10c5,4,0x10c7,4,0x10cd,1,0x1d79,1,0x265,1,0x266,1,0x25c,1, -0x261,1,0x26c,1,0x29e,1,0x287,1,0x29d,1,0xab53,4,0xa7b3,6,0x13a0,0x13a0, -6,0x13a1,0x13a1,6,0x13a2,0x13a2,6,0x13a3,0x13a3,6,0x13a4,0x13a4,6,0x13a5,0x13a5,6, -0x13a6,0x13a6,6,0x13a7,0x13a7,6,0x13a8,0x13a8,6,0x13a9,0x13a9,6,0x13aa,0x13aa,6,0x13ab, -0x13ab,6,0x13ac,0x13ac,6,0x13ad,0x13ad,6,0x13ae,0x13ae,6,0x13af,0x13af,6,0x13b0,0x13b0, -6,0x13b1,0x13b1,6,0x13b2,0x13b2,6,0x13b3,0x13b3,6,0x13b4,0x13b4,6,0x13b5,0x13b5,6, -0x13b6,0x13b6,6,0x13b7,0x13b7,6,0x13b8,0x13b8,6,0x13b9,0x13b9,6,0x13ba,0x13ba,6,0x13bb, -0x13bb,6,0x13bc,0x13bc,6,0x13bd,0x13bd,6,0x13be,0x13be,6,0x13bf,0x13bf,6,0x13c0,0x13c0, -6,0x13c1,0x13c1,6,0x13c2,0x13c2,6,0x13c3,0x13c3,6,0x13c4,0x13c4,6,0x13c5,0x13c5,6, -0x13c6,0x13c6,6,0x13c7,0x13c7,6,0x13c8,0x13c8,6,0x13c9,0x13c9,6,0x13ca,0x13ca,6,0x13cb, -0x13cb,6,0x13cc,0x13cc,6,0x13cd,0x13cd,6,0x13ce,0x13ce,6,0x13cf,0x13cf,6,0x13d0,0x13d0, -6,0x13d1,0x13d1,6,0x13d2,0x13d2,6,0x13d3,0x13d3,6,0x13d4,0x13d4,6,0x13d5,0x13d5,6, -0x13d6,0x13d6,6,0x13d7,0x13d7,6,0x13d8,0x13d8,6,0x13d9,0x13d9,6,0x13da,0x13da,6,0x13db, -0x13db,6,0x13dc,0x13dc,6,0x13dd,0x13dd,6,0x13de,0x13de,6,0x13df,0x13df,6,0x13e0,0x13e0, -6,0x13e1,0x13e1,6,0x13e2,0x13e2,6,0x13e3,0x13e3,6,0x13e4,0x13e4,6,0x13e5,0x13e5,6, -0x13e6,0x13e6,6,0x13e7,0x13e7,6,0x13e8,0x13e8,6,0x13e9,0x13e9,6,0x13ea,0x13ea,6,0x13eb, -0x13eb,6,0x13ec,0x13ec,6,0x13ed,0x13ed,6,0x13ee,0x13ee,6,0x13ef,0x13ef,0x80,0x2220,0x66, -0x66,0x46,0x46,0x46,0x66,0x80,0x2220,0x66,0x69,0x46,0x49,0x46,0x69,0x80,0x2220,0x66, -0x6c,0x46,0x4c,0x46,0x6c,0x80,0x3330,0x66,0x66,0x69,0x46,0x46,0x49,0x46,0x66,0x69, -0x80,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,0x46,0x66,0x6c,0xc0,1,0x2220,0x73,0x74, -0x53,0x54,0x53,0x74,0xfb06,0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb05,0x80, -0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x80,0x2220,0x574,0x565,0x544,0x535,0x544,0x565,0x80, -0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x80,0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576,0x80, -0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d +0xa7ac,4,0xa78d,4,0xa7aa,4,0xa7ae,4,0x2c62,4,0xa7ad,4,0x2c6e,4,0x2c64,4, +0xa7b1,0x1004,0xa7b2,4,0xa7b0,0x6000,0x3046,0x3b9,0x399,1,0x1fbe,0xc0,1,0x3330,0x3b9,0x308, +0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x41,0x3b2,1,0x3d0,0x41,0x3b5,1,0x3f5, +0x41,0x3b8,2,0x3d1,0x3f4,0x41,0x3b9,2,0x345,0x1fbe,0x41,0x3ba,1,0x3f0,0x41,0x3bc, +1,0xb5,0x41,0x3c0,1,0x3d6,0x41,0x3c1,1,0x3f1,0x4041,0x3c3,1,0x3c2,0x41,0x3c6, +1,0x3d5,0x41,0x3c9,1,0x2126,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5, +0x308,0x301,0x1fe3,0x44,0x392,1,0x3d0,0x44,0x395,1,0x3f5,0x44,0x398,2,0x3d1,0x3f4, +0x44,0x399,2,0x345,0x1fbe,0x44,0x39a,1,0x3f0,0x44,0x39c,1,0xb5,0x44,0x3a0,1, +0x3d6,0x44,0x3a1,1,0x3f1,6,0x3c3,0x3a3,0x44,0x3a3,1,0x3c2,0x44,0x3a6,1,0x3d5, +0x44,0x3a9,1,0x2126,6,0x3b2,0x392,0x46,0x3b8,0x398,1,0x3f4,6,0x3c6,0x3a6,6, +0x3c0,0x3a0,6,0x3ba,0x39a,6,0x3c1,0x3a1,0x41,0x3b8,2,0x398,0x3d1,6,0x3b5,0x395, +0x41,0x432,1,0x1c80,0x41,0x434,1,0x1c81,0x41,0x43e,1,0x1c82,0x41,0x441,1,0x1c83, +0x41,0x442,2,0x1c84,0x1c85,0x41,0x44a,1,0x1c86,0x44,0x412,1,0x1c80,0x44,0x414,1, +0x1c81,0x44,0x41e,1,0x1c82,0x44,0x421,1,0x1c83,0x44,0x422,2,0x1c84,0x1c85,0x44,0x42a, +1,0x1c86,0x41,0x463,1,0x1c87,0x44,0x462,1,0x1c87,0x80,0x2220,0x565,0x582,0x535,0x552, +0x535,0x582,1,0x2d00,1,0x2d01,1,0x2d02,1,0x2d03,1,0x2d04,1,0x2d05,1,0x2d06, +1,0x2d07,1,0x2d08,1,0x2d09,1,0x2d0a,1,0x2d0b,1,0x2d0c,1,0x2d0d,1,0x2d0e, +1,0x2d0f,1,0x2d10,1,0x2d11,1,0x2d12,1,0x2d13,1,0x2d14,1,0x2d15,1,0x2d16, +1,0x2d17,1,0x2d18,1,0x2d19,1,0x2d1a,1,0x2d1b,1,0x2d1c,1,0x2d1d,1,0x2d1e, +1,0x2d1f,1,0x2d20,1,0x2d21,1,0x2d22,1,0x2d23,1,0x2d24,1,0x2d25,1,0x2d27, +1,0x2d2d,3,0xab70,0x13a0,3,0xab71,0x13a1,3,0xab72,0x13a2,3,0xab73,0x13a3,3,0xab74, +0x13a4,3,0xab75,0x13a5,3,0xab76,0x13a6,3,0xab77,0x13a7,3,0xab78,0x13a8,3,0xab79,0x13a9, +3,0xab7a,0x13aa,3,0xab7b,0x13ab,3,0xab7c,0x13ac,3,0xab7d,0x13ad,3,0xab7e,0x13ae,3, +0xab7f,0x13af,3,0xab80,0x13b0,3,0xab81,0x13b1,3,0xab82,0x13b2,3,0xab83,0x13b3,3,0xab84, +0x13b4,3,0xab85,0x13b5,3,0xab86,0x13b6,3,0xab87,0x13b7,3,0xab88,0x13b8,3,0xab89,0x13b9, +3,0xab8a,0x13ba,3,0xab8b,0x13bb,3,0xab8c,0x13bc,3,0xab8d,0x13bd,3,0xab8e,0x13be,3, +0xab8f,0x13bf,3,0xab90,0x13c0,3,0xab91,0x13c1,3,0xab92,0x13c2,3,0xab93,0x13c3,3,0xab94, +0x13c4,3,0xab95,0x13c5,3,0xab96,0x13c6,3,0xab97,0x13c7,3,0xab98,0x13c8,3,0xab99,0x13c9, +3,0xab9a,0x13ca,3,0xab9b,0x13cb,3,0xab9c,0x13cc,3,0xab9d,0x13cd,3,0xab9e,0x13ce,3, +0xab9f,0x13cf,3,0xaba0,0x13d0,3,0xaba1,0x13d1,3,0xaba2,0x13d2,3,0xaba3,0x13d3,3,0xaba4, +0x13d4,3,0xaba5,0x13d5,3,0xaba6,0x13d6,3,0xaba7,0x13d7,3,0xaba8,0x13d8,3,0xaba9,0x13d9, +3,0xabaa,0x13da,3,0xabab,0x13db,3,0xabac,0x13dc,3,0xabad,0x13dd,3,0xabae,0x13de,3, +0xabaf,0x13df,3,0xabb0,0x13e0,3,0xabb1,0x13e1,3,0xabb2,0x13e2,3,0xabb3,0x13e3,3,0xabb4, +0x13e4,3,0xabb5,0x13e5,3,0xabb6,0x13e6,3,0xabb7,0x13e7,3,0xabb8,0x13e8,3,0xabb9,0x13e9, +3,0xabba,0x13ea,3,0xabbb,0x13eb,3,0xabbc,0x13ec,3,0xabbd,0x13ed,3,0xabbe,0x13ee,3, +0xabbf,0x13ef,3,0x13f8,0x13f0,3,0x13f9,0x13f1,3,0x13fa,0x13f2,3,0x13fb,0x13f3,3,0x13fc, +0x13f4,3,0x13fd,0x13f5,6,0x13f0,0x13f0,6,0x13f1,0x13f1,6,0x13f2,0x13f2,6,0x13f3,0x13f3, +6,0x13f4,0x13f4,6,0x13f5,0x13f5,6,0x432,0x412,6,0x434,0x414,6,0x43e,0x41e,6, +0x441,0x421,0x46,0x442,0x422,1,0x1c85,0x46,0x442,0x422,1,0x1c84,6,0x44a,0x42a,6, +0x463,0x462,6,0xa64b,0xa64a,4,0xa77d,4,0x2c63,0x41,0x1e61,1,0x1e9b,0x44,0x1e60,1, +0x1e9b,0x80,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x80,0x2220,0x74,0x308,0x54,0x308,0x54, +0x308,0x80,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x80,0x2220,0x79,0x30a,0x59,0x30a,0x59, +0x30a,0x80,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,6,0x1e61,0x1e60,0x81,0xdf,0x20,0x73, +0x73,0x80,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x80,0x3330,0x3c5,0x313,0x300,0x3a5,0x313, +0x300,0x3a5,0x313,0x300,0x80,0x3330,0x3c5,0x313,0x301,0x3a5,0x313,0x301,0x3a5,0x313,0x301,0x80, +0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x84,0x1f88,0x220,0x1f00,0x3b9,0x1f08, +0x399,0x84,0x1f89,0x220,0x1f01,0x3b9,0x1f09,0x399,0x84,0x1f8a,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x84, +0x1f8b,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x84,0x1f8c,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x84,0x1f8d,0x220, +0x1f05,0x3b9,0x1f0d,0x399,0x84,0x1f8e,0x220,0x1f06,0x3b9,0x1f0e,0x399,0x84,0x1f8f,0x220,0x1f07,0x3b9, +0x1f0f,0x399,0x81,0x1f80,0x220,0x1f00,0x3b9,0x1f08,0x399,0x81,0x1f81,0x220,0x1f01,0x3b9,0x1f09,0x399, +0x81,0x1f82,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x81,0x1f83,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x81,0x1f84, +0x220,0x1f04,0x3b9,0x1f0c,0x399,0x81,0x1f85,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x81,0x1f86,0x220,0x1f06, +0x3b9,0x1f0e,0x399,0x81,0x1f87,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x84,0x1f98,0x220,0x1f20,0x3b9,0x1f28, +0x399,0x84,0x1f99,0x220,0x1f21,0x3b9,0x1f29,0x399,0x84,0x1f9a,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x84, +0x1f9b,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x84,0x1f9c,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x84,0x1f9d,0x220, +0x1f25,0x3b9,0x1f2d,0x399,0x84,0x1f9e,0x220,0x1f26,0x3b9,0x1f2e,0x399,0x84,0x1f9f,0x220,0x1f27,0x3b9, +0x1f2f,0x399,0x81,0x1f90,0x220,0x1f20,0x3b9,0x1f28,0x399,0x81,0x1f91,0x220,0x1f21,0x3b9,0x1f29,0x399, +0x81,0x1f92,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x81,0x1f93,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x81,0x1f94, +0x220,0x1f24,0x3b9,0x1f2c,0x399,0x81,0x1f95,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x81,0x1f96,0x220,0x1f26, +0x3b9,0x1f2e,0x399,0x81,0x1f97,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x84,0x1fa8,0x220,0x1f60,0x3b9,0x1f68, +0x399,0x84,0x1fa9,0x220,0x1f61,0x3b9,0x1f69,0x399,0x84,0x1faa,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x84, +0x1fab,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x84,0x1fac,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x84,0x1fad,0x220, +0x1f65,0x3b9,0x1f6d,0x399,0x84,0x1fae,0x220,0x1f66,0x3b9,0x1f6e,0x399,0x84,0x1faf,0x220,0x1f67,0x3b9, +0x1f6f,0x399,0x81,0x1fa0,0x220,0x1f60,0x3b9,0x1f68,0x399,0x81,0x1fa1,0x220,0x1f61,0x3b9,0x1f69,0x399, +0x81,0x1fa2,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x81,0x1fa3,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x81,0x1fa4, +0x220,0x1f64,0x3b9,0x1f6c,0x399,0x81,0x1fa5,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x81,0x1fa6,0x220,0x1f66, +0x3b9,0x1f6e,0x399,0x81,0x1fa7,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x80,0x2220,0x1f70,0x3b9,0x1fba,0x399, +0x1fba,0x345,0x84,0x1fbc,0x220,0x3b1,0x3b9,0x391,0x399,0x80,0x2220,0x3ac,0x3b9,0x386,0x399,0x386, +0x345,0x80,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,0x80,0x3330,0x3b1,0x342,0x3b9,0x391,0x342, +0x399,0x391,0x342,0x345,0x81,0x1fb3,0x220,0x3b1,0x3b9,0x391,0x399,0x46,0x3b9,0x399,1,0x345, +0x80,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x84,0x1fcc,0x220,0x3b7,0x3b9,0x397,0x399,0x80, +0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x80,0x2220,0x3b7,0x342,0x397,0x342,0x397,0x342,0x80, +0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0x81,0x1fc3,0x220,0x3b7,0x3b9,0x397, +0x399,0x80,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308,0x300,0xc0,1,0x3330,0x3b9, +0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x390,0x80,0x2220,0x3b9,0x342,0x399,0x342,0x399, +0x342,0x80,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308,0x342,0x80,0x3330,0x3c5,0x308, +0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301, +0x3a5,0x308,0x301,0x3b0,0x80,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1,0x313,0x80,0x2220,0x3c5,0x342, +0x3a5,0x342,0x3a5,0x342,0x80,0x3330,0x3c5,0x308,0x342,0x3a5,0x308,0x342,0x3a5,0x308,0x342,0x80, +0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x84,0x1ffc,0x220,0x3c9,0x3b9,0x3a9,0x399,0x80,0x2220, +0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x80,0x2220,0x3c9,0x342,0x3a9,0x342,0x3a9,0x342,0x80,0x3330, +0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,0x81,0x1ff3,0x220,0x3c9,0x3b9,0x3a9,0x399, +0x41,0x3c9,1,0x3a9,0x41,0x6b,1,0x4b,0x41,0xe5,1,0xc5,1,0x26b,1,0x1d7d, +1,0x27d,4,0x23a,4,0x23e,1,0x251,1,0x271,1,0x250,1,0x252,1,0x23f, +1,0x240,4,0x10a0,4,0x10a1,4,0x10a2,4,0x10a3,4,0x10a4,4,0x10a5,4,0x10a6, +4,0x10a7,4,0x10a8,4,0x10a9,4,0x10aa,4,0x10ab,4,0x10ac,4,0x10ad,4,0x10ae, +4,0x10af,4,0x10b0,4,0x10b1,4,0x10b2,4,0x10b3,4,0x10b4,4,0x10b5,4,0x10b6, +4,0x10b7,4,0x10b8,4,0x10b9,4,0x10ba,4,0x10bb,4,0x10bc,4,0x10bd,4,0x10be, +4,0x10bf,4,0x10c0,4,0x10c1,4,0x10c2,4,0x10c3,4,0x10c4,4,0x10c5,4,0x10c7, +4,0x10cd,0x41,0xa64b,1,0x1c88,0x44,0xa64a,1,0x1c88,1,0x1d79,1,0x265,1,0x266, +1,0x25c,1,0x261,1,0x26c,1,0x26a,1,0x29e,1,0x287,1,0x29d,1,0xab53, +4,0xa7b3,6,0x13a0,0x13a0,6,0x13a1,0x13a1,6,0x13a2,0x13a2,6,0x13a3,0x13a3,6,0x13a4, +0x13a4,6,0x13a5,0x13a5,6,0x13a6,0x13a6,6,0x13a7,0x13a7,6,0x13a8,0x13a8,6,0x13a9,0x13a9, +6,0x13aa,0x13aa,6,0x13ab,0x13ab,6,0x13ac,0x13ac,6,0x13ad,0x13ad,6,0x13ae,0x13ae,6, +0x13af,0x13af,6,0x13b0,0x13b0,6,0x13b1,0x13b1,6,0x13b2,0x13b2,6,0x13b3,0x13b3,6,0x13b4, +0x13b4,6,0x13b5,0x13b5,6,0x13b6,0x13b6,6,0x13b7,0x13b7,6,0x13b8,0x13b8,6,0x13b9,0x13b9, +6,0x13ba,0x13ba,6,0x13bb,0x13bb,6,0x13bc,0x13bc,6,0x13bd,0x13bd,6,0x13be,0x13be,6, +0x13bf,0x13bf,6,0x13c0,0x13c0,6,0x13c1,0x13c1,6,0x13c2,0x13c2,6,0x13c3,0x13c3,6,0x13c4, +0x13c4,6,0x13c5,0x13c5,6,0x13c6,0x13c6,6,0x13c7,0x13c7,6,0x13c8,0x13c8,6,0x13c9,0x13c9, +6,0x13ca,0x13ca,6,0x13cb,0x13cb,6,0x13cc,0x13cc,6,0x13cd,0x13cd,6,0x13ce,0x13ce,6, +0x13cf,0x13cf,6,0x13d0,0x13d0,6,0x13d1,0x13d1,6,0x13d2,0x13d2,6,0x13d3,0x13d3,6,0x13d4, +0x13d4,6,0x13d5,0x13d5,6,0x13d6,0x13d6,6,0x13d7,0x13d7,6,0x13d8,0x13d8,6,0x13d9,0x13d9, +6,0x13da,0x13da,6,0x13db,0x13db,6,0x13dc,0x13dc,6,0x13dd,0x13dd,6,0x13de,0x13de,6, +0x13df,0x13df,6,0x13e0,0x13e0,6,0x13e1,0x13e1,6,0x13e2,0x13e2,6,0x13e3,0x13e3,6,0x13e4, +0x13e4,6,0x13e5,0x13e5,6,0x13e6,0x13e6,6,0x13e7,0x13e7,6,0x13e8,0x13e8,6,0x13e9,0x13e9, +6,0x13ea,0x13ea,6,0x13eb,0x13eb,6,0x13ec,0x13ec,6,0x13ed,0x13ed,6,0x13ee,0x13ee,6, +0x13ef,0x13ef,0x80,0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x80,0x2220,0x66,0x69,0x46,0x49, +0x46,0x69,0x80,0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x80,0x3330,0x66,0x66,0x69,0x46, +0x46,0x49,0x46,0x66,0x69,0x80,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,0x46,0x66,0x6c, +0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb06,0xc0,1,0x2220,0x73,0x74,0x53, +0x54,0x53,0x74,0xfb05,0x80,0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x80,0x2220,0x574,0x565, +0x544,0x535,0x544,0x565,0x80,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x80,0x2220,0x57e,0x576, +0x54e,0x546,0x54e,0x576,0x80,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d }; static const uint16_t ucase_props_unfold[370]={ @@ -860,16 +897,16 @@ static const UCaseProps ucase_props_singleton={ ucase_props_unfold, { ucase_props_trieIndex, - ucase_props_trieIndex+3160, + ucase_props_trieIndex+3228, NULL, - 3160, - 7884, + 3228, + 8292, 0x188, - 0xcd4, + 0xd18, 0x0, 0x0, 0xe0800, - 0x2b20, + 0x2cfc, NULL, 0, FALSE, FALSE, 0, NULL }, { 3,0,0,0 } diff --git a/deps/icu-small/source/common/ucasemap.cpp b/deps/icu-small/source/common/ucasemap.cpp index f3ab31fa76610b..c0d56c28731d1f 100644 --- a/deps/icu-small/source/common/ucasemap.cpp +++ b/deps/icu-small/source/common/ucasemap.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -122,58 +124,103 @@ static inline int32_t appendResult(uint8_t *dest, int32_t destIndex, int32_t destCapacity, int32_t result, const UChar *s) { UChar32 c; - int32_t length, destLength; + int32_t length; UErrorCode errorCode; /* decode the result */ if(result<0) { /* (not) original code point */ c=~result; - length=-1; + length=U8_LENGTH(c); } else if(result<=UCASE_MAX_STRING_LENGTH) { c=U_SENTINEL; length=result; } else { c=result; - length=-1; + length=U8_LENGTH(c); + } + if(length>(INT32_MAX-destIndex)) { + return -1; // integer overflow } if(destIndex=0) { /* code point */ UBool isError=FALSE; U8_APPEND(dest, destIndex, destCapacity, c, isError); if(isError) { /* overflow, nothing written */ - destIndex+=U8_LENGTH(c); + destIndex+=length; } } else { /* string */ + int32_t destLength; errorCode=U_ZERO_ERROR; u_strToUTF8( (char *)(dest+destIndex), destCapacity-destIndex, &destLength, s, length, &errorCode); + if(U_FAILURE(errorCode) && errorCode != U_BUFFER_OVERFLOW_ERROR) { + return -1; + } + if(destLength>(INT32_MAX-destIndex)) { + return -1; // integer overflow + } destIndex+=destLength; /* we might have an overflow, but we know the actual length */ } } else { /* preflight */ - if(length<0) { - destIndex+=U8_LENGTH(c); + if(c>=0) { + destIndex+=length; } else { + int32_t destLength; errorCode=U_ZERO_ERROR; u_strToUTF8( NULL, 0, &destLength, s, length, &errorCode); + if(U_FAILURE(errorCode) && errorCode != U_BUFFER_OVERFLOW_ERROR) { + return -1; + } + if(destLength>(INT32_MAX-destIndex)) { + return -1; // integer overflow + } destIndex+=destLength; } } return destIndex; } +static inline int32_t +appendUChar(uint8_t *dest, int32_t destIndex, int32_t destCapacity, UChar c) { + int32_t length=U8_LENGTH(c); + if(length>(INT32_MAX-destIndex)) { + return -1; // integer overflow + } + int32_t limit=destIndex+length; + if(limit0) { + if(length>(INT32_MAX-destIndex)) { + return -1; // integer overflow + } + if((destIndex+length)<=destCapacity) { + uprv_memcpy(dest+destIndex, s, length); + } + destIndex+=length; + } + return destIndex; +} + static UChar32 U_CALLCONV utf8_caseContextIterator(void *context, int8_t dir) { UCaseContext *csc=(UCaseContext *)context; @@ -231,9 +278,11 @@ _caseMap(const UCaseMap *csm, UCaseMapFull *map, U8_NEXT(src, srcIndex, srcLimit, c); csc->cpLimit=srcIndex; if(c<0) { - int32_t i=csc->cpStart; - while(destIndexcpStart, srcIndex-csc->cpStart); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; } continue; } @@ -243,6 +292,10 @@ _caseMap(const UCaseMap *csm, UCaseMapFull *map, dest[destIndex++]=(uint8_t)c2; } else { destIndex=appendResult(dest, destIndex, destCapacity, c, s); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } } } @@ -261,7 +314,7 @@ ucasemap_internalUTF8ToTitle(const UCaseMap *csm, UErrorCode *pErrorCode) { const UChar *s; UChar32 c; - int32_t prev, titleStart, titleLimit, idx, destIndex, length; + int32_t prev, titleStart, titleLimit, idx, destIndex; UBool isFirstIndex; if(U_FAILURE(*pErrorCode)) { @@ -327,30 +380,36 @@ ucasemap_internalUTF8ToTitle(const UCaseMap *csm, break; /* cased letter at [titleStart..titleLimit[ */ } } - length=titleStart-prev; - if(length>0) { - if((destIndex+length)<=destCapacity) { - uprv_memcpy(dest+destIndex, src+prev, length); - } - destIndex+=length; + destIndex=appendString(dest, destIndex, destCapacity, src+prev, titleStart-prev); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; } } if(titleStartcsp, c, utf8_caseContextIterator, &csc, &s, csm->locale, &locCache); - destIndex=appendResult(dest, destIndex, destCapacity, c, s); + if(c>=0) { + csc.cpStart=titleStart; + csc.cpLimit=titleLimit; + c=ucase_toFullTitle(csm->csp, c, utf8_caseContextIterator, &csc, &s, csm->locale, &locCache); + destIndex=appendResult(dest, destIndex, destCapacity, c, s); + } else { + // Malformed UTF-8. + destIndex=appendString(dest, destIndex, destCapacity, src+titleStart, titleLimit-titleStart); + } + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } /* Special case Dutch IJ titlecasing */ - if ( titleStart+1 < idx && - ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_DUTCH && - ( src[titleStart] == 0x0049 || src[titleStart] == 0x0069 ) && - ( src[titleStart+1] == 0x004A || src[titleStart+1] == 0x006A )) { - c=0x004A; - destIndex=appendResult(dest, destIndex, destCapacity, c, s); - titleLimit++; + if (titleStart+1 < idx && + ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_DUTCH && + (src[titleStart] == 0x0049 || src[titleStart] == 0x0069) && + (src[titleStart+1] == 0x004A || src[titleStart+1] == 0x006A)) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x004A); + titleLimit++; } /* lowercase [titleLimit..index[ */ if(titleLimitcsp, c); + if ((type & UCASE_IGNORABLE) != 0) { + // c is case-ignorable + nextState |= (state & AFTER_CASED); + } else if (type != UCASE_NONE) { + // c is cased + nextState |= AFTER_CASED; + } + uint32_t data = getLetterData(c); + if (data > 0) { + uint32_t upper = data & UPPER_MASK; + // Add a dialytika to this iota or ypsilon vowel + // if we removed a tonos from the previous vowel, + // and that previous vowel did not also have (or gain) a dialytika. + // Adding one only to the final vowel in a longer sequence + // (which does not occur in normal writing) would require lookahead. + // Set the same flag as for preserving an existing dialytika. + if ((data & HAS_VOWEL) != 0 && (state & AFTER_VOWEL_WITH_ACCENT) != 0 && + (upper == 0x399 || upper == 0x3A5)) { + data |= HAS_DIALYTIKA; + } + int32_t numYpogegrammeni = 0; // Map each one to a trailing, spacing, capital iota. + if ((data & HAS_YPOGEGRAMMENI) != 0) { + numYpogegrammeni = 1; + } + // Skip combining diacritics after this Greek letter. + int32_t nextNextIndex = nextIndex; + while (nextIndex < srcLength) { + UChar32 c2; + U8_NEXT(src, nextNextIndex, srcLength, c2); + uint32_t diacriticData = getDiacriticData(c2); + if (diacriticData != 0) { + data |= diacriticData; + if ((diacriticData & HAS_YPOGEGRAMMENI) != 0) { + ++numYpogegrammeni; + } + nextIndex = nextNextIndex; + } else { + break; // not a Greek diacritic + } + } + if ((data & HAS_VOWEL_AND_ACCENT_AND_DIALYTIKA) == HAS_VOWEL_AND_ACCENT) { + nextState |= AFTER_VOWEL_WITH_ACCENT; + } + // Map according to Greek rules. + UBool addTonos = FALSE; + if (upper == 0x397 && + (data & HAS_ACCENT) != 0 && + numYpogegrammeni == 0 && + (state & AFTER_CASED) == 0 && + !isFollowedByCasedLetter(csm->csp, src, nextIndex, srcLength)) { + // Keep disjunctive "or" with (only) a tonos. + // We use the same "word boundary" conditions as for the Final_Sigma test. + if (i == nextIndex) { + upper = 0x389; // Preserve the precomposed form. + } else { + addTonos = TRUE; + } + } else if ((data & HAS_DIALYTIKA) != 0) { + // Preserve a vowel with dialytika in precomposed form if it exists. + if (upper == 0x399) { + upper = 0x3AA; + data &= ~HAS_EITHER_DIALYTIKA; + } else if (upper == 0x3A5) { + upper = 0x3AB; + data &= ~HAS_EITHER_DIALYTIKA; + } + } + destIndex=appendUChar(dest, destIndex, destCapacity, (UChar)upper); + if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x308); // restore or add a dialytika + } + if (destIndex >= 0 && addTonos) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x301); + } + while (destIndex >= 0 && numYpogegrammeni > 0) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x399); + --numYpogegrammeni; + } + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + } else if(c>=0) { + const UChar *s; + UChar32 c2 = 0; + c=ucase_toFullUpper(csm->csp, c, NULL, NULL, &s, csm->locale, &locCache); + if((destIndexdestCapacity) { + *pErrorCode=U_BUFFER_OVERFLOW_ERROR; + } + return destIndex; +} + +} // namespace GreekUpper +U_NAMESPACE_END + static int32_t U_CALLCONV ucasemap_internalUTF8ToLower(const UCaseMap *csm, uint8_t *dest, int32_t destCapacity, @@ -406,6 +618,10 @@ ucasemap_internalUTF8ToUpper(const UCaseMap *csm, uint8_t *dest, int32_t destCapacity, const uint8_t *src, int32_t srcLength, UErrorCode *pErrorCode) { + int32_t locCache = csm->locCache; + if (ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_GREEK) { + return GreekUpper::toUpper(csm, dest, destCapacity, src, srcLength, pErrorCode); + } UCaseContext csc=UCASECONTEXT_INITIALIZER; csc.p=(void *)src; csc.limit=srcLength; @@ -434,8 +650,11 @@ utf8_foldCase(const UCaseProps *csp, start=srcIndex; U8_NEXT(src, srcIndex, srcLength, c); if(c<0) { - while(destIndex>2)-0xbf; int32_t exp=(ntv&3)+1; @@ -458,6 +460,12 @@ u_getNumericValue(UChar32 c) { } return numValue; + } else if(ntv>2); + return (double)numerator/denominator; } else { /* reserved */ return U_NO_NUMERIC_VALUE; diff --git a/deps/icu-small/source/common/uchar_props_data.h b/deps/icu-small/source/common/uchar_props_data.h index f898e3f0a567f8..79ba55eb75d570 100644 --- a/deps/icu-small/source/common/uchar_props_data.h +++ b/deps/icu-small/source/common/uchar_props_data.h @@ -1,153 +1,155 @@ -/* - * Copyright (C) 1999-2016, International Business Machines - * Corporation and others. All Rights Reserved. - * - * file name: uchar_props_data.h - * - * machine-generated by: icu/tools/unicode/c/genprops/corepropsbuilder.cpp - */ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +// +// Copyright (C) 1999-2016, International Business Machines +// Corporation and others. All Rights Reserved. +// +// file name: uchar_props_data.h +// +// machine-generated by: icu/tools/unicode/c/genprops/corepropsbuilder.cpp + #ifdef INCLUDED_FROM_UCHAR_C -static const UVersionInfo dataVersion={8,0,0,0}; +static const UVersionInfo dataVersion={9,0,0,0}; -static const uint16_t propsTrie_index[19820]={ -0x41e,0x426,0x42e,0x436,0x44e,0x456,0x45e,0x466,0x46e,0x476,0x47c,0x484,0x48c,0x494,0x49c,0x4a4, -0x4aa,0x4b2,0x4ba,0x4c2,0x4c5,0x4cd,0x4d5,0x4dd,0x4e5,0x4ed,0x4e9,0x4f1,0x4f9,0x501,0x506,0x50e, -0x516,0x51e,0x522,0x52a,0x532,0x53a,0x542,0x54a,0x546,0x54e,0x553,0x55b,0x561,0x569,0x571,0x579, -0x581,0x589,0x591,0x599,0x59e,0x5a6,0x5a9,0x5b1,0x5b9,0x5c1,0x5c7,0x5cf,0x5ce,0x5d6,0x5de,0x5e6, -0x5f6,0x5ee,0x5fe,0x43e,0x43e,0x60e,0x43e,0x606,0x61e,0x620,0x628,0x616,0x638,0x63e,0x646,0x630, -0x656,0x65c,0x664,0x64e,0x674,0x67a,0x682,0x66c,0x692,0x698,0x6a0,0x68a,0x6b0,0x6b8,0x6c0,0x6a8, -0x6d0,0x6d6,0x6de,0x6c8,0x6ee,0x6f4,0x6fc,0x6e6,0x6ee,0x70b,0x713,0x704,0x723,0x72a,0x732,0x71b, -0x5ca,0x73a,0x742,0x43e,0x74a,0x752,0x75a,0x43e,0x762,0x76a,0x772,0x777,0x77f,0x786,0x78e,0x43e, -0x589,0x796,0x79e,0x7a6,0x7ae,0x516,0x7be,0x7b6,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x7c4,0x589,0x7cc,0x7c2,0x7d4,0x589,0x7d0,0x589,0x7da,0x7e2,0x7ea,0x516,0x516,0x7f2, -0x7fa,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x7ff,0x807,0x589,0x589,0x80f,0x817,0x81f,0x827,0x82f,0x589,0x837,0x83f,0x847, -0x857,0x589,0x85f,0x861,0x589,0x84f,0x589,0x869,0x87d,0x871,0x879,0x885,0x589,0x88d,0x893,0x89b, -0x8a3,0x589,0x8b3,0x8bb,0x8c3,0x8ab,0x43e,0x43e,0x8d3,0x8d6,0x8de,0x8cb,0x8ee,0x8e6,0x589,0x8f5, -0x589,0x904,0x8fd,0x90c,0x43e,0x43e,0x914,0x91c,0x4be,0x924,0x927,0x92d,0x934,0x927,0x4e5,0x93c, -0x46e,0x46e,0x46e,0x46e,0x944,0x46e,0x46e,0x46e,0x954,0x95c,0x964,0x96c,0x974,0x978,0x980,0x94c, -0x998,0x9a0,0x988,0x990,0x9a8,0x9b0,0x9b8,0x9c0,0x9d8,0x9c8,0x9d0,0x9e0,0x9e8,0x9f7,0x9fc,0x9ef, -0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0xa0c,0xa14,0x89b,0xa17,0xa1f,0xa26,0xa2b,0xa33, -0x89b,0xa38,0xa37,0xa48,0xa4b,0x89b,0x89b,0xa40,0x89b,0x89b,0x89b,0x89b,0x89b,0xa5a,0xa62,0xa52, -0x89b,0x89b,0x89b,0xa67,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0xa6d,0xa75,0x89b,0xa7d,0xa84, -0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0xa04,0xa04,0xa04,0xa04,0xa8c,0xa04,0xa93,0xa9a, -0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0xa04,0x89b,0xaa2,0xaa9,0xaad,0xab3,0xab9,0xac1,0xac6, -0x516,0xad6,0xace,0xade,0x46e,0x46e,0x46e,0xae6,0x4be,0xaee,0x589,0xaf4,0xb04,0xafc,0xafc,0x4e5, -0xb0c,0xb14,0xb1c,0x43e,0xb24,0x89b,0x89b,0xb2b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0xb33,0xb39, -0xb49,0xb41,0x5ca,0x589,0xb51,0x7fa,0x589,0xb59,0xb61,0xb66,0x589,0x589,0xb6b,0x575,0x89b,0xb72, -0xb7a,0xb82,0xb88,0x89b,0xb82,0xb90,0x89b,0xb7a,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b, -0xb98,0x589,0x589,0x589,0xba0,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0xba6,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xbab,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x869,0x89b,0x89b, -0xbb3,0x589,0xbb6,0x589,0xbbe,0xbc4,0xbcc,0xbd4,0xbd9,0x589,0x589,0xbdd,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xbe4,0x589,0xbeb,0xbf1,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xbf9,0x589,0x589,0x589,0xc01,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0xc03,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc0a,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0xc11,0x589,0x589,0x589,0xc18,0xc20,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc25,0x589,0x589,0xc2d,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc31,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc34,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc37,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0xc3d,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0xc45,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0xc4a,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0xc4f,0x589,0x589,0x589,0xc54,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0xc5c,0xc63,0xc67,0x589,0x589,0x589,0xc6e,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x869,0x43e, -0xc7c,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0xc74,0x89b,0xc84,0x90c,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0xc89,0xc91,0x46e,0xca1,0xc99,0x589,0x589,0xca9,0xcb1,0xcc1,0x46e,0xcc6,0xcce,0xcd4,0x43e,0xcb9, -0xcdc,0xce4,0x589,0xcec,0xcfc,0xcff,0xcf4,0xd07,0x5de,0xd0f,0xd16,0xd1e,0x61e,0xd2e,0xd26,0xd36, -0x589,0xd3e,0xd46,0xd4e,0x589,0xd56,0xd5e,0xd66,0xd6e,0xd76,0xd7a,0xd82,0x4be,0x4be,0x589,0xd8a, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xd92,0xd99,0x860, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0x589,0x589,0x589,0xdb1,0x589,0xc6f,0xdb8,0xdbd, -0x589,0x589,0x589,0xdc5,0x589,0x589,0xdc9,0x43e,0xde1,0xdd1,0xdd9,0x589,0x589,0xde9,0xdf1,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xdf6,0xdfe,0x589,0xe02,0x589,0xe08,0xe0c, -0xe14,0xe1c,0xe23,0xe2b,0x589,0x589,0x589,0xe31,0xe49,0x42e,0xe51,0xe59,0xe5e,0x87d,0xe39,0xe41, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0x10f8,0x10f8,0x1138,0x1178,0x11b8,0x11f0,0x1230,0x1270,0x12a8,0x12e8,0x1314,0x1354,0x1394,0x13a4,0x13e4,0x1418, -0x1458,0x1488,0x14c8,0x1508,0x1518,0x154c,0x1584,0x15c4,0x1604,0x1644,0x1678,0x16a4,0x16e4,0x171c,0x1738,0x1778, -0xa80,0xac0,0xb00,0xb3b,0xb7b,0xa40,0xbbb,0xa40,0xbdd,0xa40,0xa40,0xa40,0xa40,0xc1d,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xc5d,0xc7d,0xa40,0xa40,0xcbd,0xcfd,0xa40,0xd3d,0xd7d,0xdbd, -0xdfd,0xe34,0x1db,0x1db,0xe58,0xe8c,0x1db,0xeb4,0x1db,0x1db,0x1db,0x1db,0xee1,0x1db,0x1db,0x1db, -0x1db,0x1db,0x1db,0x1db,0xef5,0x1db,0xf2d,0xf6d,0x1db,0xf78,0xa40,0xa40,0xa40,0xa40,0xa40,0xfb8, +static const uint16_t propsTrie_index[20780]={ +0x44e,0x456,0x45e,0x466,0x47e,0x486,0x48e,0x496,0x49e,0x4a6,0x4ac,0x4b4,0x4bc,0x4c4,0x4cc,0x4d4, +0x4da,0x4e2,0x4ea,0x4f2,0x4f5,0x4fd,0x505,0x50d,0x515,0x51d,0x519,0x521,0x529,0x531,0x536,0x53e, +0x546,0x54e,0x552,0x55a,0x562,0x56a,0x572,0x57a,0x576,0x57e,0x583,0x58b,0x591,0x599,0x5a1,0x5a9, +0x5b1,0x5b9,0x5c1,0x5c9,0x5ce,0x5d6,0x5d9,0x5e1,0x5e9,0x5f1,0x5f7,0x5ff,0x5fe,0x606,0x60e,0x616, +0x626,0x61e,0x62e,0x46e,0x46e,0x63e,0x646,0x636,0x656,0x658,0x660,0x64e,0x670,0x676,0x67e,0x668, +0x68e,0x694,0x69c,0x686,0x6ac,0x6b2,0x6ba,0x6a4,0x6ca,0x6d0,0x6d8,0x6c2,0x6e8,0x6f0,0x6f8,0x6e0, +0x708,0x70e,0x716,0x700,0x726,0x72c,0x734,0x71e,0x744,0x749,0x751,0x73c,0x761,0x768,0x770,0x759, +0x5fa,0x778,0x780,0x46e,0x788,0x790,0x798,0x46e,0x7a0,0x7a8,0x7b0,0x7b5,0x7bd,0x7c4,0x7cc,0x46e, +0x5b9,0x7d4,0x7dc,0x7e4,0x7ec,0x546,0x7fc,0x7f4,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x802,0x5b9,0x80a,0x800,0x812,0x5b9,0x80e,0x5b9,0x818,0x820,0x828,0x546,0x546,0x830, +0x838,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x83d,0x845,0x5b9,0x5b9,0x84d,0x855,0x85d,0x865,0x86d,0x5b9,0x875,0x87d,0x885, +0x895,0x5b9,0x89d,0x89f,0x8a7,0x88d,0x5b9,0x8aa,0x8be,0x8b2,0x8ba,0x8c6,0x5b9,0x8ce,0x8d4,0x8dc, +0x8e4,0x5b9,0x8f4,0x8fc,0x904,0x8ec,0x46e,0x46e,0x914,0x917,0x91f,0x90c,0x92f,0x927,0x5b9,0x936, +0x5b9,0x945,0x93e,0x94d,0x955,0x46e,0x95d,0x965,0x4ee,0x96d,0x970,0x976,0x97d,0x970,0x515,0x985, +0x49e,0x49e,0x49e,0x49e,0x98d,0x49e,0x49e,0x49e,0x99d,0x9a5,0x9ad,0x9b5,0x9bd,0x9c1,0x9c9,0x995, +0x9e1,0x9e9,0x9d1,0x9d9,0x9f1,0x9f9,0xa01,0xa09,0xa21,0xa11,0xa19,0xa29,0xa31,0xa40,0xa45,0xa38, +0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa55,0xa5d,0x8dc,0xa60,0xa68,0xa6f,0xa74,0xa7c, +0x8dc,0xa82,0xa81,0xa92,0xa95,0x8dc,0x8dc,0xa8a,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0xaa4,0xaac,0xa9c, +0x8dc,0x8dc,0x8dc,0xab1,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0xab7,0xabf,0x8dc,0xac7,0xace, +0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0xa4d,0xa4d,0xa4d,0xa4d,0xad6,0xa4d,0xadd,0xae4, +0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0x8dc,0xaec,0xaf3,0xaf7,0xafd,0xb03,0xb0b,0xb10, +0x546,0xb20,0xb18,0xb28,0x49e,0x49e,0x49e,0xb30,0x4ee,0xb38,0x5b9,0xb3e,0xb4e,0xb46,0xb46,0x515, +0xb56,0xb5e,0xb66,0x46e,0xb6e,0x8dc,0x8dc,0xb75,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0xb7d,0xb83, +0xb93,0xb8b,0x5fa,0x5b9,0xb9b,0x838,0x5b9,0xba3,0xbab,0xbb0,0x5b9,0x5b9,0xbb5,0x5a5,0x8dc,0xbbc, +0xbc4,0xbcc,0xbd2,0x8dc,0xbcc,0xbda,0x8dc,0xbc4,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc, +0xbe2,0x5b9,0x5b9,0x5b9,0xbea,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0xbf0,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xbf5,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x8aa,0x8dc,0x8dc, +0xbfd,0x5b9,0xc00,0x5b9,0xc08,0xc0e,0xc16,0xc1e,0xc23,0x5b9,0x5b9,0xc27,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc2e,0x5b9,0xc35,0xc3b,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc43,0x5b9,0x5b9,0x5b9,0xc4b,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc4d,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc54,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0xc5b,0x5b9,0x5b9,0x5b9,0xc62,0xc6a,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc6f,0x5b9,0x5b9,0xc77,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc7b,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc7e,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc81,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0xc87,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0xc8f,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0xc94,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc99,0x5b9,0x5b9,0x5b9,0xc9e,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0xca6,0xcad,0xcb1,0x5b9,0x5b9,0x5b9,0xcb8,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x8aa,0x46e, +0xcc6,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0xcbe,0x8dc,0xcce,0x94d,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0xcd3,0xcdb,0x49e,0xceb,0xce3,0x5b9,0x5b9,0xcf3,0xcfb,0xd0b,0x49e,0xd10,0xd18,0xd1e,0x46e,0xd03, +0xd26,0xd2e,0x5b9,0xd36,0xd46,0xd49,0xd3e,0xd51,0x60e,0xd59,0xd60,0xd68,0x656,0xd78,0xd70,0xd80, +0x5b9,0xd88,0xd90,0xd98,0x5b9,0xda0,0xda8,0xdb0,0xdb8,0xdc0,0xdc4,0xdcc,0x4ee,0x4ee,0x5b9,0xdd4, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xddc,0xde3,0x89e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb, +0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0x5b9,0x5b9,0x5b9,0xdfb,0x5b9,0xcb9,0xe02,0xe07, +0x5b9,0x5b9,0x5b9,0xe0f,0x5b9,0x5b9,0x8a9,0x46e,0xe25,0xe15,0xe1d,0x5b9,0x5b9,0xe2d,0xe35,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xe3a,0xe42,0x5b9,0xe46,0x5b9,0xe4c,0xe50, +0xe58,0xe60,0xe67,0xe6f,0x5b9,0x5b9,0x5b9,0xe75,0xe8d,0x45e,0xe95,0xe9d,0xea2,0x8be,0xe7d,0xe85, +0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb, +0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb,0xdeb, +0x11b8,0x11b8,0x11f8,0x1238,0x1278,0x12b0,0x12f0,0x1330,0x1368,0x13a8,0x13d4,0x1414,0x1454,0x1464,0x14a4,0x14d8, +0x1518,0x1548,0x1588,0x15c8,0x15d8,0x160c,0x1644,0x1684,0x16c4,0x1704,0x1738,0x1764,0x17a4,0x17dc,0x17f8,0x1838, +0xa80,0xac0,0xb00,0xb3b,0xb7b,0xa40,0xbbb,0xa40,0xbdd,0xa40,0xa40,0xa40,0xa40,0xc1d,0x1db,0x1db, +0xc5d,0xc9d,0xa40,0xa40,0xa40,0xa40,0xcdd,0xcfd,0xa40,0xa40,0xd3d,0xd7d,0xdbd,0xdfd,0xe3d,0xe7d, +0xebd,0xef4,0x1db,0x1db,0xf18,0xf4c,0x1db,0xf74,0x1db,0x1db,0x1db,0x1db,0xfa1,0x1db,0x1db,0x1db, +0x1db,0x1db,0x1db,0x1db,0xfb5,0x1db,0xfed,0x102d,0x1db,0x1038,0xa40,0xa40,0xa40,0xa40,0xa40,0x1078, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, @@ -170,112 +172,124 @@ static const uint16_t propsTrie_index[19820]={ 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xff8,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0x10b8,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1038, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x10f8, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1038, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0xe66,0xe6d,0xe75,0x43e,0x589,0x589,0x589,0x575,0xe85,0xe7d,0xe9c,0xe8d,0xe94,0xea4,0xb20,0xeac, -0x43e,0x43e,0x43e,0x43e,0xd1e,0x589,0xeb4,0xebc,0x589,0xec4,0xecc,0xed0,0xed8,0x589,0xee0,0x43e, -0x516,0x520,0xee8,0x589,0xeec,0xef4,0x43e,0x43e,0x589,0x865,0x589,0xefc,0x43e,0x43e,0x43e,0x43e, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xb04,0x869,0xe08,0x43e,0x43e,0x43e,0x43e, -0xf0c,0xf04,0xf0f,0xf17,0x87d,0xf1f,0x43e,0xf27,0xf2f,0xf37,0x43e,0x43e,0x589,0xf47,0xf4f,0xf3f, -0xf5f,0xf66,0xf57,0xf6e,0xf76,0x43e,0xf86,0xf7e,0x589,0xf89,0xf91,0xf99,0xfa1,0xfa9,0x43e,0x43e, -0x589,0x589,0xfb1,0x43e,0x516,0xfb9,0x4be,0xfc1,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0xfc9,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0xfd9,0x5bf,0xfe1,0xfd1,0x8ee,0xfe9,0xff1,0xff7,0x100f,0xfff,0x1007,0x1013,0x8ee,0x1023,0x101b,0x102b, -0x103b,0x1033,0x43e,0x43e,0x1042,0x104a,0x5e1,0x1052,0x1062,0x67a,0x106a,0x105a,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x589,0x1072,0x107a,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x1082,0x108a,0x43e, -0x589,0x1092,0x109a,0x43e,0x589,0x10a2,0xef4,0x43e,0x10b2,0x10aa,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x516,0x4be,0x10ba,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x589,0x10c2,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xdc9,0x43e,0x43e,0x43e,0x10d2,0x10da,0x10e2,0x10ca,0x589, -0x589,0x589,0x589,0x589,0x589,0x10ea,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x10f2,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x10f4, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x10c2,0x87d, -0x10fc,0x43e,0x43e,0xdfe,0x1104,0x589,0x1114,0x111c,0x1124,0x110c,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x112c,0x1131,0x1139,0x43e,0x43e,0x43e,0x1141,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589, -0x1149,0x114e,0x1156,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x89b,0x89b,0x89b, -0x89b,0x89b,0x89b,0x89b,0xb33,0x89b,0x115e,0x89b,0x1165,0x116d,0x1173,0x89b,0x1179,0x89b,0x89b,0x1181, -0x43e,0x43e,0x43e,0x43e,0x43e,0x89b,0x89b,0xa34,0x1189,0x43e,0x43e,0x43e,0x43e,0x1199,0x11a0,0x11a5, -0x11ab,0x11b3,0x11bb,0x11c3,0x119d,0x11cb,0x11d3,0x11db,0x11e0,0x11b2,0x1199,0x11a0,0x119c,0x11ab,0x11e8,0x119a, -0x11eb,0x119d,0x11f3,0x11fb,0x1203,0x120a,0x11f6,0x11fe,0x1206,0x120d,0x11f9,0x1215,0x1191,0x89b,0x89b,0x89b, -0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x4e5,0x1225,0x4e5, -0x122c,0x1233,0x121d,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589, -0x589,0x589,0x589,0x123b,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x1249,0x1251,0x1259, -0x1261,0x1269,0x1271,0x43e,0x1241,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x89b,0x1279,0x89b, -0x89b,0xb2b,0x127e,0x1282,0xb33,0x128a,0x128f,0x89b,0x1279,0x1293,0x43e,0x43e,0x129a,0x12a2,0x1293,0x12a8, -0x43e,0x43e,0x43e,0x43e,0x43e,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x12b0,0x89b,0x89b,0x89b, -0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0x89b,0xb24,0x89b,0x12b8,0x89b,0x89b,0x89b,0x89b,0x89b, -0x89b,0x89b,0x89b,0x1177,0x12bd,0x89b,0x89b,0x89b,0xb2b,0x89b,0x89b,0x12c5,0x43e,0x1279,0x89b,0x12cd, -0x89b,0x12d5,0xb35,0x43e,0x43e,0x12dd,0x43e,0x43e,0x43e,0x12e2,0x43e,0xea4,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x12ea,0x589,0x589, -0x12f1,0x589,0x589,0x589,0x12f9,0x589,0x1301,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xc15,0x589,0x589, -0x1309,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x1311,0x1319,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0xc54,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x1320,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x1327,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x132e,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xb04,0x43e,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x60e,0x589,0x589,0x589,0x589,0x589,0x589,0xeec,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x1141,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x589,0x589,0x589,0x589,0x1332,0x589,0x589,0x589, -0x589,0x589,0x589,0x589,0x589,0x589,0x589,0x589,0xeec,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x1342,0x133a,0x133a,0x133a,0x43e,0x43e,0x43e,0x43e, -0x4e5,0x4e5,0x4e5,0x4e5,0x4e5,0x4e5,0x4e5,0x134a,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9, -0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0xda9,0x1352,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x10f8, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0xeaa,0xeb1,0xeb9,0x46e,0x5b9,0x5b9,0x5b9,0x5a5,0xec9,0xec1,0xee0,0xed1,0xed8,0xee8,0xb6a,0xef0, +0x46e,0x46e,0x46e,0x46e,0xd68,0x5b9,0xef8,0xf00,0x5b9,0xf08,0xf10,0xf14,0xf1c,0x5b9,0xf24,0x46e, +0x546,0x550,0xf2c,0x5b9,0xf30,0xf38,0xf48,0xf40,0x5b9,0xf50,0x5b9,0xf57,0x46e,0x46e,0x46e,0x46e, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xb4e,0x8aa,0xe4c,0x46e,0x46e,0x46e,0x46e, +0xf67,0xf5f,0xf6a,0xf72,0x8be,0xf7a,0x46e,0xf82,0xf8a,0xf92,0x46e,0x46e,0x5b9,0xfa2,0xfaa,0xf9a, +0xfba,0xfc1,0xfb2,0xfc9,0xfd1,0x46e,0xfe1,0xfd9,0x5b9,0xfe4,0xfec,0xff4,0xffc,0x1004,0x46e,0x46e, +0x5b9,0x5b9,0x100c,0x46e,0x546,0x1014,0x4ee,0x101c,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x1024,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x1034,0x5ef,0x103c,0x102c,0x92f,0x1044,0x104c,0x1052,0x106a,0x105a,0x1062,0x106e,0x92f,0x107e,0x1076,0x1086, +0x1096,0x108e,0x46e,0x46e,0x109d,0x10a5,0x611,0x10ad,0x10bd,0x6b2,0x10c5,0x10b5,0x46e,0x46e,0x46e,0x46e, +0x5b9,0x10cd,0x10d5,0x46e,0x5b9,0x10dd,0x10e5,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x10ed,0x10f5,0x46e, +0x5b9,0x10fd,0x1105,0x110d,0x5b9,0x111d,0x1115,0x46e,0x112d,0x1125,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x546,0x4ee,0x1135,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x5b9,0x113d,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x1153,0x1158,0x1145,0x114d,0x1168, +0x1160,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x8a9,0x46e,0x46e,0x46e,0x1178,0x1180,0x1188,0x1170,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x1190,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x1198,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x119a, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x113d,0x8be, +0x11a2,0x46e,0x46e,0xe42,0x11aa,0x5b9,0x11ba,0x11c2,0x11ca,0x11b2,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x11d2,0x11d7,0x11df,0x46e,0x46e,0x11e7,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x11ef,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x11f7,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x11ff,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9, +0x1207,0x120c,0x1214,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x8dc,0x8dc,0x8dc, +0x8dc,0x8dc,0x8dc,0x8dc,0xb7d,0x8dc,0x121c,0x8dc,0x1223,0x122b,0x1231,0x8dc,0x1237,0x8dc,0x8dc,0x123f, +0x46e,0x46e,0x46e,0x46e,0x46e,0x8dc,0x8dc,0xa7e,0x1247,0x46e,0x46e,0x46e,0x46e,0x1257,0x125e,0x1263, +0x1269,0x1271,0x1279,0x1281,0x125b,0x1289,0x1291,0x1299,0x129e,0x1270,0x1257,0x125e,0x125a,0x1269,0x12a6,0x1258, +0x12a9,0x125b,0x12b1,0x12b9,0x12c1,0x12c8,0x12b4,0x12bc,0x12c4,0x12cb,0x12b7,0x12d3,0x124f,0x8dc,0x8dc,0x8dc, +0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x515,0x12e3,0x515, +0x12ea,0x12f1,0x12db,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x12f8,0x1300,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x1308,0x46e,0x546,0x1318,0x1310,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x1328,0x1330,0x1338, +0x1340,0x1348,0x1350,0x46e,0x1320,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x8dc,0x1358,0x8dc, +0x8dc,0xb75,0x135d,0x1361,0xb7d,0x1369,0x136e,0x8dc,0x1358,0x8dc,0x1236,0x46e,0x1376,0x137e,0x1382,0x138a, +0x46e,0x46e,0x46e,0x46e,0x46e,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x1392,0x8dc,0x8dc,0x8dc, +0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc, +0x8dc,0x8dc,0x8dc,0xa7f,0x139a,0x8dc,0x8dc,0x8dc,0xb75,0x8dc,0x8dc,0x13a2,0x46e,0x1358,0x8dc,0x13aa, +0x8dc,0x13b2,0xb7f,0x46e,0x46e,0x13ba,0x13c2,0x13ca,0x46e,0xb7e,0x46e,0xee8,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x13d2,0x5b9,0x5b9, +0x13d9,0x5b9,0x5b9,0x5b9,0x13e1,0x5b9,0x13e9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xc5f,0x5b9,0x5b9, +0x13f1,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x13f9,0x1401,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0xc9e,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x1408,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x140f,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x1416,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xb4e,0x46e,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x141a,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xf30,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x11ff,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x5b9,0x5b9,0x5b9,0x5b9,0x1422,0x5b9,0x5b9,0x5b9, +0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0x5b9,0xf30,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x1432,0x142a,0x142a,0x142a,0x46e,0x46e,0x46e,0x46e, +0x515,0x515,0x515,0x515,0x515,0x515,0x515,0x143a,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, +0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3, +0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0xdf3,0x1442,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17, 0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, @@ -397,11 +411,13 @@ static const uint16_t propsTrie_index[19820]={ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, 6,6,4,6,6,6,6,6,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,6,6,6,0,0,0x17,0,0,0,0,6,6,6,6,6, +5,6,6,6,0,0,0x17,0,6,6,0x10,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, -0,0,0,0,0,0,0,0,5,5,6,6,0x17,0x17,0x49,0x89, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, +5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,5,5,6,6,0x17,0x17,0x49,0x89, 0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,6,6,6,8,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, @@ -455,448 +471,451 @@ static const uint16_t propsTrie_index[19820]={ 6,0,6,6,6,6,0,0,0,0,0,0,0,6,6,0, 5,5,5,0,0,0,0,0,5,5,6,6,0,0,0x49,0x89, 0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,6,8,8,0,5,5,5, +0,0,0,0,0,0,0,0,5,6,8,8,0,5,5,5, 5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, 5,5,5,5,0,5,5,5,5,5,0,0,6,5,8,6, 8,8,8,8,8,0,6,8,8,0,8,8,6,6,0,0, 0,0,0,0,0,8,8,0,0,0,0,0,0,0,5,0, 5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, -0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0,0,0,0x1b,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,5,8,8,8,6,6,6, -6,0,8,8,8,0,8,8,8,6,5,0,0,0,0,0, -0,0,0,8,0,0,0,0,0,0,0,5,0,0,0,0, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,8,8, -0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8, -0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, -5,5,5,5,0,5,0,0,5,5,5,5,5,5,5,0, -0,0,6,0,0,0,0,8,8,8,6,6,6,0,6,0, -8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,6,5,5,6,6,6,6, -6,6,6,0,0,0,0,0x19,5,5,5,5,5,5,4,6, -6,6,6,6,6,6,6,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x17,0x17,0,0,0,0,0,5,5,0,5,0,0,5, -5,0,5,0,0,5,0,0,0,0,0,0,5,5,5,5, -0,5,5,5,5,5,5,5,0,5,5,5,0,5,0,5, -0,0,5,5,0,5,5,5,5,6,5,5,6,6,6,6, -6,6,0,6,6,5,0,0,5,5,5,5,5,0,4,0, -6,6,6,6,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b, -6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6, -0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5,5,5,5,5, -0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,0,0,0,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,8,6,6,6,6, -6,0x17,6,6,5,5,5,5,5,6,6,6,6,6,6,6, -6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6, +0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5,5,5,5,5, +0,6,8,8,0,5,5,5,5,5,5,5,5,0,5,5, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,5,8,8,8,6,6,6,6,0,8,8,8,0,8,8, +8,6,5,0x1b,0,0,0,0,5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b, +0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0,0,0,0,0, +0,0,0,0,0,0,8,8,0,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,5,5,5,5,5,5,5,5,5,0,5,0,0, +5,5,5,5,5,5,5,0,0,0,6,0,0,0,0,8, +8,8,6,6,6,0,6,0,8,8,8,8,8,8,8,8, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,6,5,5,6,6,6,6,6,6,6,0,0,0,0,0x19, +5,5,5,5,5,5,4,6,6,6,6,6,6,6,6,0x17, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0,0,0, +0,5,5,0,5,0,0,5,5,0,5,0,0,5,0,0, +0,0,0,0,5,5,5,5,0,5,5,5,5,5,5,5, +0,5,5,5,0,5,0,5,0,0,5,5,0,5,5,5, +5,6,5,5,6,6,6,6,6,6,0,6,6,5,0,0, +5,5,5,5,5,0,4,0,6,6,6,6,6,6,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5, +5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b, +0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8, +5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,8,6,6,6,6,6,0x17,6,6,5,5,5,5, +5,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b, -0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,8,8,6,6,6,6,8,6,6,6,6,6,6, -8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,5,5,8,8, -6,6,5,5,5,5,6,6,6,5,8,8,8,5,5,8, -8,8,8,8,8,8,5,5,5,6,6,6,6,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,8,8,6,6,8, -8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,8,8,8,6,0x1b,0x1b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0x17,4,5,5,5,1,1,1,1,1,1,0,1, -0,0,0,0,0,1,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,6,6,6,6,6,6,6,6,6,6,6,0,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b, +0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,6, +6,8,6,6,6,6,6,6,8,6,6,8,8,6,6,5, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17, +5,5,5,5,5,5,8,8,6,6,5,5,5,5,6,6, +6,5,8,8,8,5,5,8,8,8,8,8,8,8,5,5, +5,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5, +5,5,6,8,8,6,6,8,8,8,8,8,8,6,5,8, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0x17,4,5,5,5, +1,1,1,1,1,1,0,1,0,0,0,0,0,1,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0, 5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, -0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, -2,2,2,2,2,2,0,0,0x13,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x17,0x17,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0xc,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0x14,0x15,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,6,6, -6,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, -6,0x17,0x17,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,0,6,6, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,6,8,6,6,6,6,6,6,6,8,8,8,8,8,8, -8,8,6,8,8,6,6,6,6,6,6,6,6,6,6,6, -0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,6,5,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17, -0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,4, +5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,6, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b, +0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0,0,2,2,2,2,2,2,0,0, +0x13,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0xc,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x14, +0x15,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0x17, +0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5,5,5,5,5,5,0,0,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, -0,0,0,0,6,6,6,8,8,8,8,6,6,8,8,8, -0,0,0,0,8,8,6,8,8,8,8,8,8,6,6,6, -0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,5,5,5,5,5,0,0,0,0,0,0,0, +5,0,5,5,5,5,6,6,6,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,6,6,6,0x17,0x17,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,6,6,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,0,6,6,0,0,0,0,0,0,0,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,8,6,6,6,6,6, +6,6,8,8,8,8,8,8,8,8,6,8,8,6,6,6, +6,6,6,6,6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19, +5,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,6,5,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +5,5,5,5,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6, +6,6,0x10,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0,0,0,0,0,0,0,0,5,5,5,5, +5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +0,0,0,0,0,0,0,0,6,6,6,8,8,8,8,6, +6,8,8,8,0,0,0,0,8,8,6,8,8,8,8,8, +8,6,6,6,0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,5,5,5,5,5,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,6,6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,7,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,8,6,8,6,6,6,6,6,6,6,0,6,8,6,8, -8,6,6,6,6,6,6,6,6,8,8,8,8,8,8,6, -6,6,6,6,6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,6,6,6,6, -8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,8,6,6, -6,6,6,8,6,8,8,8,8,8,6,8,8,5,5,5, -5,5,5,5,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8, -6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,5,5,5,5,5,5,6,6,8,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,8,6,6,8,8, -8,6,8,6,6,6,8,8,0,0,0,0,0,0,0,0, -0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, -5,5,5,5,8,8,8,8,8,8,8,8,6,6,6,6, -6,6,6,6,8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,4,4,4,4,4,4,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, -6,6,6,0x17,6,6,6,6,6,6,6,6,6,6,6,6, -6,8,6,6,6,6,6,6,6,5,5,5,5,6,5,5, -5,5,8,8,6,5,5,0,6,6,0,0,0,0,0,0, -2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,6,6,8,8,6,0,0,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,8,6,8,6,6,6,6,6,6,6,0, +6,8,6,8,8,6,6,6,6,6,6,6,6,8,8,8, +8,8,8,6,6,6,6,6,6,6,6,6,6,0,0,6, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6, +6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +6,6,6,6,8,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,8,6,6,6,6,6,8,6,8,8,8,8,8,6,8, +8,5,5,5,5,5,5,5,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6, +6,6,8,8,6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,6,6,8,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, +6,6,8,8,8,6,8,6,6,6,8,8,0,0,0,0, +0,0,0,0,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,5,5,5,5,5,5,8,8,8,8,8,8,8,8, +6,6,6,6,6,6,6,6,8,8,6,6,0,0,0,0x17, +0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4, +4,4,0x17,0x17,2,2,2,2,2,2,2,2,2,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0, +0,0,0,0,6,6,6,0x17,6,6,6,6,6,6,6,6, +6,6,6,6,6,8,6,6,6,6,6,6,6,5,5,5, +5,6,5,5,5,5,8,8,6,5,5,0,6,6,0,0, +0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2, -2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,0,0,0,0,0,0,6,6,6,6, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2, -2,2,2,2,2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a, -0,0,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, -2,2,2,2,2,2,2,2,0,1,0,1,0,1,0,1, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, -2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, -2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, -2,2,2,2,2,0,2,2,1,1,1,1,3,0x1a,2,0x1a, -0x1a,0x1a,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a, -2,2,2,2,0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a, -0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc, -0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4, -0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10, -0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16, -0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0, -4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2, +4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4, +4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,6, +6,6,6,6,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2, +2,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1, +1,0x1a,0x1a,0x1a,0,0,2,2,2,0,2,2,1,1,1,1, +3,0x1a,0x1a,0,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, +1,1,0,0,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, +1,1,0,0,2,2,2,2,2,2,2,2,0,1,0,1, +0,1,0,1,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,0,0,2,2,2,2,2,2,2,2,3,3,3,3, +3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3, +3,3,3,3,2,2,2,2,2,0,2,2,1,1,1,1, +3,0x1a,2,0x1a,0x1a,0x1a,2,2,2,0,2,2,1,1,1,1, +3,0x1a,0x1a,0x1a,2,2,2,2,0,0,2,2,1,1,1,1, +0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, +0x18,0x14,0x15,4,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10, +0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c, +0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10, +0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17, +0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, +0x18,0x14,0x15,0,4,4,4,4,4,4,4,4,4,4,4,4, +4,0,0,0,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, -0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7, -7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6, -6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2, -1,1,1,1,2,5,5,5,5,2,0x1b,0x1b,2,2,1,1, -0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b, -0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b, -0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2, -1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b, -0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, -0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, -0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0, -0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b, +0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, +6,7,7,7,7,6,7,7,7,6,6,6,6,6,6,6, +6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1, +1,1,0x1b,2,1,1,1,1,2,5,5,5,5,2,0x1b,0x1b, +2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18, +0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb, +0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1, +1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1, +1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, +0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, +0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b, +0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18, -0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, -0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, +0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b, -0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb, -0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b, -0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b, -0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b, +0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb, +0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb, +0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, -0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, -0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b, -0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, -0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, +0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb, +0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, +0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15, +0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14, +0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, +0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, -0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, -0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, +0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,2,1,1,1,2,2,1, -2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2, -2,2,2,2,4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,0,0,0,0, -0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2, -0,0,0,0,0,2,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4, -0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,2,1,1,1,2,2,1,2,1,2,1,2,1,1,1, +1,2,1,2,2,1,2,2,2,2,2,2,4,4,1,1, +1,2,1,2,2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,2,6, +6,6,1,2,0,0,0,0,0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17, +2,2,2,2,2,2,0,2,0,0,0,0,0,2,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0,0,0,4,0x17,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,6,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17, -0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17, -0x13,0x17,0x14,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,0,0,0,0,0,0,0,0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17, +0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13, +0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15, +0x14,0x15,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17,0x17,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, 0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6, -6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4, -5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15, -0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -0x13,0x14,0x15,0x15,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,0x1a, -0x1a,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x17, -4,4,4,5,0,0,0,0,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb, -0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x58a,0x5ca,0x60a, +0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6,6,6,8,8,0x13,4,4,4, +4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4,5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17, +0x1b,4,5,0x54a,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b, +0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0x14,0x15,0x15,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,0,6,6,0x1a,0x1a,4,4,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0x17,4,4,4,5,0,0,0,0, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, -0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b, -0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb,0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb, -5,5,5,5,5,0x685,5,5,5,5,5,5,5,5,5,5, +0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b, +0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb, +0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,5,5,5,5,5,0x685,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x705,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x585,5,5,0x705, -5,5,5,0x7885,5,0x605,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x5c5,5,5,5,5,5,5,5,0x685,5,0x645,5, +5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0x585,5,5,0x705,5,5,5,0x7885,5,0x605,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7985, -0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7845, -5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5, +5,5,5,5,0x685,5,0x645,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x1e45,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x7985,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0x7985,0x7c5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x7a85,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,0x745, -5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x7c5,5,0x7845,0xa45,0xcc5,5,5,5,5,5,5, -0xf45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x605,0x605,0x605,0x605,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5,5,5, +0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x7985,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x585,5,5,5,5,5,5, -5,0x585,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x585,5, +5,5,5,5,5,5,5,5,5,5,0x7a85,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,0xa45, -5,5,5,5,5,5,5,5,5,5,5,5,0x585,0x5c5,0x605,5, -0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0x5c5,5,0x745,5,0x6c5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5,0x7845, +0xa45,0xcc5,5,5,5,5,5,5,0xf45,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,0x605,0x605, +0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x645, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x745,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0x705,5,5,5,5,5,5,5,5,5, +5,0x585,5,5,5,5,5,5,5,0x585,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x785,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0x585,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x1e45,5,5,5,5,5,5,5,0x645,5,5,5,5,5, +5,5,5,5,5,5,0x785,0xa45,5,5,5,5,5,5,5,5, +5,5,5,5,0x585,0x5c5,0x605,5,0x5c5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x7885,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,0x5c5, +5,5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x745,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x705,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x7845,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x785,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x6c5,5,5,5,5,5,0x1e45,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5,5,5, +5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x7885,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x6c5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x545,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +5,5,0x5c5,5,5,5,5,0x5c5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5, +0x1e45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -4,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, +5,5,5,5,5,5,0x545,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5, +5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,4,0x17,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,4,4,6,6,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,5,6,7,7,7,0x17, +6,6,6,6,6,6,6,6,6,6,0x17,4,5,5,5,5, +5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17, +0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2, +0,0,0,5,4,4,2,5,5,5,5,5,0x1a,0x1a,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,2,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -4,4,6,6,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,5,6,7,7,7,0x17,6,6,6,6,6,6,6,6, -6,6,0x17,4,5,5,5,5,5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca, -0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0, -0,0,0,0,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4, -4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,5,4,4,2,5, -5,5,5,5,0x1a,0x1a,1,2,1,2,1,2,1,2,1,2, +4,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2, +1,2,1,2,1,2,1,2,4,0x1a,0x1a,1,2,1,2,5, 1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,4,2,2,2,2,2,2,2, -2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2, -4,0x1a,0x1a,1,2,1,2,5,1,2,1,2,2,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,1,1,1,0,0, -1,1,1,1,1,2,1,2,0,0,0,0,0,0,0,0, -5,5,6,5,5,5,6,5,5,5,5,6,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, -8,8,8,8,6,0,0,0,0,0,0,0,0,0,0x17,0x17, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -8,8,8,8,8,8,8,8,8,8,8,8,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5, -5,5,5,5,0x17,0x17,0x17,5,0x17,5,0,0,5,5,5,5, -5,5,6,6,6,6,6,6,6,6,0x17,0x17,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -6,6,6,6,6,6,6,6,6,6,8,8,0,0,0,0, -0,0,0,0,0,0,0,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,8,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0,4,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,6,8,8,6,6, -6,6,8,8,6,8,8,8,5,5,5,5,5,6,4,5, -5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,6,6,6,6,6,6,8,8,6,6,8,8,6,6,0, -0,0,0,0,0,0,0,0,5,5,5,6,5,5,5,5, -5,5,5,5,6,8,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,0x1b, -0x1b,0x1b,5,8,6,8,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,6,5,6,6,6,5,5,6, -6,5,5,5,5,5,6,6,5,6,5,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,5,5,4,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,8,6,6,8,8,0x17,0x17,5,4,4,8,6,0, -0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0, +1,2,1,1,1,1,1,0,1,1,1,1,1,2,1,2, +0,0,0,0,0,0,0,0,5,5,6,5,5,5,6,5, +5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,8, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b, +0x19,0x1b,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17, +0,0,0,0,0,0,0,0,8,8,8,8,6,6,0,0, +0,0,0,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,8,8,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,8,8,8,8,8,8,8,8, +8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,5,5,5,5,5,5,0x17,0x17,0x17,5, +0x17,5,0,0,5,5,5,5,5,5,6,6,6,6,6,6, +6,6,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, +6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +8,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,6,8,8,6,6,6,6,8,8,6,8,8,8, +5,5,5,5,5,6,4,5,5,5,5,5,5,5,5,5, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,0, +5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,8, +8,6,6,8,8,6,6,0,0,0,0,0,0,0,0,0, +5,5,5,6,5,5,5,5,5,5,5,5,6,8,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +4,5,5,5,5,5,5,0x1b,0x1b,0x1b,5,8,6,8,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,5,6,6,6,5,5,6,6,5,5,5,5,5,6,6, +5,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,5,5,4,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,8,6,6,8,8, +0x17,0x17,5,4,4,8,6,0,0,0,0,0,0,0,0,0, 0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,0,2,2,2,2,2,2,2,2, +0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,0x1a,4,4,4,4,2,2,2,2,2,2,0,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,5,5,5,8,8,6,8,8, -6,8,8,0x17,8,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,5,5,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5, +2,2,2,2,2,2,2,2,2,2,2,0x1a,4,4,4,4, +2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +5,5,5,8,8,6,8,8,6,8,8,0x17,8,6,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12, 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,5,5,5,5,5,5,5,5,5,5,5,0x605, -5,5,5,5,5,5,5,0x7c5,5,5,5,5,0x5c5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x6c5,5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,0x18,5,5, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5, +5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,0x7c5, +5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x18,5,5, 5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, 5,0,5,0,5,5,0,5,5,0,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, @@ -945,7 +964,7 @@ static const uint16_t propsTrie_index[19820]={ 0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b, 0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a, 0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, 0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a, 0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a, @@ -970,259 +989,300 @@ static const uint16_t propsTrie_index[19820]={ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0x17, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,5,5,0,0,0,5,0,0,5, -5,5,5,5,5,5,0,0,5,0,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2, +5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0, -0,0,0,0x58b,0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x17,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -5,5,0,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5, +5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5, +5,5,0,0,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, +0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b, +0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b, +0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,0, +0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb, +0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b, +0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b, +0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, +0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, +0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b, +0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0,0,0,0,0,0,0,5,6,6,6,0,6,6,0, +0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,6,6,6,0, +0,0,0,6,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b, -0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb, -0xb0cb,0xb8cb,0x36cb,0x354b,0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5, +5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b, -0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b, -0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb, -0x7cb,0xa4b,0x1e4b,0x784b,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,5,6,6,6, -0,6,6,0,0,0,0,0,6,6,6,6,5,5,5,5, -0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, -6,6,6,0,0,0,0,6,5,5,5,5,5,5,5,5, +5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0,0,0,0,0x58b, +0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,0x1b,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0, -0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -0x1b,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b, -0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b, -0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,0,0,0,0,0x17,0x17,0x17, -0x17,0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b, -0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0,0,0,0,0,0,0,0x58b,0x68b, -0x7cb,0x11cb,0x1e4b,0x784b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb, -0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b, -0x34cb,0x348b,0x388b,0,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,6,8,6,8,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,8,8,8,6,6,6,6,8,8,6,6,0x17, -0x17,0x10,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -5,5,5,6,6,6,6,6,8,6,6,6,6,6,6,6, -6,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,5, +5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -0x17,0x17,5,0,0,0,0,0,0,0,0,0,8,5,5,5, -5,0x17,0x17,0x17,0x17,0x17,6,6,6,0x17,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17,5,0x17,0x17,0x17,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -8,8,6,6,6,6,6,6,6,6,6,8,0,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, -0x784b,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,8,8, -6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -5,0,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,0x17,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -6,6,6,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,8,8,0,0,6,6, -6,6,6,6,6,0,0,0,6,6,6,6,6,0,0,0, -0,0,0,0,0,0,0,0,6,6,8,8,0,5,5,5, -5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5, -5,5,5,5,5,5,5,5,6,8,8,8,8,0,0,8, -8,0,0,8,8,8,0,0,5,0,0,0,0,0,0,8, -0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -6,8,6,8,8,8,8,6,6,8,6,6,5,5,0x17,5, -0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,8,8,8,6,6,6,6,0,0, -8,8,8,8,6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -5,5,5,5,6,6,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,5,0,0,0, -0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,6,8,6,8,8,6,6,6,6,6,6,8,6, -0,0,0,0,0,0,0,0,8,8,6,6,6,6,8,6, -6,6,6,6,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,0,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0, -0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a, -0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0,0x17,0x17,0x17,0x17,0x17,0,0,0, -0,0,0,0,0,0,0,0,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a, -0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a, -0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a, -0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a, -0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a,0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a, -0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a,0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a, -0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,5,5,5,5,0,0,0,0, +5,5,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0, +0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b, +0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, +0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0, +0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, +8,6,8,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0, +0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +8,8,8,6,6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17, +0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,6, +6,6,6,6,8,6,6,6,6,6,6,6,6,0,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,6,0x17,0x17,5,0, +0,0,0,0,0,0,0,0,8,5,5,5,5,0x17,0x17,0x17, +0x17,0x17,6,6,6,0x17,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,5,0x17,5,0x17,0x17,0x17,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,6, +6,6,6,6,6,6,6,8,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, +0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,8,8,6,8,6,6, +0x17,0x17,0x17,0x17,0x17,0x17,6,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,0,5,5, +5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,5,5,5,5,5,5,5,5,5,5,0x17,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,8,8,0,0,6,6,6,6,6,6, +6,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0, +0,0,0,0,6,6,8,8,0,5,5,5,5,5,5,5, +5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,6,8,8,8,8,0,0,8,8,0,0,8, +8,8,0,0,5,0,0,0,0,0,0,8,0,0,0,0, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,8,8,8,6,6,6,6, +6,6,6,6,8,8,6,6,6,8,6,5,5,5,5,0x17, +0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x17, +0,0x17,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,8,6,8, +8,8,8,6,6,8,6,6,5,5,0x17,5,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,8,8,8,6,6,6,6,0,0,8,8,8,8, +6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5, +6,6,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,8, +8,6,8,6,6,0x17,0x17,0x17,5,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,6, +8,6,8,8,6,6,6,6,6,6,8,6,0,0,0,0, +0,0,0,0,8,8,6,6,6,6,8,6,6,6,6,6, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b, +0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -6,6,6,6,6,0x17,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0, +0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,5,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x58b,0x5cb, +0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb, +0x1e4b,0,0,0,0x17,0x17,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, +6,6,6,6,6,6,6,0,6,6,6,6,6,6,8,6, +6,6,6,6,6,6,6,6,0,8,6,6,6,6,6,6, +6,8,6,6,8,6,6,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a,0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0, +0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, +0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a, +0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca, +0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a, +0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a, +0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a, +0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca, +5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0x17,0x17,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,6,6,6,6,6,0x17,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,0x17, +0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,4,4,4,4,0x17,0x1b,0,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b,0x7a0b,0x7a8b,0,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b, -4,4,4,4,0x17,0x1b,0,0,0,0,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b, -0x7a0b,0x7a8b,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, -5,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, +0,0,0,0,0,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,0,0,0,0,5,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, -8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,6,6,6,6,4,4,4,4,4,4,4,4,4, -4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10,0,0,0,0, +8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b, -0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6, -6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,6,6,6,6, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,0,0,0x1b,6,6,0x17, +0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb, -0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b, +0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6, +6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,6,6, +6,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b, +0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, +2,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1, +1,0,1,1,1,1,1,1,1,1,2,2,2,2,0,2, +0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2, 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,2,2,2,2,2,2,2,0,2,2,2,2,2,2, +1,1,1,1,2,2,2,2,1,1,0,1,1,1,1,0, +0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, +1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1, +1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1, +1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,0,1,1,0,0,1,0, -0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1, -1,1,2,2,2,2,0,2,0,2,2,2,2,2,2,2, -0,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1, -1,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,1,0,1,1,1,1,0,1,1,1,1, -1,0,1,0,0,0,1,1,1,1,1,1,1,0,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, +2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x18,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x18, +2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,0x18, +2,2,2,2,2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, +6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,0,0,6,6,6,6,6, +6,6,0,6,6,0,6,6,6,6,6,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b, +6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0, +2,2,2,2,6,6,6,6,6,6,6,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17, 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0x18,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0x18,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,0x18,2,2, -2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,2,0x18,2,2,2,2,2,2,1,2, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,6,6,6,6,6,5,5,5,5, -5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6, -6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x18,0x18,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,5,5,0,5,0,0,5,0,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,0,5,0,5, -0,0,0,0,0,0,5,0,0,0,0,5,0,5,0,5, -0,5,5,5,0,5,5,0,5,0,0,5,0,5,0,5, -0,5,0,5,0,5,5,0,5,0,0,5,5,5,5,0, -5,5,5,5,5,5,5,0,5,5,5,5,0,5,5,5, -5,0,5,0,5,5,5,5,5,5,5,5,5,5,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,0,0,0,5,5,5,0,5,5,5,5,5,0,5, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, -0x48b,0x4cb,0x50b,0x54b,0x54b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b, +0,5,5,0,5,0,0,5,0,5,5,5,5,5,5,5, +5,5,5,0,5,5,5,5,0,5,0,5,0,0,0,0, +0,0,5,0,0,0,0,5,0,5,0,5,0,5,5,5, +0,5,5,0,5,0,0,5,0,5,0,5,0,5,0,5, +0,5,5,0,5,0,0,5,5,5,5,0,5,5,5,5, +5,5,5,0,5,5,5,5,0,5,5,5,5,0,5,0, +5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +0,5,5,5,0,5,5,5,5,5,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b, +0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b, +0x54b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0, 0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0, -0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a, -0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,0x705,5,5,5,5,5,5, +0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0,0,0,0,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,5,0x705,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,0x645,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, @@ -1241,6 +1301,8 @@ static const uint16_t propsTrie_index[19820]={ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,5, 5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,0x785,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, @@ -1255,2141 +1317,2228 @@ static const uint16_t propsTrie_index[19820]={ static const UTrie2 propsTrie={ propsTrie_index, - propsTrie_index+4216, + propsTrie_index+4408, NULL, - 4216, - 15604, + 4408, + 16372, 0xa40, - 0x10f8, + 0x11b8, 0x0, 0x0, 0x110000, - 0x4d68, + 0x5128, NULL, 0, FALSE, FALSE, 0, NULL }; -static const uint16_t propsVectorsTrie_index[27452]={ -0x488,0x490,0x498,0x4a0,0x4b8,0x4c0,0x4c8,0x4d0,0x4d8,0x4e0,0x4e8,0x4f0,0x4f8,0x500,0x508,0x510, -0x517,0x51f,0x527,0x52f,0x532,0x53a,0x542,0x54a,0x552,0x55a,0x562,0x56a,0x572,0x57a,0x582,0x58a, -0x592,0x59a,0x5a1,0x5a9,0x5b1,0x5b9,0x5c1,0x5c9,0x5d1,0x5d9,0x5de,0x5e6,0x5ed,0x5f5,0x5fd,0x605, -0x60d,0x615,0x61d,0x625,0x62c,0x634,0x63c,0x644,0x64c,0x654,0x65c,0x664,0x66c,0x674,0x67c,0x684, -0x180c,0xce8,0xdd3,0x4a8,0x4a8,0xe52,0xe58,0xe60,0x10fc,0x1114,0x1104,0x110c,0x71c,0x722,0x72a,0x732, -0x73a,0x740,0x748,0x750,0x758,0x75e,0x766,0x76e,0x776,0x77c,0x784,0x78c,0x794,0x79c,0x7a4,0x7ab, -0x7b3,0x7b9,0x7c1,0x7c9,0x7d1,0x7d7,0x7df,0x7e7,0x7ef,0x7f5,0x7fd,0x805,0x80d,0x814,0x81c,0x824, -0x82c,0x830,0x838,0x83f,0x847,0x84f,0x857,0x85f,0x141c,0x1424,0x867,0x86f,0x877,0x87f,0x887,0x88e, -0x1482,0x1472,0x147a,0x174f,0x1757,0x1124,0x896,0x111c,0x1366,0x1366,0x1368,0x1138,0x1139,0x112c,0x112e,0x1130, -0x148a,0x148c,0x89e,0x148c,0x8a6,0x8ab,0x8b3,0x1491,0x8b9,0x148c,0x8bf,0x8c7,0xbc1,0x1499,0x1499,0x8cf, -0x14a9,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa,0x14aa, -0x14aa,0x14aa,0x14aa,0x14a1,0x8d7,0x14b2,0x14b2,0x8df,0xad6,0xade,0xae6,0xaee,0x14c2,0x14ba,0x8e7,0x8ef, -0x8f7,0x14ca,0x14d2,0x8ff,0x14ca,0x907,0x1814,0xcf0,0xaf6,0xafe,0xb06,0xb0b,0x16c5,0xbf4,0xbfb,0x162d, -0xb91,0x181c,0xcf8,0xd00,0xd08,0xd10,0xf10,0xf10,0x1715,0x171a,0xc2c,0xc34,0x178b,0x1793,0x18b5,0xddb, -0x179b,0xc7c,0xc84,0x17a3,0x4a8,0x4a8,0xef0,0xd18,0x164d,0x1635,0x1645,0x163d,0x16dd,0x16d5,0x169d,0xba1, -0x1141,0x1141,0x1141,0x1141,0x1144,0x1141,0x1141,0x114c,0x90f,0x1154,0x913,0x91b,0x1154,0x923,0x92b,0x933, -0x1164,0x115c,0x116c,0x93b,0x943,0x94b,0x953,0x95b,0x1174,0x117c,0x1184,0x118c,0x963,0x1194,0x119b,0x11a3, -0x11ab,0x11b3,0x11bb,0x11c3,0x11cb,0x11d2,0x11da,0x11e2,0x11ea,0x11f2,0x11f5,0x11f7,0x14da,0x15c0,0x15c6,0x96b, -0x11ff,0x973,0x97b,0x1319,0x131e,0x1321,0x1329,0x1207,0x1331,0x1331,0x1217,0x120f,0x121f,0x1227,0x122f,0x1237, -0x123f,0x1247,0x124f,0x1257,0x15ce,0x1625,0x175f,0x189d,0x1267,0x126e,0x1276,0x127e,0x125f,0x1286,0x15d6,0x15dd, -0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x15e5,0x15e8,0x15e5,0x15e5,0x15f0,0x15f7,0x15f9,0x1600, -0x1608,0x160c,0x160c,0x160f,0x160c,0x160c,0x1615,0x160c,0x1655,0x170d,0x1767,0xb13,0xb19,0xb1f,0xb27,0xb2c, -0x16b5,0xbd1,0xbd5,0x1722,0x16a5,0x16a5,0x16a5,0xba9,0x16ad,0xbc9,0x16f5,0xc1c,0xbb1,0xbb9,0xbb9,0x17ab, -0x16e5,0x176f,0xc0b,0xc0c,0x983,0x14ea,0x14ea,0x98b,0x14f2,0x14f2,0x14f2,0x14f2,0x14f2,0x14f2,0x993,0x68c, -0x134e,0x1370,0x99b,0x1378,0x9a3,0x1380,0x1388,0x1390,0x9ab,0x9b0,0x1398,0x139f,0x9b5,0x9bd,0x1705,0xb99, -0x9c5,0x13f6,0x13fd,0x13a7,0x1405,0x140c,0x13af,0x9cd,0x13c8,0x13c8,0x13ca,0x13b7,0x13bf,0x13bf,0x13c0,0x1414, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x10b3,0x165d,0x165d, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2, -0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d2,0x13d9,0x10bb,0x10c1, -0x1502,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508, -0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508,0x1508, -0x1508,0x1508,0x1508,0x1508,0x9d5,0x1510,0x9dd,0x1824,0x17b7,0x17b7,0x17b7,0x17b7,0x17b7,0x17b7,0x17b7,0x17b7, -0x17b3,0xc8c,0x17c7,0x17bf,0x17c9,0x182c,0x182c,0xd20,0x16bd,0x172a,0x177f,0x1783,0x1777,0xc3c,0xc42,0xc45, -0x16ed,0xc14,0x1732,0xc4d,0x17d1,0x17d4,0xc94,0xd28,0x17e4,0x17dc,0xc9c,0xd30,0x1834,0x1838,0xd38,0xfb6, -0x17ec,0xca4,0xcac,0x1840,0x1850,0x1848,0xd40,0xeb3,0xde3,0xdeb,0x19e9,0xf6e,0x1a8e,0x1a8e,0x1858,0xd48, -0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465, -0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467, -0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469, -0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464, -0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466, -0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468, -0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a, -0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465, -0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467, -0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469, -0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464, -0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466, -0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468, -0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a, -0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465, -0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467, -0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469, -0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464, -0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466, -0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468, -0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a, -0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x146a,0x1464,0x1465,0x1466,0x1467,0x1468,0x1469,0x9e5,0xd50,0xd53, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c, -0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c,0x143c, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339, -0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x1339,0x13e1,0x13e1,0x13e1,0x13e1,0x13e1,0x13e1,0x13e1,0x13e1, -0x13e6,0x13ee,0x161d,0x10c9,0x16fd,0x16fd,0x10cd,0x10d4,0x9ed,0x9f5,0x9fd,0x12a6,0x12ad,0x12b5,0xa05,0x12bd, -0x12ee,0x12ee,0x1296,0x129e,0x12c5,0x12e5,0x12e6,0x12f6,0x12cd,0x128e,0xa0d,0x12d5,0xa15,0x12dd,0xa1d,0xa21, -0xc24,0x12fe,0xa29,0xa31,0x1306,0x130c,0x1311,0xa39,0xa49,0x1356,0x135e,0x1341,0x1346,0xa51,0xa59,0xa41, -0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c, -0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x142c,0x1434,0x1434,0x1434,0x1434, -0x12a0,0x12a0,0x12e0,0x1320,0x1360,0x13a0,0x13e0,0x1420,0x145c,0x149c,0x14c8,0x1508,0x1548,0x1588,0x15c8,0x1608, -0x1648,0x1684,0x16c4,0x1704,0x1744,0x1778,0x17b4,0x17f4,0x1834,0x1874,0x18b0,0x18f0,0x1930,0x1970,0x19b0,0x19f0, -0xa80,0xac0,0xb00,0xe48,0xb40,0xa40,0xb80,0xa40,0xe68,0xa40,0xa40,0xa40,0xa40,0xbc0,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xdcd,0xbfd,0xa40,0xa40,0xc3d,0xc7d,0xa40,0xe0d,0xd8d,0xcbd, -0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e, -0x115e,0x115e,0x115e,0x115e,0xea8,0x119e,0xfde,0x101e,0x11de,0xee8,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf5e, -0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e, -0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf9e, +static const uint16_t propsVectorsTrie_index[28540]={ +0x4bb,0x4c3,0x4cb,0x4d3,0x4eb,0x4f3,0x4fb,0x503,0x50b,0x513,0x51b,0x523,0x52b,0x533,0x53b,0x543, +0x54a,0x552,0x55a,0x562,0x565,0x56d,0x575,0x57d,0x585,0x58d,0x595,0x59d,0x5a5,0x5ad,0x5b5,0x5bd, +0x5c5,0x5cd,0x5d4,0x5dc,0x5e4,0x5ec,0x5f4,0x5fc,0x604,0x60c,0x611,0x619,0x620,0x628,0x630,0x638, +0x640,0x648,0x650,0x658,0x65f,0x667,0x66f,0x677,0x67f,0x687,0x68f,0x697,0x69f,0x6a7,0x6af,0x6b7, +0x18ce,0xd31,0xe19,0x4db,0x4db,0xe89,0xe91,0x1a56,0x11bd,0x11d5,0x11c5,0x11cd,0x75c,0x762,0x76a,0x772, +0x77a,0x780,0x788,0x790,0x798,0x79e,0x7a6,0x7ae,0x7b6,0x7bc,0x7c4,0x7cc,0x7d4,0x7dc,0x7e4,0x7eb, +0x7f3,0x7f9,0x801,0x809,0x811,0x817,0x81f,0x827,0x82f,0x835,0x83d,0x845,0x84d,0x854,0x85c,0x864, +0x86c,0x870,0x878,0x87f,0x887,0x88f,0x897,0x89f,0x14dd,0x14e5,0x8a7,0x8af,0x8b7,0x8bf,0x8c7,0x8ce, +0x1543,0x1533,0x153b,0x1811,0x1819,0x11e5,0x8d6,0x11dd,0x1427,0x1427,0x1429,0x11f9,0x11fa,0x11ed,0x11ef,0x11f1, +0x154b,0x154d,0x8de,0x154d,0x8e6,0x8eb,0x8f3,0x1552,0x8f9,0x154d,0x8ff,0x907,0xc09,0x155a,0x155a,0x90f, +0x156a,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b, +0x156b,0x156b,0x156b,0x1562,0x917,0x1573,0x1573,0x91f,0xb16,0xb1e,0xb26,0xb2e,0x1583,0x157b,0x927,0x92f, +0x937,0x158d,0x1595,0x93f,0x158b,0x947,0x18d6,0xd39,0xb36,0xb3e,0xb46,0xb4b,0x1787,0xc3c,0xc43,0x16ef, +0xbd9,0x18de,0xd41,0xd49,0xd51,0xd59,0xf41,0xf41,0x17d7,0x17dc,0xc75,0xc7d,0x184d,0x1855,0x197f,0xe21, +0x185d,0xcc5,0xccd,0x1865,0x6bf,0x4db,0xf21,0xd61,0x170f,0x16f7,0x1707,0x16ff,0x179f,0x1797,0x175f,0xbe9, +0x1202,0x1202,0x1202,0x1202,0x1205,0x1202,0x1202,0x120d,0x94f,0x1215,0x953,0x95b,0x1215,0x963,0x96b,0x973, +0x1225,0x121d,0x122d,0x97b,0x983,0x98b,0x993,0x99b,0x1235,0x123d,0x1245,0x124d,0x9a3,0x1255,0x125c,0x1264, +0x126c,0x1274,0x127c,0x1284,0x128c,0x1293,0x129b,0x12a3,0x12ab,0x12b3,0x12b6,0x12b8,0x159d,0x1682,0x1688,0x9ab, +0x12c0,0x9b3,0x9bb,0x13da,0x13df,0x13e2,0x13ea,0x12c8,0x13f2,0x13f2,0x12d8,0x12d0,0x12e0,0x12e8,0x12f0,0x12f8, +0x1300,0x1308,0x1310,0x1318,0x1690,0x16e7,0x1821,0x195f,0x1328,0x132f,0x1337,0x133f,0x1320,0x1347,0x1698,0x169f, +0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x16a7,0x16aa,0x16a7,0x16a7,0x16b2,0x16b9,0x16bb,0x16c2, +0x16ca,0x16ce,0x16ce,0x16d1,0x16ce,0x16ce,0x16d7,0x16ce,0x1717,0x17cf,0x1829,0xb53,0xb59,0xb5f,0xb67,0xb6c, +0x1777,0xc19,0xc1d,0x17e4,0x1767,0x1767,0x1767,0xbf1,0x176f,0xc11,0x17b7,0xc65,0xbf9,0xc01,0xc01,0x186d, +0x17a7,0x1831,0xc53,0xc55,0x9c3,0x15ad,0x15ad,0x9cb,0x15b5,0x15b5,0x15b5,0x15b5,0x15b5,0x15b5,0x9d3,0x6c3, +0x140f,0x1431,0x9db,0x1439,0x9e3,0x1441,0x1449,0x1451,0x9eb,0x9f0,0x1459,0x1460,0x9f5,0x9fd,0x17c7,0xbe1, +0xa05,0x14b7,0x14be,0x1468,0x14c6,0x14cd,0x1470,0xa0d,0x1489,0x1489,0x148b,0x1478,0x1480,0x1480,0x1481,0x14d5, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x1174,0x171f,0x171f, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493, +0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x149a,0x117c,0x1182, +0x15c5,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb, +0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb, +0x15cb,0x15cb,0x15cb,0x15cb,0xa15,0x15d3,0xa1d,0x18e6,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879, +0x1875,0xcd5,0x1889,0x1881,0x188b,0x18ee,0x18ee,0xd69,0x177f,0x17ec,0x1841,0x1845,0x1839,0xc85,0xc8b,0xc8e, +0x17af,0xc5d,0x17f4,0xc96,0x1893,0x1896,0xcdd,0xd71,0x18a6,0x189e,0xce5,0xd79,0x18f6,0x18fa,0xd81,0xfe7, +0x18ae,0xced,0xcf5,0x1902,0x1912,0x190a,0xd89,0xee4,0xe29,0xe31,0x1ac9,0xf9f,0x1b6e,0x1b6e,0x191a,0xd91, +0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526, +0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528, +0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a, +0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525, +0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527, +0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529, +0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b, +0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526, +0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528, +0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a, +0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525, +0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527, +0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529, +0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b, +0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526, +0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528, +0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a, +0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525, +0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527, +0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529, +0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b, +0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0xa25,0xd99,0xd9c, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd, +0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa, +0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2, +0x14a7,0x14af,0x16df,0x118a,0x17bf,0x17bf,0x118e,0x1195,0xa2d,0xa35,0xa3d,0x1367,0x136e,0x1376,0xa45,0x137e, +0x13af,0x13af,0x1357,0x135f,0x1386,0x13a6,0x13a7,0x13b7,0x138e,0x134f,0xa4d,0x1396,0xa55,0x139e,0xa5d,0xa61, +0xc6d,0x13bf,0xa69,0xa71,0x13c7,0x13cd,0x13d2,0xa79,0xa89,0x1417,0x141f,0x1402,0x1407,0xa91,0xa99,0xa81, +0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed, +0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14f5,0x14f5,0x14f5,0x14f5, +0x136c,0x136c,0x13ac,0x13ec,0x142c,0x146c,0x14ac,0x14ec,0x1528,0x1568,0x1594,0x15d4,0x1614,0x1654,0x1694,0x16d4, +0x1714,0x1750,0x1790,0x17d0,0x1810,0x1844,0x1880,0x18c0,0x1900,0x1940,0x197c,0x19bc,0x19fc,0x1a3c,0x1a7c,0x1abc, +0xa80,0xac0,0xb00,0xe4d,0xb40,0xa40,0xb80,0xa40,0xe73,0xa40,0xa40,0xa40,0xa40,0xbc0,0x12a9,0x12a9, +0xeb3,0xef3,0xa40,0xa40,0xa40,0xa40,0xdd2,0xc00,0xa40,0xa40,0xc40,0xc80,0xcc0,0xe12,0xd92,0xd02, +0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9, +0x11e9,0x11e9,0x11e9,0x11e9,0xf33,0x1229,0x1069,0x10a9,0x1269,0xf73,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfe9, +0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9, +0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0x1029, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, -0xd3d,0xd4d,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcfd, -0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de, -0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x10de,0x105e, -0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e, -0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x111e,0x109e, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0xb34,0xb3b,0xb43,0xb4b,0x1665,0x1665,0x1665,0xb53,0xb5b,0xb5e,0x1695,0x168d,0xb89,0xcb4,0xcb8,0xcbc, -0x4a8,0x4a8,0x4a8,0x4a8,0xcc4,0x17f4,0xccc,0xf08,0x1518,0xa61,0xa67,0xfc6,0xb66,0x16cd,0xc03,0x4a8, -0x152d,0x1520,0x1525,0x166d,0xb6e,0x694,0x4a8,0x4a8,0x19d1,0xf25,0x19c1,0x69c,0x4a8,0x4a8,0x4a8,0x4a8, -0x19f1,0x19f1,0x19f1,0x19f1,0x19f1,0x19f1,0x19f1,0x19f1,0x19f1,0xf76,0xf7e,0xf86,0x4a8,0x4a8,0x4a8,0x4a8, -0xb76,0xb79,0xd5b,0x1a39,0xfbe,0x6a4,0x4a8,0x1057,0xc55,0xcd4,0x4a8,0x4a8,0x198d,0xebb,0xec3,0x1a79, -0xbdd,0xbe4,0xbec,0x1860,0x1a19,0x4a8,0x19f9,0xf96,0x1868,0xd63,0xd6b,0xd73,0xfe6,0x6ac,0x4a8,0x4a8, -0x1870,0x1870,0x6b4,0x4a8,0x1aa6,0x106f,0x1a9e,0x1077,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0xd7b,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x18bd,0x18bf,0xdf3,0xdfa,0x1880,0x1878,0xd83,0xee8,0x1985,0xea3,0xeab,0xf8e,0x199d,0x19a1,0xee0,0x1006, -0xf59,0xf5e,0x6bc,0x4a8,0x105f,0x1067,0x19e1,0xf66,0xf3b,0xf41,0xf49,0xf51,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x1a61,0x1a59,0x102d,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1a49,0xfee,0xff6,0xffe, -0x1a11,0x1a09,0xfa6,0x4a8,0x19a9,0xef8,0x6c4,0x4a8,0x103d,0x1045,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, -0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173f,0xc5d,0xc64,0xc64,0xc64, -0x1747,0x1747,0x1747,0xc6c,0x1a96,0x1a96,0x1a96,0x1a96,0x1a96,0x1a96,0x6cc,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888, -0x1888,0x1888,0x188a,0x1888,0x1892,0x1888,0x1888,0x1888,0x1888,0x1888,0x1888,0x1895,0x1888,0x1888,0x1888,0x1888, -0x1888,0x6d4,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0xe02,0xfae,0x6dc,0x4a8,0x4a8,0x6e0,0xf00,0x1a31,0x1a29,0xfce,0xfd6,0x6e8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1995,0x1995,0xecb,0xed0,0xed8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x19c9,0x19c9,0x19c9, -0xf18,0xf1d,0x6f0,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1535,0x1535,0x1535, -0x1535,0x1535,0x1535,0x1535,0xa6f,0x1545,0xa77,0x1546,0x153d,0x154e,0x1554,0x155c,0xa7f,0x1685,0x1685,0x6f8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1675,0x1675,0xb81,0xc74,0x4a8,0x4a8,0x4a8,0x4a8,0x158d,0x1594,0xa87, -0x1597,0xa8f,0xa97,0xa9f,0x1591,0xaa7,0xaaf,0xab7,0x1596,0x159e,0x158d,0x1594,0x1590,0x1597,0x159f,0x158e, -0x1595,0x1591,0xabe,0x1564,0x156c,0x1573,0x157a,0x1567,0x156f,0x1576,0x157d,0xac6,0x1585,0x1abe,0x1abe,0x1abe, -0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1aae,0x1ab1,0x1aae, -0x1ab8,0x1097,0x700,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x100e,0x1a51,0x1014, -0x1a51,0x101c,0x1021,0x1025,0x1025,0x107f,0x1086,0x1086,0x1086,0x108e,0x1086,0x108f,0x1086,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x704,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x704,0xace,0x15a7,0x15a7, -0x15a8,0x70c,0x70c,0x70c,0x70c,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x714,0x70c,0x70c,0x70c, -0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c, -0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c, -0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c, -0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x70c,0x17fc,0xcdc,0x1804, -0x1804,0xce0,0xe13,0xe1b,0xe23,0xd8b,0xd91,0x18a5,0xd99,0xda1,0xda8,0xda8,0xdaf,0xdb7,0xdbe,0xdc6, -0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0x18ee,0x18f6,0x18ee,0x18fc,0x1904,0x18cf,0x190c,0x1914,0x18ee,0x191c,0x1924, -0x192b,0x1933,0x18d7,0x18ee,0x1935,0x18df,0x18e6,0x193d,0xe2b,0x19b9,0xe32,0x19b1,0x1945,0x194d,0x1955,0x195d, -0x1a21,0x1965,0x196d,0xe3a,0xe42,0x1975,0x1975,0x1975,0xe4a,0x19d9,0x19d9,0xf2d,0xf33,0xe0a,0xe0b,0xe0b, -0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1a01,0x1a01,0x1a01, -0x1a01,0x1a01,0x1a01,0xf9e,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0xe68,0xe70,0xe78, -0xe80,0xe88,0xe90,0xe97,0xe9b,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1a71,0x1a69,0x1035, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1a41,0xfde, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x1a81,0x1a81,0x1a81,0x1a81,0x1a81,0x1a81,0x1a81,0x1a81, -0x1a81,0x1a81,0x1a81,0x1a81,0x1a81,0x1a81,0x1a86,0x1a81,0x1a81,0x1a81,0x104d,0x104f,0x4a8,0x4a8,0x4a8,0x4a8, -0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x4a8,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x10dc,0x109f, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x10a7,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x15b8,0x15b8, -0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x15b8,0x10e4,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x10ab,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f, -0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x109f,0x10ab,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x10ec,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x10f4,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1444,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x144c,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454, -0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x1454,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c, -0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x145c,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0, -0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x15b0,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad, -0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x18ad,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6, -0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x1ac6,0x487,0x487, -0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x255,0x25e,0x258,0x258,0x25b,0x252,0x252, -0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252, -0x786,0x780,0x765,0x75c,0x753,0x750,0x747,0x762,0x74d,0x759,0x75c,0x777,0x76e,0x75f,0x783,0x756, -0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x76b,0x768,0x771,0x771,0x771,0x780, -0x747,0x792,0x792,0x792,0x792,0x792,0x792,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c, -0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x74d,0x753,0x759,0x77d,0x741, -0x77a,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789, -0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x74d,0x774,0x74a,0x771,0x252, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x261,0x261,0x261,0x261,0x261,0x270,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261, -0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261, -0x264,0x5df,0x79b,0x79e,0x5e5,0x79e,0x798,0x5dc,0x5d3,0x26a,0x5f1,0x26d,0x7a1,0x5ca,0x5e8,0x795, -0x5e2,0x5ee,0x5d0,0x5d0,0x5d6,0x267,0x5dc,0x5d9,0x5d3,0x5d0,0x5f1,0x26d,0x5cd,0x5cd,0x5cd,0x5df, -0x276,0x276,0x276,0x276,0x276,0x276,0x5fa,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, -0x5fa,0x276,0x276,0x276,0x276,0x276,0x276,0x5eb,0x5fa,0x276,0x276,0x276,0x276,0x276,0x5fa,0x5f4, -0x5f7,0x5f7,0x273,0x273,0x273,0x273,0x5f4,0x273,0x5f7,0x5f7,0x5f7,0x273,0x5f7,0x5f7,0x273,0x273, -0x5f4,0x273,0x5f7,0x5f7,0x273,0x273,0x273,0x5eb,0x5f4,0x5f7,0x5f7,0x273,0x5f7,0x273,0x5f4,0x273, -0x282,0x600,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279, -0x27f,0x5fd,0x282,0x600,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x600,0x282,0x279,0x282,0x279, -0x282,0x279,0x282,0x279,0x282,0x279,0x606,0x5fd,0x282,0x279,0x282,0x600,0x282,0x279,0x282,0x279, -0x282,0x5fd,0x609,0x603,0x282,0x279,0x282,0x279,0x5fd,0x282,0x279,0x282,0x279,0x282,0x279,0x609, -0x603,0x606,0x5fd,0x282,0x600,0x282,0x279,0x282,0x600,0x60c,0x606,0x5fd,0x282,0x600,0x282,0x279, -0x282,0x279,0x606,0x5fd,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279, -0x282,0x279,0x282,0x279,0x282,0x279,0x606,0x5fd,0x282,0x279,0x282,0x600,0x282,0x279,0x282,0x279, -0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x279,0x282,0x282,0x279,0x282,0x279,0x282,0x279,0x27c, -0x285,0x291,0x291,0x285,0x291,0x285,0x291,0x291,0x285,0x291,0x291,0x291,0x285,0x285,0x291,0x291, -0x291,0x291,0x285,0x291,0x291,0x285,0x291,0x291,0x291,0x285,0x285,0x285,0x291,0x291,0x285,0x291, -0x294,0x288,0x291,0x285,0x291,0x285,0x291,0x291,0x285,0x291,0x285,0x285,0x291,0x285,0x291,0x294, -0x288,0x291,0x291,0x291,0x285,0x291,0x285,0x291,0x291,0x285,0x285,0x28e,0x291,0x285,0x285,0x285, -0x28e,0x28e,0x28e,0x28e,0x297,0x297,0x28b,0x297,0x297,0x28b,0x297,0x297,0x28b,0x294,0x60f,0x294, -0x60f,0x294,0x60f,0x294,0x60f,0x294,0x60f,0x294,0x60f,0x294,0x60f,0x294,0x60f,0x285,0x294,0x288, -0x294,0x288,0x294,0x288,0x291,0x285,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288, -0x288,0x297,0x297,0x28b,0x294,0x288,0x969,0x969,0x96c,0x966,0x294,0x288,0x294,0x288,0x294,0x288, -0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288,0x294,0x288, -0x294,0x288,0x294,0x288,0x96c,0x966,0x96c,0x966,0x969,0x963,0x96c,0x966,0xb25,0xc27,0x969,0x963, -0x969,0x963,0x96c,0x966,0x96c,0x966,0x96c,0x966,0x96c,0x966,0x96c,0x966,0x96c,0x966,0x96c,0x966, -0xc27,0xc27,0xc27,0xd1d,0xd1d,0xd1d,0xd20,0xd20,0xd1d,0xd20,0xd20,0xd1d,0xd1d,0xd20,0xe61,0xe64, -0xe64,0xe64,0xe64,0xe61,0xe64,0xe61,0xe64,0xe61,0xe64,0xe61,0xe64,0xe61,0x29a,0x612,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x612,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29d,0x29a,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a, -0x29a,0x96f,0x96f,0x96f,0x96f,0x96f,0xc2a,0xc2a,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5, -0x2b5,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2a9,0x2a9,0x2a0,0x2a0,0x618,0x2a0,0x2ac,0x61b, -0x2af,0x61b,0x61b,0x61b,0x2af,0x61b,0x2ac,0x2ac,0x61e,0x2b2,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a6, -0x615,0x615,0x615,0x615,0x2a3,0x615,0x2a0,0xa9e,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2a0,0x2a0,0x2a0, -0x2a0,0x2a0,0x978,0x978,0x975,0x972,0x975,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, -0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x624,0x624,0x8d0,0x624,0x624,0x8d3,0xaa1,0xaa1, -0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xbe2,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3, -0xe2e,0xe2e,0xe2e,0xe2e,0xe31,0xcf6,0xcf6,0xcf6,0x627,0x627,0xaa4,0xc24,0xc24,0xc24,0xc24,0xc24, -0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xf0f,0xf0c,0xf0f,0xf0c,0x2c1,0x2ca,0xf0f,0xf0c, -6,6,0x2d0,0xe67,0xe67,0xe67,0x2b8,0x1452,6,6,6,6,0x2cd,0x2bb,0x2df,0x2be, -0x2df,0x2df,0x2df,6,0x2df,6,0x2df,0x2df,0x2d6,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,6,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x62d,0x2df,0x2df,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a, -0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x2d3,0x62a,0x62a,0x62a,0x62a,0x62a, -0x62a,0x62a,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0xf0f,0x2e2,0x2e2,0x2e5,0x2df,0x2df,0x2e2,0x2d9,0x97b, -0xb2e,0xb2b,0x2dc,0x97b,0x2dc,0x97b,0x2dc,0x97b,0x2dc,0x97b,0x2c7,0x2c4,0x2c7,0x2c4,0x2c7,0x2c4, -0x2c7,0x2c4,0x2c7,0x2c4,0x2c7,0x2c4,0x2c7,0x2c4,0x2e2,0x2e2,0x2d9,0x2d3,0xadd,0xada,0xb28,0xc33, -0xc30,0xc36,0xc33,0xc30,0xd23,0xd26,0xd26,0xd26,0x98a,0x639,0x2f4,0x2f7,0x2f4,0x2f4,0x2f4,0x2f7, -0x2f4,0x2f4,0x2f4,0x2f4,0x2f7,0x98a,0x2f7,0x2f4,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636, -0x636,0x639,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636, -0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630, -0x630,0x633,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630,0x630, -0x630,0x630,0x630,0x630,0x984,0x633,0x2ee,0x2f1,0x2ee,0x2ee,0x2ee,0x2f1,0x2ee,0x2ee,0x2ee,0x2ee, -0x2f1,0x984,0x2f1,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee, -0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f7,0x2f1,0x2f4,0x2ee,0x2f4,0x2ee, -0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2eb,0x8dc,0x2e8,0x8c1,0x8c1,0x10b9,0x97e,0x97e,0xb34,0xb31, -0x987,0x981,0x987,0x981,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee, -0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee, -0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2ee, -0x2f4,0x2ee,0x2f4,0x2ee,0x2f4,0x2f7,0x2f1,0x2f4,0x2ee,0xb34,0xb31,0x2f4,0x2ee,0xb34,0xb31,0x2f4, -0x2ee,0xb34,0xb31,0xe6a,0x2f7,0x2f1,0x2f7,0x2f1,0x2f4,0x2ee,0x2f7,0x2f1,0x2f4,0x2ee,0x2f7,0x2f1, -0x2f7,0x2f1,0x2f7,0x2f1,0x2f4,0x2ee,0x2f7,0x2f1,0x2f7,0x2f1,0x2f7,0x2f1,0x2f4,0x2ee,0x2f7,0x2f1, -0x98a,0x984,0x2f7,0x2f1,0x2f7,0x2f1,0x2f7,0x2f1,0x2f7,0x2f1,0xd2c,0xd29,0x2f7,0x2f1,0xe6d,0xe6a, -0xe6d,0xe6a,0xe6d,0xe6a,0xba3,0xba0,0xba3,0xba0,0xba3,0xba0,0xba3,0xba0,0xba3,0xba0,0xba3,0xba0, -0xba3,0xba0,0xba3,0xba0,0xe9a,0xe97,0xe9a,0xe97,0xf8d,0xf8a,0xf8d,0xf8a,0xf8d,0xf8a,0xf8d,0xf8a, -0xf8d,0xf8a,0xf8d,0xf8a,0xf8d,0xf8a,0xf8d,0xf8a,0x10f5,0x10f2,0x12d5,0x12d2,0x148b,0x1488,0x148b,0x1488, -0x148b,0x1488,0x148b,0x1488,9,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, -0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,9, -9,0x309,0x2fa,0x2fa,0x2fa,0x2fd,0x2fa,0x2fa,9,0x300,0x300,0x300,0x300,0x300,0x300,0x300, -0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, -0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x303,9,0x849,0x98d,9, -9,0x1455,0x1455,0x1371,0xc,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd, -0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0xd2f,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd, -0x8fd,0x8fd,0x8fd,0x8fd,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0xe70,0x30c, -0x30c,0x30c,0x318,0x30c,0x30f,0x30c,0x30c,0x31b,0x900,0xd32,0xd35,0xd32,0xc,0xc,0xc,0xc, -0xc,0xc,0xc,0xc,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e, -0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0xc, -0xc,0xc,0xc,0xc,0x31e,0x31e,0x31e,0x315,0x312,0xc,0xc,0xc,0xc,0xc,0xc,0xc, -0xc,0xc,0xc,0xc,0xc39,0xc39,0xc39,0xc39,0x1374,0x1458,0xf18,0xf18,0xf18,0xf15,0xf15,0xd3e, -0x84f,0xc48,0xc45,0xc45,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xf12,0xf12,0xf12,0xf12,0xf12,0x84c, -0x144c,0xf,0xd3b,0x852,0x1290,0x339,0x33c,0x33c,0x33c,0x33c,0x33c,0x339,0x339,0x339,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0xf1b, -0xf1b,0xf1b,0xf1b,0xf1b,0x855,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x8c7, -0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0xad4,0xad4,0xad4,0xc3c,0xc42,0xc3f,0xd38,0xd38,0xd38, -0xd38,0xd38,0xd38,0x128d,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x333,0x330, -0x32d,0x32a,0xb37,0xb37,0x8c4,0x339,0x339,0x345,0x339,0x33f,0x33f,0x33f,0x33f,0x339,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x993,0x993,0x339,0x339,0x339,0x339,0x339,0x993, -0x33c,0x339,0x33c,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x993, -0x339,0x339,0x339,0x33c,0x348,0x339,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x321,0x32a,0x327, -0x327,0x324,0x324,0x324,0x324,0x342,0x342,0x324,0x324,0x32a,0x327,0x327,0x327,0x324,0xc4b,0xc4b, -0x336,0x336,0x336,0x336,0x336,0x336,0x336,0x336,0x336,0x336,0x993,0x993,0x993,0x990,0x990,0xc4b, -0x9ab,0x9ab,0x9ab,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a2,0x9a5,0x9a2,0x12,0x996, -0x9a8,0x999,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, -0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0xc4e,0xc4e,0xc4e, -0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f, -0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x12,0x12,0xc4e,0xc4e,0xc4e, -0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4, -0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xda4,0xfa2,0xfa2, -0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, -0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1, -0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1, -0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, -0x9ae,0xb3a,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, -0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, -0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, -0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xea9,0xea9,0xea9,0xea9,0xea9, -0xea9,0xea9,0xea9,0xea9,0xeb8,0xeb8,0xeac,0xeac,0xeaf,0xebe,0xebb,0x10e,0x10e,0x10e,0x10e,0x10e, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xab0,0xab0,0xab3,0xab3,0xab0,0xab0,0xab0,0xab0,0xab0,0xab0,0xab0,0xab0,0x72,0x72,0x72,0x72, -0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1518,0x1518,0x1518,0x1518,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1515, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, +0xd42,0xd52,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2, +0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169, +0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x10e9, +0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9, +0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x1129, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0xb74,0xb7b,0xb83,0xb8b,0x1727,0x1727,0x1727,0xb93,0xb9b,0xb9e,0x1757,0x174f,0xbd1,0xcfd,0xd01,0xd05, +0x4db,0x4db,0x4db,0x4db,0xd0d,0x18b6,0xd15,0xf39,0x15db,0xaa1,0xaa7,0xff7,0xba6,0x178f,0xc4b,0x4db, +0x15f0,0x15e3,0x15e8,0x172f,0xbae,0xbb6,0x1142,0x1148,0x1ab1,0xf56,0x1aa1,0x6cb,0x4db,0x4db,0x4db,0x4db, +0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0xfa7,0xfaf,0xfb7,0x4db,0x4db,0x4db,0x4db, +0xbbe,0xbc1,0xda4,0x1b19,0xfef,0x6d3,0x4db,0x1088,0xc9e,0xd1d,0x4db,0x4db,0x1a66,0xeec,0xef4,0x1b59, +0xc25,0xc2c,0xc34,0x1922,0x1af9,0x4db,0x1ad9,0xfc7,0x192a,0xdac,0xdb4,0xdbc,0x1017,0x6db,0x4db,0x4db, +0x1932,0x1932,0x6e3,0x4db,0x1b86,0x10a0,0x1b7e,0x10a8,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0xdc4,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x1987,0x1989,0xe39,0xe40,0x1942,0x193a,0xdcc,0xf19,0x1a5e,0xed4,0xedc,0xfbf,0x1a76,0x1a7a,0xf11,0x1037, +0xf8a,0xf8f,0x6eb,0x4db,0x1090,0x1098,0x1ac1,0xf97,0xf6c,0xf72,0xf7a,0xf82,0x4db,0x4db,0x4db,0x4db, +0x1bc6,0x1bbe,0x1132,0x113a,0x1b41,0x1b39,0x105e,0x4db,0x4db,0x4db,0x4db,0x4db,0x1b29,0x101f,0x1027,0x102f, +0x1af1,0x1ae9,0xfd7,0x112a,0x1a82,0xf29,0x6f3,0x4db,0x106e,0x1076,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc, +0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x1801,0xca6,0xcad,0xcad,0xcad, +0x1809,0x1809,0x1809,0xcb5,0x1b76,0x1b76,0x1b76,0x1b76,0x1b76,0x1b76,0x6fb,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a, +0x194a,0x194a,0x194c,0x194a,0x1954,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x1957,0x194a,0x194a,0x194a,0x194a, +0x194a,0x703,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991, +0x1991,0xe48,0xfdf,0x70b,0x4db,0x4db,0x70f,0xf31,0x1b11,0x1b09,0xfff,0x1007,0x717,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x1a6e,0x1a6e,0xefc,0xf01,0xf09,0x4db,0x4db,0x1114, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x1aa9,0x1aa9,0x1aa9,0xf49,0xf4e,0x71f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0xaaf,0x1608,0xab7,0x1609,0x1600,0x1611,0x1617,0x161f,0xabf, +0x1747,0x1747,0x727,0x4db,0x4db,0x4db,0x4db,0x4db,0x1737,0x1737,0xbc9,0xcbd,0x4db,0x4db,0x4db,0x4db, +0x1650,0x1657,0xac7,0x165a,0xacf,0xad7,0xadf,0x1654,0xae7,0xaef,0xaf7,0x1659,0x1661,0x1650,0x1657,0x1653, +0x165a,0x1662,0x1651,0x1658,0x1654,0xafe,0x1627,0x162f,0x1636,0x163d,0x162a,0x1632,0x1639,0x1640,0xb06,0x1648, +0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e, +0x1b8e,0x1b91,0x1b8e,0x1b98,0x10e0,0x72f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x110c,0x737,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x73b,0x103f,0x1b31,0x1045,0x1b31,0x104d,0x1052,0x1056,0x1056,0x10b0,0x10b8,0x10c0,0x10c8,0x10d0,0x10c8, +0x10d8,0x10c8,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743, +0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743, +0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743, +0x743,0x744,0xb0e,0x166a,0x166a,0x166a,0x74c,0x74c,0x74c,0x74c,0x173f,0x173f,0x173f,0x173f,0x173f,0x173f, +0x173f,0x754,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c, +0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c, +0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c, +0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c, +0x74c,0x74c,0x18be,0xd25,0x18c6,0x18c6,0xd29,0xe59,0xe61,0xe69,0xdd4,0xdda,0x196f,0xde2,0x1967,0xdea, +0xdee,0xdf5,0xdfd,0xe04,0xe0c,0xe11,0xe11,0xe11,0xe11,0xe11,0x19c0,0x19c8,0x19c0,0x19ce,0x19d6,0x19a1, +0x19de,0x19e6,0x19c0,0x19ee,0x19f6,0x19fd,0x1a05,0x19a9,0x19c0,0x1a08,0x19b1,0x19b8,0x1a10,0x1a16,0x1a92,0x1a99, +0x1a8a,0x1a1e,0x1a26,0x1a2e,0x1a36,0x1b01,0x1a3e,0x1a46,0xe71,0xe79,0x1999,0x1999,0x1999,0xe81,0x1ab9,0x1ab9, +0xf5e,0xf64,0xe50,0xe51,0xe51,0xe51,0xe51,0xe51,0xe51,0xe51,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0xfcf,0x4db,0x1bb6,0x1bae,0x10e8,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0xe99,0xea1,0xea9,0xeb1,0xeb9,0xec1,0xec8,0xecc,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x1b51,0x1b49,0x1066,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x1b21,0x100f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x10f0,0x10f5,0x10fd, +0x1104,0x111c,0x1122,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61, +0x1b61,0x1b66,0x1b61,0x1b61,0x1b61,0x107e,0x1080,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1150,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6, +0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1158,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db, +0x4db,0x4db,0x4db,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x119d,0x1160,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1168,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a, +0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x11a5,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x116c,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160, +0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x116c,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x11ad,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x11b5,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1505,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x150d,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515, +0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d, +0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672, +0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6, +0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce, +0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x4ba,0x4ba,0x4ba,0x273,0x273,0x273,0x273, +0x273,0x273,0x273,0x273,0x273,0x276,0x27f,0x279,0x279,0x27c,0x273,0x273,0x273,0x273,0x273,0x273, +0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x7a1,0x79b,0x780,0x777, +0x76e,0x76b,0x762,0x77d,0x768,0x774,0x777,0x792,0x789,0x77a,0x79e,0x771,0x75f,0x75f,0x75f,0x75f, +0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x786,0x783,0x78c,0x78c,0x78c,0x79b,0x762,0x7ad,0x7ad,0x7ad, +0x7ad,0x7ad,0x7ad,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7, +0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x768,0x76e,0x774,0x798,0x75c,0x795,0x7aa,0x7aa,0x7aa, +0x7aa,0x7aa,0x7aa,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4, +0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x768,0x78f,0x765,0x78c,0x273,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0, +0,0,0,0,0,0,0,0,0,0,0,0,0x282,0x282,0x282,0x282, +0x282,0x291,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282, +0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x285,0x5fa,0x7b6,0x7b9, +0x600,0x7b9,0x7b3,0x5f7,0x5ee,0x28b,0x60c,0x28e,0x7bc,0x5e5,0x603,0x7b0,0x5fd,0x609,0x5eb,0x5eb, +0x5f1,0x288,0x5f7,0x5f4,0x5ee,0x5eb,0x60c,0x28e,0x5e8,0x5e8,0x5e8,0x5fa,0x297,0x297,0x297,0x297, +0x297,0x297,0x615,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x615,0x297,0x297,0x297, +0x297,0x297,0x297,0x606,0x615,0x297,0x297,0x297,0x297,0x297,0x615,0x60f,0x612,0x612,0x294,0x294, +0x294,0x294,0x60f,0x294,0x612,0x612,0x612,0x294,0x612,0x612,0x294,0x294,0x60f,0x294,0x612,0x612, +0x294,0x294,0x294,0x606,0x60f,0x612,0x612,0x294,0x612,0x294,0x60f,0x294,0x2a3,0x61b,0x2a3,0x29a, +0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a0,0x618,0x2a3,0x61b, +0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a, +0x2a3,0x29a,0x621,0x618,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x618,0x624,0x61e, +0x2a3,0x29a,0x2a3,0x29a,0x618,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x624,0x61e,0x621,0x618,0x2a3, +0x61b,0x2a3,0x29a,0x2a3,0x61b,0x627,0x621,0x618,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x621,0x618, +0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a, +0x2a3,0x29a,0x621,0x618,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a, +0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x29d,0x2a6,0x2b2,0x2b2,0x2a6, +0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2b2,0x2b2,0x2a6,0x2a6,0x2b2,0x2b2,0x2b2,0x2b2,0x2a6,0x2b2, +0x2b2,0x2a6,0x2b2,0x2b2,0x2b2,0x2a6,0x2a6,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2b5,0x2a9,0x2b2,0x2a6, +0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2a6,0x2a6,0x2b2,0x2a6,0x2b2,0x2b5,0x2a9,0x2b2,0x2b2,0x2b2, +0x2a6,0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2a6,0x2af,0x2b2,0x2a6,0x2a6,0x2a6,0x2af,0x2af,0x2af,0x2af, +0x2b8,0x2b8,0x2ac,0x2b8,0x2b8,0x2ac,0x2b8,0x2b8,0x2ac,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5, +0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2a6,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9, +0x2b2,0x2a6,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2a9,0x2b8,0x2b8,0x2ac, +0x2b5,0x2a9,0x990,0x990,0x993,0x98d,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9, +0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9, +0x993,0x98d,0x993,0x98d,0x990,0x98a,0x993,0x98d,0xb4f,0xc51,0x990,0x98a,0x990,0x98a,0x993,0x98d, +0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0xc51,0xc51,0xc51,0xd4a, +0xd4a,0xd4a,0xd4d,0xd4d,0xd4a,0xd4d,0xd4d,0xd4a,0xd4a,0xd4d,0xe8e,0xe91,0xe91,0xe91,0xe91,0xe8e, +0xe91,0xe8e,0xe91,0xe8e,0xe91,0xe8e,0xe91,0xe8e,0x2bb,0x62d,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x62d,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2be,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x996,0x996,0x996, +0x996,0x996,0xc54,0xc54,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2cd,0x2cd,0x2cd, +0x2cd,0x2cd,0x2cd,0x2cd,0x2ca,0x2ca,0x2c1,0x2c1,0x633,0x2c1,0x2cd,0x636,0x2d0,0x636,0x636,0x636, +0x2d0,0x636,0x2cd,0x2cd,0x639,0x2d3,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c7,0x630,0x630,0x630,0x630, +0x2c4,0x630,0x2c1,0xac8,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x99f,0x99f, +0x99c,0x999,0x99c,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57, +0xc57,0xc57,0xc57,0xc57,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c, +0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c, +0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c, +0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c, +0x63c,0x63c,0x63c,0x63c,0x63f,0x63f,0x8f4,0x63f,0x63f,0x8f7,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb, +0xacb,0xacb,0xacb,0xc09,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xe55,0xe55,0xe55,0xe55, +0xe58,0xd1d,0xd1d,0xd1d,0x642,0x642,0xace,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e, +0xc4e,0xc4e,0xc4e,0xc4e,0xf3c,0xf39,0xf3c,0xf39,0x2e2,0x2eb,0xf3c,0xf39,9,9,0x2f1,0xe94, +0xe94,0xe94,0x2d9,0x1491,9,9,9,9,0x2ee,0x2dc,0x300,0x2df,0x300,0x300,0x300,9, +0x300,9,0x300,0x300,0x2f7,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648, +0x648,0x648,0x648,0x648,0x648,0x648,9,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x300,0x300, +0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645, +0x645,0x645,0x645,0x645,0x645,0x645,0x2f4,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x2f7,0x2f7, +0x2f7,0x2f7,0x2f7,0xf3c,0x303,0x303,0x306,0x300,0x300,0x303,0x2fa,0x9a2,0xb58,0xb55,0x2fd,0x9a2, +0x2fd,0x9a2,0x2fd,0x9a2,0x2fd,0x9a2,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5, +0x2e8,0x2e5,0x2e8,0x2e5,0x303,0x303,0x2fa,0x2f4,0xb07,0xb04,0xb52,0xc5d,0xc5a,0xc60,0xc5d,0xc5a, +0xd50,0xd53,0xd53,0xd53,0x9b1,0x654,0x312,0x315,0x312,0x312,0x312,0x315,0x312,0x312,0x312,0x312, +0x315,0x9b1,0x315,0x312,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x654,0x651,0x651, +0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651, +0x651,0x651,0x651,0x651,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64e,0x64b,0x64b, +0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b, +0x9ab,0x64e,0x30c,0x30f,0x30c,0x30c,0x30c,0x30f,0x30c,0x30c,0x30c,0x30c,0x30f,0x9ab,0x30f,0x30c, +0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, +0x312,0x30c,0x312,0x30c,0x312,0x30c,0x315,0x30f,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, +0x312,0x30c,0x309,0x900,0x903,0x8e5,0x8e5,0x10e6,0x9a5,0x9a5,0xb5e,0xb5b,0x9ae,0x9a8,0x9ae,0x9a8, +0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, +0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, +0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, +0x312,0x315,0x30f,0x312,0x30c,0xb5e,0xb5b,0x312,0x30c,0xb5e,0xb5b,0x312,0x30c,0xb5e,0xb5b,0xe97, +0x315,0x30f,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x315,0x30f,0x315,0x30f, +0x312,0x30c,0x315,0x30f,0x315,0x30f,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x9b1,0x9ab,0x315,0x30f, +0x315,0x30f,0x315,0x30f,0x315,0x30f,0xd59,0xd56,0x315,0x30f,0xe9a,0xe97,0xe9a,0xe97,0xe9a,0xe97, +0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7, +0xec7,0xec4,0xec7,0xec4,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7, +0xfba,0xfb7,0xfba,0xfb7,0x111f,0x111c,0x12f9,0x12f6,0x14ca,0x14c7,0x14ca,0x14c7,0x14ca,0x14c7,0x14ca,0x14c7, +0xc,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324, +0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0xc,0xc,0x327,0x318,0x318, +0x318,0x31b,0x318,0x318,0xc,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e, +0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e, +0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x321,0xc,0x86a,0x9b4,0xc,0xc,0x1494,0x1494,0x13ad, +0xf,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924, +0x924,0x924,0xd5c,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924, +0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0xe9d,0x32a,0x32a,0x32a,0x336,0x32a, +0x32d,0x32a,0x32a,0x339,0x927,0xd5f,0xd62,0xd5f,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c, +0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0xf,0xf,0xf,0xf,0xf, +0x33c,0x33c,0x33c,0x333,0x330,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xc63,0xc63,0xc63,0xc63,0x13b0,0x1497,0xf45,0xf45,0xf45,0xf42,0xf42,0xd6b,0x870,0xc72,0xc6f,0xc6f, +0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0x86d,0x148b,0x12,0xd68,0x873, +0x12c0,0x357,0x35a,0x35a,0x35a,0x35a,0x35a,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357, +0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0xf48,0xf48,0xf48,0xf48,0xf48, +0x876,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb, +0x8eb,0x8eb,0x8eb,0xafe,0xafe,0xafe,0xc66,0xc6c,0xc69,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0x12bd, +0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x351,0x34e,0x34b,0x348,0xb61,0xb61, +0x8e8,0x357,0x357,0x363,0x357,0x35d,0x35d,0x35d,0x35d,0x357,0x357,0x357,0x357,0x357,0x357,0x357, +0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357, +0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357, +0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357, +0x357,0x357,0x357,0x357,0x9ba,0x9ba,0x357,0x357,0x357,0x357,0x357,0x9ba,0x35a,0x357,0x35a,0x357, +0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x9ba,0x357,0x357,0x357,0x35a, +0x366,0x357,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x33f,0x348,0x345,0x345,0x342,0x342,0x342, +0x342,0x360,0x360,0x342,0x342,0x348,0x345,0x345,0x345,0x342,0xc75,0xc75,0x354,0x354,0x354,0x354, +0x354,0x354,0x354,0x354,0x354,0x354,0x9ba,0x9ba,0x9ba,0x9b7,0x9b7,0xc75,0x9d2,0x9d2,0x9d2,0x9cc, +0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9c9,0x9cc,0x9c9,0x15,0x9bd,0x9cf,0x9c0,0x9cf,0x9cf, +0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf, +0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0xc78,0xc78,0xc78,0x9c6,0x9c6,0x9c6,0x9c6, +0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c3,0x9c3,0x9c3,0x9c3, +0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x15,0x15,0xc78,0xc78,0xc78,0xdcb,0xdcb,0xdcb,0xdcb, +0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb, +0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc, +0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0x9d8,0x9d8,0x9d8,0x9d8, +0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8, +0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8, +0x9d8,0x9d8,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0xb64,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xedf,0xedf,0xedf,0xedf, +0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2, +0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2, +0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6, +0xee5,0xee5,0xed9,0xed9,0xedc,0xeeb,0xee8,0x111,0x111,0x111,0x111,0x111,0x17d3,0x17d3,0x17d3,0x17d3, +0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xada,0xada,0xadd,0xadd, +0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0x75,0x75,0x75,0x75,0x1551,0x1551,0x1551,0x1551, +0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x154e,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1fe,0x1fe,0x1fe,0x1fe, +0x1fe,0x1fe,0x1fe,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x20a,0x20a,0x20a,0x20a, +0x20a,0x20a,0x20a,0x20a,0x20a,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x120f,0x120f,0x120f,0x120f, +0x120f,0x120f,0x120f,0x120f,0x120f,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1e0,0x1e0,0x1e0,0x1e0, +0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1467,0x1467,0x1467,0x1467, +0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x173d,0x173d,0x173d,0x173d, +0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1233,0x1233,0x1233,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x186,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x15f6,0x15f6,0x15f6,0x15f6, +0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x1f8,0x1f8,0x1f8,0x1f8,0x15fc,0x15fc,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1548,0x1548,0x1548,0x1548, +0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1632,0x1632,0x1632,0x1632, +0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x16aa,0x16aa,0x16aa,0x16aa, +0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xdc2,0xdc2,0xdbf,0xdbf, +0xdbf,0xdc2,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x234,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x17d6,0x17d6,0x240,0x17d6, +0x17d6,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x240,0x240,0x240,0x240,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x16fb,0x16fb,0x16fb,0x16fb,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x183, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x1f8,0x1f8,0x1f8,0x1f8,0x15c3,0x15c3, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f, -0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1662,0x1662,0x1662,0x1662,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xd9b,0xd9b,0xd98,0xd98,0xd98,0xd9b,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x234,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x8fa,0x8fa, +0,0,0,0,0,0,0,0,0,0,0x921,0x921,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -0x145e,0x360,0x36f,0x36f,0x18,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x18,0x18,0x375, -0x375,0x18,0x18,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375, -0x375,0x18,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x18,0x375,0x18,0x18,0x18,0x375,0x375, -0x375,0x375,0x18,0x18,0x363,0xc54,0x360,0x36f,0x36f,0x360,0x360,0x360,0x360,0x18,0x18,0x36f, -0x36f,0x18,0x18,0x372,0x372,0x366,0xd44,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x360, -0x18,0x18,0x18,0x18,0x378,0x378,0x18,0x378,0x375,0x375,0x360,0x360,0x18,0x18,0x8e5,0x8e5, -0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x375,0x375,0x36c,0x36c,0x369,0x369,0x369,0x369, -0x369,0x36c,0x369,0x10c8,0x18,0x18,0x18,0x18,0x1b,0xc57,0x37b,0xc5a,0x1b,0x387,0x387,0x387, -0x387,0x387,0x387,0x1b,0x1b,0x1b,0x1b,0x387,0x387,0x1b,0x1b,0x387,0x387,0x387,0x387,0x387, -0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x1b,0x387,0x387,0x387,0x387,0x387,0x387, -0x387,0x1b,0x387,0x38a,0x1b,0x387,0x38a,0x1b,0x387,0x387,0x1b,0x1b,0x37e,0x1b,0x384,0x384, -0x384,0x37b,0x37b,0x1b,0x1b,0x1b,0x1b,0x37b,0x37b,0x1b,0x1b,0x37b,0x37b,0x381,0x1b,0x1b, -0x1b,0xf24,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x38a,0x38a,0x38a,0x387,0x1b,0x38a,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8, -0x37b,0x37b,0x387,0x387,0x387,0xf24,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1e,0x38d,0x38d,0x396,0x1e,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0xc63,0x399,0x1e,0x399, -0x399,0x399,0x1e,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399, -0x399,0x1e,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x1e,0x399,0x399,0x1e,0x399,0x399,0x399, -0x399,0x399,0x1e,0x1e,0x390,0x399,0x396,0x396,0x396,0x38d,0x38d,0x38d,0x38d,0x38d,0x1e,0x38d, -0x38d,0x396,0x1e,0x396,0x396,0x393,0x1e,0x1e,0x399,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x399,0xc63,0xc5d,0xc5d,0x1e,0x1e,0x8eb,0x8eb, -0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x1377,0xc60,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x166b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x21,0x39c,0x3ab,0x3ab,0x21,0x3b1,0x3b1,0x3b1, -0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x21,0x21,0x3b1,0x3b1,0x21,0x21,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1, -0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x21,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1, -0x3b1,0x21,0x3b1,0x3b1,0x21,0xc66,0x3b1,0x3b1,0x3b1,0x3b1,0x21,0x21,0x39f,0x3b1,0x39c,0x39c, -0x3ab,0x39c,0x39c,0x39c,0xf27,0x21,0x21,0x3ab,0x3ae,0x21,0x21,0x3ae,0x3ae,0x3a2,0x21,0x21, -0x21,0x21,0x21,0x21,0x21,0x21,0x39c,0x39c,0x21,0x21,0x21,0x21,0x3b4,0x3b4,0x21,0x3b1, -0x3b1,0x3b1,0xf27,0xf27,0x21,0x21,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8, -0x3a5,0xc66,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, -0x24,0x24,0x3b7,0x3c3,0x24,0x3c3,0x3c3,0x3c3,0x3c3,0x3c3,0x3c3,0x24,0x24,0x24,0x3c3,0x3c3, -0x3c3,0x24,0x3c3,0x3c3,0x3c6,0x3c3,0x24,0x24,0x24,0x3c3,0x3c3,0x24,0x3c3,0x24,0x3c3,0x3c3, -0x24,0x24,0x24,0x3c3,0x3c3,0x24,0x24,0x24,0x3c3,0x3c3,0x8f4,0x24,0x24,0x24,0x3c3,0x3c3, -0x3c3,0x3c3,0x3c3,0x3c3,0x3c3,0x8f4,0xd47,0x3c3,0x3c3,0x3c3,0x24,0x24,0x24,0x24,0x3b7,0x3bd, -0x3b7,0x3bd,0x3bd,0x24,0x24,0x24,0x3bd,0x3bd,0x3bd,0x24,0x3c0,0x3c0,0x3c0,0x3ba,0x24,0x24, -0xf2a,0x24,0x24,0x24,0x24,0x24,0x24,0x3b7,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, -0x24,0x24,0xe5e,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8ee,0x8ee,0x8ee,0xc69, -0xc69,0xc69,0xc69,0xc69,0xc69,0xc6c,0xc69,0x24,0x24,0x24,0x24,0x24,0x1461,0x3d5,0x3d5,0x3d5, -0x27,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x27,0x3d8,0x3d8,0x3d8,0x27,0x3d8,0x3d8, -0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x27,0x3d8,0x3d8, -0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x1464,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x27,0x27, -0x27,0xf33,0x3c9,0x3c9,0x3c9,0x3d5,0x3d5,0x3d5,0x3d5,0x27,0x3c9,0x3c9,0x3cc,0x27,0x3c9,0x3c9, -0x3c9,0x3cf,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x3c9,0x3c9,0x27,0xf33,0xf33,0x166e,0x27, -0x27,0x27,0x27,0x27,0x3d8,0x3d8,0xf2d,0xf2d,0x27,0x27,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2, -0x3d2,0x3d2,0x3d2,0x3d2,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0xf30,0xf30,0xf30,0xf30, -0xf30,0xf30,0xf30,0xf30,0x2a,0x1467,0x3e4,0x3e4,0x2a,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -0x3ea,0x2a,0x3ea,0x3ea,0x3ea,0x2a,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x2a,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -0x2a,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x2a,0x2a,0xc6f,0xc72,0x3e4,0x3db,0x3e7,0x3e4,0x3db,0x3e4, -0x3e4,0x2a,0x3db,0x3e7,0x3e7,0x2a,0x3e7,0x3e7,0x3db,0x3de,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x3db,0x3db,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x3ea,0x2a,0x3ea,0x3ea,0xe76,0xe76, -0x2a,0x2a,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x2a,0xe79,0xe79,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2d,0x146a,0x3f6,0x3f6, -0x2d,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x2d,0x3fc,0x3fc,0x3fc,0x2d,0x3fc,0x3fc, -0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x129f,0x3fc,0x3fc, -0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x129f,0x2d, -0x2d,0xf3f,0x3ed,0x3f6,0x3f6,0x3ed,0x3ed,0x3ed,0xf36,0x2d,0x3f6,0x3f6,0x3f6,0x2d,0x3f9,0x3f9, -0x3f9,0x3f0,0x129f,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x3ed,0x2d,0x2d,0x2d,0x2d, -0x2d,0x2d,0x2d,0x1671,0x3fc,0x3fc,0xf36,0xf36,0x2d,0x2d,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3, -0x3f3,0x3f3,0x3f3,0x3f3,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0x2d,0x2d,0x2d,0xf3c,0xf3f,0xf3f, -0xf3f,0xf3f,0xf3f,0xf3f,0x30,0x30,0x9bd,0x9bd,0x30,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3, -0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x30,0x30,0x30,0x9c3,0x9c3, -0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3, -0x9c3,0x9c3,0x30,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x30,0x9c3,0x30,0x30, -0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x30,0x30,0x30,0x9b7,0x30,0x30,0x30,0x30,0x9b4, -0x9bd,0x9bd,0x9b4,0x9b4,0x9b4,0x30,0x9b4,0x30,0x9bd,0x9bd,0x9c0,0x9bd,0x9c0,0x9c0,0x9c0,0x9b4, -0x30,0x30,0x30,0x30,0x30,0x30,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d, -0x30,0x30,0x9bd,0x9bd,0x9ba,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0x33,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417, -0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417, -0x417,0x402,0x417,0x414,0x402,0x402,0x402,0x402,0x402,0x402,0x408,0x33,0x33,0x33,0x33,0x3ff, -0x41d,0x41d,0x41d,0x41d,0x41d,0x417,0x41a,0x405,0x405,0x405,0x405,0x405,0x405,0x402,0x405,0x40b, -0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x40e,0x40e,0x33,0x33,0x33,0x33, -0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, -0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x42c,0x42c,0x36, -0x42c,0x36,0x36,0x42c,0x42c,0x36,0x42c,0x36,0x36,0x42c,0x36,0x36,0x36,0x36,0x36,0x36, -0x42c,0x42c,0x42c,0x42c,0x36,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x36,0x42c,0x42c,0x42c, -0x36,0x42c,0x36,0x42c,0x36,0x36,0x42c,0x42c,0x36,0x42c,0x42c,0x42c,0x42c,0x420,0x42c,0x429, -0x420,0x420,0x420,0x420,0x420,0x420,0x36,0x420,0x420,0x42c,0x36,0x36,0x435,0x435,0x435,0x435, -0x435,0x36,0x432,0x36,0x423,0x423,0x423,0x423,0x423,0x420,0x36,0x36,0x426,0x426,0x426,0x426, -0x426,0x426,0x426,0x426,0x426,0x426,0x36,0x36,0x42f,0x42f,0x137a,0x137a,0x36,0x36,0x36,0x36, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,0x921,0x921, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x149d,0x37e,0x38d,0x38d,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x1b,0x1b,0x393, +0x393,0x1b,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393, +0x393,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x1b,0x393,0x1b,0x1b,0x1b,0x393,0x393, +0x393,0x393,0x1b,0x1b,0x381,0xc7e,0x37e,0x38d,0x38d,0x37e,0x37e,0x37e,0x37e,0x1b,0x1b,0x38d, +0x38d,0x1b,0x1b,0x390,0x390,0x384,0xd71,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x37e, +0x1b,0x1b,0x1b,0x1b,0x396,0x396,0x1b,0x396,0x393,0x393,0x37e,0x37e,0x1b,0x1b,0x90c,0x90c, +0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x393,0x393,0x38a,0x38a,0x387,0x387,0x387,0x387, +0x387,0x38a,0x387,0x10f5,0x1b,0x1b,0x1b,0x1b,0x1e,0xc81,0x399,0xc84,0x1e,0x3a5,0x3a5,0x3a5, +0x3a5,0x3a5,0x3a5,0x1e,0x1e,0x1e,0x1e,0x3a5,0x3a5,0x1e,0x1e,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5, +0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x1e,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5, +0x3a5,0x1e,0x3a5,0x3a8,0x1e,0x3a5,0x3a8,0x1e,0x3a5,0x3a5,0x1e,0x1e,0x39c,0x1e,0x3a2,0x3a2, +0x3a2,0x399,0x399,0x1e,0x1e,0x1e,0x1e,0x399,0x399,0x1e,0x1e,0x399,0x399,0x39f,0x1e,0x1e, +0x1e,0xf51,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3a8,0x3a8,0x3a8,0x3a5,0x1e,0x3a8,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f, +0x399,0x399,0x3a5,0x3a5,0x3a5,0xf51,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x21,0x3ab,0x3ab,0x3b4,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0xc8d,0x3b7,0x21,0x3b7, +0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7, +0x3b7,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x3b7, +0x3b7,0x3b7,0x21,0x21,0x3ae,0x3b7,0x3b4,0x3b4,0x3b4,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x21,0x3ab, +0x3ab,0x3b4,0x21,0x3b4,0x3b4,0x3b1,0x21,0x21,0x3b7,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x3b7,0xc8d,0xc87,0xc87,0x21,0x21,0x912,0x912, +0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x13b3,0xc8a,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x16b9,0x21,0x21,0x21,0x21,0x21,0x21,0x24,0x3ba,0x3c9,0x3c9,0x24,0x3cf,0x3cf,0x3cf, +0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x24,0x3cf,0x3cf,0x24,0x24,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf, +0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf, +0x3cf,0x24,0x3cf,0x3cf,0x24,0xc90,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x24,0x3bd,0x3cf,0x3ba,0x3ba, +0x3c9,0x3ba,0x3ba,0x3ba,0xf54,0x24,0x24,0x3c9,0x3cc,0x24,0x24,0x3cc,0x3cc,0x3c0,0x24,0x24, +0x24,0x24,0x24,0x24,0x24,0x24,0x3ba,0x3ba,0x24,0x24,0x24,0x24,0x3d2,0x3d2,0x24,0x3cf, +0x3cf,0x3cf,0xf54,0xf54,0x24,0x24,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6, +0x3c3,0xc90,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, +0x27,0x27,0x3d5,0x3e1,0x27,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1, +0x3e1,0x27,0x3e1,0x3e1,0x3e4,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1,0x27,0x3e1,0x27,0x3e1,0x3e1, +0x27,0x27,0x27,0x3e1,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1,0x91b,0x27,0x27,0x27,0x3e1,0x3e1, +0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x91b,0xd74,0x3e1,0x3e1,0x3e1,0x27,0x27,0x27,0x27,0x3d5,0x3db, +0x3d5,0x3db,0x3db,0x27,0x27,0x27,0x3db,0x3db,0x3db,0x27,0x3de,0x3de,0x3de,0x3d8,0x27,0x27, +0xf57,0x27,0x27,0x27,0x27,0x27,0x27,0x3d5,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27, +0x27,0x27,0xe8b,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x915,0x915,0x915,0xc93, +0xc93,0xc93,0xc93,0xc93,0xc93,0xc96,0xc93,0x27,0x27,0x27,0x27,0x27,0x14a0,0x3f3,0x3f3,0x3f3, +0x2a,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6, +0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6, +0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x14a3,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x2a, +0x2a,0xf60,0x3e7,0x3e7,0x3e7,0x3f3,0x3f3,0x3f3,0x3f3,0x2a,0x3e7,0x3e7,0x3ea,0x2a,0x3e7,0x3e7, +0x3e7,0x3ed,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x3e7,0x3e7,0x2a,0xf60,0xf60,0x16bc,0x2a, +0x2a,0x2a,0x2a,0x2a,0x3f6,0x3f6,0xf5a,0xf5a,0x2a,0x2a,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0, +0x3f0,0x3f0,0x3f0,0x3f0,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0xf5d,0xf5d,0xf5d,0xf5d, +0xf5d,0xf5d,0xf5d,0xf5d,0x1779,0x14a6,0x402,0x402,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408, +0x408,0x2d,0x408,0x408,0x408,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408, +0x408,0x408,0x408,0x408,0x408,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408, +0x2d,0x408,0x408,0x408,0x408,0x408,0x2d,0x2d,0xc99,0xc9c,0x402,0x3f9,0x405,0x402,0x3f9,0x402, +0x402,0x2d,0x3f9,0x405,0x405,0x2d,0x405,0x405,0x3f9,0x3fc,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d, +0x2d,0x3f9,0x3f9,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x408,0x2d,0x408,0x408,0xea3,0xea3, +0x2d,0x2d,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x2d,0xea6,0xea6,0x2d, +0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x30,0x14a9,0x414,0x414, +0x30,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x30,0x41a,0x41a,0x41a,0x30,0x41a,0x41a, +0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x12cf,0x41a,0x41a, +0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x12cf,0x30, +0x30,0xf6c,0x40b,0x414,0x414,0x40b,0x40b,0x40b,0xf63,0x30,0x414,0x414,0x414,0x30,0x417,0x417, +0x417,0x40e,0x12d2,0x177c,0x30,0x30,0x30,0x30,0x177f,0x177f,0x177f,0x40b,0x177c,0x177c,0x177c,0x177c, +0x177c,0x177c,0x177c,0x16bf,0x41a,0x41a,0xf63,0xf63,0x30,0x30,0x411,0x411,0x411,0x411,0x411,0x411, +0x411,0x411,0x411,0x411,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0x177c,0x177c,0x177c,0xf69,0xf6c,0xf6c, +0xf6c,0xf6c,0xf6c,0xf6c,0x33,0x33,0x9e4,0x9e4,0x33,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea, +0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x33,0x33,0x9ea,0x9ea, +0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea, +0x9ea,0x9ea,0x33,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x9ea,0x33,0x33, +0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x33,0x33,0x9de,0x33,0x33,0x33,0x33,0x9db, +0x9e4,0x9e4,0x9db,0x9db,0x9db,0x33,0x9db,0x33,0x9e4,0x9e4,0x9e7,0x9e4,0x9e7,0x9e7,0x9e7,0x9db, +0x33,0x33,0x33,0x33,0x33,0x33,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac, +0x33,0x33,0x9e4,0x9e4,0x9e1,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, +0x36,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435, +0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435, +0x435,0x420,0x435,0x432,0x420,0x420,0x420,0x420,0x420,0x420,0x426,0x36,0x36,0x36,0x36,0x41d, +0x43b,0x43b,0x43b,0x43b,0x43b,0x435,0x438,0x423,0x423,0x423,0x423,0x423,0x423,0x420,0x423,0x429, +0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42c,0x42c,0x36,0x36,0x36,0x36, 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, -0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x936,0x936,0x936,0x939, -0x936,0x936,0x936,0x936,0x39,0x936,0x936,0x936,0x936,0x939,0x936,0x936,0x936,0x936,0x939,0x936, -0x936,0x936,0x936,0x939,0x936,0x936,0x936,0x936,0x939,0x936,0x936,0x936,0x936,0x936,0x936,0x936, -0x936,0x936,0x936,0x936,0x936,0x939,0x9d2,0xf4b,0xf4b,0x39,0x39,0x39,0x39,0x903,0x903,0x906, -0x903,0x906,0x906,0x90f,0x906,0x90f,0x903,0x903,0x903,0x903,0x903,0x930,0x903,0x906,0x909,0x909, -0x90c,0x915,0x909,0x909,0x936,0x936,0x936,0x936,0x12a8,0x12a2,0x12a2,0x12a2,0x903,0x903,0x903,0x906, -0x903,0x903,0x9c6,0x903,0x39,0x903,0x903,0x903,0x903,0x906,0x903,0x903,0x903,0x903,0x906,0x903, -0x903,0x903,0x903,0x906,0x903,0x903,0x903,0x903,0x906,0x903,0x9c6,0x9c6,0x9c6,0x903,0x903,0x903, -0x903,0x903,0x903,0x903,0x9c6,0x906,0x9c6,0x9c6,0x9c6,0x39,0x9cf,0x9cf,0x9cc,0x9cc,0x9cc,0x9cc, -0x9cc,0x9cc,0x9c9,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x39,0xf42,0x9cc,0xd4a,0xd4a,0xf45,0xf48, -0xf42,0x10cb,0x10cb,0x10cb,0x10cb,0x12a5,0x12a5,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, +0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x44a,0x44a,0x39, +0x44a,0x39,0x39,0x44a,0x44a,0x39,0x44a,0x39,0x39,0x44a,0x39,0x39,0x39,0x39,0x39,0x39, +0x44a,0x44a,0x44a,0x44a,0x39,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x39,0x44a,0x44a,0x44a, +0x39,0x44a,0x39,0x44a,0x39,0x39,0x44a,0x44a,0x39,0x44a,0x44a,0x44a,0x44a,0x43e,0x44a,0x447, +0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x39,0x43e,0x43e,0x44a,0x39,0x39,0x453,0x453,0x453,0x453, +0x453,0x39,0x450,0x39,0x441,0x441,0x441,0x441,0x441,0x43e,0x39,0x39,0x444,0x444,0x444,0x444, +0x444,0x444,0x444,0x444,0x444,0x444,0x39,0x39,0x44d,0x44d,0x13b6,0x13b6,0x39,0x39,0x39,0x39, 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, -0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x3c,0x1380, -0x3c,0x3c,0x3c,0x3c,0x3c,0x1380,0x3c,0x3c,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b, -0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0xd59, -0x9fc,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x3f, -0x9fc,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0xd59, -0x9fc,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0xd59,0x9fc,0x3f,0x9fc,0x9fc, -0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x9fc,0x3f,0x9fc,0x9fc, -0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0xd59,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0xd59,0x9fc,0x3f,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x3f,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0xd59,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x3f,0x3f,0x12ab,0x12ab,0xd53,0xd56,0x9f6,0x9ff,0x9f3, -0x9f3,0x9f3,0x9f3,0x9ff,0x9ff,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f0,0x9f0, -0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x3f,0x3f,0x3f,0xa02,0xa02,0xa02,0xa02, -0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, -0xa02,0x1677,0x42,0x42,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x42,0x42,0xa14,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa11,0xa0e,0x45,0x45,0x45,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1a,0xa1a,0xa1a,0xa1d,0xa1d,0xa1d,0x1470,0x1470,0x1470, -0x1470,0x1470,0x1470,0x1470,0x1470,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xa3e,0xa3e,0xa3e,0xa3e, -0xa3e,0xa3e,0xa20,0xa3e,0xa3e,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa26,0xa23, -0xa35,0xa35,0xa38,0xa41,0xa2f,0xa2c,0xa35,0xa32,0xa41,0xc75,0x4b,0x4b,0xa3b,0xa3b,0xa3b,0xa3b, -0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xc78,0xc78,0xc78,0xc78, -0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xa4d,0xa4d,0xacb,0xace, -0xa53,0xac8,0xa50,0xa4d,0xa56,0xa65,0xa59,0xa68,0xa68,0xa68,0xa47,0x4e,0xa5c,0xa5c,0xa5c,0xa5c, -0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa4a,0xf6c,0x4e,0x4e,0x4e,0x4e,0x4e,0x1122,0x1122,0x1122,0x1122, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x51,0x51,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x51,0x51,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x51,0x45f,0x51,0x45f,0x51,0x45f,0x51,0x45f,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x51,0x51,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45c,0x45c,0x45c,0x45c, -0x45c,0x51,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x456,0x45c,0x456,0x456,0x453,0x45c,0x45c, -0x45c,0x51,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x453,0x453,0x453,0x45c,0x45c,0x45c,0x45c, -0x51,0x51,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x51,0x453,0x453,0x453,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x453,0x453,0x453,0x51,0x51,0x45c,0x45c, -0x45c,0x51,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x459,0x456,0x51,0xb40,0xb43,0xb43,0xb43, -0xf75,0x54,0x144f,0x144f,0x144f,0x144f,0x468,0x468,0x468,0x468,0x468,0x468,0x4b0,0xb55,0x57,0x57, -0x66f,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b6,0x4c8,0x4b6,0x4c2,0x4bc,0x672,0x4ad,0x66c,0x66c,0x66c, -0x66c,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4b3,0x4c5,0x4b3,0x4bf,0x4b9,0x57,0xd62,0xd62,0xd62,0xd62, -0xd62,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x57,0x57,0x57,0x4ce,0x4ce,0x4ce,0x4ce, -0x4ce,0x4ce,0x4ce,0x4cb,0x4d1,0x6e7,0x4ce,0x93f,0x960,0xa77,0xa77,0xa77,0xb58,0xb58,0xd65,0xd65, -0xd65,0xd65,0x10e3,0x10e6,0x10e6,0x12b1,0x1449,0x1473,0x1476,0x1476,0x167a,0x5a,0x5a,0x5a,0x5a,0x5a, -0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x4d7,0x4d7,0x4d7,0x4d7, -0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d4,0x4d4,0x4d4,0x4d4,0x4d7,0xa7a,0xa7a, -0xb5b,0xb61,0xb61,0xb5e,0xb5e,0xb5e,0xb5e,0xd68,0xe7c,0xe7c,0xe7c,0xe7c,0x10b6,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x507,0x507,0x507,0xa83, -0xe85,0xf7b,0xf7b,0xf7b,0xf7b,0x1215,0x167d,0x167d,0x60,0x60,0x60,0x60,0x699,0x699,0x699,0x699, -0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x513,0x513,0x510,0x510,0x510,0x510,0xe8b,0xe8b,0xe8b,0xe88, -0xe88,0xe88,0xe88,0xe88,0x10ec,0x12ba,0x12ba,0x12ba,0x12ba,0x12b4,0x12b4,0x12b4,0x12bd,0x12b7,0x12b7,0x12bd, -0x1479,0x1479,0x1479,0x1479,0x147c,0x147c,0x147c,0x63,0x63,0x63,0x63,0x63,0x53d,0x53d,0x53d,0x53d, -0x53d,0xa8c,0xa8c,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, -0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x540,0x540,0x540,0x540, -0x540,0x540,0x540,0x540,0x540,0x540,0x540,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69, -0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xaa7,0xaa7,0xaa7,0xaa7, -0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, -0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0x6c,0xaa7,0xaa7,0xaa7,0xaa7,0xaaa,0xaa7,0xaa7,0xaa7,0xaa7, -0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaaa, -0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xaad,0xaad,0xaad,0xaad, -0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad, -0xaad,0xaad,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x75,0x7c8,0x7c2,0x7c8, -0x7c2,0x7c8,0x7c2,0x7c8,0x7c2,0x7c8,0x7c2,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2, -0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c2,0x7c2,0x7c2,0x7c8, -0x7c2,0x7c8,0x7c2,0x7c8,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c8,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2, -0x7c5,0xc03,0xc03,0x75,0x75,0x8d9,0x8d9,0x8a3,0x8a3,0x7cb,0x7ce,0xc00,0x78,0x78,0x78,0x78, -0x78,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0, -0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x10aa,0x78,0x78, -0x7b,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3, -0x7e3,0x7e3,0x7e3,0x7b,0x8ac,0x8ac,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af, -0x8af,0x8af,0x8af,0x8af,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9, -0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0x135c,0x135c,0x135c,0x7e, -0x7e,0x7e,0x7e,0x7e,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, -0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, -0x7ec,0xd05,0xd05,0x81,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2, -0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2, -0x7f2,0x7f2,0x7f2,0x81,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, -0xabf,0x84,0x84,0x84,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5, -0xac5,0xac5,0xac5,0xac5,0xac5,0xc0c,0xac5,0xac5,0xac5,0xc0c,0xac5,0x87,0x87,0x87,0x87,0x87, -0x87,0x87,0x87,0x87,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149, -0x1149,0x1149,0x1149,0x1149,0x95a,0x95a,0x95a,0x95a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a, -0x8a,0x8a,0x8a,0x8a,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be, -0x11be,0x11be,0x11be,0x11be,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x8d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x588,0x588,0x588,0x588,0x588,0x8d,0x8d,0x8d,0x8d, -0x8d,0xa98,0x58b,0x591,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x58e,0x591,0x591, -0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x8d,0x591,0x591,0x591,0x591, -0x591,0x8d,0x591,0x8d,0x591,0x591,0x8d,0x591,0x591,0x8d,0x591,0x591,0x591,0x591,0x591,0x591, -0x591,0x591,0x591,0x594,0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6, -0x5a9,0x5af,0x5ac,0x5a6,0x12cf,0x12cf,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, -0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac, -0x5a6,0x5ac,0x5ac,0x5a6,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90, -0x90,0x90,0x90,0x90,0x5a9,0x5a6,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a6,0x5a9,0x5a6,0x5a6, -0x5a9,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a6,0x5a6,0x5a9,0x5a6,0x5a9,0x5a9,0x5a9,0x5a6, -0x5a9,0x5a9,0x5a9,0x5a9,0x90,0x90,0x5a9,0x5a9,0x5a9,0x5a9,0x5a6,0x5a6,0x5a9,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a9,0x5a6,0x5a6,0x90,0x90,0x90,0x90, -0x90,0x90,0x90,0x90,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, -0xae0,0xae0,0xae0,0xae0,0x5ac,0x5ac,0x8f7,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5a3,0x5a3, -0xb9a,0xd1a,0x90,0x90,0x804,0x816,0x813,0x816,0x813,0xc21,0xc21,0xd11,0xd0e,0x807,0x807,0x807, -0x807,0x819,0x819,0x819,0x831,0x834,0x843,0x93,0x837,0x83a,0x846,0x846,0x82e,0x825,0x81f,0x825, -0x81f,0x825,0x81f,0x822,0x822,0x83d,0x83d,0x840,0x83d,0x83d,0x83d,0x93,0x83d,0x82b,0x828,0x822, -0x93,0x93,0x93,0x93,0x5b8,0x5c4,0x5b8,0xb9d,0x5b8,0x96,0x5b8,0x5c4,0x5b8,0x5c4,0x5b8,0x5c4, -0x5b8,0x5c4,0x5b8,0x5c4,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be, -0x5c4,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1, -0x5bb,0x96,0x96,0x5b5,0x708,0x70b,0x720,0x723,0x702,0x70b,0x70b,0x9c,0x6ea,0x6ed,0x6ed,0x6ed, -0x6ed,0x6ea,0x6ea,0x9c,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xa9b,0xa9b,0xa9b, -0x95d,0x6e4,0x5c7,0x5c7,0x9c,0x732,0x711,0x702,0x70b,0x708,0x702,0x714,0x705,0x6ff,0x702,0x720, -0x717,0x70e,0x72f,0x702,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x71d,0x71a, -0x720,0x720,0x720,0x732,0x6f3,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0, -0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0, -0x6f0,0x6f0,0x6f0,0x9c,0x9c,0x9c,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x9c,0x9c,0x6f0,0x6f0, -0x6f0,0x6f0,0x6f0,0x6f0,0x9c,0x9c,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x6f0,0x9c,0x9c,0x6f0,0x6f0, -0x6f0,0x9c,0x9c,0x9c,0xae3,0xae3,0xae3,0xae3,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f, -0x9f,0x9f,0x9f,0x9f,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9, -0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xa2,0xa2,0xa2,0xa2,0xa2,0x15e1,0x15e1,0x15e1,0x15e1, -0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0xaf2,0xaf2,0xaf2,0xaf2, -0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2, -0xaf2,0xaf2,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xa8,0xa8,0xf87,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0x1683,0x1683,0x1683,0x1683, -0x1683,0x1683,0x1683,0x1683,0x1683,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, -0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xab,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb16,0xab,0xb16,0xb16,0xab,0xab,0xb16,0xab, -0xab,0xb16,0xb16,0xab,0xab,0xb16,0xb16,0xb16,0xb16,0xab,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb13,0xb13,0xb13,0xb13,0xab,0xb13,0xab,0xb13,0xb13,0xb13,0xb13,0xc99,0xb13,0xb13, -0xab,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb13,0xb13,0xb13,0xb13, -0xb16,0xb16,0xab,0xb16,0xb16,0xb16,0xb16,0xab,0xab,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xab,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xab,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xab,0xb16,0xb16,0xb16,0xb16,0xab,0xb16,0xb16,0xb16,0xb16, -0xb16,0xab,0xb16,0xab,0xab,0xab,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xab,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xd83,0xd83,0xab,0xab, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb13,0xb13,0xb13,0xb0d,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xe94,0xe91,0xab,0xab,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, -0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xae,0xb1c,0xae,0xae,0xae,0xae,0xae,0xae, -0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae, -0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac, -0xbac,0xbac,0xbac,0xbac,0xbac,0xb1,0xbac,0xbac,0xbac,0xbac,0xba6,0xba6,0xba9,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5, -0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbaf,0xbaf,0xbb2,0xc15,0xc15,0xb4, -0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb, -0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbb8,0xbb8,0xb7,0xb7,0xb7,0xb7, -0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1, -0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xba,0xbc1,0xbc1,0xbc1,0xba,0xbbe,0xbbe,0xba,0xba,0xba,0xba, -0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0x148e,0x148e,0xbd,0xc9c,0xc9c,0xc9c,0xca8,0xca8,0xca8,0xca8,0xc9c, -0xc9c,0xca8,0xca8,0xca8,0xbd,0xbd,0xbd,0xbd,0xca8,0xca8,0xc9c,0xca8,0xca8,0xca8,0xca8,0xca8, -0xca8,0xc9f,0xc9f,0xc9f,0xbd,0xbd,0xbd,0xbd,0xca2,0xbd,0xbd,0xbd,0xcae,0xcae,0xca5,0xca5, -0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1, -0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xcb1,0xc0,0xc0,0xcb1,0xcb1,0xcb1,0xcb1, -0xcb1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -0xc3,0xc3,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0xc3,0xc3,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0xc3,0xc3,0xc3,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0xc3,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0xc3,0xc3, -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x1686,0x1686,0x1686,0x1686, -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3, -0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc6,0xcd8,0xcd8,0xcd8, -0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8, -0xcd8,0xcd8,0xcd8,0xc6,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8, -0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc6,0xcd8,0xcd8,0xc6,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8, -0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc6,0xc6,0xcd8,0xcd8,0xcd8,0xcd8, -0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x95d,0x95d,0x95d,0x960, +0x95d,0x95d,0x95d,0x95d,0x3c,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d, +0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d, +0x95d,0x95d,0x95d,0x95d,0x95d,0x960,0x9f9,0xf78,0xf78,0x3c,0x3c,0x3c,0x3c,0x92a,0x92a,0x92d, +0x92a,0x92d,0x92d,0x936,0x92d,0x936,0x92a,0x92a,0x92a,0x92a,0x92a,0x957,0x92a,0x92d,0x930,0x930, +0x933,0x93c,0x930,0x930,0x95d,0x95d,0x95d,0x95d,0x12db,0x12d5,0x12d5,0x12d5,0x92a,0x92a,0x92a,0x92d, +0x92a,0x92a,0x9ed,0x92a,0x3c,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a, +0x92a,0x92a,0x92a,0x92d,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a,0x9ed,0x9ed,0x9ed,0x92a,0x92a,0x92a, +0x92a,0x92a,0x92a,0x92a,0x9ed,0x92d,0x9ed,0x9ed,0x9ed,0x3c,0x9f6,0x9f6,0x9f3,0x9f3,0x9f3,0x9f3, +0x9f3,0x9f3,0x9f0,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x3c,0xf6f,0x9f3,0xd77,0xd77,0xf72,0xf75, +0xf6f,0x10f8,0x10f8,0x10f8,0x10f8,0x12d8,0x12d8,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x459,0x459,0x459,0x459,0x459,0x459,0x3f,0x13bc, +0x3f,0x3f,0x3f,0x3f,0x3f,0x13bc,0x3f,0x3f,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456, +0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86, +0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42, +0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86, +0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0x42,0xa23,0xa23, +0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42,0xa23,0x42,0xa23,0xa23, +0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xd86,0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0x12de,0x12de,0xd80,0xd83,0xa1d,0xa26,0xa1a, +0xa1a,0xa1a,0xa1a,0xa26,0xa26,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa17,0xa17, +0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x42,0x42,0x42,0xa29,0xa29,0xa29,0xa29, +0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29, +0xa29,0x16c5,0x45,0x45,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x45,0x45,0xa3b,0xa3e,0xa3e,0xa3e, +0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e, +0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa38,0xa35,0x48,0x48,0x48,0xa44,0xa44,0xa44,0xa44, +0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa41,0xa41,0xa41,0xa44,0xa44,0xa44,0x14af,0x14af,0x14af, +0x14af,0x14af,0x14af,0x14af,0x14af,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xa65,0xa65,0xa65,0xa65, +0xa65,0xa65,0xa47,0xa65,0xa65,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4d,0xa4a, +0xa5c,0xa5c,0xa5f,0xa68,0xa56,0xa53,0xa5c,0xa59,0xa68,0xc9f,0x4e,0x4e,0xa62,0xa62,0xa62,0xa62, +0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xca2,0xca2,0xca2,0xca2, +0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xa77,0xa77,0xaf5,0xaf8, +0xa7d,0xaf2,0xa7a,0xa77,0xa80,0xa8f,0xa83,0xa92,0xa92,0xa92,0xa6e,0x51,0xa86,0xa86,0xa86,0xa86, +0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0x51,0x51,0x51,0x51,0x51,0x51,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa89,0xa89,0xa89,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa89,0xa89,0xa89,0xa89,0xa71,0xf99,0x51,0x51,0x51,0x51,0x51,0x114c,0x114c,0x114c,0x114c, +0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477, +0x477,0x477,0x54,0x54,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x54,0x54,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x54,0x47a,0x54,0x47a,0x54,0x47a,0x54,0x47a,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x54,0x54,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477, +0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x471,0x477,0x471,0x471,0x46e,0x477,0x477, +0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x46e,0x46e,0x46e,0x477,0x477,0x477,0x477, +0x54,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x54,0x46e,0x46e,0x46e,0x477,0x477,0x477,0x477, +0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x46e,0x46e,0x46e,0x54,0x54,0x477,0x477, +0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x474,0x471,0x54,0xb6a,0xb6d,0xb6d,0xb6d, +0xfa2,0x57,0x148e,0x148e,0x148e,0x148e,0x483,0x483,0x483,0x483,0x483,0x483,0x4ce,0xb7f,0x5a,0x5a, +0x68a,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4d4,0x4e6,0x4d4,0x4e0,0x4da,0x68d,0x4cb,0x687,0x687,0x687, +0x687,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4d1,0x4e3,0x4d1,0x4dd,0x4d7,0x5a,0xd8f,0xd8f,0xd8f,0xd8f, +0xd8f,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x5a,0x5a,0x5a,0x4ec,0x4ec,0x4ec,0x4ec, +0x4ec,0x4ec,0x4ec,0x4e9,0x4ef,0x702,0x4ec,0x966,0x987,0xaa1,0xaa1,0xaa1,0xb82,0xb82,0xd92,0xd92, +0xd92,0xd92,0x1110,0x1113,0x1113,0x12e4,0x1488,0x14b2,0x14b5,0x14b5,0x16c8,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x4f5,0x4f5,0x4f5,0x4f5, +0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f2,0x4f2,0x4f2,0x4f2,0x4f5,0xaa4,0xaa4, +0xb85,0xb8b,0xb8b,0xb88,0xb88,0xb88,0xb88,0xd95,0xea9,0xea9,0xea9,0xea9,0x10e3,0x60,0x60,0x60, +0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x525,0x525,0x525,0xaad, +0xeb2,0xfa8,0xfa8,0xfa8,0xfa8,0x123f,0x16cb,0x16cb,0x63,0x63,0x63,0x63,0x6b4,0x6b4,0x6b4,0x6b4, +0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x531,0x531,0x52e,0x52e,0x52e,0x52e,0xeb8,0xeb8,0xeb8,0xeb5, +0xeb5,0xeb5,0xeb5,0xeb5,0x1119,0x1365,0x1365,0x1365,0x1365,0x12e7,0x12e7,0x12e7,0x1368,0x12ea,0x12ea,0x1368, +0x14b8,0x14b8,0x14b8,0x14b8,0x14bb,0x14bb,0x14bb,0x1782,0x1782,0x1782,0x1782,0x66,0x558,0x558,0x558,0x558, +0x558,0xab6,0xab6,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69, +0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x55b,0x55b,0x55b,0x55b, +0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c, +0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xad1,0xad1,0xad1,0xad1, +0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1, +0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0x6f,0xad1,0xad1,0xad1,0xad1,0xad4,0xad1,0xad1,0xad1,0xad1, +0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad4, +0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x78,0x7e9,0x7e3,0x7e9, +0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3, +0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e3,0x7e3,0x7e3,0x7e9, +0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e9,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3, +0x7e6,0xc2d,0xc2d,0x78,0x78,0x8fd,0x8fd,0x8c7,0x8c7,0x7ec,0x7ef,0xc2a,0x7b,0x7b,0x7b,0x7b, +0x7b,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801, +0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x10d1,0x7b,0x7b, +0x7e,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, +0x804,0x804,0x804,0x7e,0x8d0,0x8d0,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3, +0x8d3,0x8d3,0x8d3,0x8d3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, +0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0x1374,0x1374,0x1374,0x81, +0x81,0x81,0x81,0x81,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d, +0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d, +0x80d,0xd2f,0xd2f,0x84,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813, +0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813, +0x813,0x813,0x813,0x84,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9, +0xae9,0x87,0x87,0x87,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef, +0xaef,0xaef,0xaef,0xaef,0xaef,0xc36,0xaef,0xaef,0xaef,0xc36,0xaef,0x8a,0x8a,0x8a,0x8a,0x8a, +0x8a,0x8a,0x8a,0x8a,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173, +0x1173,0x1173,0x1173,0x1173,0x981,0x981,0x981,0x981,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8, +0x11e8,0x11e8,0x11e8,0x11e8,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x90,0x90,0x90,0x90,0x90, +0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x90,0x90,0x90,0x90, +0x90,0xac2,0x5a6,0x5ac,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5a9,0x5ac,0x5ac, +0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x5ac,0x5ac, +0x5ac,0x90,0x5ac,0x90,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, +0x5ac,0x5ac,0x5ac,0x5af,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1, +0x5c4,0x5ca,0x5c7,0x5c1,0x12f3,0x12f3,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7, +0x5c1,0x5c7,0x5c7,0x5c1,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x5c4,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1, +0x5c4,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c4,0x5c4,0x5c1, +0x5c4,0x5c4,0x5c4,0x5c4,0x93,0x93,0x5c4,0x5c4,0x5c4,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c1,0x5c1,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, +0xb0a,0xb0a,0xb0a,0xb0a,0x5c7,0x5c7,0x91e,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5be,0x5be, +0xbc1,0xd47,0x93,0x93,0x825,0x837,0x834,0x837,0x834,0xc4b,0xc4b,0xd3b,0xd38,0x828,0x828,0x828, +0x828,0x83a,0x83a,0x83a,0x852,0x855,0x864,0x96,0x858,0x85b,0x867,0x867,0x84f,0x846,0x840,0x846, +0x840,0x846,0x840,0x843,0x843,0x85e,0x85e,0x861,0x85e,0x85e,0x85e,0x96,0x85e,0x84c,0x849,0x843, +0x96,0x96,0x96,0x96,0x5d3,0x5df,0x5d3,0xbc4,0x5d3,0x99,0x5d3,0x5df,0x5d3,0x5df,0x5d3,0x5df, +0x5d3,0x5df,0x5d3,0x5df,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9, +0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc, +0x5d6,0x99,0x99,0x5d0,0x723,0x726,0x73b,0x73e,0x71d,0x726,0x726,0x9f,0x705,0x708,0x708,0x708, +0x708,0x705,0x705,0x9f,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0xac5,0xac5,0xac5, +0x984,0x6ff,0x5e2,0x5e2,0x9f,0x74d,0x72c,0x71d,0x726,0x723,0x71d,0x72f,0x720,0x71a,0x71d,0x73b, +0x732,0x729,0x74a,0x71d,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x738,0x735, +0x73b,0x73b,0x73b,0x74d,0x70e,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b, +0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b, +0x70b,0x70b,0x70b,0x9f,0x9f,0x9f,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b, +0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b, +0x70b,0x9f,0x9f,0x9f,0xb0d,0xb0d,0xb0d,0xb0d,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2, +0xa2,0xa2,0xa2,0xa2,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, +0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xa5,0xa5,0xa5,0xa5,0xa5,0x161a,0x161a,0x161a,0x161a, +0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0xb1c,0xb1c,0xb1c,0xb1c, +0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, +0xb1c,0xb1c,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xab,0xab,0xfb4,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0x16d1,0x16d1,0x16d1,0x16d1, +0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab, +0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xae,0xb40,0xb40,0xae,0xae,0xb40,0xae, +0xae,0xb40,0xb40,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xae,0xb3d,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xcc0,0xb3d,0xb3d, +0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d, +0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40, +0xb40,0xae,0xb40,0xae,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xae,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xdaa,0xdaa,0xae,0xae, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xec1,0xebe,0xae,0xae,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb1,0xb46,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3, +0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xb4,0xbd3,0xbd3,0xbd3,0xbd3,0xbcd,0xbcd,0xbd0,0xb4,0xb4,0xb4, +0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc, +0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbd6,0xbd6,0xbd9,0xc3f,0xc3f,0xb7, +0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2, +0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbdf,0xbdf,0xba,0xba,0xba,0xba, +0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, +0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbd,0xbe8,0xbe8,0xbe8,0xbd,0xbe5,0xbe5,0xbd,0xbd,0xbd,0xbd, +0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2, +0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2, +0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0x14cd,0x14cd,0xc0,0xcc3,0xcc3,0xcc3,0xccf,0xccf,0xccf,0xccf,0xcc3, +0xcc3,0xccf,0xccf,0xccf,0xc0,0xc0,0xc0,0xc0,0xccf,0xccf,0xcc3,0xccf,0xccf,0xccf,0xccf,0xccf, +0xccf,0xcc6,0xcc6,0xcc6,0xc0,0xc0,0xc0,0xc0,0xcc9,0xc0,0xc0,0xc0,0xcd5,0xcd5,0xccc,0xccc, +0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8, +0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc3,0xc3,0xcd8,0xcd8,0xcd8,0xcd8, +0xcd8,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x14d0,0x14d0,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0, +0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6, +0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x16d4,0x16d4,0x16d4,0x16d4, 0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, -0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xcdb,0xcdb,0xcdb,0xcdb, -0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb, -0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xc9,0xc9,0xc9,0xc9,0xc9,0xd17,0xd17,0xd17,0xcc, -0xcc,0xcc,0xcc,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14, -0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xcc,0xcc,0xcc,0xd14, -0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1, -0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1, -0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xcf,0xcde,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea, -0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea, -0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xd2,0xd2,0xced,0xced,0xced,0xced,0xced,0xced,0xd5,0xd5, -0xced,0xd5,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced, -0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xd5,0xced,0xced,0xd5,0xd5,0xd5, -0xced,0xd5,0xd5,0xced,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, -0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xd8,0xd8,0xd8,0xd8,0xd8, -0xd8,0xd8,0xd8,0xd8,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0x1494, -0x1494,0xde,0xde,0xde,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, -0x135,0x135,0x135,0x135,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xda7,0xda7,0xdad,0xdad,0xda7, -0xe1,0xe1,0xdaa,0xdaa,0x10b3,0x10b3,0x10b3,0x10b3,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4, -0xe4,0xe4,0xe4,0xe4,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12, -0xc12,0xc12,0xc12,0xc12,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0x1497,0x1497,0x1497,0x1497,0x1497, -0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x149a,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7, -0x12db,0x10f8,0xea3,0xea3,0xdc2,0xdbf,0xdc2,0xdbf,0xdbf,0xdb6,0xdb6,0xdb6,0xdb6,0xdb6,0xdb6,0x1101, -0x10fe,0x1101,0x10fe,0x10fb,0x10fb,0x10fb,0x1389,0x1386,0xea,0xea,0xea,0xea,0xea,0xdbc,0xdb9,0xdb9, -0xdb9,0xdb6,0xdbc,0xdb9,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5, -0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xed,0xed,0xed,0xed,0xed, -0xed,0xed,0xed,0xed,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xed,0xdc5,0xdc5,0xdc5,0xdc5, -0xdc5,0xdc5,0xdc5,0xed,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xed,0xdc5,0xdc5,0xdc5,0xdc5, -0xdc5,0xdc5,0xdc5,0xed,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb, -0xdcb,0xdcb,0xdcb,0xdcb,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xf0,0xf0, -0xf0,0xf0,0xf0,0xf0,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xf3,0x138c,0xf3,0xf3,0xf3,0xf3, -0xf3,0x138c,0xf3,0xf3,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -0xe28,0xe28,0xe28,0xe28,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -0xdd4,0xdd4,0xdd4,0xf6,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1, -0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1, -0xdd1,0xdd1,0xdd1,0xf6,0xde6,0xdda,0xdda,0xdda,0xf9,0xdda,0xdda,0xf9,0xf9,0xf9,0xf9,0xf9, -0xdda,0xdda,0xdda,0xdda,0xde6,0xde6,0xde6,0xde6,0xf9,0xde6,0xde6,0xde6,0xf9,0xde6,0xde6,0xde6, -0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6, -0xde6,0xde6,0xde6,0xde6,0xf9,0xf9,0xf9,0xf9,0xdd7,0xdd7,0xdd7,0xf9,0xf9,0xf9,0xf9,0xddd, -0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, -0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde9,0xde9,0xde0,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, -0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0x1107,0x1107,0xfc,0xfc,0xfc,0xfc, -0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf8,0xdf8,0xdf8,0xdf5,0xdf5,0xdf8,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, -0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xdf2,0xdf2,0xdf2,0xdf2, -0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0x1104,0xfc,0xfc,0xfc,0xdef,0xdef,0xdfe,0xdfe,0xdfe,0xdfe, -0xff,0xff,0xff,0xff,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfb,0xdfe,0xdfe,0xdfe, -0xdfe,0xdfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x14a3,0x14a9,0x14a6,0x102, -0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102, -0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102, -0xe25,0xe25,0xe25,0xe22,0xe22,0xe19,0xe19,0xe22,0xe1f,0xe1f,0xe1f,0xe1f,0x105,0x105,0x105,0x105, -0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1278,0x1275,0x159,0x159,0x159,0x159,0x159,0x159, -0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0x1398,0x1398,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0xe2b, -0x12e1,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x12de, -0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, -0xe52,0xe43,0xe3d,0xe4f,0xe4c,0xe46,0xe46,0xe55,0xe40,0xe49,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b, -0xed6,0xed6,0xec1,0xed6,0xed9,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0x111,0x111,0x111,0x111, -0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xee2,0xee2,0xec7,0xecd,0xee2,0xee2, -0xeca,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec4,0xec4,0xec4,0xec4,0xec4, -0xec4,0xec4,0xec4,0xec4,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0x111,0x111,0x111, -0x12e7,0x12e4,0x12e7,0x12e4,0x12e7,0x12e4,0x12e7,0x12e4,0x12e7,0x12e4,0x139e,0x14b5,0x14b5,0x14b5,0x114,0x114, -0x14b5,0x14b5,0x168f,0x168f,0x168f,0x1689,0x168f,0x1689,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114, -0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114, -0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x14b2,0x13a1,0x13a1,0x12e4,0xfe1, -0xfe1,0xfe1,0xfe1,0xfe1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1, -0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xeee,0xeee,0xef4,0xef4,0x117,0x117,0x117,0x117, -0x117,0x117,0x117,0x117,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd, -0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xef7,0xef7,0xef7,0xef7,0x1110,0x1110, -0x11a,0x11a,0x11a,0xefa,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8, -0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x1692,0x11d,0x11d, -0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, -0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, -0xf06,0xf06,0xf06,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x120, -0xf03,0xf03,0xf03,0xf03,0x14bb,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120, -0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, -0xf09,0xf09,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123, -0x1008,0x1008,0x1008,0x1008,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0xff6,0xff6,0xff6,0xff6, -0xff6,0xff6,0xff6,0xff6,0x1005,0x1005,0xffc,0xff9,0x126,0x126,0x126,0x100b,0x100b,0xfff,0xfff,0xfff, -0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x1002,0x126,0x126,0x126,0x1008,0x1008,0x1008, -0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011, -0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1026,0x1026,0x129,0x129,0x129,0x129, -0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129, -0x104d,0x104d,0x104d,0x104d,0x1047,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x1053,0x1053, -0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c, -0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065, -0x1065,0x1065,0x106b,0x106e,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x1068, -0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x107d, -0x107d,0x1074,0x1074,0x107d,0x107d,0x1074,0x1074,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, -0x1080,0x1080,0x1080,0x1074,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1074,0x107d,0x132,0x132, -0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x132,0x132,0x1077,0x1083,0x1083,0x1083, -0x14ca,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135, -0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135, -0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089, -0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x108c,0x138,0x138, -0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f, -0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x13b,0x13b,0x13b, -0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092, -0x1092,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e, -0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098, -0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x1098,0x141,0x141,0x141,0x141,0x141,0x1095, -0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x144,0x144,0x144,0x144, -0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, -0x10a1,0x10a1,0x10a1,0x10a1,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147, -0x1116,0x1116,0x1116,0x1116,0x111f,0x1116,0x1116,0x1116,0x111f,0x1116,0x1116,0x1116,0x1116,0x1113,0x14a,0x14a, -0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x14a, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d, -0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d, -0x113d,0x113d,0x113d,0x113d,0x113d,0x113a,0x1125,0x113a,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x150, -0x112e,0x1137,0x1125,0x1137,0x1137,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x113a,0x113a,0x113a, -0x113a,0x113a,0x113a,0x1125,0x1125,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x150,0x150,0x1128, -0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x150,0x150,0x150,0x150,0x150,0x150, -0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x150,0x150,0x150,0x150,0x150,0x150, -0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1140,0x1143,0x1143,0x1143,0x1143,0x1131,0x1131,0x150,0x150, -0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151b,0x1d1, -0x1284,0x1269,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x126c,0x126c,0x126c,0x126c,0x127e,0x126c,0x126c, -0x126c,0x126c,0x1272,0x1440,0x1446,0x1443,0x143d,0x153,0x1665,0x1665,0x153,0x153,0x153,0x153,0x153,0x153, -0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158, -0x114f,0x114f,0x1152,0x115b,0x1155,0x1155,0x1155,0x115b,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156, -0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e, -0x115e,0x115e,0x1164,0x128a,0x1164,0x1164,0x1164,0x1164,0x1161,0x1161,0x1161,0x1164,0x1698,0x169b,0x15c,0x15c, -0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257, -0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x15f,0x15f,0x15f, -0x1179,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x1170,0x117f,0x117f,0x116d,0x116d,0x116d,0x116d,0x162,0x127b, -0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x162,0x162,0x162,0x162,0x116d,0x116d, -0x119d,0x1191,0x119d,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165, -0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x119a,0x119a,0x11a0,0x1194,0x1197, -0x11b5,0x11b5,0x11b5,0x11af,0x11af,0x11a6,0x11af,0x11af,0x11a6,0x11af,0x11af,0x11b8,0x11b2,0x11a9,0x168,0x168, -0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x168,0x168,0x168,0x168,0x168,0x168, -0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x16b,0x16b,0x16b,0x16b,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb, -0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb, -0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x16b,0x16b,0x16b,0x16b,0x11c7,0x11c7,0x11c7,0x11c7, -0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7, -0x11c7,0x11c7,0x16e,0x11c4,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11d6,0x11d6,0x11d6,0x11d6, -0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6, -0x11d6,0x11d6,0x171,0x171,0x171,0x11d0,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11dc,0x11dc,0x11dc,0x11dc, -0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc, -0x11dc,0x11dc,0x174,0x174,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11e2,0x11e2,0x11e2,0x11e2, -0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x177, -0x177,0x177,0x177,0x177,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11e8,0x11e8,0x11e8,0x11e8, -0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8, -0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x17d,0x1206,0x1206,0x180,0x180, -0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x141f,0x141f,0x141f,0x141f, -0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x1239,0x1239,0x1239,0x1239, -0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x14d6,0x14d6,0x186,0x186,0x186,0x1239,0x1239,0x1239,0x1239, -0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x123c, -0x123c,0x123c,0x1212,0x186,0x1356,0x1245,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356, -0x1356,0x1245,0x1356,0x1245,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x13b0,0x13b0, -0x186,0x186,0x186,0x186,0x1359,0x1359,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1242,0x1353,0x1242, -0x1242,0x1353,0x1359,0x1248,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1236,0x1236, -0x1236,0x1236,0x1350,0x134a,0x123f,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x186, -0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186, -0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186, -0x186,0x186,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0, -0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x1263,0x1365,0x135f,0x189, -0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x125d,0x125d,0x125d,0x125d, -0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x1260,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d, -0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x1260,0x125d,0x125d,0x1365,0x1365,0x1365,0x1365,0x1365,0x135f, -0x1365,0x1365,0x1365,0x189,0x189,0x189,0x189,0x189,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a, -0x125a,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x1362,0x1362,0x189,0x189,0x189,0x189,0x189,0x189, +0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff, +0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff, +0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff, +0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff,0xcff,0xcff, +0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xc9,0xcff,0xcff,0xcff,0xcff, +0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9, +0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9, +0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xd02,0xd02,0xd02,0xd02, +0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02, +0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xcc,0xcc,0xcc,0xcc,0xcc,0xd44,0xd44,0xd44,0xcf, +0xcf,0xcf,0xcf,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, +0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xcf,0xcf,0xcf,0xd41, +0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, +0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, +0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd2,0xd05,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11, +0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11, +0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd5,0xd5,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e, +0xd0e,0xd0e,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c, +0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd8,0xd8, +0xd14,0xd8,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14, +0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd8,0xd14,0xd14,0xd8,0xd8,0xd8, +0xd14,0xd8,0xd8,0xd14,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xdb,0xdb,0xdb,0xdb,0xdb, +0xdb,0xdb,0xdb,0xdb,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0x14d3, +0x14d3,0x1785,0x1785,0xe1,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0, +0x138,0x138,0x138,0x138,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7, +0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdce,0xdce,0xdd4,0xdd4,0xdce, +0xe4,0xe4,0xdd1,0xdd1,0x10e0,0x10e0,0x10e0,0x10e0,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7, +0xe7,0xe7,0xe7,0xe7,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c, +0xc3c,0xc3c,0xc3c,0xc3c,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6, +0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d9,0xea,0xea,0xea,0xea,0xea,0x1788, +0x12ff,0x1122,0xed0,0xed0,0xde9,0xde6,0xde9,0xde6,0xde6,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0x112b, +0x1128,0x112b,0x1128,0x1125,0x1125,0x1125,0x13c5,0x13c2,0xed,0xed,0xed,0xed,0xed,0xde3,0xde0,0xde0, +0xde0,0xddd,0xde3,0xde0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec, +0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xf0,0xf0,0xf0,0xf0, +0xf0,0xf0,0xf0,0xf0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec, +0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec, +0xdec,0xdec,0xdec,0xf0,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2, +0xdf2,0xdf2,0xdf2,0xdf2,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xf3,0xf3, +0xf3,0xf3,0xf3,0xf3,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xf6,0x13c8,0xf6,0xf6,0xf6,0xf6, +0xf6,0x13c8,0xf6,0xf6,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, +0xe4f,0xe4f,0xe4f,0xe4f,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb, +0xdfb,0xdfb,0xdfb,0xf9,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8, +0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8, +0xdf8,0xdf8,0xdf8,0xf9,0xe0d,0xe01,0xe01,0xe01,0xfc,0xe01,0xe01,0xfc,0xfc,0xfc,0xfc,0xfc, +0xe01,0xe01,0xe01,0xe01,0xe0d,0xe0d,0xe0d,0xe0d,0xfc,0xe0d,0xe0d,0xe0d,0xfc,0xe0d,0xe0d,0xe0d, +0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d, +0xe0d,0xe0d,0xe0d,0xe0d,0xfc,0xfc,0xfc,0xfc,0xdfe,0xdfe,0xdfe,0xfc,0xfc,0xfc,0xfc,0xe04, +0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe10,0xe10,0xe07,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0x1131,0x1131,0xff,0xff,0xff,0xff, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1f,0xe1f,0xe1f,0xe1c,0xe1c,0xe1f,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xff,0xff,0xff,0xff,0xff,0xff,0xe19,0xe19,0xe19,0xe19, +0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0x112e,0xff,0xff,0xff,0xe16,0xe16,0xe25,0xe25,0xe25,0xe25, +0x102,0x102,0x102,0x102,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe22,0xe25,0xe25,0xe25, +0xe25,0xe25,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x14e2,0x14e8,0x14e5,0x1830, +0x178b,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105, +0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105, +0x105,0x105,0x105,0x105,0xe4c,0xe4c,0xe4c,0xe49,0xe49,0xe40,0xe40,0xe49,0xe46,0xe46,0xe46,0xe46, +0x108,0x108,0x108,0x108,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129f,0x129f,0x12a2,0x129f,0x15c,0x15c, +0x15c,0x15c,0x15c,0x15c,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0x13d4,0x13d4,0x10b,0x10b,0x10b,0x10b, +0x10b,0x10b,0x10b,0xe52,0x1305,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b, +0x10b,0x10b,0x10b,0x1302,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f, +0xc0f,0xc0f,0xc0f,0xc0f,0xe7f,0xe70,0xe6a,0xe7c,0xe79,0xe73,0xe73,0xe82,0xe6d,0xe76,0x10e,0x10e, +0x10e,0x10e,0x10e,0x10e,0xf03,0xf03,0xeee,0xf03,0xf06,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, +0x114,0x114,0x114,0x114,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xf0f,0xf0f, +0xef4,0xefa,0xf0f,0xf0f,0xef7,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef1, +0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4, +0xef4,0x114,0x114,0x114,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x13da,0x14f4, +0x14f4,0x14f4,0x178e,0x117,0x14f4,0x14f4,0x16dd,0x16dd,0x16dd,0x16d7,0x16dd,0x16d7,0x117,0x117,0x117,0x117, +0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117, +0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x14f1, +0x13dd,0x13dd,0x1308,0x100b,0x100b,0x100b,0x100b,0x100b,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e, +0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1b,0xf1b,0xf21,0xf21, +0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a, +0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf24,0xf24, +0xf24,0xf24,0x113a,0x113a,0x11d,0x11d,0x11d,0xf27,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7, +0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7, +0x14f7,0x16e0,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120, +0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120, +0x120,0x120,0x120,0x120,0xf33,0xf33,0xf33,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd, +0x14fd,0x14fd,0x14fd,0x123,0xf30,0xf30,0xf30,0xf30,0x14fa,0x123,0x123,0x123,0x123,0x123,0x123,0x123, +0x123,0x123,0x123,0x123,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36, +0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, +0x126,0x126,0x126,0x126,0x1032,0x1032,0x1032,0x1032,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f, +0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x102f,0x102f,0x1026,0x1023,0x129,0x129,0x129,0x1035, +0x1035,0x1029,0x1029,0x1029,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x129,0x129, +0x129,0x1032,0x1032,0x1032,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x103b,0x103b, +0x103b,0x103b,0x103b,0x103b,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x1050,0x1050, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x1077,0x1077,0x1077,0x1077,0x1071,0x1791,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f, +0x12f,0x12f,0x107d,0x107d,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x12f,0x12f, +0x12f,0x12f,0x12f,0x12f,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x108f,0x108f,0x108f,0x108f,0x108f, +0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x1095,0x1098,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x1092,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x109e,0x109e,0x109e, +0x109e,0x109e,0x109e,0x10a7,0x10a7,0x109e,0x109e,0x10a7,0x10a7,0x109e,0x109e,0x135,0x135,0x135,0x135,0x135, +0x135,0x135,0x135,0x135,0x10aa,0x10aa,0x10aa,0x109e,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, +0x109e,0x10a7,0x135,0x135,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x135,0x135, +0x10a1,0x10ad,0x10ad,0x10ad,0x1509,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138, +0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138, +0x138,0x138,0x138,0x138,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3, +0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3, +0x10b3,0x10b6,0x13b,0x13b,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9, +0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9, +0x10b9,0x13e,0x13e,0x13e,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc, +0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141, +0x141,0x141,0x141,0x141,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2, +0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x144,0x144, +0x144,0x144,0x144,0x10bf,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x147,0x147,0x147,0x147,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8, +0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a, +0x14a,0x14a,0x14a,0x14a,0x1140,0x1140,0x1140,0x1140,0x1149,0x1140,0x1140,0x1140,0x1149,0x1140,0x1140,0x1140, +0x1140,0x113d,0x14d,0x14d,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146, +0x1146,0x1146,0x1146,0x14d,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c, +0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x150,0x150,0x150,0x150,0x150,0x150, +0x150,0x150,0x150,0x150,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167, +0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1164,0x114f,0x1164,0x114f,0x114f,0x114f,0x114f, +0x114f,0x114f,0x114f,0x153,0x1158,0x1161,0x114f,0x1161,0x1161,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f, +0x114f,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x114f,0x114f,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x153,0x153,0x1152,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x153,0x153, +0x153,0x153,0x153,0x153,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x153,0x153, +0x153,0x153,0x153,0x153,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x116a,0x116d,0x116d,0x116d,0x116d, +0x115b,0x115b,0x153,0x153,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557, +0x1557,0x1557,0x1554,0x1d1,0x12b1,0x1290,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1293,0x1293,0x1293, +0x1293,0x12ab,0x1293,0x1293,0x1293,0x1293,0x1299,0x147f,0x1485,0x1482,0x147c,0x156,0x16ad,0x16ad,0x156,0x156, +0x156,0x156,0x156,0x156,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182, +0x1182,0x1182,0x1182,0x1182,0x1179,0x1179,0x117c,0x1185,0x117f,0x117f,0x117f,0x1185,0x159,0x159,0x159,0x159, +0x159,0x159,0x159,0x159,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188, +0x1188,0x1188,0x1188,0x1188,0x1188,0x12b7,0x118e,0x12ba,0x118e,0x118e,0x118e,0x118e,0x118b,0x118b,0x118b,0x118e, +0x16e6,0x16e9,0x15f,0x15f,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e, +0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e, +0x127e,0x162,0x162,0x162,0x11a3,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x119a,0x11a9,0x11a9,0x1197,0x1197, +0x1197,0x1197,0x165,0x12a5,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x165,0x165, +0x165,0x165,0x1197,0x1197,0x11c7,0x11bb,0x11c7,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168, +0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x11c4, +0x11c4,0x11ca,0x11be,0x11c1,0x11df,0x11df,0x11df,0x11d9,0x11d9,0x11d0,0x11d9,0x11d9,0x11d0,0x11d9,0x11d9,0x11e2, +0x11dc,0x11d3,0x16b,0x16b,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x16b,0x16b, +0x16b,0x16b,0x16b,0x16b,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x16e,0x16e,0x16e,0x16e,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x16e,0x16e,0x16e,0x16e, +0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1, +0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x171,0x11ee,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb, +0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200, +0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x174,0x174,0x174,0x11fa,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd, +0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x177,0x177,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203, +0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c, +0x120c,0x120c,0x120c,0x17a,0x17a,0x17a,0x17a,0x17a,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, +0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212, +0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x180, +0x1230,0x1230,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183, +0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b, +0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x1515,0x1515,0x189,0x189,0x189, +0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a, +0x125a,0x125a,0x125a,0x125d,0x125d,0x125d,0x123c,0x189,0x135f,0x1266,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f, +0x135f,0x135f,0x135f,0x135f,0x135f,0x1266,0x135f,0x1266,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c, +0x135c,0x135c,0x13ec,0x13ec,0x189,0x189,0x189,0x189,0x1362,0x1362,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c, +0x135c,0x1263,0x135c,0x1263,0x1263,0x135c,0x1362,0x1269,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, +0x180f,0x180f,0x180f,0x180f,0x180f,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189, 0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189, -0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f3,0x12f3,0x12f3,0x18c,0x18c,0x12f6,0x18c,0x130b,0x130b,0x130b,0x130b, -0x130b,0x130b,0x12fc,0x1305,0x12ff,0x12ff,0x1305,0x1305,0x1305,0x12ff,0x1305,0x12ff,0x12ff,0x12ff,0x1308,0x1308, -0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x1302,0x1302,0x1302,0x1302,0x192,0x130e,0x130e,0x130e, -0x130e,0x130e,0x130e,0x192,0x192,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x192,0x192,0x130e,0x130e,0x130e, -0x130e,0x130e,0x130e,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x130e,0x130e,0x130e,0x130e, -0x130e,0x130e,0x130e,0x192,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x192,0x157b,0x157b,0x157b,0x157b, -0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x1311,0x1311,0x1311,0x1311, -0x1311,0x1311,0x1314,0x1326,0x1326,0x131a,0x131a,0x131a,0x131a,0x131a,0x195,0x195,0x195,0x195,0x1317,0x1317, -0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x1317,0x131d,0x131d, -0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, -0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x14d9,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329, -0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329, -0x1329,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x136b,0x1368,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, -0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, -0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x132c,0x132c,0x132c,0x132c, -0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x19e,0x19e,0x132c,0x132c,0x132c, -0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x14dc,0x19e,0x132c,0x132c,0x132c, -0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132f,0x19e,0x132c,0x132c,0x132c, -0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x132c,0x14dc,0x14dc,0x14dc,0x14dc, -0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc, -0x14dc,0x14dc,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e8,0x14e2,0x14e2,0x14e8, -0x14e8,0x14ee,0x14e8,0x14e8,0x14e8,0x14e8,0x1a1,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x1a1,0x14e8,0x14e2,0x14e2, -0x14e8,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e8,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2, -0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e2,0x14e2,0x14e2,0x1344,0x1341,0x1341,0x1341,0x1341,0x1341,0x14f7,0x14f7, -0x14f7,0x14f7,0x14f7,0x14fa,0x14fd,0x14fa,0x14fa,0x14fa,0x16aa,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, -0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14f7,0x14f7, -0x14f7,0x14fa,0x14f7,0x14fd,0x14fd,0x1a4,0x1a4,0x1a4,0x14fa,0x14f7,0x14f7,0x14fa,0x1a4,0x1a4,0x1a4,0x1a4, -0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347, -0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1a7,0x1a7,0x1a7,0x1a7, -0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x13bf,0x1503,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf, -0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x1503,0x1503,0x1503,0x1503,0x1503,0x1503,0x16b0,0x16b0,0x1aa,0x1aa,0x1aa, -0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, -0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, -0x1aa,0x1aa,0x1aa,0x16ad,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9, -0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x1500, -0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x1ad,0x13c5,0x13c5,0x1ad,0x13c5,0x1ad,0x1ad,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x1ad,0x1ad,0x1ad, -0x1ad,0x1ad,0x13c5,0x1ad,0x1ad,0x1ad,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5, -0x1ad,0x13c5,0x13c5,0x1ad,0x13c5,0x1ad,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5,0x1ad,0x13c5, -0x1ad,0x13c5,0x13c5,0x1ad,0x13c5,0x1ad,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x1ad, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x1ad,0x1ad,0x1ad, -0x1ad,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x1ad,0x1ad,0x1ad,0x1ad, +0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314, +0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314, +0x1314,0x1314,0x1314,0x1314,0x128a,0x137d,0x137a,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, +0x18c,0x18c,0x18c,0x18c,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1287,0x1284, +0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1287, +0x1284,0x1284,0x137d,0x137d,0x137d,0x137d,0x137d,0x137a,0x137d,0x137d,0x137d,0x1812,0x18c,0x18c,0x18c,0x18c, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, +0x13aa,0x13aa,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, +0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, +0x18c,0x18c,0x18c,0x18c,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d, +0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x1317,0x1317,0x1317, +0x18f,0x18f,0x131a,0x18f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x1320,0x1329,0x1323,0x1323,0x1329,0x1329, +0x1329,0x1323,0x1329,0x1323,0x1323,0x1323,0x132c,0x132c,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, +0x1326,0x1326,0x1326,0x1326,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x195,0x1332,0x1332,0x1332, +0x1332,0x1332,0x1332,0x195,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x195,0x195,0x195,0x195, +0x195,0x195,0x195,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x1332,0x1332,0x1332,0x1332, +0x1332,0x1332,0x1332,0x195,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1338,0x134a,0x134a,0x133e,0x133e,0x133e, +0x133e,0x133e,0x198,0x198,0x198,0x198,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, +0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341, +0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x1518, +0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, +0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, +0x1383,0x1380,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e, +0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e, +0x19e,0x19e,0x19e,0x19e,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350, +0x1350,0x1350,0x1350,0x1a1,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350, +0x1350,0x1350,0x1350,0x151b,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350, +0x1350,0x1350,0x1350,0x1386,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350, +0x1350,0x1350,0x1350,0x1350,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b, +0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1, +0x1a1,0x1a1,0x1a1,0x1a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1533,0x1533,0x1533,0x1533,0x1533,0x1536, +0x16a4,0x1536,0x1536,0x1536,0x176d,0x181b,0x181b,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, +0x1a4,0x1a4,0x1a4,0x1a4,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1533,0x1533,0x1533,0x1536,0x1533,0x16a1, +0x16a1,0x1a4,0x1a4,0x1a4,0x1536,0x1533,0x1533,0x1536,0x181b,0x181b,0x181b,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, +0x1a4,0x1a4,0x1a4,0x1a4,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353, +0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7, +0x1a7,0x1a7,0x1a7,0x1a7,0x13f8,0x153c,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8, +0x13f8,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x16f2,0x16f2,0x1aa,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d, +0x179d,0x179d,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, +0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, +0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, +0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe, +0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe, +0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe, +0x1ad,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe, +0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad, +0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe, +0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe, +0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, +0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe, +0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, 0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad, -0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13c2,0x13c2,0x1ad,0x1ad, -0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13da,0x13da,0x13da,0x13da, -0x13da,0x13da,0x13da,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13d7,0x13c8,0x13cb,0x13cb,0x13c8,0x13c8,0x13c8,0x13ce, -0x13ce,0x1b0,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d1,0x13dd,0x13dd,0x13dd, -0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x158d,0x158d,0x158d,0x158d, -0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x13e9,0x13e9,0x13e9,0x13e9, -0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e6,0x13e0,0x13e0,0x13e6,0x13e6,0x13ef,0x13ef,0x13e9,0x13ec, -0x13ec,0x13e6,0x13e3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x13f2,0x13f2,0x13f2,0x13f2, -0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2, -0x13f2,0x13f2,0x13f2,0x13f2,0x1b6,0x1b6,0x1b6,0x1b6,0x16b3,0x16b3,0x13f2,0x13f2,0x16b3,0x16b3,0x16b3,0x16b3, -0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x1b6,0x1b6,0x16b3,0x16b3, -0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x13fe,0x13fe,0x13fe,0x13fe, -0x13fe,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x13fe,0x13fb,0x13fb,0x13fb, -0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb, -0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x13fb,0x1b9, -0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x13f8, -0x13f8,0x13f8,0x13f8,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401, -0x1413,0x1416,0x1416,0x1416,0x1416,0x1419,0x1419,0x1407,0x140a,0x16b9,0x16b6,0x16b6,0x16b6,0x1509,0x1bc,0x1bc, -0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x1506,0x16bf,0x16c2,0x16bc,0x16c5,0x16c5, -0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf, -0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf, -0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2, -0x1281,0x127e,0x1281,0x126f,0x127e,0x127e,0x127e,0x1284,0x127e,0x1284,0x1287,0x127e,0x1284,0x1284,0x127e,0x127e, -0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1425,0x142e,0x1425,0x142e,0x142e, -0x1425,0x1425,0x1425,0x1425,0x1425,0x1425,0x1431,0x1428,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5, -0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x1c8,0x1c8, -0x150c,0x150c,0x150c,0x150c,0x150c,0x1512,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, -0x1668,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f, -0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x1ce,0x1ce,0x1ce,0x1ce, -0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, +0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad, +0x13fb,0x13fb,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad, +0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1401,0x1401,0x1401,0x1401,0x1401,0x1410,0x1401,0x1404,0x1404, +0x1401,0x1401,0x1401,0x1407,0x1407,0x1b0,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, +0x140a,0x1416,0x1416,0x1416,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0, +0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, +0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x141f,0x1419,0x1419,0x141f,0x141f, +0x1428,0x1428,0x1422,0x1425,0x1425,0x141f,0x141c,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3, +0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b, +0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x1b6,0x1b6,0x1b6,0x1b6,0x16f5,0x16f5,0x142b,0x142b, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x1b6,0x1b6,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x1437,0x1437,0x1437,0x1437,0x1437,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9, +0x1437,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, +0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, +0x1434,0x1434,0x1434,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9, +0x1b9,0x1b9,0x1b9,0x1431,0x1431,0x1431,0x1431,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a, +0x143a,0x143a,0x143a,0x143a,0x144c,0x144f,0x1452,0x1452,0x144f,0x1455,0x1455,0x1440,0x1443,0x16fb,0x16f8,0x16f8, +0x16f8,0x1542,0x1bc,0x1bc,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x153f,0x1701, +0x1704,0x16fe,0x1707,0x1707,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1bf,0x1bf,0x1bf, +0x1bf,0x1bf,0x1bf,0x1bf,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1bf,0x1bf, +0x1bf,0x1bf,0x1bf,0x1bf,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x1c2,0x1c2,0x1c2,0x1c2, +0x1c2,0x1c2,0x1c2,0x1c2,0x12ae,0x12ab,0x12ae,0x1296,0x12ab,0x12ab,0x12ab,0x12b1,0x12ab,0x12b1,0x12b4,0x12ab, +0x12b1,0x12b1,0x12ab,0x12ab,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1461, +0x146a,0x1461,0x146a,0x146a,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x146d,0x1464,0x1c5,0x1c5,0x1c5,0x1c5, +0x1c5,0x1c5,0x1c5,0x1c5,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548, +0x1548,0x1548,0x1c8,0x1c8,0x1545,0x1545,0x1545,0x1545,0x1545,0x154b,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, +0x1c8,0x1c8,0x1c8,0x1c8,0x16b0,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7, +0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7, +0x1ce,0x1ce,0x1ce,0x1ce,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, 0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, -0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, -0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x1d4,0x1d4,0x1d4, -0x1d4,0x1d4,0x1d4,0x1d4,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x1d4,0x1d4, -0x1527,0x1521,0x1524,0x152d,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1d7,0x1d7,0x1d7,0x1d7, -0x1d7,0x1d7,0x1d7,0x1d7,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518, -0x1518,0x1518,0x1518,0x1518,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533, -0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, +0x1d1,0x1d1,0x1d1,0x1d1,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1d4, +0x1d4,0x1d4,0x1d4,0x1d4,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1563,0x1d4,0x1d4,0x1560,0x155a,0x155d,0x1566,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569, +0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551, +0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, +0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x1da,0x1da,0x1da, 0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, -0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x16c8,0x1536,0x153c,0x153c, -0x1dd,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1dd,0x1dd,0x1545,0x1545,0x1dd,0x1dd,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1dd,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1dd,0x1545,0x1545,0x1dd,0x1545,0x1545,0x1545,0x1545,0x1545,0x1dd,0x1dd, -0x1539,0x1545,0x1536,0x153c,0x1536,0x153c,0x153c,0x153c,0x153c,0x1dd,0x1dd,0x153c,0x153c,0x1dd,0x1dd,0x153f, -0x153f,0x1542,0x1dd,0x1dd,0x16cb,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1536,0x1dd,0x1dd,0x1dd,0x1dd, -0x1dd,0x1548,0x1545,0x1545,0x1545,0x1545,0x153c,0x153c,0x1dd,0x1dd,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539, -0x1539,0x1dd,0x1dd,0x1dd,0x1539,0x1539,0x1539,0x1539,0x1539,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd, -0x1dd,0x1dd,0x1dd,0x1dd,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, -0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1e0,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, -0x155d,0x155d,0x155d,0x155d,0x1557,0x1557,0x1557,0x154b,0x154b,0x154b,0x1557,0x1557,0x154b,0x155a,0x154e,0x154b, -0x1560,0x1560,0x1554,0x1560,0x1560,0x1551,0x1e0,0x1e0,0x156f,0x156f,0x156f,0x1563,0x1563,0x1563,0x1563,0x1563, -0x1563,0x1566,0x1569,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, -0x156c,0x156c,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x16ce,0x16ce,0x16ce,0x16ce,0x157b,0x1578,0x1e6,0x1e6, -0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, -0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581, -0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1e9, -0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581, -0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1e9,0x1e9, -0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581, -0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9, -0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d, -0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x158d,0x1584,0x1587,0x158a,0x158d,0x1ec, -0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x159c,0x159c,0x159c,0x159c,0x159c,0x1590,0x1590,0x1ef, -0x1ef,0x1ef,0x1ef,0x1593,0x1593,0x1593,0x1593,0x1593,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1596,0x1ef, -0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1f2,0x1f2,0x15a2, -0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x1f2, -0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x15a8,0x15ba,0x15ba,0x15ae,0x15b7,0x1f5,0x1f5,0x1f5, -0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1, -0x15b1,0x15b1,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, -0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, -0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x1f8,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15c6,0x15cf,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15c9,0x15c9,0x15c9,0x15c9,0x15c9,0x15c9,0x15c9,0x15c9, -0x15c9,0x15c9,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x1fb,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, -0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, -0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x1fe,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1, -0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15de,0x15de, -0x15de,0x15de,0x15de,0x201,0x201,0x201,0x201,0x201,0x15f9,0x15f9,0x15fc,0x15fc,0x15ff,0x15f0,0x204,0x204, -0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6, -0x15f6,0x15f6,0x204,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x204,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, +0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, +0x170a,0x156f,0x1575,0x16b6,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1dd,0x1dd,0x157e, +0x157e,0x1dd,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e, +0x157e,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1dd,0x157e,0x157e,0x1dd,0x157e,0x157e,0x157e, +0x157e,0x157e,0x1dd,0x1dd,0x16b3,0x157e,0x156f,0x1575,0x156f,0x1575,0x1575,0x1575,0x1575,0x1dd,0x1dd,0x1575, +0x1575,0x1dd,0x1dd,0x1578,0x1578,0x157b,0x1dd,0x1dd,0x170d,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x156f, +0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1581,0x157e,0x157e,0x157e,0x157e,0x1575,0x1575,0x1dd,0x1dd,0x1572,0x1572, +0x1572,0x1572,0x1572,0x1572,0x1572,0x1dd,0x1dd,0x1dd,0x1572,0x1572,0x1572,0x1572,0x1572,0x1dd,0x1dd,0x1dd, +0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596, +0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1e0,0x1596,0x1596,0x1596,0x1596,0x1596, +0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1590,0x1590,0x1590,0x1584,0x1584,0x1584,0x1590,0x1590, +0x1584,0x1593,0x1587,0x1584,0x1599,0x1599,0x158d,0x1599,0x1599,0x158a,0x17a0,0x1e0,0x15a8,0x15a8,0x15a8,0x159c, +0x159c,0x159c,0x159c,0x159c,0x159c,0x159f,0x15a2,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x15a5,0x15a5,0x15a5,0x15a5, +0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1710,0x1710,0x1710,0x1710, +0x15b4,0x15b1,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x173a,0x173a,0x173a,0x173a, +0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9, +0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15c6,0x15c6,0x15c6,0x15c6, +0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15bd, +0x15c0,0x15c3,0x15c6,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x15d5,0x15d5,0x15d5,0x15d5, +0x15d5,0x15c9,0x15c9,0x1ef,0x1ef,0x1ef,0x1ef,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15d2,0x15d2,0x15d2,0x15d2, +0x15d2,0x15d2,0x15cf,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x15de,0x15de,0x15de,0x15de, +0x15de,0x1f2,0x1f2,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15d8,0x15d8,0x15d8,0x15d8, +0x15d8,0x15d8,0x15d8,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x15e1,0x15f3,0x15f3,0x15e7, +0x15f0,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15ea,0x15ea,0x15ea,0x15ea, +0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15f9,0x15f9,0x15f9,0x15f9, 0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, -0x204,0x204,0x204,0x204,0x204,0x15f9,0x15f9,0x15f9,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, -0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, -0x1608,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611, -0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a, -0x20a,0x160e,0x160e,0x160e,0x160e,0x20a,0x20a,0x20a,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, -0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1614,0x1626,0x1626,0x1614,0x1614,0x1614,0x1614,0x210,0x210, -0x1626,0x1626,0x1629,0x1629,0x1614,0x1614,0x1626,0x161a,0x1617,0x161d,0x162f,0x162f,0x1620,0x1620,0x1623,0x1623, -0x1623,0x162f,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d4,0x16d4,0x16d4,0x16d4,0x16d1,0x16d1,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210, +0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x1f8,0x1605,0x1605,0x1605,0x1605, +0x1605,0x15ff,0x1608,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1602,0x1602,0x1602,0x1602, +0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1605,0x1605,0x1605,0x1605,0x1605,0x1fb,0x160e,0x160e,0x160e,0x160e, +0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e, +0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x1fe,0x161a,0x161a,0x161a,0x161a, +0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a, +0x161a,0x161a,0x1617,0x1617,0x1617,0x1617,0x1617,0x201,0x201,0x201,0x201,0x201,0x1632,0x1632,0x1635,0x1635, +0x1638,0x1629,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x162f,0x162f,0x162f,0x162f, +0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x204,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x204,0x1632, +0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632, +0x1632,0x1632,0x1632,0x1632,0x204,0x204,0x204,0x204,0x204,0x1632,0x1632,0x1632,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x164a,0x164a,0x164a,0x164a, +0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x20a,0x20a, +0x20a,0x20a,0x20a,0x20a,0x20a,0x1647,0x1647,0x1647,0x1647,0x20a,0x20a,0x20a,0x1665,0x1665,0x1665,0x1665, +0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x164d,0x165f,0x165f,0x164d,0x164d, +0x164d,0x164d,0x210,0x210,0x165f,0x165f,0x1662,0x1662,0x164d,0x164d,0x165f,0x1653,0x1650,0x1656,0x1668,0x1668, +0x1659,0x1659,0x165c,0x165c,0x165c,0x1668,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, +0x1719,0x1719,0x1719,0x1719,0x1716,0x1716,0x1716,0x1716,0x1713,0x1713,0x210,0x210,0x210,0x210,0x210,0x210, 0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210, -0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x213,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632, -0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x213,0x213,0x213, -0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -0x1635,0x1635,0x1635,0x1635,0x216,0x216,0x216,0x216,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, -0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x216,0x216,0x216,0x216,0x216,0x216, -0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, -0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -0x1635,0x1635,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, +0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x213,0x166b,0x166b,0x166b, +0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b, +0x166b,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216, +0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216, +0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216, +0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, 0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, -0x216,0x216,0x216,0x216,0x1638,0x1647,0x163e,0x163b,0x164d,0x164d,0x1641,0x164d,0x219,0x219,0x219,0x219, -0x219,0x219,0x219,0x219,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x219,0x219, -0x219,0x219,0x219,0x219,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1650,0x1650, -0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c, -0x21c,0x21c,0x21c,0x1659,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9, -0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x21f,0x21f, -0x21f,0x16da,0x16da,0x16da,0x16e6,0x16e6,0x16da,0x16da,0x16da,0x16da,0x16e6,0x16da,0x16da,0x16da,0x16da,0x16dd, -0x21f,0x21f,0x21f,0x21f,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e0,0x16e0, -0x16ec,0x16ec,0x16ec,0x16e0,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x222,0x222,0x222,0x222,0x222, +0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x1671,0x1680,0x1677,0x1674,0x1686,0x1686,0x167a,0x1686, +0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d, +0x167d,0x167d,0x219,0x219,0x219,0x219,0x219,0x219,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c, +0x168c,0x168c,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x21c,0x21c,0x21c,0x21c,0x21c, +0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x1692,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, +0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, +0x172b,0x172b,0x21f,0x21f,0x21f,0x171c,0x171c,0x171c,0x1728,0x1728,0x171c,0x171c,0x171c,0x171c,0x1728,0x171c, +0x171c,0x171c,0x171c,0x171f,0x21f,0x21f,0x21f,0x21f,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725, +0x1725,0x1725,0x1722,0x1722,0x172e,0x172e,0x172e,0x1722,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x222, +0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222, 0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222, -0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x1701,0x1701,0x1701,0x1701, -0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x228, -0x1701,0x1701,0x228,0x228,0x228,0x228,0x228,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x1704,0x1704,0x1704,0x1704, -0x1704,0x1704,0x1704,0x22b,0x1704,0x22b,0x1704,0x1704,0x1704,0x1704,0x22b,0x1704,0x1704,0x1704,0x1704,0x1704, -0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x22b,0x1704,0x1704,0x1704,0x1704,0x1704, -0x1704,0x1704,0x1704,0x1704,0x1704,0x1707,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x1572,0x1572,0x1572,0x1572, -0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1710,0x1710,0x1710,0x1710, -0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x22e, -0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x170d,0x170d,0x170d,0x170d, -0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x22e, -0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x231,0x231,0x231,0x231, -0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x1713,0x1713,0x1713,0x1713, -0x1713,0x1713,0x1713,0x1713,0x1716,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743, +0x1743,0x1743,0x1743,0x228,0x1743,0x1743,0x228,0x228,0x228,0x228,0x228,0x1740,0x1740,0x1740,0x1740,0x1740, +0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746,0x22b,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746, +0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746, +0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1749,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b, +0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e, +0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f, +0x174f,0x174f,0x174f,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x174c,0x174c,0x174c,0x174c,0x174c,0x174c, 0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, -0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x1713,0x1713,0x1713,0x1713,0x1713,0x231,0x231,0x231, +0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1776,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x231, +0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1824,0x1821,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x1824,0x231,0x231,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1821,0x181e,0x1824,0x1824,0x1824,0x231, +0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x181e,0x1821,0x1821,0x1821,0x1821,0x1821,0x231,0x231,0x231,0x231, +0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x231, 0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, -0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x171c,0x171c,0x171c,0x171c, -0x1719,0x171c,0x171c,0x171f,0x1722,0x171f,0x171f,0x171c,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234, -0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1719,0x1719,0x1719,0x1719,0x1719,0x237,0x237,0x237,0x237, -0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237, -0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x1728,0x1728,0x24f,0x24f, -0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x237,0x237,0x237,0x237, -0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237, -0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x8fa,0x8fa,0xabc,0xabc,0xabc,0xabc, -0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, -0xabc,0xabc,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x10ad,0x10ad,0x10ad,0x10ad, -0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1437,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725, -0x1725,0x1725,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d, -0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d, -0x23d,0x23d,0x23d,0x23d,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0x1254, -0x1254,0x1254,0x240,0x240,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a, -0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0x240,0x240, -0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240, -0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240, -0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f, -0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243, -0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0x246,0x246, -0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266, -0x1266,0x1266,0x1266,0x1266,0x1266,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249, -0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, -0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x24c,0x24c, -0x10bf,0x34b,0x34b,0x357,0xc51,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a, -0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a, -0x357,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x357,0x357,0x357,0x357,0x351,0x10c2,0x1296, -0x35a,0x8ca,0x8cd,0x34e,0x34e,0x10bf,0x1293,0x1293,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d, -0x35a,0x35a,0x34b,0x34b,0x858,0x85b,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2, -0x354,0xf21,0xf1e,0x1299,0x1299,0x1299,0x1299,0x1299,0x145b,0x10c5,0x10c5,0xe73,0xe73,0xd41,0xe73,0xe73, -0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35d,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a, -0x35a,0x35d,0x35a,0x35a,0x35d,0x35a,0x35a,0x35a,0x35a,0x35a,0x1293,0x1296,0x34e,0x35a,0x357,0x357, -0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b, -0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0x43b,0xb3d,0xb3d,0xd4d,0xd4d,0x438,0xd50,0x137d,0x137d,0x137d, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x444,0x444,0x444,0x10da,0x10da,0x10da,0x10da,0x10da,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441, -0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441, -0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, -0x447,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444, -0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444, -0x444,0x444,0x444,0x444,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a, -0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a, -0x450,0x44a,0x450,0x44a,0x450,0x44a,0x44a,0x44a,0x44a,0x44a,0x44d,0x93c,0xf6f,0xf6f,0xf72,0xf6f, -0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a, -0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0x450,0x44a,0xf72,0xf6f,0xf72,0xf6f,0xf72,0xf6f, -0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, -0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, -0x63c,0x63c,0x63f,0x47a,0x64b,0x648,0x648,0x645,0x4a4,0x4a4,0x462,0x462,0x462,0x462,0x462,0xa6b, -0x64e,0x486,0x666,0x669,0x49b,0x64e,0x489,0x489,0x47a,0x495,0x495,0x63c,0x4a1,0x49e,0x642,0x474, -0x46b,0x46b,0x46e,0x46e,0x46e,0x46e,0x46e,0x471,0x46e,0x46e,0x46e,0x465,0x4aa,0x4aa,0x4a7,0x4a7, -0x65a,0x48f,0x48c,0x657,0x654,0x651,0x663,0x47d,0x660,0x660,0x492,0x495,0x65d,0x65d,0x492,0x495, -0x477,0x47a,0x47a,0x47a,0x498,0x483,0x480,0xb52,0xa71,0xa74,0xa6e,0xa6e,0xa6e,0xa6e,0xb49,0xb49, -0xb49,0xb49,0xb4f,0xc7e,0xc7b,0xd5c,0xd5f,0xb4c,0xd5f,0xd5f,0xd5f,0xd5f,0xd5c,0xd5f,0xd5f,0xb46, -0x4dd,0x4dd,0x4f5,0x678,0x4da,0x675,0x4dd,0x4f2,0x4da,0x678,0x4ec,0x4f5,0x4f5,0x4f5,0x4ec,0x4ec, -0x4f5,0x4f5,0x4f5,0x681,0x4da,0x4f5,0x67b,0x4da,0x4e9,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4da,0x4da, -0x4e0,0x675,0x67e,0x4da,0x4f5,0x4da,0x684,0x4da,0x4f5,0x4e3,0x4fb,0x687,0x4f5,0x4f5,0x4e6,0x4ec, -0x4f5,0x4f5,0x4f8,0x4f5,0x4ec,0x4ef,0x4ef,0x4ef,0x4ef,0xa80,0xa7d,0xc81,0xd6e,0xb6d,0xb70,0xb70, -0xb6a,0xb67,0xb67,0xb67,0xb67,0xb70,0xb6d,0xb6d,0xb6d,0xb6d,0xb64,0xb67,0xd6b,0xe7f,0xe82,0xf78, -0x10e9,0x10e9,0x10e9,0x68d,0x68a,0x4fe,0x501,0x501,0x501,0x501,0x501,0x68a,0x68d,0x68d,0x68a,0x501, -0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x50a,0x50a,0x50a,0x50a, -0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x504,0x504,0x504,0x504,0x504,0x504, -0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x50d,0x516,0x516,0x510,0x510,0x510,0x513,0x50d, -0x510,0x510,0x50d,0x50d,0x50d,0x50d,0x510,0x510,0x696,0x696,0x50d,0x50d,0x510,0x510,0x510,0x510, -0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x513,0x513,0x513,0x510,0x510,0x699,0x510, -0x699,0x510,0x510,0x510,0x510,0x510,0x510,0x510,0x50d,0x510,0x50d,0x50d,0x50d,0x50d,0x50d,0x50d, -0x510,0x510,0x50d,0x696,0x50d,0x50d,0x50d,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86, -0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0x69f,0x519,0x69f,0x69f, -0x51c,0x519,0x519,0x69f,0x69f,0x51c,0x519,0x69f,0x51c,0x519,0x519,0x69f,0x519,0x69f,0x528,0x525, -0x519,0x69f,0x519,0x519,0x519,0x519,0x69f,0x519,0x519,0x69f,0x69f,0x69f,0x69f,0x519,0x519,0x69f, -0x51c,0x69f,0x51c,0x69f,0x69f,0x69f,0x69f,0x69f,0x6a5,0x51f,0x69f,0x51f,0x51f,0x519,0x519,0x519, -0x69f,0x69f,0x69f,0x69f,0x519,0x519,0x519,0x519,0x69f,0x69f,0x519,0x519,0x519,0x51c,0x519,0x519, -0x51c,0x519,0x519,0x51c,0x69f,0x51c,0x519,0x519,0x69f,0x519,0x519,0x519,0x519,0x519,0x69f,0x519, -0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x6a2,0x69f,0x51c,0x519, -0x69f,0x69f,0x69f,0x69f,0x519,0x519,0x69f,0x69f,0x519,0x51c,0x6a2,0x6a2,0x51c,0x51c,0x519,0x519, -0x51c,0x51c,0x519,0x519,0x51c,0x51c,0x519,0x519,0x519,0x519,0x519,0x519,0x51c,0x51c,0x69f,0x69f, -0x51c,0x51c,0x69f,0x69f,0x51c,0x51c,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519, -0x519,0x69f,0x519,0x519,0x519,0x69f,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x69f,0x519,0x519, -0x519,0x519,0x519,0x519,0x51c,0x51c,0x51c,0x51c,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519, -0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x69f,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519, -0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519, -0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x51c,0x51c,0x51c,0x51c,0x519,0x519,0x519,0x519, -0x519,0x519,0x51c,0x51c,0x51c,0x51c,0x519,0x522,0x519,0x519,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, -0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0x52b,0xa89,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x53a,0x537,0x53a,0x537,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x6a8,0x52b,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x531,0x531,0x52b,0x52b,0x52b,0x52b,0x534,0x534,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x52e,0x7ad,0x7aa,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0xa89,0xb7c,0xa89,0xa89,0xa89,0x53d,0x53d,0x53d,0x53d, -0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, -0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x6b1,0x6b1,0x6b1,0x6b1, -0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x543,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xcf9,0x6ba,0x6ba,0x6ba,0x6ba, -0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba, -0x546,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x6ba,0x6ba,0x6ba,0x6ba, -0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x549,0x549,0x549,0x549,0x6ba,0x6ba,0x6ba,0x6ba, -0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6bd,0x6bd,0x6bd,0x6bd, -0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x54c,0x54c,0x6bd,0x6bd, -0x6bd,0x6bd,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0x6c3,0x6c3,0x54f,0x6c0, -0x6c0,0x6c0,0x6c0,0x6c0,0x6c0,0x6c0,0x552,0x552,0x54f,0x54f,0x555,0x555,0x555,0x555,0x6c3,0x6c3, -0x555,0x555,0x6c6,0x6c3,0x54f,0x54f,0x54f,0x54f,0x6c3,0x6c3,0x555,0x555,0x6c6,0x6c3,0x54f,0x54f, -0x54f,0x54f,0x6c3,0x6c3,0x6c0,0x54f,0x555,0x6c3,0x54f,0x54f,0x6c0,0x6c3,0x6c3,0x6c3,0x555,0x555, -0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x6c3,0x6c0, -0x6c3,0x6c0,0x54f,0x555,0x555,0x555,0x555,0x555,0x555,0x54f,0x54f,0x6c0,0xa8f,0xa8f,0xa8f,0xa8f, -0xa8f,0xa8f,0xa8f,0xa8f,0xb82,0xb82,0xb82,0xb85,0xb85,0xb88,0xb88,0xb82,0x561,0x561,0x561,0x561, -0x55e,0x6d5,0x6d5,0x558,0x558,0x6c9,0x558,0x558,0x558,0x558,0x6cf,0x6c9,0x558,0x55e,0x558,0x558, -0xcfc,0xcfc,0xb8b,0xb8b,0xd7a,0xa92,0x55b,0x55b,0x6cc,0x567,0x6cc,0x55b,0x55e,0x558,0x55e,0x55e, -0x558,0x558,0x55e,0x558,0x558,0x558,0x55e,0x558,0x558,0x558,0x55e,0x55e,0x558,0x558,0x558,0x558, -0x558,0x558,0x558,0x558,0x55e,0x561,0x561,0x55b,0x558,0x558,0x558,0x558,0x6d5,0x558,0x6d5,0x558, -0x558,0x558,0x558,0x558,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564, -0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x6d8,0x6d5,0x56a,0x6d8, -0x6c9,0x6cf,0x55e,0x6c9,0x6d2,0x6c9,0x6c9,0x558,0x6c9,0x6d5,0x56a,0x6d5,0xa92,0xa92,0xb8e,0xb8e, -0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb91,0xb8e,0xb8e,0xd74,0xd80,0x56d,0x56d,0x56d,0x56d, -0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d,0x56d, -0x570,0x12c9,0x12c9,0x12c9,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x147f,0x576,0x582,0x576, -0x576,0x12c9,0x570,0x570,0x582,0x582,0x12cc,0x12cc,0x585,0x585,0x570,0x57c,0x570,0x570,0x57c,0x570, -0x57c,0x570,0x57c,0x570,0x570,0x570,0x570,0x570,0x570,0x57c,0x570,0x570,0x570,0x570,0x570,0x570, -0x12c9,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x57c,0x57c,0x570,0x570,0x570, -0x570,0x570,0x570,0x570,0x570,0x6de,0x570,0x570,0x570,0x570,0x570,0x570,0x57c,0x570,0x570,0x57c, -0x570,0x570,0x570,0x570,0x12c9,0x570,0x12c9,0x570,0x570,0x570,0x570,0x12c9,0x12c9,0x12c9,0x570,0x122a, -0x570,0x570,0x570,0x579,0x579,0x579,0x579,0x12c6,0x12c6,0x570,0x573,0x57f,0x57c,0x570,0x570,0x570, -0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0x6db,0x6db, -0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x570,0x57c,0x570,0x570,0x570,0x570,0x570,0x570, -0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x12c9,0x570,0x570,0x570,0x570,0x570,0x570,0x570, -0x570,0x570,0x570,0x570,0x570,0x570,0x570,0x12c9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5af,0x5af,0x5af,0x5af, -0x5af,0x5af,0x5af,0x5af,0x5a6,0x5ac,0x59d,0x5a0,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6, -0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6, -0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6, -0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6, -0x5a9,0x5af,0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5af,0x5ac,0x5a6, -0x5a9,0x5af,0x5ac,0x5a6,0x5ac,0x5a6,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf, -0x12cf,0x12cf,0x12cf,0x12cf,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5af,0x5a9,0x5af,0x5ac,0x5a6, -0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5ac,0x5a6,0x5a9,0x5ac,0x5a6,0x5a9, -0x5ac,0x5a6,0x5a9,0x5af,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9, -0x5a9,0x5a9,0x5a9,0x5a9,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a6,0x5a9,0x5a6,0x5a9,0x5a6,0x5a6,0x5a9,0x5a6,0x5a6,0x5a9, -0x5a6,0x5a9,0x5a6,0x5a6,0x5a9,0x5a6,0x5a9,0x5a9,0x5a6,0x5a6,0x5a6,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a6,0x5a6,0x5a9,0x5a6,0x5a9,0x5a6, -0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9, -0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9, -0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5af,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af, -0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5b2,0x5b2,0x5b2,0x5b2,0xf84,0xf84,0xf84,0x1482, -0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1680,0x1680,0x80a,0x810,0x810,0x81c,0x81c,0x80d,0x804,0x80d, -0x804,0x80d,0x804,0x80d,0x804,0x80d,0x804,0x80d,0x5c1,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1, -0x5bb,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5c1,0x5bb,0x5be, -0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1,0x5bb,0x5c1, -0x5bb,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be, -0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be,0x5c4,0x5c1,0x5bb,0x5be, -0x5c4,0x5c1,0x5bb,0x5be,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae, -0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab, -0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab, -0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4, -0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b7,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4, -0x6b4,0x6b4,0x6b4,0x6b4,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1, -0x6b1,0x6b1,0x6b1,0x6b1,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba, -0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba, -0x6ba,0x6ba,0x6ba,0x6ba,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1, -0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1, -0x6e1,0x6e1,0x6e1,0x6e1,0xbeb,0x86d,0x867,0x864,0x86a,0x861,0x6f6,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9, -0x6f9,0x6f9,0x6f9,0x6f9,0x873,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6, -0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6, -0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x870,0x870,0x6fc,0x882,0x885,0x88b,0x7b0,0x7bc,0x8a0,0x7b9, -0x879,0x876,0x879,0x876,0x87f,0x87c,0x87f,0x87c,0x879,0x876,0x7b6,0x88b,0x879,0x876,0x879,0x876, -0x879,0x876,0x879,0x876,0x88e,0x897,0x894,0x894,0x702,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x738, -0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, -0x738,0x738,0x738,0x705,0x720,0x6ff,0x726,0x729,0x723,0x73b,0x73b,0x73b,0x73b,0x73b,0x73b,0x735, -0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735,0x735, -0x735,0x735,0x735,0x705,0x720,0x6ff,0x720,0xbee,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4, -0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4, -0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x124b,0x124b,0x124b,0x124b,0x124b,0x7a7, -0x7b6,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x8d6,0x8d6,0x8d6,0x8d6,0x7bf,0x7bf, -0x891,0x89d,0x89d,0x89d,0x89d,0x89a,0x7b3,0x888,0xab6,0xab6,0xab6,0xbfd,0xc1b,0xc18,0xad1,0x85e, -0x7c5,0x7c2,0x7c5,0x7c8,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c5,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2, -0x7c5,0x7c5,0x7c2,0x7c5,0x7c5,0x7c2,0x7c5,0x7c5,0x7c2,0x7c5,0x7c5,0x7c2,0x7c5,0x7c5,0x7c2,0x7c2, -0xc1e,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1, -0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1, -0x7d4,0x7d1,0x7d4,0x7d7,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d4,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1, -0x7d4,0x7d4,0x7d1,0x7d4,0x7d4,0x7d1,0x7d4,0x7d4,0x7d1,0x7d4,0x7d4,0x7d1,0x7d4,0x7d4,0x7d1,0x7d1, -0x7d1,0x7d1,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d7,0x7d1, -0x7d1,0x7d1,0x7d1,0x7d1,0x7d4,0x7d7,0x7d7,0x7d4,0x7d4,0x7d4,0x7d4,0x8a6,0x8a9,0x7da,0x7dd,0xc06, -0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3, -0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3, -0x7e6,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3, -0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7ef,0x7ef,0x7ef,0x7ef, -0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef, -0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0xd08,0xd08,0xe34,0x7e9,0x8b2,0x8b2,0x8b2,0x8b2, -0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0xd02,0xd02,0xd02,0xd02,0x7f2,0x7f2,0x7f2,0x7f2, -0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x8bb,0x8bb,0x8bb,0x8bb, -0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x7f5,0x7f5,0x7f5, -0x7f5,0x7f5,0x7f5,0xd0b,0xd0b,0xd0b,0xd0b,0x8be,0x8be,0x8be,0x8be,0x8be,0x7f5,0x7f5,0x7f5,0x7f5, -0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5, -0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0xd0b,0xd0b, -0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8, -0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8, -0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb, -0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb, -0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37, -0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37, -0x10ad,0x10ad,0x10ad,0x10ad,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe, -0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe, -0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x801,0x801,0x7fe,0x801,0x7fe,0x801,0x801,0x7fe,0x7fe,0x7fe, -0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x801,0x7fe,0x801,0x7fe,0x801,0x801,0x7fe,0x7fe,0x801, -0x801,0x801,0x7fe,0x7fe,0x7fe,0x7fe,0x143a,0x143a,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f, -0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2, -0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2, -0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x8b2,0x124e,0x124e,0x124e,0x124e,0x122d,0x122d,0x122d,0x122d, -0x122d,0x122d,0x122d,0x122d,0xd02,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0xc09,0xc09,0xc09,0xc09,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5, -0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b8,0x8b5,0x8b8,0x8b5,0x8b5, -0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5, -0x8b5,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb, -0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0xd0b, -0x936,0x918,0x918,0x918,0x918,0x912,0x918,0x918,0x92a,0x918,0x918,0x915,0x921,0x927,0x927,0x927, -0x927,0x927,0x92a,0x912,0x91e,0x912,0x912,0x912,0x909,0x909,0x912,0x912,0x912,0x912,0x912,0x912, -0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x912,0x912,0x912,0x912,0x912,0x912, -0x912,0x912,0x912,0x912,0x915,0x909,0x912,0x909,0x912,0x909,0x924,0x91b,0x924,0x91b,0x933,0x933, -0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942, -0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942, -0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945, -0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945, -0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948, -0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948, -0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951, -0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x94b,0x94b, -0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954, -0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x94e,0x94e, -0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951, -0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951, -0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954, -0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954, -0x957,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a, -0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x957,0x95a,0x95a,0x95a, -0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a, -0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x9e7,0x9e7,0xf69,0x9e7,0x9e7,0x9e7,0x9ea,0x9e7, -0xf69,0x9e7,0x9e7,0xf60,0x9e1,0x9d5,0x9d5,0x9d5,0x9d5,0x9e4,0x9d5,0xf4e,0xf4e,0xf4e,0x9d5,0x9d8, -0x9e1,0x9db,0xf54,0xf63,0xf63,0xf4e,0xf4e,0xf69,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7, -0xad7,0xad7,0x9ed,0x9ed,0x9de,0x9de,0x9de,0x9de,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e4,0x9e4, -0x9d5,0x9d5,0xf69,0xf69,0xf69,0xf69,0xf4e,0xf4e,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7, -0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7, -0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0xd59, -0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0xd59,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc, -0x9fc,0x9fc,0x9fc,0x9fc,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, -0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, -0xa02,0xa02,0xa02,0xa02,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08, -0xa08,0xa05,0xa0b,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, -0x10e0,0x10e0,0x10e0,0x10e0,0x10dd,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08, -0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08, -0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa41,0xa41,0xa41,0xa44,0xa44,0xa41,0xa41,0xa41, -0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa29,0xa29,0xa3e,0xa20, -0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa3e,0xa3e,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41, -0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41, -0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa62,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f, -0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, +0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x1773,0x1773,0x1773,0x1773,0x1773,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821, +0x1821,0x1821,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x1773,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231, +0x1758,0x1758,0x1758,0x1758,0x1755,0x1758,0x1758,0x175b,0x175e,0x175b,0x175b,0x1758,0x234,0x234,0x234,0x234, +0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1755,0x1755,0x1755,0x1755,0x1755, +0x17b2,0x17b2,0x17b2,0x17b2,0x17a9,0x17a9,0x17a9,0x17a3,0x17a6,0x17a6,0x17a6,0x237,0x237,0x237,0x237,0x237, +0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x237,0x237,0x237,0x237,0x17ac,0x17ac, +0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x23a,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd, +0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd, +0x17cd,0x17cd,0x17cd,0x17ca,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x23a,0x17b8,0x17b8,0x17b8,0x17b8, +0x17b8,0x17b8,0x17ca,0x17bb,0x17cd,0x17d0,0x17d0,0x17c4,0x17c1,0x17c1,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a, +0x23a,0x23a,0x23a,0x23a,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17be,0x17be, +0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x23a,0x23a,0x23a, +0x17dc,0x17df,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5, +0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6, +0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6, +0x1827,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243, +0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243, +0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5, +0x246,0x246,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9, +0x246,0x17e2,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17e2,0x17d9,0x17d9,0x17e2,0x17d9,0x17d9,0x246, +0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8, +0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249, +0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x1800,0x1800,0x17f1,0x17eb,0x17eb,0x1800,0x17ee,0x1803, +0x1803,0x1803,0x1803,0x1806,0x1806,0x17fa,0x17f7,0x17f4,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd, +0x17fd,0x17fd,0x24c,0x17fa,0x24c,0x17f4,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c, +0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c, +0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c, +0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x24f,0x24f,0x24f,0x24f, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x24f,0x24f,0x24f,0x24f, +0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x252,0x252,0x252, +0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252, +0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255, +0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, +0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, +0x1770,0x1770,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270, +0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, +0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x921,0x921, +0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, +0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b, +0x10d4,0x10d4,0x10d4,0x10d4,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1473,0x1761,0x1761,0x1761, +0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e, +0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e, +0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39, +0xc39,0xc39,0xc39,0x1278,0x1278,0x1278,0x261,0x261,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, +0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, +0xe67,0xe67,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261, +0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261, +0x261,0x261,0x261,0x261,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, +0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0x264,0x264,0x264,0x264,0x264, +0x264,0x264,0x264,0x264,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, +0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, +0xb4c,0xb4c,0x267,0x267,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d, +0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a, +0x26a,0x26a,0x26a,0x26a,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, +0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, +0x13a7,0x13a7,0x26d,0x26d,0x10ec,0x369,0x369,0x375,0xc7b,0x378,0x378,0x378,0x378,0x378,0x378,0x378, +0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378, +0x378,0x378,0x378,0x378,0x375,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x375,0x375,0x375, +0x375,0x36f,0x10ef,0x12c6,0x378,0x8ee,0x8f1,0x36c,0x36c,0x10ec,0x12c3,0x12c3,0x37b,0x37b,0x37b,0x37b, +0x37b,0x37b,0x37b,0x37b,0x378,0x378,0x369,0x369,0x879,0x87c,0x909,0x909,0x909,0x909,0x909,0x909, +0x909,0x909,0x909,0x909,0x372,0xf4e,0xf4b,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x149a,0x10f2,0x10f2,0xea0, +0xea0,0xd6e,0xea0,0xea0,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x37b,0x378,0x378, +0x378,0x378,0x378,0x378,0x378,0x37b,0x378,0x378,0x37b,0x378,0x378,0x378,0x378,0x378,0x12c3,0x12c6, +0x36c,0x378,0x375,0x375,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456, +0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0xb67,0xb67,0xd7a,0xd7a,0x87f, +0xd7d,0x13b9,0x13b9,0x13b9,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, +0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, +0x459,0x459,0x459,0x459,0x45f,0x45f,0x45f,0x1107,0x1107,0x1107,0x1107,0x1107,0x45c,0x45c,0x45c,0x45c, +0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c, +0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x1104,0x1104, +0x1104,0x1104,0x1104,0x1104,0x462,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, +0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, +0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465, +0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465, +0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x465,0x465,0x465,0x465,0x468,0x963, +0xf9c,0xf9c,0xf9f,0xf9c,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465, +0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0xf9f,0xf9c, +0xf9f,0xf9c,0xf9f,0xf9c,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a, +0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a, +0x47a,0x47a,0x47a,0x47a,0x657,0x657,0x65a,0x495,0x666,0x663,0x663,0x660,0x4bf,0x4bf,0x47d,0x47d, +0x47d,0x47d,0x47d,0xa95,0x669,0x4a1,0x681,0x684,0x4b6,0x669,0x4a4,0x4a4,0x495,0x4b0,0x4b0,0x657, +0x4bc,0x4b9,0x65d,0x48f,0x486,0x486,0x489,0x489,0x489,0x489,0x489,0x48c,0x489,0x489,0x489,0x480, +0x4c8,0x4c5,0x4c2,0x4c2,0x675,0x4aa,0x4a7,0x672,0x66f,0x66c,0x67e,0x498,0x67b,0x67b,0x4ad,0x4b0, +0x678,0x678,0x4ad,0x4b0,0x492,0x495,0x495,0x495,0x4b3,0x49e,0x49b,0xb7c,0xa9b,0xa9e,0xa98,0xa98, +0xa98,0xa98,0xb73,0xb73,0xb73,0xb73,0xb79,0xca8,0xca5,0xd89,0xd8c,0xb76,0xd8c,0xd8c,0xd8c,0xd8c, +0xd89,0xd8c,0xd8c,0xb70,0x4fb,0x4fb,0x513,0x693,0x4f8,0x690,0x4fb,0x510,0x4f8,0x693,0x50a,0x513, +0x513,0x513,0x50a,0x50a,0x513,0x513,0x513,0x69c,0x4f8,0x513,0x696,0x4f8,0x507,0x513,0x513,0x513, +0x513,0x513,0x4f8,0x4f8,0x4fe,0x690,0x699,0x4f8,0x513,0x4f8,0x69f,0x4f8,0x513,0x501,0x519,0x6a2, +0x513,0x513,0x504,0x50a,0x513,0x513,0x516,0x513,0x50a,0x50d,0x50d,0x50d,0x50d,0xaaa,0xaa7,0xcab, +0xd9b,0xb97,0xb9a,0xb9a,0xb94,0xb91,0xb91,0xb91,0xb91,0xb9a,0xb97,0xb97,0xb97,0xb97,0xb8e,0xb91, +0xd98,0xeac,0xeaf,0xfa5,0x1116,0x1116,0x1116,0x6a8,0x6a5,0x51c,0x51f,0x51f,0x51f,0x51f,0x51f,0x6a5, +0x6a8,0x6a8,0x6a5,0x51f,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae, +0x528,0x528,0x528,0x528,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x522,0x522, +0x522,0x522,0x522,0x522,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52b,0x534,0x534,0x52e, +0x52e,0x52e,0x531,0x52b,0x52e,0x52e,0x52b,0x52b,0x52b,0x52b,0x52e,0x52e,0x6b1,0x6b1,0x52b,0x52b, +0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x531,0x531,0x531, +0x52e,0x52e,0x6b4,0x52e,0x6b4,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52b,0x52e,0x52b,0x52b, +0x52b,0x52b,0x52b,0x52b,0x52e,0x52e,0x52b,0x6b1,0x52b,0x52b,0x52b,0xab0,0xab0,0xab0,0xab0,0xab0, +0xab0,0xab0,0xab0,0xab0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, +0x6ba,0x537,0x6ba,0x6ba,0x53a,0x537,0x537,0x6ba,0x6ba,0x53a,0x537,0x6ba,0x53a,0x537,0x537,0x6ba, +0x537,0x6ba,0x546,0x543,0x537,0x6ba,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x6ba,0x6ba,0x6ba, +0x6ba,0x537,0x537,0x6ba,0x53a,0x6ba,0x53a,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6c0,0x53d,0x6ba,0x53d, +0x53d,0x537,0x537,0x537,0x6ba,0x6ba,0x6ba,0x6ba,0x537,0x537,0x537,0x537,0x6ba,0x6ba,0x537,0x537, +0x537,0x53a,0x537,0x537,0x53a,0x537,0x537,0x53a,0x6ba,0x53a,0x537,0x537,0x6ba,0x537,0x537,0x537, +0x537,0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537, +0x6bd,0x6ba,0x53a,0x537,0x6ba,0x6ba,0x6ba,0x6ba,0x537,0x537,0x6ba,0x6ba,0x537,0x53a,0x6bd,0x6bd, +0x53a,0x53a,0x537,0x537,0x53a,0x53a,0x537,0x537,0x53a,0x53a,0x537,0x537,0x537,0x537,0x537,0x537, +0x53a,0x53a,0x6ba,0x6ba,0x53a,0x53a,0x6ba,0x6ba,0x53a,0x53a,0x537,0x537,0x537,0x537,0x537,0x537, +0x537,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537, +0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,0x537,0x537,0x537,0x537, +0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x537, +0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537, +0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a, +0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,0x537,0x540,0x537,0x537,0xba0,0xba0, +0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0x549,0xab3,0x549,0x549, +0x549,0x549,0x549,0x549,0x555,0x552,0x555,0x552,0x549,0x549,0x549,0x549,0x549,0x549,0x6c3,0x549, +0x549,0x549,0x549,0x549,0x549,0x549,0x7c5,0x7c5,0x549,0x549,0x549,0x549,0x54f,0x54f,0x549,0x549, +0x549,0x549,0x549,0x549,0x54c,0x7cb,0x7c8,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549, +0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549, +0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xab3,0xba6,0xab3,0xab3,0xab3, +0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558, +0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558, +0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x55e,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c, +0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xd20, +0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5, +0x6d5,0x6d5,0x6d5,0x6d5,0x561,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564, +0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x564,0x564,0x564,0x564, +0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5, +0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8, +0x567,0x567,0x6d8,0x6d8,0x6d8,0x6d8,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, +0x6de,0x6de,0x56a,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x56d,0x56d,0x56a,0x56a,0x570,0x570, +0x570,0x570,0x6de,0x6de,0x570,0x570,0x6e1,0x6de,0x56a,0x56a,0x56a,0x56a,0x6de,0x6de,0x570,0x570, +0x6e1,0x6de,0x56a,0x56a,0x56a,0x56a,0x6de,0x6de,0x6db,0x56a,0x570,0x6de,0x56a,0x56a,0x6db,0x6de, +0x6de,0x6de,0x570,0x570,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a, +0x56a,0x56a,0x6de,0x6db,0x6de,0x6db,0x56a,0x570,0x570,0x570,0x570,0x570,0x570,0x56a,0x56a,0x6db, +0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xbac,0xbac,0xbac,0xbaf,0xbaf,0xc24,0xc24,0xbac, +0x57c,0x57c,0x57c,0x57c,0x579,0x6f0,0x6f0,0x573,0x573,0x6e4,0x573,0x573,0x573,0x573,0x6ea,0x6e4, +0x573,0x579,0x573,0x573,0xd29,0xd29,0xbb2,0xbb2,0xda7,0xabc,0x576,0x576,0x6e7,0x57f,0x6e7,0x576, +0x579,0x573,0x579,0x579,0x573,0x573,0x579,0x573,0x573,0x573,0x579,0x573,0x573,0x573,0x579,0x579, +0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x579,0x57c,0x57c,0x576,0x573,0x573,0x573,0x573, +0x6f3,0x573,0x6f3,0x573,0x573,0x573,0x573,0x573,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce, +0x7ce,0x7ce,0x7ce,0x7ce,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573, +0x6f3,0x6f0,0x582,0x6f3,0x6e4,0x6ea,0x579,0x6e4,0x6ed,0x6e4,0x6e4,0x573,0x6e4,0x6f0,0x582,0x6f0, +0xabc,0xabc,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb8,0xbb5,0xbb5,0xda1,0xe5e, +0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585, +0x585,0x585,0x585,0x585,0x588,0x136e,0x136e,0x136e,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588, +0x14be,0x58e,0x59a,0x58e,0x58e,0x136e,0x588,0x588,0x59a,0x59a,0x1371,0x1371,0x5a0,0x5a0,0x588,0x594, +0x588,0x588,0x594,0x588,0x594,0x588,0x594,0x588,0x588,0x588,0x588,0x588,0x588,0x594,0x588,0x588, +0x588,0x588,0x588,0x588,0x136e,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x594, +0x594,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x6f9,0x588,0x588,0x588,0x588,0x588,0x588, +0x594,0x588,0x588,0x594,0x588,0x588,0x588,0x588,0x136e,0x588,0x136e,0x588,0x588,0x588,0x588,0x136e, +0x136e,0x136e,0x588,0x1272,0x588,0x588,0x588,0x591,0x591,0x591,0x591,0x12f0,0x12f0,0x588,0x58b,0x597, +0x59d,0x588,0x588,0x588,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb, +0xbbe,0xbbb,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x588,0x594,0x588,0x588, +0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x136e,0x588,0x588,0x588, +0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x136e,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4, +0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5c1,0x5c7,0x5b8,0x5bb,0x5c7,0x5c7,0x5c7,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1, +0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1, +0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1, +0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1, +0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1, +0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3, +0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca, +0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1, +0x5c4,0x5c7,0x5c1,0x5c4,0x5c7,0x5c1,0x5c4,0x5ca,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4, +0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c1,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1, +0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c4,0x5c1,0x5c1,0x5c1,0x5c4, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c1,0x5c1, +0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4, +0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4, +0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5ca,0x5c7,0x5c7,0x5c7,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5ca,0x5ca,0x5ca,0x5ca, +0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, +0x5ca,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5cd,0x5cd,0x5cd,0x5cd, +0xfb1,0xfb1,0xfb1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x16ce,0x16ce,0x82b,0x831,0x831,0x83d, +0x83d,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x5dc,0x5dc,0x5d6,0x5dc, +0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc, +0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc, +0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9, +0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9, +0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9, +0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c6,0x6c6,0x6c6,0x6c6, +0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6, +0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6cf,0x6cf, +0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6d2,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf, +0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc, +0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5, +0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5, +0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc, +0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc, +0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0xc12,0x891,0x88b,0x888,0x88e,0x885,0x711,0x714, +0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x897,0x711,0x711,0x711,0x711,0x711,0x711,0x711, +0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711, +0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x894,0x894,0x717,0x8a6,0x8a9,0x8af, +0x7d1,0x7dd,0x8c4,0x7da,0x89d,0x89a,0x89d,0x89a,0x8a3,0x8a0,0x8a3,0x8a0,0x89d,0x89a,0x7d7,0x8af, +0x89d,0x89a,0x89d,0x89a,0x89d,0x89a,0x89d,0x89a,0x8b2,0x8bb,0x8b8,0x8b8,0x71d,0x759,0x759,0x759, +0x759,0x759,0x759,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753, +0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x720,0x73b,0x71a,0x741,0x744,0x73e,0x756,0x756,0x756, +0x756,0x756,0x756,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750, +0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x720,0x73b,0x71a,0x73b,0xc15,0x7bf,0x7bf,0x7bf,0x7bf, +0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf, +0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x126c,0x126c, +0x126c,0x126c,0x126c,0x7c2,0x7d7,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x8fa,0x8fa, +0x8fa,0x8fa,0x7e0,0x7e0,0x8b5,0x8c1,0x8c1,0x8c1,0x8c1,0x8be,0x7d4,0x8ac,0xae0,0xae0,0xae0,0xc27, +0xc45,0xc42,0xafb,0x882,0x7e6,0x7e3,0x7e6,0x7e9,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e3, +0x7e3,0x7e3,0x7e3,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3, +0x7e6,0x7e6,0x7e3,0x7e3,0xc48,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f2, +0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2, +0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f8,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f2, +0x7f2,0x7f2,0x7f2,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2, +0x7f5,0x7f5,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f2,0x7f2,0x7f2, +0x7f2,0x7f2,0x7f8,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f5,0x7f8,0x7f8,0x7f5,0x7f5,0x7f5,0x7f5,0x8ca, +0x8cd,0x7fb,0x7fe,0xc30,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, +0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, +0x804,0x804,0x804,0x804,0x807,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, +0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, +0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810, +0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0xd32,0xd32,0xe61,0x80a, +0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0xd2c,0xd2c,0xd2c,0xd2c, +0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813, +0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df, +0x8df,0x816,0x816,0x816,0x816,0x816,0x816,0xd35,0xd35,0xd35,0xd35,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2, +0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816, +0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816, +0x816,0x816,0xd35,0xd35,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819, +0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819, +0x819,0x819,0x819,0x819,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x81c,0x81c,0x81c,0x81c, +0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c, +0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0xe64,0xe64, +0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64, +0xe64,0xe64,0xe64,0xe64,0x10d4,0x10d4,0x10d4,0x10d4,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f, +0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f, +0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x822,0x822,0x81f,0x822,0x81f,0x822, +0x822,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x822,0x81f,0x822,0x81f,0x822, +0x822,0x81f,0x81f,0x822,0x822,0x822,0x81f,0x81f,0x81f,0x81f,0x1476,0x1476,0xc39,0xc39,0xc39,0xc39, +0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0x8d6,0x8d6,0x8d6,0x8d6, +0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6, +0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x12a8,0x12a8,0x12a8,0x12a8, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0xd2c,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, +0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9, +0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8dc, +0x8d9,0x8dc,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9, +0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, +0xc33,0xc33,0xc33,0xc33,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df, +0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df, +0x8df,0x8df,0x8df,0xd35,0x95d,0x93f,0x93f,0x93f,0x93f,0x939,0x93f,0x93f,0x951,0x93f,0x93f,0x93c, +0x948,0x94e,0x94e,0x94e,0x94e,0x94e,0x951,0x939,0x945,0x939,0x939,0x939,0x930,0x930,0x939,0x939, +0x939,0x939,0x939,0x939,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x939,0x939, +0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x930,0x939,0x930,0x939,0x930,0x94b,0x942, +0x94b,0x942,0x95a,0x95a,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969, +0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969, +0x969,0x969,0x969,0x969,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c, +0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c, +0x96c,0x96c,0x96c,0x96c,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f, +0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f, +0x96f,0x96f,0x96f,0x96f,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978, +0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978, +0x978,0x978,0x972,0x972,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b, +0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b, +0x97b,0x97b,0x975,0x975,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978, +0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978, +0x978,0x978,0x978,0x978,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b, +0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b, +0x97b,0x97b,0x97b,0x97b,0x97e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981, +0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981, +0x97e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981, +0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0xa0e,0xa0e,0xf96,0xa0e, +0xa0e,0xa0e,0xa11,0xa0e,0xf96,0xa0e,0xa0e,0xf8d,0xa08,0x9fc,0x9fc,0x9fc,0x9fc,0xa0b,0x9fc,0xf7b, +0xf7b,0xf7b,0x9fc,0x9ff,0xa08,0xa02,0xf81,0xf90,0xf90,0xf7b,0xf7b,0xf96,0xb01,0xb01,0xb01,0xb01, +0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xa14,0xa14,0xa05,0xa05,0xa05,0xa05,0xa0e,0xa0e,0xa0e,0xa0e, +0xa0e,0xa0e,0xa0b,0xa0b,0x9fc,0x9fc,0xf96,0xf96,0xf96,0xf96,0xf7b,0xf7b,0xa0e,0xa0e,0xa0e,0xa0e, +0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e, +0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23, +0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29, +0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29, +0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f, +0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2c,0xa32,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0x110d, +0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110a,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f, +0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f, +0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa44,0xa44,0xa44,0xa44, +0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44, +0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa68,0xa68,0xa68,0xa6b, +0xa6b,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, +0xa50,0xa50,0xa65,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa65,0xa65,0xa68,0xa68,0xa68,0xa68, +0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, +0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa74,0xa74,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, 0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, -0xa89,0xa89,0xa89,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, -0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, -0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, -0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, -0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad, -0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad, -0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, -0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, -0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, -0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xac2,0xabf,0xabf, -0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, +0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa8c,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, +0xa89,0xa89,0xa89,0xa89,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3, +0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xba6, +0xba6,0xba6,0xba6,0xba6,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, 0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, -0xac5,0xac5,0xc0c,0xc0c,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5, -0xac5,0xac5,0xac5,0xac5,0xc0c,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5, +0xabf,0xabf,0xabf,0xabf,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1, +0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1, +0xad1,0xad1,0xad1,0xad1,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0xad7,0xad7,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, 0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, -0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0x1485, -0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xc96,0xc96,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec, -0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec, -0xaec,0xaec,0xc93,0xc93,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4, -0xce4,0xce4,0xce4,0xce4,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef, +0xae6,0xae6,0xae6,0xae6,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9, +0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xaec,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9, +0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9, +0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xaef,0xaef,0xc36,0xc36, 0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef, -0xaef,0xaef,0xaef,0xaef,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2, -0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2, -0xaf2,0xaf2,0xaf2,0xaf2,0xb01,0xb01,0xb01,0xb01,0xb01,0xaf8,0xb04,0xb0a,0xb0a,0xb0a,0xafe,0xafe, -0xafe,0xb07,0xafb,0xafb,0xafb,0xafb,0xafb,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xb0a, -0xb0a,0xb0a,0xb0a,0xb0a,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb01,0xb01,0xb0a,0xb0a,0xb0a,0xafe,0xafe,0xb0a,0xb0a,0xb0a, -0xb0a,0xb0a,0xb0a,0xb0a,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb0a,0xb0a,0xb0a,0xb0a,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb01,0xb01,0xb01,0xb01,0xb01, -0xb01,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, -0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0x1683,0x1683, -0xb16,0xb0d,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb0d,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb0d,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb0d,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb0d,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xc36,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xb10,0xb10,0xb10,0xb10, 0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, -0xb10,0xb10,0xb10,0xb10,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb16,0xb16,0xb19,0xb19,0xb19,0xb19, +0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0x14c4,0xb19,0xb19,0xb19,0xb19, +0xb19,0xb19,0xcbd,0xcbd,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, +0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xcba,0xcba, +0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, +0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19, 0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19, -0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb1c, -0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f, -0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f, -0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb7c,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xc84,0xc87,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71, -0xd71,0xd71,0xd71,0xd71,0xe8b,0xe8b,0xe8b,0xe8b,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e, -0xb8e,0xb8e,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xd77,0xd7d,0xd77,0xd74,0xd77,0xd77, -0xd74,0xd77,0xd74,0xd77,0xd77,0xf7e,0x1218,0x1218,0xd86,0xd86,0xd86,0xd86,0xd86,0xd8c,0xd89,0xe9d, -0xe9d,0xe9d,0xe9d,0x1383,0xf90,0x1383,0x12d8,0x12d8,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4, -0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbf4,0xbf1,0xbf4,0xbf1,0xbf4,0xbf1, -0x10a7,0x10a4,0xf96,0xf93,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7, -0xbc7,0xbc7,0xbc7,0xbc7,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca, -0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca, -0xbca,0xbca,0xbca,0xbca,0xbcd,0xbcd,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca, -0xbd0,0xbd0,0xbd0,0xbd6,0xbd3,0xbfa,0xbf7,0xbd6,0xbd3,0xbd6,0xbd3,0xbd6,0xbd3,0xbd6,0xbd3,0xbd6, -0xbd3,0xbd6,0xbd3,0xbd6,0xbd3,0xbd6,0xbd3,0xbd6,0xbd3,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0, -0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0, -0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd6,0xbd3,0xbd6,0xbd3, -0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0, -0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd6,0xbd3,0xbd0,0xbd0, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbdf,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbdf,0xbdf,0xbdf,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbdc,0xbd9,0xbd9,0xbd9,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f, -0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f, -0xc0f,0xc0f,0xc0f,0xc0f,0xc8d,0xc90,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd7d,0xd7d, -0xd74,0xd74,0xd74,0xd74,0xd77,0xd77,0xe8e,0xf7e,0xf7e,0xf7e,0xf7e,0xf7e,0xf7e,0xf7e,0xf7e,0xf7e, -0xf7e,0x10ef,0x1224,0x121b,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcba,0xcba,0xcba,0xcba,0xcba,0xcb7, -0xccc,0xccc,0xccc,0xcc6,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xcc6, -0xccc,0xccc,0xccc,0xccc,0xcc0,0xcc0,0xcc9,0xcc9,0xcc9,0xcc9,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcc3, -0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd8f,0xd92,0xd92,0xd92, -0xd92,0xd92,0xd92,0xd92,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc, -0xccc,0xccc,0xcc6,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc, -0xccc,0xcc0,0xcc0,0xcc0,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3, -0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3, -0xcc3,0xcc3,0xcc3,0xcc3,0xccf,0xccf,0xccf,0xccf,0xccf,0xcd2,0xcd2,0xcd2,0xccf,0xccf,0xccf,0xccf, -0xccf,0xccf,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xf9c, -0xf9c,0xf99,0xf99,0xf99,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5, -0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5, -0xcd5,0xcd5,0xcd5,0xcd5,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb, +0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, +0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, +0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb22,0xb2e,0xb34,0xb34,0xb34,0xb28,0xb28,0xb28,0xb31,0xb25,0xb25, +0xb25,0xb25,0xb25,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb34,0xb34,0xb34,0xb34,0xb34, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb2b,0xb2b,0xb34,0xb34,0xb34,0xb28,0xb28,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb34,0xb34,0xb34,0xb34,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, +0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0x16d1,0x16d1,0xb40,0xb37,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, +0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, +0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, +0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, +0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, +0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, +0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6, +0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba3,0xba6, +0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xcae, +0xcb1,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xeb8,0xeb8,0xeb8,0xeb8, +0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, +0xcb4,0xcb4,0xda4,0xe5b,0xda4,0xda4,0xda4,0xda4,0xda1,0xda4,0xda1,0xda4,0xda4,0xfab,0x1242,0x1242, +0xdad,0xdad,0xdad,0xdad,0xdad,0xdb3,0xdb0,0xeca,0xeca,0xeca,0xeca,0x13bf,0xfbd,0x13bf,0x12fc,0x12fc, +0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb, +0xbeb,0xbeb,0xc1b,0xc18,0xc1b,0xc18,0xc1b,0xc18,0x10ce,0x10cb,0xfc3,0xfc0,0xbee,0xbee,0xbee,0xbee, +0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbf1,0xbf1,0xbf1,0xbf1, +0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1, +0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf4,0xbf4,0xbf1,0xbf1, +0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xc21,0xc1e,0xbfd, +0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd, +0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, +0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, +0xbf7,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xbfd,0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, +0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, +0xbf7,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xbf7,0xbf7,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc06,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc06,0xc06,0xc06,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc03,0xc00,0xc00,0xc00,0xc39,0xc39,0xc39,0xc39, +0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39, +0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xcb7,0xd26,0xda1,0xda1, +0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xe5b,0xe5b,0xda1,0xda1,0xda1,0xda1,0xda4,0xda4,0xebb,0xfab, +0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0x126f,0x126f,0x1245,0xcdb,0xcdb,0xcdb,0xcdb, 0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb, -0xcdb,0xcdb,0xcdb,0xcdb,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4, -0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4, -0xce4,0xce4,0xce4,0xce4,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, -0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, -0xcf0,0xcf0,0xcf0,0xcf0,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff, -0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff, -0xcff,0xcff,0xcff,0xcff,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b, -0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b,0xd9b, -0xd9b,0xd9b,0xd9b,0xd9b,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e, -0xd9e,0xd9e,0xd9e,0xd9e,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xda1, -0xda1,0xda1,0xda1,0xda1,0xe5b,0xe5b,0xdb3,0xdb3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xfa8, -0xfa8,0xfa8,0xfa8,0xfa8,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5, -0xfa5,0xfa5,0xfa5,0xfa5,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf, -0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf,0xdc2,0xdbf, -0xdc2,0xdbf,0xdc2,0xdbf,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce, -0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce, -0xdce,0xdce,0xdce,0xdce,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -0xdd4,0xdd4,0xdd4,0xdd4,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec, -0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xea6,0xea6,0xea6,0xea6,0xfab, -0xfab,0xfab,0xfab,0xfab,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, +0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcea,0xcea,0xcea,0xcea, +0xcea,0xcea,0xce1,0xce1,0xce1,0xce1,0xce1,0xcde,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3,0xce7,0xce7,0xcf0,0xcf0, +0xcf0,0xcf0,0xce4,0xce4,0xce4,0xce4,0xce4,0xcea,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9, +0xdb9,0xdb9,0xdb9,0xdb9,0xdb6,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xce7,0xce7,0xce7,0xcea,0xcea,0xcea,0xcea, +0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea, +0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcf6,0xcf6,0xcf6,0xcf6, +0xcf6,0xcf9,0xcf9,0xcf9,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc, +0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0x10d7,0x10d7,0xfc6,0xfc6,0xfc6,0xcfc,0xcfc,0xcfc,0xcfc, +0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc, +0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xd02,0xd02,0xd02,0xd02, +0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02, +0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd0b,0xd0b,0xd0b,0xd0b, +0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, +0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd23,0xd23,0xd23,0xd23, +0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, +0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xdc2,0xdc2,0xdc2,0xdc2, +0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2, +0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc8,0xdc8,0xdc8,0xdc8, +0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8, +0xdc8,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc8,0xdc8,0xdc8,0xdc8, +0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8, +0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xe88,0xe88,0xdda,0xdda, +0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfcf,0xfcf,0xfcf,0xfcf, +0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xde9,0xde6,0xde9,0xde6, +0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6, +0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xdf5,0xdf5,0xdf5,0xdf5, 0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, -0xdf5,0xdf5,0xdf5,0xdf5,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe, -0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe, -0xdfe,0xdfe,0xdfe,0xdfe,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07, -0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07, -0xe07,0xe07,0xe07,0xe01,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04, -0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe07, -0xe07,0xe07,0xe07,0xe07,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10, -0xe10,0xe10,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0a,0xe13,0xfb7,0xfb1,0xfc0,0xfae, -0xe10,0xe10,0xfae,0xfae,0xe25,0xe25,0xe16,0xe25,0xe25,0xe25,0xe1c,0xe25,0xe25,0xe25,0xe25,0xe16, +0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdfb,0xdfb,0xdfb,0xdfb, +0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb, +0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xe13,0xe13,0xe13,0xe13, +0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13, +0xe13,0xe13,0xe13,0xed3,0xed3,0xed3,0xed3,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0xe1c,0xe1c,0xe1c,0xe1c, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe25,0xe25,0xe25,0xe25, 0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, -0xe25,0xe25,0xe25,0xe25,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -0xe28,0xe28,0xe28,0xe28,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a, -0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a, -0xe3a,0xe3a,0xe3a,0xe3a,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58, -0xe58,0xe58,0xe58,0xe58,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3, -0x10b3,0x10b3,0x10b3,0x10b3,0xea0,0xea0,0xea0,0xea0,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, -0xf99,0xf99,0xf99,0xf99,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f, -0xf9f,0xf9f,0xf9f,0xf9f,0xec1,0xec1,0xec1,0xec1,0xed3,0xedc,0xedf,0xedc,0xedf,0xedc,0xedf,0xedc, -0xedf,0xedc,0xedf,0xedc,0xedc,0xedc,0xedf,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc, -0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xec4,0xed3,0xec1,0xec1, -0xec1,0xec1,0xec1,0xed6,0xec1,0xed6,0xed3,0xed3,0xee8,0xee5,0xee8,0xee8,0xee8,0xee5,0xee5,0xee8, -0xee5,0xee8,0xee5,0xee8,0xee5,0xfd2,0xfd2,0xfd2,0x110d,0xfc9,0xfd2,0xfc9,0xee5,0xee8,0xee5,0xee5, -0xfc9,0xfc9,0xfc9,0xfc9,0xfcc,0xfcf,0x110d,0x110d,0xeeb,0xeeb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb, -0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfdb,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb, -0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1, -0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1, -0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00, -0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00, -0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8, -0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0xf06,0xf06,0xf06,0xf06, -0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06, -0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf4e,0xf69,0xf60,0xf5d, -0xf5d,0xf69,0xf69,0xf60,0xf60,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf69,0xf69,0xf69,0xf4e,0xf4e,0xf4e, -0xf4e,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf4e,0xf60, -0xf63,0xf4e,0xf4e,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf51,0xf69,0xf66,0xf5a,0xf5a,0xf5a,0xf5a, -0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0x10d4,0x10d4,0x10d1,0x10ce,0xf57,0xf57,0xf81,0xf81,0xf81,0xf81, -0x1224,0x1224,0x121b,0x121b,0x1221,0x1218,0x1218,0x1218,0x1218,0x121b,0x12c3,0x1221,0x121b,0x1221,0x1218,0x1221, -0x1224,0x1218,0x1218,0x1218,0x121b,0x121b,0x1218,0x1218,0x121b,0x1218,0x1218,0x121b,0xf9f,0xf9f,0xf9f,0xf9f, -0xf9f,0xf99,0xf99,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0x1491,0x1491,0x1491,0xf9c,0xf99,0xf99,0xf99, -0xf99,0x1233,0x1230,0x1230,0x1230,0x1230,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0xfbd,0xfbd,0xfba,0xfb4, -0xfba,0xfb4,0xfba,0xfb4,0xfba,0xfb4,0xfb1,0xfb1,0xfb1,0xfb1,0xfc6,0xfc3,0xfb1,0x110a,0x138f,0x1392, -0x1392,0x138f,0x138f,0x138f,0x138f,0x138f,0x1395,0x1395,0x14ac,0x14a0,0x14a0,0x149d,0xfe4,0xfdb,0xfe4,0xfdb, -0xfe4,0xfdb,0xfe4,0xfdb,0xfd8,0xfd5,0xfd5,0xfe4,0xfdb,0x12e7,0x12e4,0x168c,0x12e7,0x12e4,0x139e,0x139b, -0x14af,0x14af,0x14b5,0x14af,0x14b5,0x14af,0x14b5,0x14af,0x14b5,0x14af,0x14b5,0x14af,0xfe4,0xfdb,0xfe4,0xfdb, -0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb, -0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfde,0xfdb,0xfdb,0xfdb, -0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfe4,0xfdb,0xfe4,0xfdb,0xfe4,0xfe4,0xfdb,0xfe7,0xfe7,0xfed,0xff3, -0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3, -0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xfed,0xfe7,0xfe7, -0xfe7,0xfe7,0xfed,0xfed,0xfe7,0xfe7,0xff0,0x13a7,0x13a4,0x13a4,0xff3,0xff3,0xfea,0xfea,0xfea,0xfea, -0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x1008,0x1008,0x1008,0x1008, -0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008, -0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1011,0x1011,0x1011,0x1011, -0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011, -0x1011,0x1011,0x1011,0x1011,0x1014,0x1014,0x1014,0x1017,0x1014,0x1014,0x101a,0x101a,0x101d,0x101d,0x101d,0x101d, +0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe2e,0xe2e,0xe2e,0xe2e, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe28,0xe2b,0xe2b,0xe2b,0xe2b, +0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, +0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe37,0xe37,0xe37,0xe37, +0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34, +0xe34,0xe34,0xe31,0xe3a,0xfe1,0xfdb,0xfea,0xfd8,0xe37,0xe37,0xfd8,0xfd8,0xe4c,0xe4c,0xe3d,0xe4c, +0xe4c,0xe4c,0xe43,0xe4c,0xe4c,0xe4c,0xe4c,0xe3d,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c, +0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4f,0xe4f,0xe4f,0xe4f, +0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, +0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe67,0xe67,0xe67,0xe67, +0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, +0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe85,0xe85,0xe85,0xe85, +0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0x10e0,0x10e0,0x10e0,0x10e0, +0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0xecd,0xecd,0xecd,0xecd, +0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc9,0xfc9,0xfc9,0xfc9, +0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xeee,0xeee,0xeee,0xeee, +0xf00,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf09,0xf09,0xf0c,0xf09, +0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, +0xf09,0xf09,0xf09,0xf09,0xef1,0xf00,0xeee,0xeee,0xeee,0xeee,0xeee,0xf03,0xeee,0xf03,0xf00,0xf00, +0xf15,0xf12,0xf15,0xf15,0xf15,0xf12,0xf12,0xf15,0xf12,0xf15,0xf12,0xf15,0xf12,0xffc,0xffc,0xffc, +0x1137,0xff3,0xffc,0xff3,0xf12,0xf15,0xf12,0xf12,0xff3,0xff3,0xff3,0xff3,0xff6,0xff9,0x1137,0x1137, +0xf18,0xf18,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005, +0x1005,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005, +0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e, +0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e, +0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d, +0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d, +0xf2d,0xf2d,0xf2d,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7, +0x14f7,0x14f7,0x14f7,0x14f7,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33, +0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33, +0xf33,0xf33,0xf33,0xf33,0xf7b,0xf96,0xf8d,0xf8a,0xf8a,0xf96,0xf96,0xf8d,0xf8d,0xf8a,0xf8a,0xf8a, +0xf8a,0xf8a,0xf96,0xf96,0xf96,0xf7b,0xf7b,0xf7b,0xf7b,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96, +0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf7b,0xf8d,0xf90,0xf7b,0xf7b,0xf93,0xf93,0xf93,0xf93,0xf93, +0xf93,0xf7e,0xf96,0xf93,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0x1101,0x1101, +0x10fe,0x10fb,0xf84,0xf84,0xfae,0xfae,0xfae,0xfae,0x126f,0x126f,0x1245,0x1245,0x124b,0x1242,0x1242,0x1242, +0x1242,0x1245,0x136b,0x124b,0x1245,0x124b,0x1242,0x124b,0x126f,0x1242,0x1242,0x1242,0x1245,0x1245,0x1242,0x1242, +0x1245,0x1242,0x1242,0x1245,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc6,0xfc6,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9, +0xfc9,0x14d0,0x14d0,0x14d0,0x10d7,0xfc6,0xfc6,0xfc6,0xfc6,0x127b,0x1254,0x1254,0x1254,0x1254,0x14d0,0x14d0, +0x14d0,0x14d0,0x14d0,0x14d0,0xfe7,0xfe7,0xfe4,0xfde,0xfe4,0xfde,0xfe4,0xfde,0xfe4,0xfde,0xfdb,0xfdb, +0xfdb,0xfdb,0xff0,0xfed,0xfdb,0x1134,0x13cb,0x13ce,0x13ce,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13d1,0x13d1, +0x14eb,0x14df,0x14df,0x14dc,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x1002,0xfff,0xfff,0x100e, +0x1005,0x130b,0x1308,0x16da,0x130b,0x1308,0x13da,0x13d7,0x14ee,0x14ee,0x14f4,0x14ee,0x14f4,0x14ee,0x14f4,0x14ee, +0x14f4,0x14ee,0x14f4,0x14ee,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005, +0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005, +0x100e,0x1005,0x100e,0x1005,0x1008,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x100e,0x1005,0x100e, +0x1005,0x100e,0x100e,0x1005,0x1011,0x1011,0x1017,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d, 0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d, -0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x1026,0x1026,0x1026,0x1026, -0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1029,0x1020,0x102f,0x102c,0x1026,0x1026,0x1026,0x1026, -0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026, -0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x12ed,0x12ea,0x1041,0x103b, -0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x103e,0x10bc,0x1032,0x1032,0x1032,0x1038, -0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x1035,0x1035,0x1038,0x1044,0x1041,0x103b,0x1041,0x103b, -0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b, -0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x1041,0x103b,0x14c4,0x14c1,0x14c4,0x14c1, -0x14c7,0x14c7,0x1695,0x13ad,0x104d,0x104d,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050, +0x101d,0x101d,0x101d,0x101d,0x101d,0x1017,0x1011,0x1011,0x1011,0x1011,0x1017,0x1017,0x1011,0x1011,0x101a,0x13e3, +0x13e0,0x13e0,0x101d,0x101d,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x13e6,0x13e6, +0x13e6,0x13e6,0x13e6,0x13e6,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032, +0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032, +0x1032,0x1032,0x1032,0x1032,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b, +0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103e,0x103e,0x103e,0x1041, +0x103e,0x103e,0x1044,0x1044,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047, +0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047, +0x1047,0x1047,0x1047,0x1047,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050, +0x1053,0x104a,0x1059,0x1056,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050, 0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050, -0x1050,0x1050,0x1050,0x1050,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, -0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x1056,0x1056,0x1056,0x1056,0x1056,0x1059,0x1059,0x1059,0x10b0,0x1062, -0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071, -0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f, -0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f, -0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080, -0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080, -0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092, -0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092, -0x109b,0x109b,0x109b,0x109b,0x109e,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b, -0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b, -0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, -0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, -0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f, -0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x1116,0x1116,0x1119,0x1119,0x111f,0x1116,0x1116,0x1116,0x1116,0x1116, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122, -0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d, -0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d, -0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149, -0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1146,0x114c, -0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158, -0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158, -0x1167,0x1167,0x1167,0x1176,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, -0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, -0x117c,0x117c,0x117c,0x116a,0x1176,0x1176,0x1167,0x1167,0x1167,0x1167,0x1176,0x1176,0x1167,0x1176,0x1176,0x1176, -0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188, -0x118b,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1182,0x1182,0x1182,0x1188,0x1185,0x14cd,0x14d0,0x14d3,0x14d3, -0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -0x118e,0x119a,0x118e,0x118e,0x118e,0x11a3,0x11a3,0x118e,0x118e,0x11a3,0x119a,0x11a3,0x11a3,0x119a,0x118e,0x1191, -0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd, -0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11ca,0x11ca,0x11ca, -0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6, -0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6, -0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, -0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, -0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1203,0x1200,0x1200,0x1200,0x1200, -0x11fd,0x11fd,0x11fd,0x11f1,0x11f1,0x11f1,0x11f1,0x11fd,0x11fd,0x11f7,0x11f4,0x11fa,0x11fa,0x11eb,0x1206,0x1206, -0x11ee,0x11ee,0x11fd,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200, -0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1203,0x1200,0x1203,0x1200,0x1200,0x1200, -0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -0x120f,0x120f,0x120f,0x120c,0x120c,0x120c,0x1209,0x1209,0x1209,0x1209,0x120c,0x1209,0x1209,0x1209,0x120f,0x120c, -0x120f,0x120c,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x120f,0x120c,0x120c, -0x1209,0x1209,0x1209,0x1209,0x121b,0x121b,0x12c0,0x1218,0x12c0,0x12c0,0x12c0,0x12c0,0x1218,0x121e,0x1224,0x1218, -0x1218,0x1218,0x1218,0x1218,0x121e,0x1221,0x1224,0x1224,0x1221,0x1224,0x1218,0x1221,0x1221,0x1227,0x1224,0x1218, -0x1218,0x1224,0x121b,0x121b,0x1356,0x1356,0x1245,0x1356,0x1356,0x1356,0x1245,0x1356,0x1356,0x1356,0x123f,0x123f, -0x123f,0x123f,0x123f,0x134d,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1242,0x1353,0x1353,0x1353,0x1353, -0x1353,0x1353,0x1353,0x1242,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266, -0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266, -0x1266,0x1266,0x1266,0x1266,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b, -0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b, -0x130b,0x130b,0x130b,0x130b,0x1320,0x1311,0x1320,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323, -0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323, -0x1323,0x1323,0x1323,0x1323,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1329,0x1329,0x1329,0x1329, -0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329, -0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1332,0x1332,0x1335,0x1335,0x1335,0x1335,0x1335,0x1332,0x1335,0x1335,0x1335,0x1332,0x1335,0x1332,0x1335, -0x1332,0x1335,0x1335,0x1335,0x1335,0x1335,0x1338,0x1335,0x1335,0x1335,0x1335,0x1332,0x1335,0x1332,0x1332,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1332,0x1332,0x1332,0x1332, -0x1332,0x1332,0x1332,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, -0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x14df,0x14df,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x14e8,0x14e2,0x14e2,0x14e8,0x14e8,0x14e8,0x14e8, -0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x16a1,0x16a1,0x16a1,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x14e8,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x14e8,0x16a1,0x16a1, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1338,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x14e2,0x14e2,0x14e8,0x14e8,0x14e2,0x14e8,0x14e8,0x14e8,0x14df,0x14df,0x14e8,0x14e8, -0x1335,0x1335,0x1335,0x1338,0x1338,0x14eb,0x1335,0x1335,0x1335,0x1335,0x1338,0x14ee,0x14e8,0x14e8,0x14e8,0x16a1, -0x16a1,0x16a1,0x16a1,0x16a1,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8,0x14e8, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x14e2,0x14e2,0x14e8,0x14eb,0x14e8,0x14e2,0x14e8,0x16a1,0x16a1,0x16a1,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x14e8, -0x1335,0x14e8,0x1338,0x1338,0x1335,0x1335,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338, -0x1338,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1338,0x1338,0x1338,0x1338,0x1335,0x1335,0x1335,0x1335,0x1338,0x1335,0x1338,0x1338,0x1338,0x1338, -0x1338,0x1338,0x1338,0x1338,0x1338,0x1335,0x1335,0x1335,0x1338,0x1335,0x1335,0x1335,0x1335,0x1338,0x1338,0x1338, -0x1335,0x1338,0x1338,0x1338,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x14eb,0x1335,0x1335,0x1335, -0x1335,0x14e8,0x14e2,0x16a1,0x13b3,0x13b3,0x13b3,0x13b3,0x14df,0x14df,0x14df,0x14df,0x14df,0x14e5,0x14e8,0x16a1, -0x16a1,0x16a1,0x16a1,0x169e,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x14e2,0x14e8,0x14e2,0x14e8,0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e2,0x14e2,0x14e2, -0x14e2,0x14e2,0x14e2,0x14e8,0x14e2,0x14e2,0x14e2,0x14e8,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14e8,0x1335, -0x1335,0x1335,0x1335,0x1335,0x13b6,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, -0x133b,0x133b,0x133b,0x133b,0x133b,0x13b6,0x133b,0x133b,0x133b,0x13b6,0x133b,0x13b6,0x133b,0x13b6,0x133b,0x13b6, -0x133b,0x133b,0x133b,0x13b6,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x13b6,0x13b6,0x133b,0x133b,0x133b,0x133b, -0x13b6,0x133b,0x13b6,0x13b6,0x133b,0x133b,0x133b,0x133b,0x13b6,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, -0x133b,0x133b,0x133b,0x133b,0x133b,0x14f4,0x14f4,0x16a7,0x16a7,0x133e,0x133e,0x133e,0x133b,0x133b,0x133b,0x133e, -0x133e,0x133e,0x133e,0x133e,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4, -0x15e4,0x15e4,0x15e4,0x15e4,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341, -0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341, -0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1344,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341, -0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1344,0x1344,0x1344,0x1341,0x1341,0x1341,0x1341,0x1341, -0x1341,0x1341,0x1341,0x1341,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347, +0x1050,0x1050,0x1050,0x1050,0x1311,0x130e,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065, +0x106b,0x1065,0x1068,0x10e9,0x105c,0x105c,0x105c,0x1062,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0x105f,0x105f,0x1062,0x106e,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065, +0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065, +0x106b,0x1065,0x106b,0x1065,0x1503,0x1500,0x1503,0x1500,0x1506,0x1506,0x16e3,0x13e9,0x1077,0x1077,0x107a,0x107a, +0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a, +0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x1077,0x1077,0x1077,0x1077, +0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1080,0x1080, +0x1080,0x1080,0x1080,0x1083,0x1083,0x1083,0x10dd,0x108c,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b, +0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, +0x1086,0x1086,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089, +0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, +0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, +0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc, +0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc, +0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10c5,0x10c5,0x10c5,0x10c5,0x10da,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8, +0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8, +0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149, +0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1140,0x1140, +0x1143,0x1143,0x1149,0x1140,0x1140,0x1140,0x1140,0x1140,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c, +0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c, +0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167, +0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167, +0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173, +0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173, +0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1170,0x1176,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182, +0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182, +0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1191,0x1191,0x1191,0x11a0,0x11a6,0x11a6,0x11a6,0x11a6, +0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, +0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x1194,0x11a0,0x11a0,0x1191,0x1191, +0x1191,0x1191,0x11a0,0x11a0,0x1191,0x11a0,0x11a0,0x11a0,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2, +0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b5,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11ac, +0x11ac,0x11ac,0x11b2,0x11af,0x150c,0x150f,0x1512,0x1512,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11b8,0x11c4,0x11b8,0x11b8,0x11b8,0x11cd,0x11cd,0x11b8, +0x11b8,0x11cd,0x11c4,0x11cd,0x11cd,0x11c4,0x11b8,0x11bb,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df, +0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df, +0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7, +0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7, +0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f4,0x11f4,0x11f4,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200, +0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200, +0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f, +0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f, +0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122a,0x122d,0x122a,0x122a,0x122a,0x122a,0x1227,0x1227,0x1227,0x121b,0x121b,0x121b,0x121b,0x1227, +0x1227,0x1221,0x121e,0x1224,0x1224,0x1215,0x1230,0x1230,0x1218,0x1218,0x1227,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122d,0x122a,0x122d,0x122a,0x122a,0x122a,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1239,0x1239,0x1239,0x1236,0x1236,0x1236,0x1233,0x1233, +0x1233,0x1233,0x1236,0x1233,0x1233,0x1233,0x1239,0x1236,0x1239,0x1236,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1239,0x1236,0x1236,0x1233,0x1233,0x1233,0x1233,0x1245,0x1245,0x12ed,0x1242, +0x12ed,0x12ed,0x12ed,0x12ed,0x1242,0x1248,0x126f,0x1242,0x1242,0x1242,0x1242,0x1242,0x1248,0x124b,0x126f,0x126f, +0x124b,0x126f,0x1242,0x124b,0x124b,0x124e,0x126f,0x1242,0x1242,0x126f,0x1245,0x1245,0x135c,0x135c,0x135c,0x135c, +0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x1257,0x1257,0x1257,0x1257,0x1377,0x1356,0x1260,0x1377,0x1377,0x1377, +0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x180f,0x180f,0x180f,0x180f,0x180f,0x135f,0x135f,0x1266,0x135f, +0x135f,0x135f,0x1266,0x135f,0x135f,0x135f,0x1260,0x1260,0x1260,0x1260,0x1260,0x1359,0x135c,0x135c,0x135c,0x135c, +0x135c,0x135c,0x135c,0x1263,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x1263,0x128d,0x128d,0x128d,0x128d, +0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d, +0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x132f,0x132f,0x132f,0x132f, +0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f, +0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x1344,0x1335,0x1344,0x1347, 0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347, -0x1347,0x1347,0x1347,0x1347,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, -0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, -0x136e,0x136e,0x136e,0x136e,0x13c8,0x13c8,0x13c8,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da, -0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da, -0x13da,0x13da,0x13da,0x13da,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5, -0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5, -0x13f5,0x13f5,0x13f5,0x13f5,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, -0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe, -0x13fe,0x13fe,0x13fe,0x13fe,0x1404,0x1404,0x1410,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1410,0x1410,0x1410,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1410,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -0x1434,0x1434,0x1434,0x1434,0x14e2,0x14e2,0x14e8,0x14e8,0x14e8,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2, -0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e8,0x14e8,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, -0x14e8,0x14e8,0x14e8,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e8,0x14e2,0x14e2,0x14e8,0x14e8, -0x14e8,0x14e8,0x14e2,0x14e2,0x14ee,0x14e2,0x14e2,0x14e2,0x14e2,0x14f1,0x14f1,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2, -0x14e2,0x14e2,0x14e2,0x14e2,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518, -0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518, -0x1518,0x1518,0x1518,0x1518,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, -0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, -0x152a,0x152a,0x152a,0x152a,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, -0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, -0x1530,0x1530,0x1530,0x1530,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533, -0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533, -0x1533,0x1533,0x1533,0x1533,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572, -0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572, -0x1572,0x1572,0x1572,0x1563,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b, -0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x1575, -0x157e,0x157e,0x157e,0x157e,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581, -0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581,0x1581, -0x1581,0x1581,0x1581,0x1581,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x1593,0x159c,0x159c,0x159c, -0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c, -0x159c,0x159c,0x159c,0x159c,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, -0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, -0x15a5,0x15a5,0x15a5,0x15a5,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7, -0x15b7,0x15b7,0x15b7,0x15b7,0x15b4,0x15b4,0x15b4,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15b4, -0x15b4,0x15a8,0x15b4,0x15ab,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7, -0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7, -0x15b7,0x15b7,0x15b7,0x15b7,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db, -0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db, -0x15db,0x15d8,0x15d8,0x15d8,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4, -0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15ea,0x15ea,0x15ea,0x15e7,0x15e7,0x15e7, -0x15e4,0x15e4,0x15e4,0x15e4,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, -0x15f9,0x15f9,0x15f9,0x15f9,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ff,0x15ff,0x15f3,0x15f0,0x15f0, -0x15f0,0x15f0,0x15f0,0x15f0,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, -0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9, -0x15f9,0x15f9,0x15f9,0x15f9,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605, -0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1602,0x1602,0x1602,0x1602,0x1602, -0x1602,0x1602,0x1602,0x1602,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, -0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, -0x1608,0x1608,0x1608,0x1608,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, -0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, -0x162c,0x162c,0x162c,0x162c,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -0x1635,0x1635,0x1635,0x1635,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d, -0x164d,0x164d,0x164d,0x164d,0x1638,0x1647,0x1647,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1647,0x1638,0x164a, -0x164a,0x1638,0x164a,0x1638,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d, -0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d, -0x164d,0x164d,0x164d,0x164d,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656, -0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656, -0x1656,0x1656,0x1656,0x1656,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, -0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, -0x165c,0x165c,0x165c,0x165c,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3, -0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3, -0x16b3,0x16b3,0x16b3,0x16b3,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16f5,0x16f2,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, -0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, -0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb, -0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb, -0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d, -0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d, -0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710, -0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710, -0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, -0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, -0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x171c,0x171c,0x171c,0x171c,0x1719, -0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x171c,0x171c,0x171c, -0x171c,0x171c,0x171c,0x171c,0x171c,0x1719,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c, -0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c, -0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x171c,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728, -0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728, -0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0,0,0,0 +0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1335,0x1335,0x1335,0x1335, +0x1335,0x1335,0x1335,0x1335,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, +0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, +0x134d,0x134d,0x134d,0x134d,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353, +0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353, +0x1353,0x1353,0x1353,0x1353,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c, +0x1389,0x138c,0x138c,0x138c,0x1389,0x138c,0x1389,0x138c,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x1395,0x138c, +0x138c,0x138c,0x138c,0x1389,0x138c,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389, +0x1389,0x1389,0x1389,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x151e,0x151e, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x1527,0x1521,0x1521,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1764,0x1764,0x1764, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x1764,0x1764,0x138c,0x138c,0x138c,0x138c,0x138c,0x1395,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1521,0x1521,0x1527,0x1527, +0x1521,0x1527,0x1527,0x1527,0x151e,0x151e,0x1527,0x1527,0x138c,0x138c,0x1392,0x1395,0x1395,0x1698,0x138c,0x1392, +0x138c,0x138c,0x1395,0x1530,0x152d,0x1527,0x1527,0x1764,0x1764,0x1764,0x1764,0x1764,0x1527,0x1527,0x1527,0x1527, +0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1521,0x1521,0x1527,0x1698,0x1527,0x1521,0x1527, +0x1764,0x1764,0x1764,0x1767,0x1767,0x1767,0x1767,0x1767,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x138c,0x1527,0x1395,0x1395,0x138c,0x138c,0x1395,0x1395, +0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1398,0x1398,0x1398,0x1398,0x1392,0x1392, +0x1392,0x1392,0x1395,0x1392,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c, +0x1395,0x138c,0x138c,0x138c,0x138c,0x1395,0x1395,0x1395,0x138c,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c,0x138f, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1698,0x138c,0x138c,0x138c,0x138c,0x1527,0x1521,0x1764, +0x13ef,0x13ef,0x13ef,0x13ef,0x151e,0x151e,0x151e,0x151e,0x151e,0x1524,0x1527,0x1764,0x1764,0x1764,0x1764,0x16ec, +0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, +0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1521,0x1521,0x1527,0x152d,0x1530,0x1527,0x1527, +0x1527,0x1527,0x1818,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1521,0x1527,0x1521,0x1521,0x1521,0x1521, +0x152a,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1521,0x1521,0x1521,0x1527,0x151e,0x151e,0x151e,0x151e, +0x151e,0x151e,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x1479,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b, +0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b,0x1479,0x139b,0x1479, +0x139b,0x1479,0x139b,0x1479,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x1479,0x1479, +0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x1479,0x1479,0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b, +0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x169e,0x169e,0x176a,0x176a,0x139e,0x139e,0x139e, +0x139b,0x139b,0x139b,0x139e,0x139e,0x139e,0x139e,0x139e,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, +0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, +0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, +0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1797,0x1797,0x1794,0x16ef,0x13f5,0x13f5,0x13f5,0x13f5, +0x13f5,0x13f5,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5, +0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x1539,0x1401,0x1401,0x1401,0x1413,0x1413,0x1413,0x1413,0x1413, +0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413, +0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e, +0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e, +0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437, +0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437, +0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x143d,0x143d,0x1449,0x144f,0x144f,0x144f,0x144f,0x144f, +0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f, +0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x1449,0x1449,0x1449,0x143d,0x143d, +0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x1449,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470, +0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470, +0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1521,0x1521,0x1527,0x1527,0x1527,0x1521,0x1521,0x1521, +0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1527,0x151e,0x151e,0x151e,0x151e, +0x151e,0x151e,0x151e,0x151e,0x1527,0x1527,0x1527,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527, +0x1521,0x1521,0x1527,0x1527,0x1527,0x1527,0x1521,0x1521,0x1530,0x1521,0x1521,0x1521,0x1521,0x169b,0x169b,0x1521, +0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1815,0x1527,0x1521,0x1521,0x1527,0x1521,0x1521,0x1521, +0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521, +0x1527,0x1521,0x1521,0x1521,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551, +0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551, +0x1551,0x1551,0x1551,0x1551,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1563,0x1563,0x1563,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569, +0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569, +0x1569,0x1569,0x1569,0x1569,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, +0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, +0x156c,0x156c,0x156c,0x156c,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab, +0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab, +0x15ab,0x15ab,0x15ab,0x159c,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15ae, +0x15b7,0x15b7,0x15b7,0x15b7,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15cc,0x15d5,0x15d5,0x15d5, +0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, +0x15d5,0x15d5,0x15d5,0x15d5,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0, +0x15f0,0x15f0,0x15f0,0x15f0,0x15ed,0x15ed,0x15ed,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15ed, +0x15ed,0x15e1,0x15ed,0x15e4,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0, +0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0, +0x15f0,0x15f0,0x15f0,0x15f0,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, +0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, +0x1614,0x1611,0x1611,0x1611,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, +0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1623,0x1623,0x1623,0x1620,0x1620,0x1620, +0x161d,0x161d,0x161d,0x161d,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632, +0x1632,0x1632,0x1632,0x1632,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1638,0x1638,0x162c,0x1629,0x1629, +0x1629,0x1629,0x1629,0x1629,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632, +0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632, +0x1632,0x1632,0x1632,0x1632,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e, +0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163b,0x163b,0x163b,0x163b,0x163b, +0x163b,0x163b,0x163b,0x163b,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665, +0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665, +0x1665,0x1665,0x1665,0x1665,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0x166e,0x166e,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686, +0x1686,0x1686,0x1686,0x1686,0x1671,0x1680,0x1680,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1680,0x1671,0x1683, +0x1683,0x1671,0x1683,0x1671,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686, +0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686, +0x1686,0x1686,0x1686,0x1686,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, +0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, +0x168f,0x168f,0x168f,0x168f,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695, +0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695, +0x1695,0x1695,0x1695,0x1695,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1737,0x1734,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, +0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, +0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, +0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, +0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f, +0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f, +0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758,0x1758,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1755,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770, +0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770, +0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x17b5,0x17b5,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2, +0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2, +0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5, +0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5, +0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803, +0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1800,0x1800,0x1800, +0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803, +0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803, +0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a, +0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a, +0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0,0,0,0 }; static const UTrie2 propsVectorsTrie={ propsVectorsTrie_index, - propsVectorsTrie_index+4640, + propsVectorsTrie_index+4844, NULL, - 4640, - 22812, + 4844, + 23696, 0xa40, - 0x12a0, + 0x136c, 0x0, 0x0, 0x110000, - 0x6b38, + 0x6f78, NULL, 0, FALSE, FALSE, 0, NULL }; -static const uint32_t propsVectors[5931]={ -0x67,0,0,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,0,0,0xc67, -0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,0,0x1267,0, -0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,0x1767,0,0, -0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,0,0,0x1f67, -0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0,0,0x2567,0, -0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000,0x2b67,0,0, -0x2d67,0,0,0x3067,0x20000000,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,0,0,0x3b67, -0,0,0x3c67,0,0,0x3e67,0,0,0x4067,0,0,0x4167,0,0,0x4367,0, -0,0x4467,0,0,0x4867,0,0,0x4967,0,0,0x4a67,0,0,0x5067,0,0, -0x5167,0,0,0x5467,0,0,0x5567,0,0,0x5667,0x80000,0x20,0x5767,0,0,0x5867, -0,0,0x5967,0,0,0x5b67,0,0,0x5c67,0,0,0x5d67,0,0,0x6067,0x80000, -0x20,0x6267,0,0,0x6367,0,0,0x6467,0,0,0x6567,0,0,0x6f67,0,0, -0x7067,0,0,0x7367,0x20000000,0,0x7567,0,0,0x7667,0,0,0x7767,0,0,0x7867, -0,0,0x7a67,0,0,0x7b67,0,0,0x7c67,0,0,0x7e67,0,0,0x7f67,0, -0,0x8167,0,0,0x8267,0,0,0x8367,0,0,0x8467,0,0,0x8567,0,0, -0x8667,0,0,0x8767,0,0,0x8867,0,0,0x8967,0,0,0x8b67,0,0,0x8c67, -0,0,0x8e67,0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167,0,0,0x9267,0, -0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0,0,0x9867,0,0, -0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167,0,0,0xa367, -0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767,0,0,0xa867,0, -0,0xa967,0,0,0xaa67,0,0,0xab67,0,0,0xac67,0,0,0xad67,0,0, -0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb367,0,0,0xb467, -0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67,0, -0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0, -0xc167,0,0,0xc267,0,0,0xc367,0,0,0xc467,0,0,0xc667,0,0,0xc767, -0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcb67,0,0,0xcc67,0, -0,0xcd67,0,0,0xcf67,0,0,0xd067,0,0,0xd267,0,0,0xd367,0,0, +static const uint32_t propsVectors[6195]={ +0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67, +0,0,0xc67,0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0, +0,0x1267,0,0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0, +0x1767,0,0,0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67, +0,0,0x1f67,0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0, +0,0x2567,0,0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000, +0x2b67,0,0,0x2d67,0,0,0x3067,0x20000000,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67, +0,0,0x3b67,0,0,0x3c67,0,0,0x3e67,0,0,0x4067,0,0,0x4167,0, +0,0x4367,0,0,0x4467,0,0,0x4867,0,0,0x4967,0,0,0x4a67,0,0, +0x5067,0,0,0x5167,0,0,0x5467,0,0,0x5567,0,0,0x5667,0x80000,0x20,0x5767, +0,0,0x5867,0,0,0x5967,0,0,0x5b67,0,0,0x5c67,0,0,0x5d67,0, +0,0x6067,0x80000,0x20,0x6267,0,0,0x6367,0,0,0x6467,0,0,0x6567,0,0, +0x6f67,0,0,0x7067,0,0,0x7367,0x20000000,0,0x7567,0,0,0x7667,0,0,0x7767, +0,0,0x7867,0,0,0x7a67,0,0,0x7b67,0,0,0x7c67,0,0,0x7e67,0, +0,0x7f67,0,0,0x8167,0,0,0x8267,0,0,0x8367,0,0,0x8467,0,0, +0x8567,0,0,0x8667,0,0,0x8767,0,0,0x8867,0,0,0x8967,0,0,0x8b67, +0,0,0x8c67,0,0,0x8e67,0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167,0, +0,0x9267,0,0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0,0, +0x9867,0,0,0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167, +0,0,0xa367,0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767,0, +0,0xa867,0,0,0xa967,0,0,0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0,0, +0xad67,0,0,0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb367, +0,0,0xb467,0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0, +0,0xba67,0,0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0, +0xc067,0,0,0xc167,0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667, +0,0,0xc767,0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcb67,0, +0,0xcc67,0,0xe00000,0xcf67,0,0xe00000,0xd067,0,0xe00000,0xd267,0,0,0xd367,0,0, 0xd467,0,0,0xd567,0,0,0xd667,0,0,0xd867,0,0,0xd967,0,0,0xda67, 0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0,0xdf67,0, -0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0,0xe467,0,0, +0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0xe00000,0xe467,0,0, 0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0,0,0xea67, 0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0,0xef67,0, 0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767,0,0, -0xf867,0,0,0xf967,0,0,0xfa67,0,0,0xfb67,0,0,0xfc67,0,0,0xfd67, +0xf867,0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0,0,0xfd67, 0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0,0x10467,0, -0,0x10567,0,0,0x10667,0,0,0xa0067,0,0xe00000,0xa4667,0,0xe00000,0xa4767,0,0xe00000, -0xa4f67,0,0xe00000,0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067, -0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100,0x40000001, -0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x10200000,0x11000200,0x24000008,0x1710000, -0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402,0x11000319, -0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419,0x7c00100, -0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100,0x230400, -0x11000600,0x4000400,0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x201000,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600, -0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010, -0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002, -0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e, -0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x2802400,0x962460,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100, -0x220400,0x11000908,0x7c00100,0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x270000, -0x11000a03,0x7c00100,0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13, -0x4000000,0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100, -0x2633800,0x11000c00,0,0x218820,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400, -0x11000c02,0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02, -0x7c00100,0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000c02,0xc000010,0xb48000,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400, -0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401, -0x11001004,0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004, -0x6800100,0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400, -0x962460,0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460, -0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f, -0x2802400,0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100, -0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540, -0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524, -0x2806400,0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400, -0x962460,0x11001615,0x6800000,0x1329800,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460, -0x1100171a,0x2806400,0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900, -0x4000000,0x1600000,0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010, -0x400000,0x11001926,0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000, -0x11001a18,0x2802100,0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18, -0x7c00100,0x1830002,0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d00,0x4000000,0x200000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100, -0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12,0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402, -0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400,0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e, -0x7c00100,0x250401,0x11002800,0x80000,0x918820,0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x440001,0x11002800,0x4000001, -0x440002,0x11002800,0x4000001,0xc4000b,0x11002800,0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002, -0x11002800,0x24000000,0x810000,0x11002800,0x24000000,0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800, -0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000,0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010, -0x1248000,0x11002800,0x2c000010,0x11248002,0x11002800,0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e, -0x11002900,0x4000000,0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900, -0x4000020,0x141000e,0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000, -0x1600000,0x11002a00,0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002, -0x11002c00,0x4000000,0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00, -0x7c00120,0x230402,0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000, -0x100006,0x11002d00,0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000, -0x11002e00,0x24000020,0x200000,0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x10200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00, -0x24000020,0x200002,0x11002f00,0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000, -0x10200000,0x11003000,0x24000000,0x30e00000,0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000, -0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600, -0x24000000,0x200000,0x11003600,0x24000000,0x10200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700,0x24000000, -0x10200000,0x11003700,0x24000000,0x10e00000,0x11003700,0x24000000,0x30200000,0x11003700,0x24000000,0x90e00000,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000, -0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000,0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x10200000,0x11003800, -0x24000000,0x10b00000,0x11003800,0x24000000,0x10e00000,0x11003800,0x24000000,0x90e00000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020, -0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000, -0x11005100,0x24000000,0x1410000,0x11005102,0x7000100,0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102, -0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100, -0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006, -0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200, -0x24000000,0x1400000,0x11020200,0x24000000,0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x10200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020, -0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400, -0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419, -0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200000,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00, -0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400, -0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800, -0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000, -0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000, -0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900, -0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000, -0x1010000f,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006, -0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x10100000,0x11022f00, -0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000, -0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,0x150403,0x11023300,0x4000100,0x10150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000, -0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,0x11023600,0x24000020,0x10100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700, -0x24000000,0x10100000,0x11023700,0x24000000,0x10e00000,0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x10100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000, -0x200000,0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a, -0x11045712,0x7c00100,0x23040a,0x11045712,0x7c80100,0x23040a,0x11045716,0x7c00100,0x230c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x440011,0x11065700, -0x4000000,0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006, -0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011, -0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700, -0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140, -0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x11329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000, -0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x10200000,0x11080100, -0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010, -0x1071400,0x11080100,0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000, -0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a40000,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119, -0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000, -0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001, -0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400,0x110a3d12, -0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14,0x7c00900, -0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900,0x1230c01, -0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,0x4000000,0xe00002,0x110a4412, -0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,0xe30000,0x110a4f11,0x7c00300, -0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,0x110a5300,0x4000000,0x1410010, -0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10,0x110a5400, -0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400,0x4000002, -0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020,0xe0000c, -0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,0x1049400,0x11400c0e,0x4000010,0xb00000,0x11400c0e, -0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c11,0x7c00900,0x230400,0x11400f33,0xc000010,0x448000,0x11400f43,0xc000010,0x448000,0x11403d8a,0x4000000, -0xe00000,0x11445784,0x4000004,0x120000a,0x11445784,0x4000008,0x81000a,0x11445784,0x4000008,0x141000a,0x11445784,0x4000010,0x87000a,0x11445784,0xc000010,0x84800a, -0x1144578d,0x3802500,0x126246a,0x1144578d,0x7c00d00,0x2530c0a,0x114a3d84,0x24000000,0x810000,0x114a3d84,0x24000000,0x1410000,0x114a3d84,0x24000008,0x810000,0x114a3d84, -0x24000008,0x1410000,0x114a3d84,0x24000010,0x870000,0x114a3d84,0x2c000010,0x848000,0x114a3d8a,0x4000000,0xe00000,0x114a3d8a,0x24000000,0xe00000,0x114a3d8a,0x24000002, -0x1200000,0x114a3d8a,0x24000002,0x10e00000,0x114a3d8a,0x24000008,0x810000,0x114a3d8a,0x24000008,0x1410000,0x114a3d8d,0x7c00900,0x930c00,0x114a3d8d,0x7c00900,0xe30c00, -0x114a3d8f,0x7c00300,0xe30000,0x114a3e8d,0x7000400,0x1200c02,0x114a3f84,0x4000004,0x1200000,0x114a3f8d,0x7c00d00,0x2530c00,0x114a428f,0x4000000,0xe00000,0x114a428f, -0x4000000,0xe0000f,0x114a448a,0x4000000,0xe00002,0x114a448a,0x4000000,0xe00003,0x114a448a,0x4000000,0x10e00003,0x114a458a,0x4000000,0xe00002,0x114a458a,0x4000000, -0xe0000d,0x11800906,0x2802400,0x962460,0x11800c16,0x2802100,0x962460,0x11800c16,0x2802500,0x962460,0x11800f1c,0x2802400,0x962460,0x11800f28,0x2802400,0x962460, -0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3d92,0x2802400,0x962460,0x118a3e8d,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00c1a, -0x6800000,0x1329800,0x11c00f57,0x6800000,0x1329800,0x11c0105c,0x6800000,0x1329800,0x11c01160,0x6800000,0x1329800,0x11c01264,0x6800000,0x1329800,0x11c01468,0x4000000, -0x200000,0x11c01468,0x6800000,0x1329800,0x11c01468,0x7c00100,0x230400,0x11c0511a,0x7c00100,0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460, -0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27, -0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000, -0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800, -0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00, -0x4000000,0x1600000,0x20004b67,0,0x1900020,0x20004c67,0,0x1900020,0x20004d67,0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000, -0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000, -0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519, -0x7c00100,0x220400,0x30000600,0x4000400,0x200000,0x30000600,0x7c00500,0x230400,0x30000605,0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000, -0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000, -0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0,0x218820,0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22, -0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000e25,0x2802500, -0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540, -0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27, -0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000, -0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000, -0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b, -0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000010,0x200000,0x30002128,0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000, -0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x440000,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400, -0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417, -0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100, -0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x4000000,0x200000, -0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b, -0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc4000b,0x30002800,0x24000000, -0x200000,0x30002800,0x2c000010,0x1248002,0x30002800,0x2c000010,0x11248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000,0x200000, -0x30002c00,0x7c00100,0x10220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000,0x30003600, -0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400, -0x500000,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002, -0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829, -0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x30402573,0x4000010,0x400000,0x30402573,0x4000010,0xb70000,0x30402573,0xc000010, -0xb48000,0x304a3d8a,0x4000000,0xe00000,0x30800c16,0x2802100,0x962460,0x30c01c6d,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402, -0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09, -0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000, -0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005, -0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x80000,0x918820,0x31006000,0x180000,0x918820,0x310a5e11, -0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100, -0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400, -0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x440002,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800, -0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000, -0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405, -0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500, -0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003600,0x24000020,0x10200000,0x32003600,0x24000020,0x30200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000, -0x200000,0x32003700,0x24000000,0x10200000,0x32003800,0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400, -0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b, -0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100, -0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x10200000, -0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00, -0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000,0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000, -0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900,0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3d11,0x7c00100,0x1230400, -0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100,0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11, -0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00,0x3240636f,0xc000010,0x448000,0x324a3d8f,0x4000000,0x10e00000,0x324a3d8f,0x7c00100,0x1230400,0x324a3f8d,0x4000002, -0x1200c00,0x324a538a,0x24000000,0xe00000,0x32820701,0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200000, -0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100,0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0,0x218820,0x40000c02,0x2802100,0x962460,0x40000c02, -0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000d22,0x7c00100, -0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004,0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460, -0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100,0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615, -0x2802400,0x962460,0x40001615,0x7c00100,0x230400,0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002, -0x200000,0x40002c00,0x4000000,0x200002,0x40003000,0x24000000,0x10200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x10200000, -0x40003700,0x24000000,0x30200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400,0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30, -0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30,0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010, -0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100,0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e, -0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400,0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300, -0x24000000,0x200000,0x40007300,0x24000000,0x10200000,0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010, -0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400, -0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40023700,0x24000000,0x30e00000,0x40027d01, -0x12882000,0x962460,0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000, -0x810010,0x400a5300,0x4000000,0x1410010,0x404077a6,0x4000000,0x200000,0x404077a6,0x4000000,0x400000,0x40c0511a,0x4000000,0x200000,0x41000419,0x7c00100,0x220400, -0x41000419,0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13, -0x2802000,0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0xb00000,0x41000c02,0x4000000, -0x1500000,0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400, -0x41001d0c,0x7c00100,0x23040f,0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800, -0x24000000,0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120, -0x220405,0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0x10200000,0x41003700,0x24000000,0x10e00000,0x41003700,0x24000000,0x30200000, -0x41003700,0x24000000,0x30e00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208, -0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000, -0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540, -0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,0x41008407,0x4000000,0x400000,0x41008407,0x4000000,0xb00000,0x41008407, -0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,0x4000000,0x200000,0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100, -0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,0x962460,0x41008939,0x2802100,0x962460,0x41008939,0x2806000,0x962460, -0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,0x41008939,0xc000010,0x448000,0x41008a00,0x4000000,0x200000,0x41008b3b, -0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,0x7e00100,0x1830000,0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100, -0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000, -0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802000,0x962460,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a, -0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000, -0x962460,0x41020701,0x2802000,0xc62460,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010, -0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100, -0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a828a,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01468,0x6800000, -0x1329800,0x50000419,0x7c00100,0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400, -0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00, -0x4000000,0x200000,0x50002c19,0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000, -0x200000,0x50005d00,0x7c00120,0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000, -0x50007300,0x24000000,0x200000,0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257, -0x4000010,0x1071400,0x50009257,0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010, -0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000, -0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e, -0x7c00100,0x230401,0x5000933e,0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200000,0x5000965a,0x4000000, -0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400, -0x50009865,0x7c00100,0x230400,0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409a93,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e, -0x7c00100,0x250400,0x51000c02,0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100, -0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460, -0x51001524,0x4000000,0x200000,0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a, -0x7c00100,0x230400,0x51001b27,0x4000000,0x200000,0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100, -0x1862460,0x51001c1c,0x2802400,0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800000,0x1862400, -0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800400,0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619, -0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000, -0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400, -0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000000,0x30200000,0x51007300, -0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000, -0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000, -0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419,0x7c00100,0x22040e,0x51009419, -0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,0x4000000,0x200000,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100, -0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800,0x51009b71,0x6800100,0x962540, -0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52,0x2802c00,0x962460,0x51009c52, -0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000, -0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000,0x51009e08,0x2802100,0x962460, -0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63,0xc000010,0x448000,0x51009f63, -0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100, -0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540, -0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f, -0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400, -0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,0x962540, -0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b, -0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100aa00,0x4000000, -0x30e00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000, -0x5140a2a1,0x4000400,0x400000,0x514a828a,0x4000000,0xe00000,0x51802b81,0x2802000,0x962460,0x51c0090a,0x2802400,0x962460,0x51c0a00a,0x2802400,0x962460,0x52000f0a, -0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100, -0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800400,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000, -0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52003700, -0x24000000,0x30e00000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,0x7c00100, -0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,0x250400, -0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e, -0x7c00100,0x230400,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000, -0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000, -0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182, -0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400, -0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000, -0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e, -0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100, -0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000, -0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873, -0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100, -0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400, -0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a, -0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0,0x218820,0x5200c178,0x2802000, -0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540, -0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247, -0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000, -0x10100000,0x52023700,0x24000000,0x10e00000,0x52023700,0x24000000,0x30e00000,0x52023700,0x24000000,0x90e00000,0x52023800,0x24000000,0x30100000,0x52024400,0x4000000,0x100000, -0x52027300,0x24000000,0x100000,0x52027300,0x24000000,0x30100000,0x5202c300,0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300, -0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,0x5202c300,0x4000100,0x10150400,0x520a1e12,0x7c00100,0x2130480,0x520a4400,0x4000000, -0xe00003,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d, -0x520ac400,0x4000000,0x30e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af75,0x6800400,0x962540,0x5240af75,0x7c00100,0x230400,0x5240af76, -0x4000400,0x200000,0x5240af76,0x6800100,0x962540,0x5240b294,0x4000000,0x200000,0x5240b294,0x4000000,0x1500000,0x5240b5a4,0x7c00900,0x230400,0x5280af75,0x2802400, -0x962460,0x5280af76,0x2802400,0x962460,0x5280af78,0x2802400,0x962460,0x5280af7a,0x2802400,0x962460,0x52c0b39f,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460, +0,0x10567,0,0xe00000,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967,0,0, +0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67, +0,0,0x11067,0,0,0x11167,0,0,0xa0067,0,0xe00000,0xa4667,0,0xe00000,0xa4767,0, +0xe00000,0xa4f67,0,0xe00000,0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000, +0xb0067,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100, +0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x10200000,0x11000200,0x24000008, +0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402, +0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419, +0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100, +0x230400,0x11000600,0x4000400,0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x201000,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400, +0x11000600,0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800, +0x6800010,0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400, +0x200002,0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400, +0x1100080e,0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908, +0x7c00100,0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100, +0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,0x200000, +0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,0x11000c00, +0,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,0x4000000, +0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,0x230402, +0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000c02,0xc000010,0xb48000,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,0x11000f0a, +0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,0x2802100, +0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,0x962540, +0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,0x11001110, +0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,0x2802400, +0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,0x962460, +0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,0x1100131f, +0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,0x6800100, +0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,0x962460, +0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,0x11001615, +0x6800000,0x1329800,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400, +0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000, +0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926, +0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100, +0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002, +0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12, +0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400, +0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820, +0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x440001,0x11002800,0x4000001,0x440002,0x11002800,0x4000001,0xc4000b,0x11002800, +0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000, +0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000, +0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x11248002,0x11002800, +0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000, +0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e, +0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00, +0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000, +0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402, +0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00, +0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020, +0x200000,0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x10200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002, +0x11002f00,0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000,0x10200000,0x11003000, +0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000, +0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000000,0x10200000, +0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700,0x24000000,0x10200000,0x11003700,0x24000000,0x10e00000,0x11003700, +0x24000000,0x928045a0,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000, +0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x10200000,0x11003800,0x24000000,0x10b00000,0x11003800,0x24000000,0x10e00000,0x11003800,0x24000000,0x10e05200, +0x11003800,0x24000000,0x928045a0,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,0x11005013, +0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,0x7000100, +0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460, +0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502, +0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400, +0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,0x1500000, +0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x10200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219, +0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100, +0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400, +0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200000,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701, +0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100, +0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002, +0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800, +0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020, +0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f, +0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000,0x1010000f,0x11022c00,0x7c00120,0x120405,0x11022c0e, +0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100, +0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x10100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001, +0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300, +0x4000100,0x150403,0x11023300,0x4000100,0x10150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020, +0x100000,0x11023600,0x24000020,0x10100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700,0x24000000,0x10100000,0x11023700,0x24000000,0x10e00000, +0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x10100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600, +0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100, +0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x440011,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011, +0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700, +0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400, +0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011, +0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100, +0x68000c0,0x11329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000, +0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x10200000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00, +0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,0x200000,0x11080100, +0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010, +0x100ac00,0x11080100,0x44000001,0x1a40000,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400, +0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12, +0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000,0x30e00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000, +0x30200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400, +0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14, +0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900, +0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,0x4000000,0xe00002, +0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,0xe30000,0x110a4f11, +0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,0x110a5300,0x4000000, +0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10, +0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400, +0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020, +0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,0x1049400,0x11400c0e,0x4000010,0xb00000, +0x11400c0e,0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c11,0x7c00900,0x230400,0x11400f34,0xc000010,0x448000,0x11400f44,0xc000010,0x448000,0x11401d70, +0x4000000,0x200000,0x11403d92,0x4000000,0xe00000,0x11445787,0x4000004,0x120000a,0x11445787,0x4000008,0x81000a,0x11445787,0x4000008,0x141000a,0x11445787,0x4000010, +0x87000a,0x11445787,0xc000010,0x84800a,0x11445790,0x3802500,0x126246a,0x11445790,0x7c00d00,0x2530c0a,0x114a3d87,0x24000000,0x810000,0x114a3d87,0x24000000,0x1410000, +0x114a3d87,0x24000008,0x810000,0x114a3d87,0x24000008,0x1410000,0x114a3d87,0x24000010,0x870000,0x114a3d87,0x2c000010,0x848000,0x114a3d8d,0x4000000,0xe00000,0x114a3d8d, +0x24000000,0xe00000,0x114a3d8d,0x24000002,0x1200000,0x114a3d8d,0x24000002,0x10e00000,0x114a3d8d,0x24000008,0x810000,0x114a3d8d,0x24000008,0x1410000,0x114a3d90,0x7c00900, +0x930c00,0x114a3d90,0x7c00900,0xe30c00,0x114a3d92,0x7c00300,0xe30000,0x114a3e90,0x7000400,0x1200c02,0x114a3f87,0x4000004,0x1200000,0x114a3f90,0x7c00d00,0x2530c00, +0x114a4292,0x4000000,0xe00000,0x114a4292,0x4000000,0xe0000f,0x114a4492,0x4000000,0xe00002,0x114a4492,0x4000000,0xe00003,0x114a4492,0x4000000,0x10e00003,0x114a4592, +0x4000000,0xe00002,0x114a4592,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c17,0x2802100,0x962460,0x11800c17,0x2802500,0x962460,0x11800f1d,0x2802400, +0x962460,0x11800f29,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3d93,0x2802400,0x962460,0x118a3e90,0x2802400,0x962460, +0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c1b,0x6800000,0x1329800,0x11c00f58,0x6800000,0x1329800,0x11c0105d,0x6800000,0x1329800,0x11c01161, +0x6800000,0x1329800,0x11c01265,0x6800000,0x1329800,0x11c01469,0x4000000,0x200000,0x11c01469,0x6800000,0x1329800,0x11c01469,0x7c00100,0x230400,0x11c0511b,0x7c00100, +0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461, +0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27, +0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010, +0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400, +0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900020,0x20004c67,0,0x1900020,0x20004d67, +0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100, +0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401, +0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200000,0x30000600,0x7c00500,0x230400,0x30000605, +0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100, +0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0,0x218960, +0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22, +0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400, +0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460, +0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c, +0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100, +0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000, +0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000010,0x200000,0x30002128, +0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x440000,0x3000221d,0x7c00100, +0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460, +0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417, +0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000, +0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000, +0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b, +0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc41c0b,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002800,0x2c000010, +0x11248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,0x10220405,0x30002d19,0x7c00100,0x250400, +0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e, +0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400,0x500000,0x30020701,0x2802400,0x962460,0x30020701,0x2802400, +0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000, +0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929, +0x4000000,0xe00000,0x30402576,0x4000010,0x400000,0x30402576,0x4000010,0xb70000,0x30402576,0xc000010,0xb48000,0x304a3d92,0x4000000,0xe00000,0x30800c17,0x2802100, +0x962460,0x30c01c6e,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000, +0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00, +0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000, +0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405, +0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419, +0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100, +0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820, +0x32002800,0x4000001,0x440002,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919, +0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000, +0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000, +0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003600, +0x24000020,0x10200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,0x10200000,0x32003800,0x24000000,0x810000,0x32003800,0x24000000, +0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400,0x3200622a,0x2802100,0x962460, +0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b,0x7c00100,0x230400,0x3200642c, +0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020,0x200000,0x32006700,0x24000020, +0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x10200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020,0x1410000, +0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000,0x32026c01, +0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900,0x24000020, +0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x30200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100,0x2530000, +0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00,0x32406372, +0xc000010,0x448000,0x324a3d95,0x4000000,0x10e00000,0x324a3d95,0x7c00100,0x1230400,0x324a3f90,0x4000002,0x1200c00,0x324a538d,0x24000000,0xe00000,0x32820701,0x2802000, +0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200000,0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100,0x250400, +0x4000080e,0x7c00100,0x250402,0x40000c02,0,0x218960,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02, +0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004,0x7c00100, +0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100,0x230400, +0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,0x230400,0x40002417, +0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,0x40003000,0x24000000, +0x10200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x10200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400, +0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30, +0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100, +0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400, +0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007300,0x24000000,0x10200000,0x40007400,0x4000000,0x200000,0x40007531, +0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000, +0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460, +0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x30200000,0x400a3700,0x24000000,0x30e00000,0x400a4400,0x4000000,0xe0000d,0x400a4412, +0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x404077b8,0x4000000, +0x200000,0x404077bb,0x4000000,0x200000,0x404077bb,0x4000000,0x400000,0x40c0511b,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,0x7c00100,0x250400, +0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,0x962460,0x41000b13, +0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0xb00000,0x41000c02,0x4000000,0x1500000,0x41000f0a,0x7c00100, +0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,0x7c00100,0x23040f, +0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,0x400000,0x41002919, +0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,0x41003000,0x24000000, +0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0x10200000,0x41003700,0x24000000,0x10e00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000, +0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e, +0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100, +0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000, +0x41008407,0x4000000,0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b, +0x4000000,0x200000,0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000, +0x962460,0x41008939,0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400, +0x41008939,0xc000010,0x448000,0x41008a00,0x4000000,0x200000,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b, +0x7e00100,0x1830000,0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100, +0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802000,0x962460, +0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c, +0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x30200000,0x410a3700,0x24000000, +0x30e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010, +0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100, +0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a8292,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01469,0x6800000,0x1329800,0x50000419,0x7c00100, +0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460, +0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19, +0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120, +0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000, +0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257, +0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100, +0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800, +0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e, +0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200000,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100, +0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400, +0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409a92,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02, +0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500, +0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000, +0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27, +0x4000000,0x200000,0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802400, +0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800000,0x1862400,0x51001c1c,0x6800100,0x1862400, +0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800400,0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619, +0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000, +0xe00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000, +0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301, +0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000, +0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400, +0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419,0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500, +0x4000000,0x200000,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100, +0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800,0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400, +0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52,0x2802c00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52, +0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500, +0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000,0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800, +0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63,0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008, +0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500, +0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000, +0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e, +0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100, +0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000, +0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c, +0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020, +0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,0x30200000,0x510aaa00,0x4000000,0x30e00000,0x5140a2b3,0x4000400,0x400000, +0x514a8292,0x4000000,0xe00000,0x51802b84,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a, +0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100, +0x1862400,0x52001c1c,0x6800400,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400, +0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108, +0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000, +0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460, +0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ad28,0x7c00100,0x230400,0x5200ae6a, +0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000, +0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000, +0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182, +0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100, +0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800, +0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c, +0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000, +0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000, +0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873, +0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010, +0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000, +0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58, +0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0,0x218960,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400, +0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401, +0x5200c178,0xc000010,0x448000,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00, +0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x10100000,0x52023700,0x24000000,0x10e00000,0x52023700,0x24000000, +0x928045a0,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300,0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003, +0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,0x5202c300,0x4000100,0x10150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700, +0x24000000,0x30e00000,0x520a3800,0x24000000,0x30100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001,0x520a7300,0x24000000,0x30100000,0x520ab412,0x7c00100, +0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac400,0x4000000,0x30e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000, +0x5240af78,0x6800400,0x962540,0x5240af78,0x7c00100,0x230400,0x5240af79,0x4000400,0x200000,0x5240af79,0x6800100,0x962540,0x5240b298,0x4000000,0x200000,0x5240b2a2, +0x4000000,0x200000,0x5240b2a2,0x4000000,0x1500000,0x5240b5b6,0x7c00900,0x230400,0x524a4492,0x4000000,0xe00003,0x5280af78,0x2802400,0x962460,0x5280af79,0x2802400, +0x962460,0x5280af7b,0x2802400,0x962460,0x5280af7d,0x2802400,0x962460,0x52c0b3ad,0x2802400,0x962460,0x52c0b3b1,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460, 0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a, -0x7c00100,0x230400,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802000,0x962460,0x60002919,0x7c00100, -0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x10200000,0x60003000,0x24000000,0x10e00000,0x60003000,0x24000000,0x30200000,0x60003000,0x24000000,0x30e00000, -0x60003700,0x24000000,0x200000,0x60003700,0x24000000,0x30200000,0x60003800,0x24000000,0x1710000,0x60003800,0x24000000,0x30200000,0x60003800,0x24000000,0xb0e00000,0x60005102, -0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802000,0x962460,0x6000903c,0x2806000, -0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008,0x7c00100,0x250400, -0x6000c300,0x4000000,0x32703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000,0x962460,0x6000c73f, -0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400,0x6000c80b,0x7c00100, -0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941,0x6800000,0x1329800, -0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000,0xe00000,0x6000cc00, -0x4000000,0x30e00000,0x6000cd00,0x4000000,0x30200000,0x6000cd00,0x4000000,0x30e00000,0x6000cd00,0x4000000,0xb0e00000,0x6000ce00,0x4000000,0x30e00000,0x6000ce00,0x4000000, -0xb0e00000,0x6000cf00,0x4000000,0x30e00000,0x6000cf00,0x4000000,0xb0e00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d, -0x6002c300,0x4000000,0x30100000,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d,0x6002c300,0x4000100,0x10150400,0x600a4305,0x7c00100,0xe30400,0x600ac400, -0x4000000,0x10e0000d,0x600ac400,0x4000000,0x30e00003,0x600ac400,0x4000000,0x30e0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600ad111,0x7c40300, -0xe30000,0x61000a03,0x4000000,0x1600000,0x61000c02,0,0x218820,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400, -0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00, -0x24000000,0x200000,0x61008e00,0x24000000,0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100, -0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,0x962460, -0x6100c300,0x4000000,0x20000f,0x6100cd00,0x4000000,0x200000,0x6100ce00,0x4000000,0x30e00000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202, -0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400, -0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000, -0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573, -0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100, -0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800, -0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100,0x230400,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98, -0x7c00100,0x230400,0x6100db71,0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100, -0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x6140af75,0x7c00100,0x230400, -0x6140af76,0x6800100,0x962540,0x6140af7f,0x7c00100,0x230400,0x6180af76,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63000c00,0x80000,0x918820,0x63002800, -0x80000,0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0,0x218820,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100, -0x230400,0x70001524,0x2802100,0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800, -0x70002320,0x7c00100,0x230400,0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003000,0x24000000,0x10200000,0x70003800, -0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100, -0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000, -0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519, -0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100, -0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802400,0x1862460, -0x7000b61c,0x6800400,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00, -0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x10200000,0x7000cd00,0x4000000,0x10e00000,0x7000cd00,0x4000000,0x30e00000,0x7000cd00,0x4000000, -0x90e00000,0x7000cd00,0x4000000,0xb0e00000,0x7000ce00,0x4000000,0x30e00000,0x7000cf00,0x4000000,0xe00000,0x7000cf00,0x4000000,0x10e00000,0x7000cf00,0x4000000,0x30e00000, -0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86, -0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460,0x7000e001,0x2802400, -0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187,0xc000010,0x448000, -0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489,0x6800100,0x962540,0x7000e489, -0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100,0x962460,0x7000e59d,0x2802400, -0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540,0x7000e59d,0x7c00100,0x230400, -0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691,0x6800000,0x1329800,0x7000e691, -0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,0x200000,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100,0x220400,0x7000e719,0x7c00500, -0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000,0x7000e9a0,0x7c00100,0x230400, -0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79,0x7c00100,0x230400,0x7000eb8c, -0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400,0x962460,0x7000eca3,0x4000000, -0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000,0x7000ed95,0x6800000,0x1329800, -0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802400,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c,0x7c00100,0x1830000,0x7000ee1c, -0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100,0x230400,0x7000f159,0x2802100, -0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000,0x7000f34b,0x2802100,0x962460, -0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b,0x7c00900,0x230400,0x7000f34b, -0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000,0x200000,0x7000f67b,0x4000010, -0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460,0x7000f8a6,0x4000000,0x500000, -0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6, -0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400, -0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400, -0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x7040dfa8, -0x4000000,0x200000,0x7040f7aa,0x80000,0x918820,0x7080af76,0x2802400,0x962460,0x7080dfa8,0x2802400,0x962460,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100, -0x230400,0x8000171a,0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000, -0x80005208,0x2802400,0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519, -0x7c00100,0x250400,0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000, -0xe00000,0x8000cd00,0x4000000,0x30e00000,0x8000cd00,0x4000000,0x70200000,0x8000ce00,0x4000000,0x30e00000,0x8000cf00,0x4000000,0x30e00000,0x8000d202,0x2802500,0x962460, -0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000,0x200000,0x8000d997,0x4000000,0x400000,0x8000d997, -0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400,0x8000e719,0x7c00100, -0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1,0x2806400,0x1862460, -0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c, -0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400,0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000, -0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c,0x4000000,0x200000,0x8001044c,0x7c00100,0x220400, -0x8001044c,0x7c00100,0x250400,0x80010500,0x4000000,0x30e00000,0x80010500,0x4000000,0xb0e00000,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670, -0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800b0011,0x7c40300,0xe30000}; +0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802000, +0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x10200000,0x60003000,0x24000000,0x10e00000,0x60003700,0x24000000,0x200000, +0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301, +0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100, +0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x32703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400, +0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f, +0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010, +0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400, +0x6000cc00,0x4000000,0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300, +0x4000100,0x15040d,0x6002c300,0x4000100,0x10150400,0x600a3000,0x24000000,0x30200000,0x600a3000,0x24000000,0x30e00000,0x600a3700,0x24000000,0x30200000,0x600a3800,0x24000000, +0x30200000,0x600a3800,0x24000000,0xb28045a0,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,0x30100000,0x600ac400,0x4000000,0x10e0000d,0x600ac400,0x4000000,0x30e0000d, +0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000,0x30e00000,0x600acd00,0x4000000,0x30200000,0x600acd00,0x4000000,0x30e00000,0x600acd00, +0x4000000,0x30e05200,0x600acd00,0x4000000,0xb0e00000,0x600acd00,0x4000000,0xb28045a0,0x600acd00,0x4000000,0xb28049c0,0x600ace00,0x4000000,0x30e00000,0x600ace00,0x4000000, +0xb28045a0,0x600acf00,0x4000000,0x30e00000,0x600acf00,0x4000000,0xb28045a0,0x600ad111,0x7c40300,0xe30000,0x604ac492,0x4000000,0x30e00003,0x61000a03,0x4000000,0x1600000, +0x61000c02,0,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600, +0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000, +0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f, +0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00, +0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120, +0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800, +0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573, +0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100, +0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460, +0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997, +0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000, +0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540, +0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0x30e00000,0x6140af78,0x7c00100,0x230400,0x6140af79, +0x6800100,0x962540,0x6140af82,0x7c00100,0x230400,0x6180af79,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63000c00,0x80000,0x918820,0x63002800,0x80000, +0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0,0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400, +0x70001524,0x2802100,0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320, +0x7c00100,0x230400,0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003000,0x24000000,0x10200000,0x70003800,0x24000000, +0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400, +0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00, +0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100, +0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400, +0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802400,0x1862460,0x7000b61c, +0x6800400,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000, +0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x10200000,0x7000cd00,0x4000000,0x10e00000,0x7000cd00,0x4000000,0x10e05200,0x7000cd00,0x4000000,0x90e00000, +0x7000cd00,0x4000000,0x928045a0,0x7000cf00,0x4000000,0xe00000,0x7000cf00,0x4000000,0x10e00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997, +0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000, +0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460, +0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489, +0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489,0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100, +0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100,0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000, +0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540,0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691, +0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691,0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400, +0x200000,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100,0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460, +0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000,0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79, +0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79,0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100, +0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400,0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540, +0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000,0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c, +0x2802400,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c,0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100, +0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100,0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000, +0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000,0x7000f34b,0x2802100,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b, +0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b,0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100, +0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000,0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460, +0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460,0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6, +0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000, +0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800, +0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92, +0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0x30e00000,0x700acd00,0x4000000,0xb28045a0,0x700ace00,0x4000000, +0x30e00000,0x700acf00,0x4000000,0x30e00000,0x700acf00,0x4000000,0xb0e00000,0x7040dfbd,0x4000000,0x200000,0x7040f7c1,0x80000,0x918820,0x7080af79,0x2802400,0x962460, +0x7080dfbd,0x2802400,0x962460,0x70c0e4bf,0x2802400,0x962460,0x70c0e4bf,0x6800100,0x962540,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100,0x230400,0x8000171a, +0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000,0x80005208,0x2802400, +0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519,0x7c00100,0x250400, +0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000,0xe00000,0x8000d202, +0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000,0x200000,0x8000d997,0x4000000, +0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400, +0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1, +0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010, +0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400,0x80010165,0x7c00100,0x230400, +0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c,0x4000000,0x200000,0x8001044c, +0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,0x4000010,0x400000,0x80010670,0xc000010, +0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0x30e00000,0x800acd00,0x4000000,0x72904de0,0x800ace00,0x4000000,0x30e00000,0x800acf00,0x4000000,0x30e00000, +0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0x30e00000,0x800b0500,0x4000000,0xb28045a0,0x90001615,0x7c00100,0x230400,0x9000171a,0x4000000,0x200000,0x9000171a, +0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802000,0x962460,0x90008e00,0x24000000,0x400000,0x90009519,0x7c00100, +0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,0x962460,0x9000d202,0x7c00100,0x230400, +0x9000e59d,0x2802100,0x962460,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7,0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7, +0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100,0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000, +0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800,0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400, +0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9,0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9, +0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000,0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400, +0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000,0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800, +0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab,0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300, +0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x30e00000,0x900acd00,0x4000000,0xb28045a0,0x900acf00,0x4000000,0x30e00000,0x900b0500,0x4000000, +0xe00000,0x900b0500,0x4000000,0x30e00000,0x900b0500,0x4000000,0xb28045a0,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,0xe30000,0x900b119a,0x7c00300,0xe30000, +0x90408e06,0x24000000,0x400000}; -static const int32_t countPropsVectors=5931; +static const int32_t countPropsVectors=6195; static const int32_t propsVectorsColumns=3; -static const uint16_t scriptExtensions[172]={ -0x800e,0x8019,8,0x8059,8,2,8,0x8019,8,0x8038,8,8,3,0x800c,2,0x22, -0x8025,2,0x22,0x54,0x79,0x807b,2,0x8022,2,0x8025,2,0x18,4,0xa,0xf,0x10, -0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x8097,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f, -0x23,0x24,0x8089,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91, -0x99,0x9e,0x80a0,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a,0x89, -0x91,0x99,0x9e,0x80a0,0xa,0x78,0x80a0,0xa,0x54,4,0x3a,0x8076,4,0x59,0x10,0x80a4, -0x10,0x5e,0xf,0x809d,0xf,0x62,0x23,0x8089,0x23,0x66,0x1c,0x34,0x8076,0x1c,0x6a,0x2a, -0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,0xa,0x8089,0xa,0x8097,0xa,0x15,0x1a,0x23,0x8024,0xa, -0x8015,0xa,0x19,0x8089,5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x11, -0x14,0x8016,5,0x8011,0xa,0xf,0x10,0x78,0x91,0x99,0x9e,0xa0,0x80a3,0xa,0x8023,0xa, -0x9d,0x19,0x1c,0x804f,0x37,0x804e,0x2f,0x8031,2,0x8007,0x8087,0}; +static const uint16_t scriptExtensions[194]={ +0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,3,0x800c,2,0x22, +0x8025,2,0x22,0x54,0x79,0x7b,0x80a7,2,0x8022,2,0x8025,2,0x19,4,0xa,0xf, +0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x8097,4,0xa,0xf,0x10,0x15,0x19,0x1a, +0x1f,0x23,0x24,0x8089,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89, +0x91,0x99,0x9e,0x80a0,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a, +0x89,0x91,0x99,0x9e,0x80a0,0xa,0x78,0x80a0,0xa,0x55,4,0x3a,0x8076,4,0x5a,0x10, +0x80a4,0x10,0x5f,0xf,0x809d,0xf,0x63,0x23,0x8089,0x23,0x67,0x1c,0x34,0x8076,0x1c,0x6b, +0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,0xa,0x8089,0xa,0x8097,0xa,0x15,0x1a, +0x23,0x8024,0xa,0x8015,0xa,0x19,0x8089,5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12, +0x14,0x8016,0x8011,5,0x8011,0x11,0x14,0x8016,0xa,0xf,0x10,0x15,0x78,0x91,0x99,0x9e, +0xa0,0x80a3,0xa,0xf,0x10,0x78,0x91,0x99,0x9e,0xa0,0x80a3,4,0x800a,0xa,0xab,0xa, +0x8023,0xa,0xaf,0x19,0x1c,0x804f,0x37,0x804e,0x2f,0x31,0x8053,0x2f,0x8031,2,0x8007,0x89, +0x67,0x8087}; -static const int32_t indexes[UPROPS_INDEX_COUNT]={0x26ca,0x26ca,0x26ca,0x26ca,0x5c6c,3,0x7397,0x73ed,0x73ed,0x73ed,0xb06a6,0x2774191,0,0,0,0}; +static const int32_t indexes[UPROPS_INDEX_COUNT]={0x28aa,0x28aa,0x28aa,0x28aa,0x606c,3,0x789f,0x7900,0x7900,0x7900,0xb11ae,0x2a75631,0,0,0,0}; #endif // INCLUDED_FROM_UCHAR_C diff --git a/deps/icu-small/source/common/ucharstrie.cpp b/deps/icu-small/source/common/ucharstrie.cpp index 476271deacb836..d04d315c7913e0 100644 --- a/deps/icu-small/source/common/ucharstrie.cpp +++ b/deps/icu-small/source/common/ucharstrie.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2011, International Business Machines diff --git a/deps/icu-small/source/common/ucharstriebuilder.cpp b/deps/icu-small/source/common/ucharstriebuilder.cpp index 05255b48c9b3c8..412a58a45d6bd0 100644 --- a/deps/icu-small/source/common/ucharstriebuilder.cpp +++ b/deps/icu-small/source/common/ucharstriebuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines @@ -115,7 +117,7 @@ UCharsTrieBuilder::add(const UnicodeString &s, int32_t value, UErrorCode &errorC return *this; } if(elementsLength>0) { - uprv_memcpy(newElements, elements, elementsLength*sizeof(UCharsTrieElement)); + uprv_memcpy(newElements, elements, (size_t)elementsLength*sizeof(UCharsTrieElement)); } delete[] elements; elements=newElements; diff --git a/deps/icu-small/source/common/ucharstrieiterator.cpp b/deps/icu-small/source/common/ucharstrieiterator.cpp index 30867c05f07d82..68ba8c2177878a 100644 --- a/deps/icu-small/source/common/ucharstrieiterator.cpp +++ b/deps/icu-small/source/common/ucharstrieiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2011, International Business Machines diff --git a/deps/icu-small/source/common/uchriter.cpp b/deps/icu-small/source/common/uchriter.cpp index 40b06ce5acf486..fd0a407c6b1763 100644 --- a/deps/icu-small/source/common/uchriter.cpp +++ b/deps/icu-small/source/common/uchriter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1998-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/ucln.h b/deps/icu-small/source/common/ucln.h index cd2630afff8652..3c8c66ad2f39e5 100644 --- a/deps/icu-small/source/common/ucln.h +++ b/deps/icu-small/source/common/ucln.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucln_cmn.cpp b/deps/icu-small/source/common/ucln_cmn.cpp index 53c95e67baa3c5..657ec337d7e041 100644 --- a/deps/icu-small/source/common/ucln_cmn.cpp +++ b/deps/icu-small/source/common/ucln_cmn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/common/ucln_cmn.h b/deps/icu-small/source/common/ucln_cmn.h index 2fdf1c7a67e97c..56fa73053f5c0c 100644 --- a/deps/icu-small/source/common/ucln_cmn.h +++ b/deps/icu-small/source/common/ucln_cmn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2016, International Business Machines diff --git a/deps/icu-small/source/common/ucln_imp.h b/deps/icu-small/source/common/ucln_imp.h index a0a1850acc6745..5aa5b0d19f3aab 100644 --- a/deps/icu-small/source/common/ucln_imp.h +++ b/deps/icu-small/source/common/ucln_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucmndata.c b/deps/icu-small/source/common/ucmndata.c index b9a11eb66aac77..6b7d78d104d186 100644 --- a/deps/icu-small/source/common/ucmndata.c +++ b/deps/icu-small/source/common/ucmndata.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucmndata.h b/deps/icu-small/source/common/ucmndata.h index c3dfc50d884171..4ff37cc20b0576 100644 --- a/deps/icu-small/source/common/ucmndata.h +++ b/deps/icu-small/source/common/ucmndata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnv.c b/deps/icu-small/source/common/ucnv.c index d7f197c5f7967b..7ce05644c7ec9f 100644 --- a/deps/icu-small/source/common/ucnv.c +++ b/deps/icu-small/source/common/ucnv.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -1061,7 +1063,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { length=(int32_t)(pArgs->sourceLimit-pArgs->source); if(length>0) { - uprv_memcpy(cnv->preFromU, pArgs->source, length*U_SIZEOF_UCHAR); + u_memcpy(cnv->preFromU, pArgs->source, length); cnv->preFromULength=(int8_t)-length; } @@ -2743,7 +2745,7 @@ ucnv_getInvalidUChars (const UConverter * converter, } if ((*len = converter->invalidUCharLength) > 0) { - uprv_memcpy (errChars, converter->invalidUCharBuffer, sizeof(UChar) * (*len)); + u_memcpy (errChars, converter->invalidUCharBuffer, *len); } } diff --git a/deps/icu-small/source/common/ucnv2022.cpp b/deps/icu-small/source/common/ucnv2022.cpp index c3bcafb4bfcac8..d1d947f93c4ac3 100644 --- a/deps/icu-small/source/common/ucnv2022.cpp +++ b/deps/icu-small/source/common/ucnv2022.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2016, International Business Machines @@ -223,10 +225,10 @@ typedef struct{ /* ISO-2022 ----------------------------------------------------------------- */ /*Forward declaration */ -U_CFUNC void +U_CFUNC void U_CALLCONV ucnv_fromUnicode_UTF8(UConverterFromUnicodeArgs * args, UErrorCode * err); -U_CFUNC void +U_CFUNC void U_CALLCONV ucnv_fromUnicode_UTF8_OFFSETS_LOGIC(UConverterFromUnicodeArgs * args, UErrorCode * err); @@ -383,26 +385,31 @@ typedef enum{ } Variant2022; /*********** ISO 2022 Converter Protos ***********/ -static void +static void U_CALLCONV _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode); -static void +static void U_CALLCONV _ISO2022Close(UConverter *converter); -static void +static void U_CALLCONV _ISO2022Reset(UConverter *converter, UConverterResetChoice choice); -static const char* +U_CDECL_BEGIN +static const char * U_CALLCONV _ISO2022getName(const UConverter* cnv); +U_CDECL_END -static void +static void U_CALLCONV _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *err); -static UConverter * +U_CDECL_BEGIN +static UConverter * U_CALLCONV _ISO_2022_SafeClone(const UConverter *cnv, void *stackBuffer, int32_t *pBufferSize, UErrorCode *status); +U_CDECL_END + #ifdef U_ENABLE_GENERIC_ISO_2022 -static void +static void U_CALLCONV T_UConverter_toUnicode_ISO_2022_OFFSETS_LOGIC(UConverterToUnicodeArgs* args, UErrorCode* err); #endif @@ -468,7 +475,7 @@ setInitialStateFromUnicodeKR(UConverter* converter,UConverterDataISO2022 *myConv } } -static void +static void U_CALLCONV _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ char myLocale[6]={' ',' ',' ',' ',' ',' '}; @@ -646,7 +653,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ } -static void +static void U_CALLCONV _ISO2022Close(UConverter *converter) { UConverterDataISO2022* myData =(UConverterDataISO2022 *) (converter->extraInfo); UConverterSharedData **array = myData->myConverterArray; @@ -669,7 +676,7 @@ _ISO2022Close(UConverter *converter) { } } -static void +static void U_CALLCONV _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) { UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) (converter->extraInfo); if(choice<=UCNV_RESET_TO_UNICODE) { @@ -714,7 +721,9 @@ _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) { } } -static const char* +U_CDECL_BEGIN + +static const char * U_CALLCONV _ISO2022getName(const UConverter* cnv){ if(cnv->extraInfo){ UConverterDataISO2022* myData= (UConverterDataISO2022*)cnv->extraInfo; @@ -723,6 +732,8 @@ _ISO2022getName(const UConverter* cnv){ return NULL; } +U_CDECL_END + /*************** to unicode *******************/ /**************************************************************************** @@ -1243,7 +1254,7 @@ _2022ToGR94DBCS(uint32_t value) { * */ -static void +static void U_CALLCONV T_UConverter_toUnicode_ISO_2022_OFFSETS_LOGIC(UConverterToUnicodeArgs* args, UErrorCode* err){ const char* mySourceLimit, *realSourceLimit; @@ -1649,7 +1660,7 @@ static const uint16_t hwkana_fb[HWKANA_END - HWKANA_START + 1] = { 0x212C /* U+FF9F */ }; -static void +static void U_CALLCONV UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args, UErrorCode* err) { UConverter *cnv = args->converter; UConverterDataISO2022 *converterData; @@ -2066,7 +2077,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /*************** to unicode *******************/ -static void +static void U_CALLCONV UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[2]; @@ -2318,7 +2329,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, * ii) There are only 2 shifting sequences SO to shift into double byte mode * and SI to shift into single byte mode */ -static void +static void U_CALLCONV UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterFromUnicodeArgs* args, UErrorCode* err){ UConverter* saveConv = args->converter; @@ -2342,7 +2353,7 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterFromUnicodeArgs* args->converter=saveConv; } -static void +static void U_CALLCONV UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args, UErrorCode* err){ const UChar *source = args->source; @@ -2561,7 +2572,7 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /************************ To Unicode ***************************************/ -static void +static void U_CALLCONV UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs *args, UErrorCode* err){ char const* sourceStart; @@ -2659,7 +2670,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs *args } } -static void +static void U_CALLCONV UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[2]; @@ -2901,7 +2912,7 @@ static const char* const escSeqCharsCN[10] ={ CNS_11643_1992_Plane_7_STR }; -static void +static void U_CALLCONV UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args, UErrorCode* err){ UConverter *cnv = args->converter; UConverterDataISO2022 *converterData; @@ -3252,7 +3263,7 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args } -static void +static void U_CALLCONV UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[3]; @@ -3454,7 +3465,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, } #endif /* #if !UCONFIG_ONLY_HTML_CONVERSION */ -static void +static void U_CALLCONV _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *err) { UConverter *cnv = args->converter; UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) cnv->extraInfo; @@ -3578,7 +3589,9 @@ struct cloneStruct }; -static UConverter * +U_CDECL_BEGIN + +static UConverter * U_CALLCONV _ISO_2022_SafeClone( const UConverter *cnv, void *stackBuffer, @@ -3625,7 +3638,9 @@ _ISO_2022_SafeClone( return &localClone->cnv; } -static void +U_CDECL_END + +static void U_CALLCONV _ISO_2022_GetUnicodeSet(const UConverter *cnv, const USetAdder *sa, UConverterUnicodeSet which, diff --git a/deps/icu-small/source/common/ucnv_bld.cpp b/deps/icu-small/source/common/ucnv_bld.cpp index 6deb61d2717d8d..bfbb45a7d1c911 100644 --- a/deps/icu-small/source/common/ucnv_bld.cpp +++ b/deps/icu-small/source/common/ucnv_bld.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************** * COPYRIGHT: diff --git a/deps/icu-small/source/common/ucnv_bld.h b/deps/icu-small/source/common/ucnv_bld.h index d95f49228e9277..aeb858c9d50cba 100644 --- a/deps/icu-small/source/common/ucnv_bld.h +++ b/deps/icu-small/source/common/ucnv_bld.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2015 International Business Machines diff --git a/deps/icu-small/source/common/ucnv_cb.c b/deps/icu-small/source/common/ucnv_cb.c index fa34b65832726c..0c9cc2459f1844 100644 --- a/deps/icu-small/source/common/ucnv_cb.c +++ b/deps/icu-small/source/common/ucnv_cb.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2006, International Business Machines diff --git a/deps/icu-small/source/common/ucnv_cnv.c b/deps/icu-small/source/common/ucnv_cnv.c index f8e2f830f91a9b..01f84829dd3f7d 100644 --- a/deps/icu-small/source/common/ucnv_cnv.c +++ b/deps/icu-small/source/common/ucnv_cnv.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnv_cnv.h b/deps/icu-small/source/common/ucnv_cnv.h index 67536c80452771..48978130775a36 100644 --- a/deps/icu-small/source/common/ucnv_cnv.h +++ b/deps/icu-small/source/common/ucnv_cnv.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/common/ucnv_ct.c b/deps/icu-small/source/common/ucnv_ct.c index 91d66e12ef6cbe..f76919c4a54f30 100644 --- a/deps/icu-small/source/common/ucnv_ct.c +++ b/deps/icu-small/source/common/ucnv_ct.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2010-2015, International Business Machines diff --git a/deps/icu-small/source/common/ucnv_err.c b/deps/icu-small/source/common/ucnv_err.c index ea588f6153bb98..449b162152e61e 100644 --- a/deps/icu-small/source/common/ucnv_err.c +++ b/deps/icu-small/source/common/ucnv_err.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * diff --git a/deps/icu-small/source/common/ucnv_ext.cpp b/deps/icu-small/source/common/ucnv_ext.cpp index 0c43693b357547..f8605187240159 100644 --- a/deps/icu-small/source/common/ucnv_ext.cpp +++ b/deps/icu-small/source/common/ucnv_ext.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -883,7 +885,7 @@ ucnv_extContinueMatchFromU(UConverter *cnv, } else { /* the match did not use all of preFromU[] - keep the rest for replay */ int32_t length=cnv->preFromULength-match; - uprv_memmove(cnv->preFromU, cnv->preFromU+match, length*U_SIZEOF_UCHAR); + u_memmove(cnv->preFromU, cnv->preFromU+match, length); cnv->preFromULength=(int8_t)-length; } diff --git a/deps/icu-small/source/common/ucnv_ext.h b/deps/icu-small/source/common/ucnv_ext.h index 69e0523cb0e2b8..e2ce7fa07293c4 100644 --- a/deps/icu-small/source/common/ucnv_ext.h +++ b/deps/icu-small/source/common/ucnv_ext.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnv_imp.h b/deps/icu-small/source/common/ucnv_imp.h index 27c373a98f5e9c..81aa80fd272409 100644 --- a/deps/icu-small/source/common/ucnv_imp.h +++ b/deps/icu-small/source/common/ucnv_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/common/ucnv_io.cpp b/deps/icu-small/source/common/ucnv_io.cpp index 50ffd5843d92fa..eaa08e47cd82cc 100644 --- a/deps/icu-small/source/common/ucnv_io.cpp +++ b/deps/icu-small/source/common/ucnv_io.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -379,8 +381,9 @@ static const uint8_t ebcdicTypes[128] = { # error U_CHARSET_FAMILY is not valid #endif + /* @see ucnv_compareNames */ -U_CFUNC char * U_EXPORT2 +U_CAPI char * U_CALLCONV ucnv_io_stripASCIIForCompare(char *dst, const char *name) { char *dstItr = dst; uint8_t type, nextType; @@ -415,7 +418,7 @@ ucnv_io_stripASCIIForCompare(char *dst, const char *name) { return dst; } -U_CFUNC char * U_EXPORT2 +U_CAPI char * U_CALLCONV ucnv_io_stripEBCDICForCompare(char *dst, const char *name) { char *dstItr = dst; uint8_t type, nextType; @@ -731,9 +734,7 @@ findTaggedConverterNum(const char *alias, const char *standard, UErrorCode *pErr return UINT32_MAX; } - - -U_CFUNC const char * +U_CAPI const char * ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *pErrorCode) { const char *aliasTmp = alias; int32_t i = 0; @@ -764,6 +765,9 @@ ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *p return NULL; } +U_CDECL_BEGIN + + static int32_t U_CALLCONV ucnv_io_countStandardAliases(UEnumeration *enumerator, UErrorCode * /*pErrorCode*/) { int32_t value = 0; @@ -776,7 +780,7 @@ ucnv_io_countStandardAliases(UEnumeration *enumerator, UErrorCode * /*pErrorCode return value; } -static const char* U_CALLCONV +static const char * U_CALLCONV ucnv_io_nextStandardAliases(UEnumeration *enumerator, int32_t* resultLength, UErrorCode * /*pErrorCode*/) @@ -814,6 +818,8 @@ ucnv_io_closeUEnumeration(UEnumeration *enumerator) { uprv_free(enumerator); } +U_CDECL_END + /* Enumerate the aliases for the specified converter and standard tag */ static const UEnumeration gEnumAliases = { NULL, @@ -1010,12 +1016,15 @@ ucnv_getCanonicalName(const char *alias, const char *standard, UErrorCode *pErro return NULL; } +U_CDECL_BEGIN + + static int32_t U_CALLCONV ucnv_io_countAllConverters(UEnumeration * /*enumerator*/, UErrorCode * /*pErrorCode*/) { return gMainTable.converterListSize; } -static const char* U_CALLCONV +static const char * U_CALLCONV ucnv_io_nextAllConverters(UEnumeration *enumerator, int32_t* resultLength, UErrorCode * /*pErrorCode*/) @@ -1040,7 +1049,7 @@ static void U_CALLCONV ucnv_io_resetAllConverters(UEnumeration *enumerator, UErrorCode * /*pErrorCode*/) { *((uint16_t *)(enumerator->context)) = 0; } - +U_CDECL_END static const UEnumeration gEnumAllConverters = { NULL, NULL, @@ -1075,7 +1084,7 @@ ucnv_openAllNames(UErrorCode *pErrorCode) { return myEnum; } -U_CFUNC uint16_t +U_CAPI uint16_t ucnv_io_countKnownConverters(UErrorCode *pErrorCode) { if (haveAliasData(pErrorCode)) { return (uint16_t)gMainTable.converterListSize; @@ -1085,7 +1094,11 @@ ucnv_io_countKnownConverters(UErrorCode *pErrorCode) { /* alias table swapping ----------------------------------------------------- */ +U_CDECL_BEGIN + typedef char * U_CALLCONV StripForCompareFn(char *dst, const char *name); +U_CDECL_END + /* * row of a temporary array @@ -1109,7 +1122,7 @@ enum { STACK_ROW_CAPACITY=500 }; -static int32_t +static int32_t U_CALLCONV io_compareRows(const void *context, const void *left, const void *right) { char strippedLeft[UCNV_MAX_CONVERTER_NAME_LENGTH], strippedRight[UCNV_MAX_CONVERTER_NAME_LENGTH]; @@ -1297,13 +1310,13 @@ ucnv_swapAliases(const UDataSwapper *ds, oldIndex=tempTable.rows[i].sortIndex; ds->swapArray16(ds, p+oldIndex, 2, r+i, pErrorCode); } - uprv_memcpy(q, r, 2*count); + uprv_memcpy(q, r, 2*(size_t)count); for(i=0; iswapArray16(ds, p2+oldIndex, 2, r+i, pErrorCode); } - uprv_memcpy(q2, r, 2*count); + uprv_memcpy(q2, r, 2*(size_t)count); } } diff --git a/deps/icu-small/source/common/ucnv_io.h b/deps/icu-small/source/common/ucnv_io.h index 060ffd05953db4..8b3585786d3238 100644 --- a/deps/icu-small/source/common/ucnv_io.h +++ b/deps/icu-small/source/common/ucnv_io.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2006, International Business Machines @@ -75,10 +77,10 @@ typedef struct UConverterAlias { # error U_CHARSET_FAMILY is not valid #endif -U_CAPI char * U_EXPORT2 +U_CAPI char * U_CALLCONV ucnv_io_stripASCIIForCompare(char *dst, const char *name); -U_CAPI char * U_EXPORT2 +U_CAPI char * U_CALLCONV ucnv_io_stripEBCDICForCompare(char *dst, const char *name); /** @@ -91,7 +93,7 @@ ucnv_io_stripEBCDICForCompare(char *dst, const char *name); * @param pErrorCode The error code * @return the converter name in mixed-case, return NULL if the alias is not found. */ -U_CFUNC const char * +U_CAPI const char * ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *pErrorCode); /** @@ -99,7 +101,7 @@ ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *p * @param pErrorCode The error code * @return the number of all aliases */ -U_CFUNC uint16_t +U_CAPI uint16_t ucnv_io_countKnownConverters(UErrorCode *pErrorCode); /** diff --git a/deps/icu-small/source/common/ucnv_lmb.c b/deps/icu-small/source/common/ucnv_lmb.c index 0879eecb081cd6..e595f931a08c09 100644 --- a/deps/icu-small/source/common/ucnv_lmb.c +++ b/deps/icu-small/source/common/ucnv_lmb.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2016, International Business Machines diff --git a/deps/icu-small/source/common/ucnv_set.c b/deps/icu-small/source/common/ucnv_set.c index 3d8d392729176d..c3933ab6109cbf 100644 --- a/deps/icu-small/source/common/ucnv_set.c +++ b/deps/icu-small/source/common/ucnv_set.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ucnv_u16.c b/deps/icu-small/source/common/ucnv_u16.c index 888b69aa45b60a..d8f4576f33763f 100644 --- a/deps/icu-small/source/common/ucnv_u16.c +++ b/deps/icu-small/source/common/ucnv_u16.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2015, International Business Machines @@ -621,7 +623,10 @@ static const UConverterImpl _UTF16BEImpl={ _UTF16BEGetName, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; static const UConverterStaticData _UTF16BEStaticData={ @@ -1217,7 +1222,10 @@ static const UConverterImpl _UTF16LEImpl={ _UTF16LEGetName, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; @@ -1486,7 +1494,10 @@ static const UConverterImpl _UTF16Impl = { _UTF16GetName, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; static const UConverterStaticData _UTF16StaticData = { @@ -1528,7 +1539,10 @@ static const UConverterImpl _UTF16v2Impl = { _UTF16GetName, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; static const UConverterStaticData _UTF16v2StaticData = { diff --git a/deps/icu-small/source/common/ucnv_u32.c b/deps/icu-small/source/common/ucnv_u32.c index fe4ea102830ad3..fa74b85c93c3b8 100644 --- a/deps/icu-small/source/common/ucnv_u32.c +++ b/deps/icu-small/source/common/ucnv_u32.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2015, International Business Machines @@ -480,7 +482,10 @@ static const UConverterImpl _UTF32BEImpl = { NULL, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; /* The 1232 CCSID refers to any version of Unicode with any endianess of UTF-32 */ @@ -972,7 +977,10 @@ static const UConverterImpl _UTF32LEImpl = { NULL, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; /* The 1232 CCSID refers to any version of Unicode with any endianess of UTF-32 */ @@ -1214,7 +1222,10 @@ static const UConverterImpl _UTF32Impl = { NULL, NULL, NULL, - ucnv_getNonSurrogateUnicodeSet + ucnv_getNonSurrogateUnicodeSet, + + NULL, + NULL }; /* The 1236 CCSID refers to any version of Unicode with a BOM sensitive endianess of UTF-32 */ diff --git a/deps/icu-small/source/common/ucnv_u7.c b/deps/icu-small/source/common/ucnv_u7.c index 448c43e2dc32d0..3c1d240ed89d6d 100644 --- a/deps/icu-small/source/common/ucnv_u7.c +++ b/deps/icu-small/source/common/ucnv_u7.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines @@ -760,7 +762,10 @@ static const UConverterImpl _UTF7Impl={ _UTF7GetName, NULL, /* we don't need writeSub() because we never call a callback at fromUnicode() */ NULL, - ucnv_getCompleteUnicodeSet + ucnv_getCompleteUnicodeSet, + + NULL, + NULL }; static const UConverterStaticData _UTF7StaticData={ diff --git a/deps/icu-small/source/common/ucnv_u8.c b/deps/icu-small/source/common/ucnv_u8.c index 88b4f5d05aa748..ff73993bd629ef 100644 --- a/deps/icu-small/source/common/ucnv_u8.c +++ b/deps/icu-small/source/common/ucnv_u8.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines @@ -1072,7 +1074,10 @@ static const UConverterImpl _CESU8Impl={ NULL, NULL, NULL, - ucnv_getCompleteUnicodeSet + ucnv_getCompleteUnicodeSet, + + NULL, + NULL }; static const UConverterStaticData _CESU8StaticData={ diff --git a/deps/icu-small/source/common/ucnvbocu.cpp b/deps/icu-small/source/common/ucnvbocu.cpp index 2b97c02c318eba..69763ca32136af 100644 --- a/deps/icu-small/source/common/ucnvbocu.cpp +++ b/deps/icu-small/source/common/ucnvbocu.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -386,7 +388,7 @@ packDiff(int32_t diff) { } -static void +static void U_CALLCONV _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, UErrorCode *pErrorCode) { UConverter *cnv; @@ -647,7 +649,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, * re-copy the original function and remove the variables * offsets, sourceIndex, and nextSourceIndex. */ -static void +static void U_CALLCONV _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, UErrorCode *pErrorCode) { UConverter *cnv; @@ -950,7 +952,7 @@ decodeBocu1TrailByte(int32_t count, int32_t b) { } } -static void +static void U_CALLCONV _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode) { UConverter *cnv; @@ -1173,7 +1175,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, * re-copy the original function and remove the variables * offsets, sourceIndex, and nextSourceIndex. */ -static void +static void U_CALLCONV _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode) { UConverter *cnv; diff --git a/deps/icu-small/source/common/ucnvdisp.c b/deps/icu-small/source/common/ucnvdisp.c index 4075be66da7645..e30f665f4a08e3 100644 --- a/deps/icu-small/source/common/ucnvdisp.c +++ b/deps/icu-small/source/common/ucnvdisp.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnvhz.c b/deps/icu-small/source/common/ucnvhz.c index 56b7ecf666e422..dc5785b2adc1f0 100644 --- a/deps/icu-small/source/common/ucnvhz.c +++ b/deps/icu-small/source/common/ucnvhz.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2015, International Business Machines diff --git a/deps/icu-small/source/common/ucnvisci.c b/deps/icu-small/source/common/ucnvisci.c index c0106f9800de5e..8b509153514eca 100644 --- a/deps/icu-small/source/common/ucnvisci.c +++ b/deps/icu-small/source/common/ucnvisci.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2016, International Business Machines diff --git a/deps/icu-small/source/common/ucnvlat1.c b/deps/icu-small/source/common/ucnvlat1.c index 30ebbeff37609b..fe11b1844c4613 100644 --- a/deps/icu-small/source/common/ucnvlat1.c +++ b/deps/icu-small/source/common/ucnvlat1.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2015, International Business Machines diff --git a/deps/icu-small/source/common/ucnvmbcs.cpp b/deps/icu-small/source/common/ucnvmbcs.cpp index a3b10744532cf5..0b598dbc34c256 100644 --- a/deps/icu-small/source/common/ucnvmbcs.cpp +++ b/deps/icu-small/source/common/ucnvmbcs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -375,53 +377,55 @@ typedef UBool U_CALLCONV UConverterEnumToUCallback(const void *context, uint32_t value, UChar32 codePoints[32]); -static void +static void U_CALLCONV ucnv_MBCSLoad(UConverterSharedData *sharedData, UConverterLoadArgs *pArgs, const uint8_t *raw, UErrorCode *pErrorCode); -static void +static void U_CALLCONV ucnv_MBCSUnload(UConverterSharedData *sharedData); -static void +static void U_CALLCONV ucnv_MBCSOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *pErrorCode); -static UChar32 +static UChar32 U_CALLCONV ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode); -static void +static void U_CALLCONV ucnv_MBCSGetStarters(const UConverter* cnv, UBool starters[256], UErrorCode *pErrorCode); -static const char * +U_CDECL_BEGIN +static const char* U_CALLCONV ucnv_MBCSGetName(const UConverter *cnv); +U_CDECL_END -static void +static void U_CALLCONV ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs, int32_t offsetIndex, UErrorCode *pErrorCode); -static UChar32 +static UChar32 U_CALLCONV ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode); -static void +static void U_CALLCONV ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, UConverterToUnicodeArgs *pToUArgs, UErrorCode *pErrorCode); -static void +static void U_CALLCONV ucnv_MBCSGetUnicodeSet(const UConverter *cnv, const USetAdder *sa, UConverterUnicodeSet which, UErrorCode *pErrorCode); -static void +static void U_CALLCONV ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, UConverterToUnicodeArgs *pToUArgs, UErrorCode *pErrorCode); @@ -503,7 +507,6 @@ static const UConverterImpl _MBCSImpl={ NULL }; - /* Static data is in tools/makeconv/ucnvstat.c for data-based * converters. Be sure to update it as well. */ @@ -1067,7 +1070,7 @@ ucnv_MBCSGetUnicodeSetForUnicode(const UConverterSharedData *sharedData, pErrorCode); } -static void +static void U_CALLCONV ucnv_MBCSGetUnicodeSet(const UConverter *cnv, const USetAdder *sa, UConverterUnicodeSet which, @@ -1547,7 +1550,7 @@ reconstituteData(UConverterMBCSTable *mbcsTable, /* MBCS setup functions ----------------------------------------------------- */ -static void +static void U_CALLCONV ucnv_MBCSLoad(UConverterSharedData *sharedData, UConverterLoadArgs *pArgs, const uint8_t *raw, @@ -1872,7 +1875,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, } } -static void +static void U_CALLCONV ucnv_MBCSUnload(UConverterSharedData *sharedData) { UConverterMBCSTable *mbcsTable=&sharedData->mbcs; @@ -1890,7 +1893,7 @@ ucnv_MBCSUnload(UConverterSharedData *sharedData) { } } -static void +static void U_CALLCONV ucnv_MBCSOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *pErrorCode) { @@ -1981,7 +1984,9 @@ ucnv_MBCSOpen(UConverter *cnv, #endif } -static const char * +U_CDECL_BEGIN + +static const char* U_CALLCONV ucnv_MBCSGetName(const UConverter *cnv) { if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0 && cnv->sharedData->mbcs.swapLFNLName!=NULL) { return cnv->sharedData->mbcs.swapLFNLName; @@ -1989,10 +1994,12 @@ ucnv_MBCSGetName(const UConverter *cnv) { return cnv->sharedData->staticData->name; } } +U_CDECL_END + /* MBCS-to-Unicode conversion functions ------------------------------------- */ -static UChar32 +static UChar32 U_CALLCONV ucnv_MBCSGetFallback(UConverterMBCSTable *mbcsTable, uint32_t offset) { const _MBCSToUFallback *toUFallbacks; uint32_t i, start, limit; @@ -2955,7 +2962,7 @@ ucnv_MBCSSingleGetNextUChar(UConverterToUnicodeArgs *pArgs, * * All normal mappings and errors are handled here. */ -static UChar32 +static UChar32 U_CALLCONV ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode) { UConverter *cnv; @@ -5012,7 +5019,7 @@ utf8_minLegal[5]={ 0, 0, 0x80, 0x800, 0x10000 }; static const UChar32 utf8_offsets[7]={ 0, 0, 0x3080, 0xE2080, 0x3C82080 }; -static void +static void U_CALLCONV ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, UConverterToUnicodeArgs *pToUArgs, UErrorCode *pErrorCode) { @@ -5318,7 +5325,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, pFromUArgs->target=(char *)target; } -static void +static void U_CALLCONV ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, UConverterToUnicodeArgs *pToUArgs, UErrorCode *pErrorCode) { @@ -5630,7 +5637,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* miscellaneous ------------------------------------------------------------ */ -static void +static void U_CALLCONV ucnv_MBCSGetStarters(const UConverter* cnv, UBool starters[256], UErrorCode *) { @@ -5653,7 +5660,7 @@ ucnv_MBCSIsLeadByte(UConverterSharedData *sharedData, char byte) { return (UBool)MBCS_ENTRY_IS_TRANSITION(sharedData->mbcs.stateTable[0][(uint8_t)byte]); } -static void +static void U_CALLCONV ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs, int32_t offsetIndex, UErrorCode *pErrorCode) { diff --git a/deps/icu-small/source/common/ucnvmbcs.h b/deps/icu-small/source/common/ucnvmbcs.h index df87bae16cff89..12d50b545cc67c 100644 --- a/deps/icu-small/source/common/ucnvmbcs.h +++ b/deps/icu-small/source/common/ucnvmbcs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnvscsu.c b/deps/icu-small/source/common/ucnvscsu.c index 36e33bde183a78..4228b44e7fb1e1 100644 --- a/deps/icu-small/source/common/ucnvscsu.c +++ b/deps/icu-small/source/common/ucnvscsu.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/ucnvsel.cpp b/deps/icu-small/source/common/ucnvsel.cpp index 353152a3f0f197..f6384cf7497297 100644 --- a/deps/icu-small/source/common/ucnvsel.cpp +++ b/deps/icu-small/source/common/ucnvsel.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ucol_data.h b/deps/icu-small/source/common/ucol_data.h index 023064624c6d82..cdd328eccabed7 100644 --- a/deps/icu-small/source/common/ucol_data.h +++ b/deps/icu-small/source/common/ucol_data.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2000-2011, International Business Machines diff --git a/deps/icu-small/source/common/ucol_swp.cpp b/deps/icu-small/source/common/ucol_swp.cpp index ab6ac7495ad12a..ddec0ec1c673b1 100644 --- a/deps/icu-small/source/common/ucol_swp.cpp +++ b/deps/icu-small/source/common/ucol_swp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ucol_swp.h b/deps/icu-small/source/common/ucol_swp.h index 855b40419dac5e..422436dd30717d 100644 --- a/deps/icu-small/source/common/ucol_swp.h +++ b/deps/icu-small/source/common/ucol_swp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ucurr.cpp b/deps/icu-small/source/common/ucurr.cpp index 4385db51ce0e69..41fd8aa212a174 100644 --- a/deps/icu-small/source/common/ucurr.cpp +++ b/deps/icu-small/source/common/ucurr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2016, International Business Machines @@ -117,7 +119,7 @@ U_NAMESPACE_BEGIN // EquivIterator iterates over all strings that are equivalent to a given // string, s. Note that EquivIterator will never yield s itself. -class EquivIterator : icu::UMemory { +class EquivIterator : public icu::UMemory { public: // Constructor. hash stores the equivalence relationships; s is the string // for which we find equivalent strings. @@ -414,7 +416,7 @@ struct CReg : public icu::UMemory { } uprv_strncpy(id, _id, len); id[len] = 0; - uprv_memcpy(iso, _iso, ISO_CURRENCY_CODE_LENGTH * sizeof(const UChar)); + u_memcpy(iso, _iso, ISO_CURRENCY_CODE_LENGTH); iso[ISO_CURRENCY_CODE_LENGTH] = 0; } @@ -938,7 +940,7 @@ toUpperCase(const UChar* source, int32_t len, const char* locale) { dest = (UChar*)uprv_malloc(sizeof(UChar) * MAX(destLen, len)); u_strToUpper(dest, destLen, source, len, locale, &ec); if (U_FAILURE(ec)) { - uprv_memcpy(dest, source, sizeof(UChar) * len); + u_memcpy(dest, source, len); } return dest; } @@ -1023,7 +1025,8 @@ collectCurrencyNames(const char* locale, (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = len; // Add equivalent symbols if (currencySymbolsEquiv != NULL) { - icu::EquivIterator iter(*currencySymbolsEquiv, UnicodeString(TRUE, s, len)); + UnicodeString str(TRUE, s, len); + icu::EquivIterator iter(*currencySymbolsEquiv, str); const UnicodeString *symbol; while ((symbol = iter.next()) != NULL) { (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso; diff --git a/deps/icu-small/source/common/ucurrimp.h b/deps/icu-small/source/common/ucurrimp.h index 9f5f2e3608f120..b35d6f47c62583 100644 --- a/deps/icu-small/source/common/ucurrimp.h +++ b/deps/icu-small/source/common/ucurrimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2016, International Business Machines diff --git a/deps/icu-small/source/common/udata.cpp b/deps/icu-small/source/common/udata.cpp index b48ff4f8066e9d..7585855171673b 100644 --- a/deps/icu-small/source/common/udata.cpp +++ b/deps/icu-small/source/common/udata.cpp @@ -1,7 +1,9 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * -* Copyright (C) 1999-2015, International Business Machines +* Copyright (C) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -77,7 +79,7 @@ U_NAMESPACE_USE /* * Forward declarations */ -static UDataMemory *udata_findCachedData(const char *path); +static UDataMemory *udata_findCachedData(const char *path, UErrorCode &err); /*********************************************************************** * @@ -132,13 +134,13 @@ udata_cleanup(void) } static UBool U_CALLCONV -findCommonICUDataByName(const char *inBasename) +findCommonICUDataByName(const char *inBasename, UErrorCode &err) { UBool found = FALSE; int32_t i; - UDataMemory *pData = udata_findCachedData(inBasename); - if (pData == NULL) + UDataMemory *pData = udata_findCachedData(inBasename, err); + if (U_FAILURE(err) || pData == NULL) return FALSE; { @@ -268,40 +270,41 @@ static void U_CALLCONV DataCacheElement_deleter(void *pDCEl) { uprv_free(pDCEl); /* delete 'this' */ } -static void udata_initHashTable() { - UErrorCode err = U_ZERO_ERROR; +static void U_CALLCONV udata_initHashTable(UErrorCode &err) { U_ASSERT(gCommonDataCache == NULL); gCommonDataCache = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &err); if (U_FAILURE(err)) { - // TODO: handle errors better. - gCommonDataCache = NULL; - } - if (gCommonDataCache != NULL) { - uhash_setValueDeleter(gCommonDataCache, DataCacheElement_deleter); - ucln_common_registerCleanup(UCLN_COMMON_UDATA, udata_cleanup); + return; } + U_ASSERT(gCommonDataCache != NULL); + uhash_setValueDeleter(gCommonDataCache, DataCacheElement_deleter); + ucln_common_registerCleanup(UCLN_COMMON_UDATA, udata_cleanup); } /* udata_getCacheHashTable() * Get the hash table used to store the data cache entries. * Lazy create it if it doesn't yet exist. */ -static UHashtable *udata_getHashTable() { - umtx_initOnce(gCommonDataCacheInitOnce, &udata_initHashTable); +static UHashtable *udata_getHashTable(UErrorCode &err) { + umtx_initOnce(gCommonDataCacheInitOnce, &udata_initHashTable, err); return gCommonDataCache; } -static UDataMemory *udata_findCachedData(const char *path) +static UDataMemory *udata_findCachedData(const char *path, UErrorCode &err) { UHashtable *htable; UDataMemory *retVal = NULL; DataCacheElement *el; const char *baseName; + htable = udata_getHashTable(err); + if (U_FAILURE(err)) { + return NULL; + } + baseName = findBasename(path); /* Cache remembers only the base name, not the full path. */ - htable = udata_getHashTable(); umtx_lock(NULL); el = (DataCacheElement *)uhash_get(htable, baseName); umtx_unlock(NULL); @@ -323,6 +326,7 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr DataCacheElement *oldValue = NULL; UErrorCode subErr = U_ZERO_ERROR; + htable = udata_getHashTable(*pErr); if (U_FAILURE(*pErr)) { return NULL; } @@ -355,7 +359,6 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr /* Stick the new DataCacheElement into the hash table. */ - htable = udata_getHashTable(); umtx_lock(NULL); oldValue = (DataCacheElement *)uhash_get(htable, path); if (oldValue != NULL) { @@ -393,9 +396,6 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr * * *----------------------------------------------------------------------*/ -#define U_DATA_PATHITER_BUFSIZ 128 /* Size of local buffer for paths */ - /* Overflow causes malloc of larger buf */ - U_NAMESPACE_BEGIN class UDataPathIterator @@ -717,18 +717,18 @@ openCommonData(const char *path, /* Path from OpenChoice? */ #ifdef UDATA_DEBUG fprintf(stderr, "ocd: no basename in %s, bailing.\n", path); #endif - *pErrorCode=U_FILE_ACCESS_ERROR; + if (U_SUCCESS(*pErrorCode)) { + *pErrorCode=U_FILE_ACCESS_ERROR; + } return NULL; } /* Is the requested common data file already open and cached? */ /* Note that the cache is keyed by the base name only. The rest of the path, */ /* if any, is not considered. */ - { - UDataMemory *dataToReturn = udata_findCachedData(inBasename); - if (dataToReturn != NULL) { - return dataToReturn; - } + UDataMemory *dataToReturn = udata_findCachedData(inBasename, *pErrorCode); + if (dataToReturn != NULL || U_FAILURE(*pErrorCode)) { + return dataToReturn; } /* Requested item is not in the cache. @@ -759,6 +759,9 @@ openCommonData(const char *path, /* Path from OpenChoice? */ } #endif + if (U_FAILURE(*pErrorCode)) { + return NULL; + } if (!UDataMemory_isLoaded(&tData)) { /* no common data */ *pErrorCode=U_FILE_ACCESS_ERROR; @@ -834,7 +837,7 @@ static UBool extendICUData(UErrorCode *pErr) umtx_storeRelease(gHaveTriedToLoadCommonData, 1); } - didUpdate = findCommonICUDataByName(U_ICUDATA_NAME); /* Return 'true' when a racing writes out the extended */ + didUpdate = findCommonICUDataByName(U_ICUDATA_NAME, *pErr); /* Return 'true' when a racing writes out the extended */ /* data after another thread has failed to see it (in openCommonData), so */ /* extended data can be examined. */ /* Also handles a race through here before gHaveTriedToLoadCommonData is set. */ @@ -1255,7 +1258,7 @@ doOpenChoice(const char *path, const char *type, const char *name, dataPath = u_getDataDirectory(); /**** Time zone individual files override */ - if (isTimeZoneFile(name, type) && isICUData) { + if (isICUData && isTimeZoneFile(name, type)) { const char *tzFilesDir = u_getTimeZoneFilesDirectory(pErrorCode); if (tzFilesDir[0] != 0) { #ifdef UDATA_DEBUG diff --git a/deps/icu-small/source/common/udatamem.c b/deps/icu-small/source/common/udatamem.c index ec6175d9857917..daa919373b71bb 100644 --- a/deps/icu-small/source/common/udatamem.c +++ b/deps/icu-small/source/common/udatamem.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/udatamem.h b/deps/icu-small/source/common/udatamem.h index 51372851f65173..385a77722cc87f 100644 --- a/deps/icu-small/source/common/udatamem.h +++ b/deps/icu-small/source/common/udatamem.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/udataswp.c b/deps/icu-small/source/common/udataswp.c index 06fe85bc463c0d..f47ac1f5e06f35 100644 --- a/deps/icu-small/source/common/udataswp.c +++ b/deps/icu-small/source/common/udataswp.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -298,7 +300,7 @@ udata_swapDataHeader(const UDataSwapper *ds, /* check minimum length and magic bytes */ pHeader=(const DataHeader *)inData; - if( (length>=0 && length=0 && length<(int32_t)sizeof(DataHeader)) || pHeader->dataHeader.magic1!=0xda || pHeader->dataHeader.magic2!=0x27 || pHeader->info.sizeofUChar!=2 @@ -425,7 +427,7 @@ udata_openSwapperForInputData(const void *data, int32_t length, return NULL; } if( data==NULL || - (length>=0 && length=0 && length<(int32_t)sizeof(DataHeader)) || outCharset>U_EBCDIC_FAMILY ) { *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; diff --git a/deps/icu-small/source/common/udataswp.h b/deps/icu-small/source/common/udataswp.h index 66c84955676708..07e06c221a7075 100644 --- a/deps/icu-small/source/common/udataswp.h +++ b/deps/icu-small/source/common/udataswp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -318,6 +320,20 @@ uprv_compareInvEbcdic(const UDataSwapper *ds, const char *outString, int32_t outLength, const UChar *localString, int32_t localLength); +/** + * \def uprv_compareInvWithUChar + * Compare an invariant-character strings with a UChar string + * @internal + */ +#if U_CHARSET_FAMILY==U_ASCII_FAMILY +# define uprv_compareInvWithUChar uprv_compareInvAscii +#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY +# define uprv_compareInvWithUChar uprv_compareInvEbcdic +#else +# error Unknown charset family! +#endif + + /* material... -------------------------------------------------------------- */ #if 0 diff --git a/deps/icu-small/source/common/uelement.h b/deps/icu-small/source/common/uelement.h index 5a6d723b192a95..9231f40ba1e8f2 100644 --- a/deps/icu-small/source/common/uelement.h +++ b/deps/icu-small/source/common/uelement.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2011, International Business Machines diff --git a/deps/icu-small/source/common/uenum.c b/deps/icu-small/source/common/uenum.c index 3ee8771040aaf1..4854b377c90872 100644 --- a/deps/icu-small/source/common/uenum.c +++ b/deps/icu-small/source/common/uenum.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uenumimp.h b/deps/icu-small/source/common/uenumimp.h index dd704b3f970221..04baac5dd13a34 100644 --- a/deps/icu-small/source/common/uenumimp.h +++ b/deps/icu-small/source/common/uenumimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uhash.c b/deps/icu-small/source/common/uhash.c index 9b6f446f1c07df..02572c80ea9f3b 100644 --- a/deps/icu-small/source/common/uhash.c +++ b/deps/icu-small/source/common/uhash.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2016, International Business Machines diff --git a/deps/icu-small/source/common/uhash.h b/deps/icu-small/source/common/uhash.h index e8f38958ac5501..4aa50e40853c81 100644 --- a/deps/icu-small/source/common/uhash.h +++ b/deps/icu-small/source/common/uhash.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines @@ -680,8 +682,8 @@ uhash_equals(const UHashtable* hash1, const UHashtable* hash2); U_NAMESPACE_BEGIN /** - * \class LocalUResourceBundlePointer - * "Smart pointer" class, closes a UResourceBundle via ures_close(). + * \class LocalUHashtablePointer + * "Smart pointer" class, closes a UHashtable via uhash_close(). * For most methods see the LocalPointerBase base class. * * @see LocalPointerBase diff --git a/deps/icu-small/source/common/uhash_us.cpp b/deps/icu-small/source/common/uhash_us.cpp index 71a41cbe29a2be..ac76c1b97821f6 100644 --- a/deps/icu-small/source/common/uhash_us.cpp +++ b/deps/icu-small/source/common/uhash_us.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2011, International Business Machines diff --git a/deps/icu-small/source/common/uidna.cpp b/deps/icu-small/source/common/uidna.cpp index 857c9fc417e863..2f133198491a9a 100644 --- a/deps/icu-small/source/common/uidna.cpp +++ b/deps/icu-small/source/common/uidna.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -316,7 +318,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, // Step 4: if the source is ASCII then proceed to step 8 if(srcIsASCII){ if(b1Len <= destCapacity){ - uprv_memmove(dest, b1, b1Len * U_SIZEOF_UCHAR); + u_memmove(dest, b1, b1Len); reqLength = b1Len; }else{ reqLength = b1Len; @@ -362,9 +364,9 @@ _internal_toASCII(const UChar* src, int32_t srcLength, goto CLEANUP; } //Step 7: prepend the ACE prefix - uprv_memcpy(dest,ACE_PREFIX,ACE_PREFIX_LENGTH * U_SIZEOF_UCHAR); + u_memcpy(dest, ACE_PREFIX, ACE_PREFIX_LENGTH); //Step 6: copy the contents in b2 into dest - uprv_memcpy(dest+ACE_PREFIX_LENGTH, b2, b2Len * U_SIZEOF_UCHAR); + u_memcpy(dest+ACE_PREFIX_LENGTH, b2, b2Len); }else{ *status = U_IDNA_ACE_PREFIX_ERROR; @@ -541,7 +543,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, //step 8: return output of step 5 reqLength = b2Len; if(b2Len <= destCapacity) { - uprv_memmove(dest, b2, b2Len * U_SIZEOF_UCHAR); + u_memmove(dest, b2, b2Len); } } else{ @@ -570,7 +572,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, // just return the source //copy the source to destination if(srcLength <= destCapacity){ - uprv_memmove(dest,src,srcLength * U_SIZEOF_UCHAR); + u_memmove(dest, src, srcLength); } reqLength = srcLength; } @@ -597,7 +599,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, if(dest && srcLength <= destCapacity){ // srcLength should have already been set earlier. U_ASSERT(srcLength >= 0); - uprv_memmove(dest,src,srcLength * U_SIZEOF_UCHAR); + u_memmove(dest, src, srcLength); } reqLength = srcLength; *status = U_ZERO_ERROR; diff --git a/deps/icu-small/source/common/uinit.cpp b/deps/icu-small/source/common/uinit.cpp index 901692864b3859..34e82a3db41752 100644 --- a/deps/icu-small/source/common/uinit.cpp +++ b/deps/icu-small/source/common/uinit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2015, International Business Machines diff --git a/deps/icu-small/source/common/uinvchar.c b/deps/icu-small/source/common/uinvchar.c index e0aa41306b1127..f1dbe4fe33e8f9 100644 --- a/deps/icu-small/source/common/uinvchar.c +++ b/deps/icu-small/source/common/uinvchar.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uinvchar.h b/deps/icu-small/source/common/uinvchar.h index 1a9aa78d54e651..19a3b2696e758b 100644 --- a/deps/icu-small/source/common/uinvchar.h +++ b/deps/icu-small/source/common/uinvchar.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uiter.cpp b/deps/icu-small/source/common/uiter.cpp index 2cc76a965fa91c..26ca877814d0e8 100644 --- a/deps/icu-small/source/common/uiter.cpp +++ b/deps/icu-small/source/common/uiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ulist.c b/deps/icu-small/source/common/ulist.c index ea00ac24efd61f..3b8e6c53ed583a 100644 --- a/deps/icu-small/source/common/ulist.c +++ b/deps/icu-small/source/common/ulist.c @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** -* Copyright (C) 2009-2014, International Business Machines +* Copyright (C) 2009-2016, International Business Machines * Corporation and others. All Rights Reserved. ****************************************************************************** */ @@ -63,18 +65,45 @@ static void ulist_addFirstItem(UList *list, UListNode *newItem) { newItem->previous = NULL; list->head = newItem; list->tail = newItem; +} + +static void ulist_removeItem(UList *list, UListNode *p) { + if (p->previous == NULL) { + // p is the list head. + list->head = p->next; + } else { + p->previous->next = p->next; + } + if (p->next == NULL) { + // p is the list tail. + list->tail = p->previous; + } else { + p->next->previous = p->previous; + } + list->curr = NULL; list->currentIndex = 0; + --list->size; + if (p->forceDelete) { + uprv_free(p->data); + } + uprv_free(p); } U_CAPI void U_EXPORT2 ulist_addItemEndList(UList *list, const void *data, UBool forceDelete, UErrorCode *status) { UListNode *newItem = NULL; if (U_FAILURE(*status) || list == NULL || data == NULL) { + if (forceDelete) { + uprv_free((void *)data); + } return; } newItem = (UListNode *)uprv_malloc(sizeof(UListNode)); if (newItem == NULL) { + if (forceDelete) { + uprv_free((void *)data); + } *status = U_MEMORY_ALLOCATION_ERROR; return; } @@ -97,11 +126,17 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBoo UListNode *newItem = NULL; if (U_FAILURE(*status) || list == NULL || data == NULL) { + if (forceDelete) { + uprv_free((void *)data); + } return; } newItem = (UListNode *)uprv_malloc(sizeof(UListNode)); if (newItem == NULL) { + if (forceDelete) { + uprv_free((void *)data); + } *status = U_MEMORY_ALLOCATION_ERROR; return; } @@ -122,25 +157,31 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBoo } U_CAPI UBool U_EXPORT2 ulist_containsString(const UList *list, const char *data, int32_t length) { - UBool result = FALSE; - const UListNode *pointer = NULL; - - if (list != NULL && list->size != 0) { - pointer = list->head; - - while (pointer != NULL) { + if (list != NULL) { + const UListNode *pointer; + for (pointer = list->head; pointer != NULL; pointer = pointer->next) { if (length == uprv_strlen(pointer->data)) { if (uprv_memcmp(data, pointer->data, length) == 0) { - result = TRUE; - break; + return TRUE; } } - - pointer = pointer->next; } } + return FALSE; +} - return result; +U_CAPI UBool U_EXPORT2 ulist_removeString(UList *list, const char *data) { + if (list != NULL) { + UListNode *pointer; + for (pointer = list->head; pointer != NULL; pointer = pointer->next) { + if (uprv_strcmp(data, pointer->data) == 0) { + ulist_removeItem(list, pointer); + // Remove only the first occurrence, like Java LinkedList.remove(Object). + return TRUE; + } + } + } + return FALSE; } U_CAPI void *U_EXPORT2 ulist_getNext(UList *list) { diff --git a/deps/icu-small/source/common/ulist.h b/deps/icu-small/source/common/ulist.h index 4789247e318404..6f292bf9dcaff1 100644 --- a/deps/icu-small/source/common/ulist.h +++ b/deps/icu-small/source/common/ulist.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** -* Copyright (C) 2009, International Business Machines +* Copyright (C) 2009-2016, International Business Machines * Corporation and others. All Rights Reserved. ****************************************************************************** */ @@ -22,6 +24,8 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBoo U_CAPI UBool U_EXPORT2 ulist_containsString(const UList *list, const char *data, int32_t length); +U_CAPI UBool U_EXPORT2 ulist_removeString(UList *list, const char *data); + U_CAPI void *U_EXPORT2 ulist_getNext(UList *list); U_CAPI int32_t U_EXPORT2 ulist_getListSize(const UList *list); diff --git a/deps/icu-small/source/common/ulistformatter.cpp b/deps/icu-small/source/common/ulistformatter.cpp index 6931cddfe07c06..98aa50e25fb604 100644 --- a/deps/icu-small/source/common/ulistformatter.cpp +++ b/deps/icu-small/source/common/ulistformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/common/uloc.cpp b/deps/icu-small/source/common/uloc.cpp index 90c12b4f0d54c4..2a02b27c5ba1f7 100644 --- a/deps/icu-small/source/common/uloc.cpp +++ b/deps/icu-small/source/common/uloc.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -45,6 +47,8 @@ #include /* for sprintf */ +using namespace icu; + /* ### Declarations **************************************************/ /* Locale stuff from locid.cpp */ @@ -1470,6 +1474,8 @@ typedef struct UKeywordsContext { char* current; } UKeywordsContext; +U_CDECL_BEGIN + static void U_CALLCONV uloc_kw_closeKeywords(UEnumeration *enumerator) { uprv_free(((UKeywordsContext *)enumerator->context)->keywords); @@ -1488,7 +1494,7 @@ uloc_kw_countKeywords(UEnumeration *en, UErrorCode * /*status*/) { return result; } -static const char* U_CALLCONV +static const char * U_CALLCONV uloc_kw_nextKeyword(UEnumeration* en, int32_t* resultLength, UErrorCode* /*status*/) { @@ -1512,6 +1518,9 @@ uloc_kw_resetKeywords(UEnumeration* en, ((UKeywordsContext *)en->context)->current = ((UKeywordsContext *)en->context)->keywords; } +U_CDECL_END + + static const UEnumeration gKeywordsEnum = { NULL, NULL, @@ -2246,7 +2255,7 @@ _uloc_strtod(const char *start, char **end) { typedef struct { float q; int32_t dummy; /* to avoid uninitialized memory copy from qsort */ - char *locale; + char locale[ULOC_FULLNAME_CAPACITY+1]; } _acceptLangItem; static int32_t U_CALLCONV @@ -2288,9 +2297,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult UEnumeration* availableLocales, UErrorCode *status) { - _acceptLangItem *j; - _acceptLangItem smallBuffer[30]; - char **strs; + MaybeStackArray<_acceptLangItem, 4> items; // Struct for collecting items. char tmp[ULOC_FULLNAME_CAPACITY +1]; int32_t n = 0; const char *itemEnd; @@ -2300,11 +2307,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult int32_t res; int32_t i; int32_t l = (int32_t)uprv_strlen(httpAcceptLanguage); - int32_t jSize; - char *tempstr; /* Use for null pointer check */ - j = smallBuffer; - jSize = UPRV_LENGTHOF(smallBuffer); if(U_FAILURE(*status)) { return -1; } @@ -2332,27 +2335,29 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult while(isspace(*t)) { t++; } - j[n].q = (float)_uloc_strtod(t,NULL); + items[n].q = (float)_uloc_strtod(t,NULL); } else { /* no semicolon - it's 1.0 */ - j[n].q = 1.0f; + items[n].q = 1.0f; paramEnd = itemEnd; } - j[n].dummy=0; + items[n].dummy=0; /* eat spaces prior to semi */ for(t=(paramEnd-1);(paramEnd>s)&&isspace(*t);t--) ; - /* Check for null pointer from uprv_strndup */ - tempstr = uprv_strndup(s,(int32_t)((t+1)-s)); - if (tempstr == NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - return -1; - } - j[n].locale = tempstr; - uloc_canonicalize(j[n].locale,tmp,UPRV_LENGTHOF(tmp),status); - if(strcmp(j[n].locale,tmp)) { - uprv_free(j[n].locale); - j[n].locale=uprv_strdup(tmp); + int32_t slen = ((t+1)-s); + if(slen > ULOC_FULLNAME_CAPACITY) { + *status = U_BUFFER_OVERFLOW_ERROR; + return -1; // too big + } + uprv_strncpy(items[n].locale, s, slen); + items[n].locale[slen]=0; // terminate + int32_t clen = uloc_canonicalize(items[n].locale, tmp, UPRV_LENGTHOF(tmp)-1, status); + if(U_FAILURE(*status)) return -1; + if((clen!=slen) || (uprv_strncmp(items[n].locale, tmp, slen))) { + // canonicalization had an effect- copy back + uprv_strncpy(items[n].locale, tmp, clen); + items[n].locale[clen] = 0; // terminate } #if defined(ULOC_DEBUG) /*fprintf(stderr,"%d: s <%s> q <%g>\n", n, j[n].locale, j[n].q);*/ @@ -2362,42 +2367,22 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult while(*s==',') { /* eat duplicate commas */ s++; } - if(n>=jSize) { - if(j==smallBuffer) { /* overflowed the small buffer. */ - j = static_cast<_acceptLangItem *>(uprv_malloc(sizeof(j[0])*(jSize*2))); - if(j!=NULL) { - uprv_memcpy(j,smallBuffer,sizeof(j[0])*jSize); - } -#if defined(ULOC_DEBUG) - fprintf(stderr,"malloced at size %d\n", jSize); -#endif - } else { - j = static_cast<_acceptLangItem *>(uprv_realloc(j, sizeof(j[0])*jSize*2)); + if(n>=items.getCapacity()) { // If we need more items + if(NULL == items.resize(items.getCapacity()*2, items.getCapacity())) { + *status = U_MEMORY_ALLOCATION_ERROR; + return -1; + } #if defined(ULOC_DEBUG) - fprintf(stderr,"re-alloced at size %d\n", jSize); + fprintf(stderr,"malloced at size %d\n", items.getCapacity()); #endif - } - jSize *= 2; - if(j==NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - return -1; - } } } - uprv_sortArray(j, n, sizeof(j[0]), uloc_acceptLanguageCompare, NULL, TRUE, status); - if(U_FAILURE(*status)) { - if(j != smallBuffer) { -#if defined(ULOC_DEBUG) - fprintf(stderr,"freeing j %p\n", j); -#endif - uprv_free(j); - } + uprv_sortArray(items.getAlias(), n, sizeof(items[0]), uloc_acceptLanguageCompare, NULL, TRUE, status); + if (U_FAILURE(*status)) { return -1; } - strs = static_cast(uprv_malloc((size_t)(sizeof(strs[0])*n))); - /* Check for null pointer */ - if (strs == NULL) { - uprv_free(j); /* Free to avoid memory leak */ + LocalMemory strs(NULL); + if (strs.allocateInsteadAndReset(n) == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; return -1; } @@ -2405,20 +2390,10 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult #if defined(ULOC_DEBUG) /*fprintf(stderr,"%d: s <%s> q <%g>\n", i, j[i].locale, j[i].q);*/ #endif - strs[i]=j[i].locale; + strs[i]=items[i].locale; } res = uloc_acceptLanguage(result, resultAvailable, outResult, - (const char**)strs, n, availableLocales, status); - for(i=0;ikey); } else { cmp = uprv_compareInvCharsAsAscii(ext->key, cur->key); + /* Both are u extension keys - we need special handling for 'attribute' */ + if (cmp != 0) { + if (uprv_strcmp(cur->key, LOCALE_ATTRIBUTE_KEY) == 0) { + cmp = 1; + } else if (uprv_strcmp(ext->key, LOCALE_ATTRIBUTE_KEY) == 0) { + cmp = -1; + } + } } } else { cmp = uprv_compareInvCharsAsAscii(ext->key, cur->key); @@ -892,7 +903,6 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac char buf[ULOC_KEYWORD_AND_VALUES_CAPACITY]; char attrBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY] = { 0 }; int32_t attrBufLength = 0; - UBool isAttribute = FALSE; UEnumeration *keywordEnum = NULL; int32_t reslen = 0; @@ -919,7 +929,6 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac UBool isBcpUExt; while (TRUE) { - isAttribute = FALSE; key = uenum_next(keywordEnum, NULL, status); if (key == NULL) { break; @@ -941,7 +950,6 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac /* special keyword used for representing Unicode locale attributes */ if (uprv_strcmp(key, LOCALE_ATTRIBUTE_KEY) == 0) { - isAttribute = TRUE; if (len > 0) { int32_t i = 0; while (TRUE) { @@ -984,6 +992,9 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac } } } + /* for a place holder ExtensionListEntry */ + bcpKey = LOCALE_ATTRIBUTE_KEY; + bcpValue = NULL; } } else if (isBcpUExt) { bcpKey = uloc_toUnicodeLocaleKey(key); @@ -1063,22 +1074,20 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac } } - if (!isAttribute) { - /* create ExtensionListEntry */ - ext = (ExtensionListEntry*)uprv_malloc(sizeof(ExtensionListEntry)); - if (ext == NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - break; - } - ext->key = bcpKey; - ext->value = bcpValue; + /* create ExtensionListEntry */ + ext = (ExtensionListEntry*)uprv_malloc(sizeof(ExtensionListEntry)); + if (ext == NULL) { + *status = U_MEMORY_ALLOCATION_ERROR; + break; + } + ext->key = bcpKey; + ext->value = bcpValue; - if (!_addExtensionToList(&firstExt, ext, TRUE)) { - uprv_free(ext); - if (strict) { - *status = U_ILLEGAL_ARGUMENT_ERROR; - break; - } + if (!_addExtensionToList(&firstExt, ext, TRUE)) { + uprv_free(ext); + if (strict) { + *status = U_ILLEGAL_ARGUMENT_ERROR; + break; } } } @@ -1101,12 +1110,9 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac if (U_SUCCESS(*status) && (firstExt != NULL || firstAttr != NULL)) { UBool startLDMLExtension = FALSE; - - attr = firstAttr; - ext = firstExt; - do { - if (!startLDMLExtension && (ext && uprv_strlen(ext->key) > 1)) { - /* write LDML singleton extension */ + for (ext = firstExt; ext; ext = ext->next) { + if (!startLDMLExtension && uprv_strlen(ext->key) > 1) { + /* first LDML u singlton extension */ if (reslen < capacity) { *(appendAt + reslen) = SEP; } @@ -1120,7 +1126,20 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac } /* write out the sorted BCP47 attributes, extensions and private use */ - if (ext && (uprv_strlen(ext->key) == 1 || attr == NULL)) { + if (uprv_strcmp(ext->key, LOCALE_ATTRIBUTE_KEY) == 0) { + /* write the value for the attributes */ + for (attr = firstAttr; attr; attr = attr->next) { + if (reslen < capacity) { + *(appendAt + reslen) = SEP; + } + reslen++; + len = (int32_t)uprv_strlen(attr->attribute); + if (reslen < capacity) { + uprv_memcpy(appendAt + reslen, attr->attribute, uprv_min(len, capacity - reslen)); + } + reslen += len; + } + } else { if (reslen < capacity) { *(appendAt + reslen) = SEP; } @@ -1139,23 +1158,8 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac uprv_memcpy(appendAt + reslen, ext->value, uprv_min(len, capacity - reslen)); } reslen += len; - - ext = ext->next; - } else if (attr) { - /* write the value for the attributes */ - if (reslen < capacity) { - *(appendAt + reslen) = SEP; - } - reslen++; - len = (int32_t)uprv_strlen(attr->attribute); - if (reslen < capacity) { - uprv_memcpy(appendAt + reslen, attr->attribute, uprv_min(len, capacity - reslen)); - } - reslen += len; - - attr = attr->next; } - } while (attr != NULL || ext != NULL); + } } cleanup: /* clean up */ @@ -1771,6 +1775,15 @@ _appendPrivateuseToLanguageTag(const char* localeID, char* appendAt, int32_t cap #define EXTV 0x0040 #define PRIV 0x0080 +/** + * Ticket #12705 - Visual Studio 2015 Update 3 contains a new code optimizer which has problems optimizing + * this function. (See https://blogs.msdn.microsoft.com/vcblog/2016/05/04/new-code-optimizer/ ) + * As a workaround, we will turn off optimization just for this function on VS2015 Update 3 and above. + */ +#if (defined(_MSC_VER) && (_MSC_VER >= 1900) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 190024210)) +#pragma optimize( "", off ) +#endif + static ULanguageTag* ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* status) { ULanguageTag *t; @@ -2134,6 +2147,13 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta return NULL; } +/** +* Ticket #12705 - Turn optimization back on. +*/ +#if (defined(_MSC_VER) && (_MSC_VER >= 1900) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 190024210)) +#pragma optimize( "", on ) +#endif + static void ultag_close(ULanguageTag* langtag) { diff --git a/deps/icu-small/source/common/ulocimp.h b/deps/icu-small/source/common/ulocimp.h index 36713e69be1b7b..26d5c7963e0862 100644 --- a/deps/icu-small/source/common/ulocimp.h +++ b/deps/icu-small/source/common/ulocimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2004-2016, International Business Machines diff --git a/deps/icu-small/source/common/umapfile.c b/deps/icu-small/source/common/umapfile.c index 016758892992dc..377b14d30f2df8 100644 --- a/deps/icu-small/source/common/umapfile.c +++ b/deps/icu-small/source/common/umapfile.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/umapfile.h b/deps/icu-small/source/common/umapfile.h index 2995e381ed30c0..70a6cc5f861784 100644 --- a/deps/icu-small/source/common/umapfile.h +++ b/deps/icu-small/source/common/umapfile.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/umath.c b/deps/icu-small/source/common/umath.c index 9e540d4d8d7a82..86f58819e067ac 100644 --- a/deps/icu-small/source/common/umath.c +++ b/deps/icu-small/source/common/umath.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/umutex.cpp b/deps/icu-small/source/common/umutex.cpp index cffa109d6348cf..13569cb075fa58 100644 --- a/deps/icu-small/source/common/umutex.cpp +++ b/deps/icu-small/source/common/umutex.cpp @@ -1,7 +1,9 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * -* Copyright (C) 1997-2015, International Business Machines +* Copyright (C) 1997-2016, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -37,16 +39,7 @@ static UMutex globalMutex = U_MUTEX_INITIALIZER; // Build time user mutex hook: #include "U_USER_MUTEX_CPP" #include U_MUTEX_XSTR(U_USER_MUTEX_CPP) -#elif U_PLATFORM_HAS_WIN32_API - -//------------------------------------------------------------------------------------------- -// -// Windows Specific Definitions -// -// Note: Cygwin (and possibly others) have both WIN32 and POSIX. -// Prefer Win32 in these cases. (Win32 comes ahead in the #if chain) -// -//------------------------------------------------------------------------------------------- +#elif U_PLATFORM_USES_ONLY_WIN32_API #if defined U_NO_PLATFORM_ATOMICS #error ICU on Win32 requires support for low level atomic operations. @@ -68,10 +61,8 @@ U_NAMESPACE_BEGIN U_COMMON_API UBool U_EXPORT2 umtx_initImplPreInit(UInitOnce &uio) { for (;;) { int32_t previousState = InterlockedCompareExchange( -#if (U_PLATFORM == U_PF_MINGW) || (U_PLATFORM == U_PF_CYGWIN) || defined(__clang__) - (LONG volatile *) // this is the type given in the API doc for this function. -#endif - &uio.fState, // Destination + (LONG volatile *) // this is the type given in the API doc for this function. + &uio.fState, // Destination 1, // Exchange Value 0); // Compare value diff --git a/deps/icu-small/source/common/umutex.h b/deps/icu-small/source/common/umutex.h index f670b3d13ff371..d6618ed76621fb 100644 --- a/deps/icu-small/source/common/umutex.h +++ b/deps/icu-small/source/common/umutex.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2015, International Business Machines @@ -229,7 +231,7 @@ struct UInitOnce { U_COMMON_API UBool U_EXPORT2 umtx_initImplPreInit(UInitOnce &); U_COMMON_API void U_EXPORT2 umtx_initImplPostInit(UInitOnce &); -template void umtx_initOnce(UInitOnce &uio, T *obj, void (T::*fp)()) { +template void umtx_initOnce(UInitOnce &uio, T *obj, void (U_CALLCONV T::*fp)()) { if (umtx_loadAcquire(uio.fState) == 2) { return; } @@ -242,7 +244,7 @@ template void umtx_initOnce(UInitOnce &uio, T *obj, void (T::*fp)()) { // umtx_initOnce variant for plain functions, or static class functions. // No context parameter. -inline void umtx_initOnce(UInitOnce &uio, void (*fp)()) { +inline void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)()) { if (umtx_loadAcquire(uio.fState) == 2) { return; } @@ -254,7 +256,7 @@ inline void umtx_initOnce(UInitOnce &uio, void (*fp)()) { // umtx_initOnce variant for plain functions, or static class functions. // With ErrorCode, No context parameter. -inline void umtx_initOnce(UInitOnce &uio, void (*fp)(UErrorCode &), UErrorCode &errCode) { +inline void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)(UErrorCode &), UErrorCode &errCode) { if (U_FAILURE(errCode)) { return; } @@ -273,7 +275,7 @@ inline void umtx_initOnce(UInitOnce &uio, void (*fp)(UErrorCode &), UErrorCode & // umtx_initOnce variant for plain functions, or static class functions, // with a context parameter. -template void umtx_initOnce(UInitOnce &uio, void (*fp)(T), T context) { +template void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)(T), T context) { if (umtx_loadAcquire(uio.fState) == 2) { return; } @@ -285,7 +287,7 @@ template void umtx_initOnce(UInitOnce &uio, void (*fp)(T), T context) { // umtx_initOnce variant for plain functions, or static class functions, // with a context parameter and an error code. -template void umtx_initOnce(UInitOnce &uio, void (*fp)(T, UErrorCode &), T context, UErrorCode &errCode) { +template void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)(T, UErrorCode &), T context, UErrorCode &errCode) { if (U_FAILURE(errCode)) { return; } @@ -318,13 +320,7 @@ U_NAMESPACE_END // #inlcude "U_USER_MUTEX_H" #include U_MUTEX_XSTR(U_USER_MUTEX_H) -#elif U_PLATFORM_HAS_WIN32_API - -/* Windows Definitions. - * Windows comes first in the platform chain. - * Cygwin (and possibly others) have both WIN32 and POSIX APIs. Prefer Win32 in this case. - */ - +#elif U_PLATFORM_USES_ONLY_WIN32_API /* For CRITICAL_SECTION */ diff --git a/deps/icu-small/source/common/unames.cpp b/deps/icu-small/source/common/unames.cpp index 58d1a39bf55b31..b8c4151f42ccc7 100644 --- a/deps/icu-small/source/common/unames.cpp +++ b/deps/icu-small/source/common/unames.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/appendable.h b/deps/icu-small/source/common/unicode/appendable.h index a6a83b15cf9719..2ae334505ef1f5 100644 --- a/deps/icu-small/source/common/unicode/appendable.h +++ b/deps/icu-small/source/common/unicode/appendable.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2012, International Business Machines diff --git a/deps/icu-small/source/common/unicode/brkiter.h b/deps/icu-small/source/common/unicode/brkiter.h index 26ad182eafff56..88b39c6699b2f6 100644 --- a/deps/icu-small/source/common/unicode/brkiter.h +++ b/deps/icu-small/source/common/unicode/brkiter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -168,6 +170,11 @@ class U_COMMON_API BreakIterator : public UObject { /** * Change the text over which this operates. The text boundary is * reset to the start. + * + * The BreakIterator will retain a reference to the supplied string. + * The caller must not modify or delete the text while the BreakIterator + * retains the reference. + * * @param text The UnicodeString used to change the text. * @stable ICU 2.0 */ diff --git a/deps/icu-small/source/common/unicode/bytestream.h b/deps/icu-small/source/common/unicode/bytestream.h index cdab0ec743577a..4e404a6edc737b 100644 --- a/deps/icu-small/source/common/unicode/bytestream.h +++ b/deps/icu-small/source/common/unicode/bytestream.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (C) 2009-2012, International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/common/unicode/bytestrie.h b/deps/icu-small/source/common/unicode/bytestrie.h index 9c7782740dba27..4a30ce1c0428b5 100644 --- a/deps/icu-small/source/common/unicode/bytestrie.h +++ b/deps/icu-small/source/common/unicode/bytestrie.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines @@ -306,7 +308,7 @@ class U_COMMON_API BytesTrie : public UMemory { * @return The NUL-terminated byte sequence for the last successful next(). * @stable ICU 4.8 */ - const StringPiece &getString() const { return sp_; } + StringPiece getString() const; /** * @return The value for the last successful next(). * @stable ICU 4.8 @@ -325,7 +327,6 @@ class U_COMMON_API BytesTrie : public UMemory { int32_t initialRemainingMatchLength_; CharString *str_; - StringPiece sp_; int32_t maxLength_; int32_t value_; diff --git a/deps/icu-small/source/common/unicode/bytestriebuilder.h b/deps/icu-small/source/common/unicode/bytestriebuilder.h index e7fbd6b23713e0..3ad800975b778c 100644 --- a/deps/icu-small/source/common/unicode/bytestriebuilder.h +++ b/deps/icu-small/source/common/unicode/bytestriebuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2016, International Business Machines @@ -29,7 +31,6 @@ U_NAMESPACE_BEGIN class BytesTrieElement; class CharString; - /** * Builder class for BytesTrie. * @@ -65,7 +66,7 @@ class U_COMMON_API BytesTrieBuilder : public StringTrieBuilder { * @return *this * @stable ICU 4.8 */ - BytesTrieBuilder &add(const StringPiece &s, int32_t value, UErrorCode &errorCode); + BytesTrieBuilder &add(StringPiece s, int32_t value, UErrorCode &errorCode); /** * Builds a BytesTrie for the add()ed data. @@ -141,7 +142,6 @@ class U_COMMON_API BytesTrieBuilder : public StringTrieBuilder { virtual int32_t getMinLinearMatch() const { return BytesTrie::kMinLinearMatch; } virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLinearMatchLength; } - // don't use #ifndef U_HIDE_INTERNAL_API with private class members /** * @internal */ diff --git a/deps/icu-small/source/common/unicode/caniter.h b/deps/icu-small/source/common/unicode/caniter.h index 31fcea312ada02..b988b2003d73a8 100644 --- a/deps/icu-small/source/common/unicode/caniter.h +++ b/deps/icu-small/source/common/unicode/caniter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unicode/chariter.h b/deps/icu-small/source/common/unicode/chariter.h index a955ad52a40d0c..7c6f98f640eada 100644 --- a/deps/icu-small/source/common/unicode/chariter.h +++ b/deps/icu-small/source/common/unicode/chariter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************** * diff --git a/deps/icu-small/source/common/unicode/dbbi.h b/deps/icu-small/source/common/unicode/dbbi.h index ebc80fa9ac2ad9..be9618c551c7dc 100644 --- a/deps/icu-small/source/common/unicode/dbbi.h +++ b/deps/icu-small/source/common/unicode/dbbi.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2006,2013 IBM Corp. All rights reserved. diff --git a/deps/icu-small/source/common/unicode/docmain.h b/deps/icu-small/source/common/unicode/docmain.h index 5e804bc1707827..7b053b04640df2 100644 --- a/deps/icu-small/source/common/unicode/docmain.h +++ b/deps/icu-small/source/common/unicode/docmain.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2012, International Business Machines Corporation and @@ -147,7 +149,7 @@ * * * Bidirectional Algorithm - * ubidi.h + * ubidi.h, ubiditransform.h * C API * * diff --git a/deps/icu-small/source/common/unicode/dtintrv.h b/deps/icu-small/source/common/unicode/dtintrv.h index 0212fa236ac55d..c16ee63d9632e6 100644 --- a/deps/icu-small/source/common/unicode/dtintrv.h +++ b/deps/icu-small/source/common/unicode/dtintrv.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2009, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unicode/enumset.h b/deps/icu-small/source/common/unicode/enumset.h index 715ca57c1f2b53..e7c39c40dd2586 100644 --- a/deps/icu-small/source/common/unicode/enumset.h +++ b/deps/icu-small/source/common/unicode/enumset.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/errorcode.h b/deps/icu-small/source/common/unicode/errorcode.h index 3fcbb7e0436f3c..92feb2b1b6b87e 100644 --- a/deps/icu-small/source/common/unicode/errorcode.h +++ b/deps/icu-small/source/common/unicode/errorcode.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/filteredbrk.h b/deps/icu-small/source/common/unicode/filteredbrk.h index fff9bb5771f3f8..261151138cdc8f 100644 --- a/deps/icu-small/source/common/unicode/filteredbrk.h +++ b/deps/icu-small/source/common/unicode/filteredbrk.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2015, International Business Machines @@ -13,8 +15,6 @@ #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION -#ifndef U_HIDE_DRAFT_API - U_NAMESPACE_BEGIN /** @@ -31,13 +31,13 @@ U_NAMESPACE_BEGIN * but with "Mr." as an exception, a filtered break iterator * would consider the string "Mr. Smith" to be a single segment. * - * @draft ICU 56 + * @stable ICU 56 */ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { public: /** * destructor. - * @draft ICU 56 + * @stable ICU 56 */ virtual ~FilteredBreakIteratorBuilder(); @@ -51,7 +51,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { * @param where the locale. * @param status The error code. * @return the new builder - * @draft ICU 56 + * @stable ICU 56 */ static FilteredBreakIteratorBuilder *createInstance(const Locale& where, UErrorCode& status); @@ -60,7 +60,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { * In this state, it will not suppress any segment boundaries. * @param status The error code. * @return the new builder - * @draft ICU 56 + * @stable ICU 56 */ static FilteredBreakIteratorBuilder *createInstance(UErrorCode &status); @@ -72,7 +72,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { * @param status error code * @return returns TRUE if the string was not present and now added, * FALSE if the call was a no-op because the string was already being suppressed. - * @draft ICU 56 + * @stable ICU 56 */ virtual UBool suppressBreakAfter(const UnicodeString& string, UErrorCode& status) = 0; @@ -85,7 +85,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { * @param status error code * @return returns TRUE if the string was present and now removed, * FALSE if the call was a no-op because the string was not being suppressed. - * @draft ICU 56 + * @stable ICU 56 */ virtual UBool unsuppressBreakAfter(const UnicodeString& string, UErrorCode& status) = 0; @@ -99,14 +99,14 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { * @param adoptBreakIterator the break iterator to adopt * @param status error code * @return the new BreakIterator, owned by the caller. - * @draft ICU 56 + * @stable ICU 56 */ virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status) = 0; protected: /** * For subclass use - * @draft ICU 56 + * @stable ICU 56 */ FilteredBreakIteratorBuilder(); }; @@ -114,8 +114,6 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject { U_NAMESPACE_END -#endif /* U_HIDE_DRAFT_API */ - #endif // #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION #endif // #ifndef FILTEREDBRK_H diff --git a/deps/icu-small/source/common/unicode/icudataver.h b/deps/icu-small/source/common/unicode/icudataver.h index 485c07081dd390..c5c44fc0754f15 100644 --- a/deps/icu-small/source/common/unicode/icudataver.h +++ b/deps/icu-small/source/common/unicode/icudataver.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/icuplug.h b/deps/icu-small/source/common/unicode/icuplug.h index 3b33a3608b9ad5..ff5e054d38e24b 100644 --- a/deps/icu-small/source/common/unicode/icuplug.h +++ b/deps/icu-small/source/common/unicode/icuplug.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -157,7 +159,11 @@ typedef enum { UPLUG_REASON_QUERY = 0, /**< The plugin is being queried for info. **/ UPLUG_REASON_LOAD = 1, /**< The plugin is being loaded. **/ UPLUG_REASON_UNLOAD = 2, /**< The plugin is being unloaded. **/ - UPLUG_REASON_COUNT /**< count of known reasons **/ + /** + * Number of known reasons. + * @internal The numeric value may change over time, see ICU ticket #12420. + */ + UPLUG_REASON_COUNT } UPlugReason; @@ -173,7 +179,11 @@ typedef enum { UPLUG_LEVEL_UNKNOWN = 1, /**< The plugin is waiting to be installed. **/ UPLUG_LEVEL_LOW = 2, /**< The plugin must be called before u_init completes **/ UPLUG_LEVEL_HIGH = 3, /**< The plugin can run at any time. **/ - UPLUG_LEVEL_COUNT /**< count of known reasons **/ + /** + * Number of known levels. + * @internal The numeric value may change over time, see ICU ticket #12420. + */ + UPLUG_LEVEL_COUNT } UPlugLevel; /** diff --git a/deps/icu-small/source/common/unicode/idna.h b/deps/icu-small/source/common/unicode/idna.h index 90194a378f3825..23a1d7ca0e8441 100644 --- a/deps/icu-small/source/common/unicode/idna.h +++ b/deps/icu-small/source/common/unicode/idna.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines @@ -198,7 +200,7 @@ class U_COMMON_API IDNA : public UObject { * @stable ICU 4.6 */ virtual void - labelToASCII_UTF8(const StringPiece &label, ByteSink &dest, + labelToASCII_UTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; /** @@ -216,7 +218,7 @@ class U_COMMON_API IDNA : public UObject { * @stable ICU 4.6 */ virtual void - labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest, + labelToUnicodeUTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; /** @@ -234,7 +236,7 @@ class U_COMMON_API IDNA : public UObject { * @stable ICU 4.6 */ virtual void - nameToASCII_UTF8(const StringPiece &name, ByteSink &dest, + nameToASCII_UTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; /** @@ -252,7 +254,7 @@ class U_COMMON_API IDNA : public UObject { * @stable ICU 4.6 */ virtual void - nameToUnicodeUTF8(const StringPiece &name, ByteSink &dest, + nameToUnicodeUTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; }; diff --git a/deps/icu-small/source/common/unicode/listformatter.h b/deps/icu-small/source/common/unicode/listformatter.h index cb5d50d7a2e975..f2c898881a7939 100644 --- a/deps/icu-small/source/common/unicode/listformatter.h +++ b/deps/icu-small/source/common/unicode/listformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/localpointer.h b/deps/icu-small/source/common/unicode/localpointer.h index 35e37765c2342d..9ac5de5f06d751 100644 --- a/deps/icu-small/source/common/unicode/localpointer.h +++ b/deps/icu-small/source/common/unicode/localpointer.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -211,18 +213,16 @@ class LocalPointer : public LocalPointerBase { errorCode=U_MEMORY_ALLOCATION_ERROR; } } -#ifndef U_HIDE_DRAFT_API #if U_HAVE_RVALUE_REFERENCES /** * Move constructor, leaves src with isNull(). * @param src source smart pointer - * @draft ICU 56 + * @stable ICU 56 */ LocalPointer(LocalPointer &&src) U_NOEXCEPT : LocalPointerBase(src.ptr) { src.ptr=NULL; } #endif -#endif /* U_HIDE_DRAFT_API */ /** * Destructor deletes the object it owns. * @stable ICU 4.4 @@ -230,19 +230,19 @@ class LocalPointer : public LocalPointerBase { ~LocalPointer() { delete LocalPointerBase::ptr; } -#ifndef U_HIDE_DRAFT_API #if U_HAVE_RVALUE_REFERENCES /** * Move assignment operator, leaves src with isNull(). * The behavior is undefined if *this and src are the same object. * @param src source smart pointer * @return *this - * @draft ICU 56 + * @stable ICU 56 */ LocalPointer &operator=(LocalPointer &&src) U_NOEXCEPT { return moveFrom(src); } #endif + // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API /** * Move assignment, leaves src with isNull(). * The behavior is undefined if *this and src are the same object. @@ -261,19 +261,18 @@ class LocalPointer : public LocalPointerBase { /** * Swap pointers. * @param other other smart pointer - * @draft ICU 56 + * @stable ICU 56 */ void swap(LocalPointer &other) U_NOEXCEPT { T *temp=LocalPointerBase::ptr; LocalPointerBase::ptr=other.ptr; other.ptr=temp; } -#endif /* U_HIDE_DRAFT_API */ /** * Non-member LocalPointer swap function. * @param p1 will get p2's pointer * @param p2 will get p1's pointer - * @draft ICU 56 + * @stable ICU 56 */ friend inline void swap(LocalPointer &p1, LocalPointer &p2) U_NOEXCEPT { p1.swap(p2); @@ -345,7 +344,6 @@ class LocalArray : public LocalPointerBase { * @stable ICU 4.4 */ explicit LocalArray(T *p=NULL) : LocalPointerBase(p) {} -#ifndef U_HIDE_DRAFT_API /** * Constructor takes ownership and reports an error if NULL. * @@ -357,7 +355,7 @@ class LocalArray : public LocalPointerBase { * @param p simple pointer to an array of T objects that is adopted * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR * if p==NULL and no other failure code had been set - * @draft ICU 56 + * @stable ICU 56 */ LocalArray(T *p, UErrorCode &errorCode) : LocalPointerBase(p) { if(p==NULL && U_SUCCESS(errorCode)) { @@ -368,13 +366,12 @@ class LocalArray : public LocalPointerBase { /** * Move constructor, leaves src with isNull(). * @param src source smart pointer - * @draft ICU 56 + * @stable ICU 56 */ LocalArray(LocalArray &&src) U_NOEXCEPT : LocalPointerBase(src.ptr) { src.ptr=NULL; } #endif -#endif /* U_HIDE_DRAFT_API */ /** * Destructor deletes the array it owns. * @stable ICU 4.4 @@ -382,19 +379,19 @@ class LocalArray : public LocalPointerBase { ~LocalArray() { delete[] LocalPointerBase::ptr; } -#ifndef U_HIDE_DRAFT_API #if U_HAVE_RVALUE_REFERENCES /** * Move assignment operator, leaves src with isNull(). * The behavior is undefined if *this and src are the same object. * @param src source smart pointer * @return *this - * @draft ICU 56 + * @stable ICU 56 */ LocalArray &operator=(LocalArray &&src) U_NOEXCEPT { return moveFrom(src); } #endif + // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API /** * Move assignment, leaves src with isNull(). * The behavior is undefined if *this and src are the same object. @@ -413,19 +410,18 @@ class LocalArray : public LocalPointerBase { /** * Swap pointers. * @param other other smart pointer - * @draft ICU 56 + * @stable ICU 56 */ void swap(LocalArray &other) U_NOEXCEPT { T *temp=LocalPointerBase::ptr; LocalPointerBase::ptr=other.ptr; other.ptr=temp; } -#endif /* U_HIDE_DRAFT_API */ /** * Non-member LocalArray swap function. * @param p1 will get p2's pointer * @param p2 will get p1's pointer - * @draft ICU 56 + * @stable ICU 56 */ friend inline void swap(LocalArray &p1, LocalArray &p2) U_NOEXCEPT { p1.swap(p2); @@ -440,7 +436,6 @@ class LocalArray : public LocalPointerBase { delete[] LocalPointerBase::ptr; LocalPointerBase::ptr=p; } -#ifndef U_HIDE_DRAFT_API /** * Deletes the array it owns, * and adopts (takes ownership of) the one passed in. @@ -454,7 +449,7 @@ class LocalArray : public LocalPointerBase { * @param p simple pointer to an array of T objects that is adopted * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR * if p==NULL and no other failure code had been set - * @draft ICU 56 + * @stable ICU 56 */ void adoptInsteadAndCheckErrorCode(T *p, UErrorCode &errorCode) { if(U_SUCCESS(errorCode)) { @@ -467,7 +462,6 @@ class LocalArray : public LocalPointerBase { delete[] p; } } -#endif /* U_HIDE_DRAFT_API */ /** * Array item access (writable). * No index bounds check. @@ -485,9 +479,6 @@ class LocalArray : public LocalPointerBase { * like LocalPointer except that this subclass will use the closeFunction * rather than the C++ delete operator. * - * Requirement: The closeFunction must tolerate a NULL pointer. - * (We could add a NULL check here but it is normally redundant.) - * * Usage example: * \code * LocalUCaseMapPointer csm(ucasemap_open(localeID, options, &errorCode)); @@ -512,12 +503,12 @@ class LocalArray : public LocalPointerBase { : LocalPointerBase(src.ptr) { \ src.ptr=NULL; \ } \ - ~LocalPointerClassName() { closeFunction(ptr); } \ + ~LocalPointerClassName() { if (ptr != NULL) { closeFunction(ptr); } } \ LocalPointerClassName &operator=(LocalPointerClassName &&src) U_NOEXCEPT { \ return moveFrom(src); \ } \ LocalPointerClassName &moveFrom(LocalPointerClassName &src) U_NOEXCEPT { \ - closeFunction(ptr); \ + if (ptr != NULL) { closeFunction(ptr); } \ LocalPointerBase::ptr=src.ptr; \ src.ptr=NULL; \ return *this; \ @@ -531,7 +522,7 @@ class LocalArray : public LocalPointerBase { p1.swap(p2); \ } \ void adoptInstead(Type *p) { \ - closeFunction(ptr); \ + if (ptr != NULL) { closeFunction(ptr); } \ ptr=p; \ } \ } @@ -544,7 +535,7 @@ class LocalArray : public LocalPointerBase { explicit LocalPointerClassName(Type *p=NULL) : LocalPointerBase(p) {} \ ~LocalPointerClassName() { closeFunction(ptr); } \ LocalPointerClassName &moveFrom(LocalPointerClassName &src) U_NOEXCEPT { \ - closeFunction(ptr); \ + if (ptr != NULL) { closeFunction(ptr); } \ LocalPointerBase::ptr=src.ptr; \ src.ptr=NULL; \ return *this; \ @@ -558,7 +549,7 @@ class LocalArray : public LocalPointerBase { p1.swap(p2); \ } \ void adoptInstead(Type *p) { \ - closeFunction(ptr); \ + if (ptr != NULL) { closeFunction(ptr); } \ ptr=p; \ } \ } diff --git a/deps/icu-small/source/common/unicode/locdspnm.h b/deps/icu-small/source/common/unicode/locdspnm.h index ba168d8c95a6de..b8c7a0ccae9281 100644 --- a/deps/icu-small/source/common/unicode/locdspnm.h +++ b/deps/icu-small/source/common/unicode/locdspnm.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2010-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unicode/locid.h b/deps/icu-small/source/common/unicode/locid.h index e8edd919b6c8b1..f797c25e8b6069 100644 --- a/deps/icu-small/source/common/unicode/locid.h +++ b/deps/icu-small/source/common/unicode/locid.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/messagepattern.h b/deps/icu-small/source/common/unicode/messagepattern.h index f8b8dfb43f3149..8c1115e04dc1db 100644 --- a/deps/icu-small/source/common/unicode/messagepattern.h +++ b/deps/icu-small/source/common/unicode/messagepattern.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2013, International Business Machines diff --git a/deps/icu-small/source/common/unicode/normalizer2.h b/deps/icu-small/source/common/unicode/normalizer2.h index c03cba39e987a6..6a7668bfd5ff3e 100644 --- a/deps/icu-small/source/common/unicode/normalizer2.h +++ b/deps/icu-small/source/common/unicode/normalizer2.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/normlzr.h b/deps/icu-small/source/common/unicode/normlzr.h index cdd7f37d6706ad..b9b67bc434df9d 100644 --- a/deps/icu-small/source/common/unicode/normlzr.h +++ b/deps/icu-small/source/common/unicode/normlzr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************** * COPYRIGHT: @@ -179,6 +181,7 @@ class U_COMMON_API Normalizer : public UObject { * @deprecated ICU 56 Use Normalizer2 instead. */ Normalizer(const CharacterIterator& iter, UNormalizationMode mode); +#endif /* U_HIDE_DEPRECATED_API */ /** * Copy constructor. @@ -186,7 +189,6 @@ class U_COMMON_API Normalizer : public UObject { * @deprecated ICU 56 Use Normalizer2 instead. */ Normalizer(const Normalizer& copy); -#endif /* U_HIDE_DEPRECATED_API */ /** * Destructor @@ -750,9 +752,7 @@ class U_COMMON_API Normalizer : public UObject { FilteredNormalizer2*fFilteredNorm2; // owned if not NULL const Normalizer2 *fNorm2; // not owned; may be equal to fFilteredNorm2 -#ifndef U_HIDE_DEPRECATED_API - UNormalizationMode fUMode; -#endif /* U_HIDE_DEPRECATED_API */ + UNormalizationMode fUMode; // deprecated int32_t fOptions; // The input text and our position in it diff --git a/deps/icu-small/source/common/unicode/parseerr.h b/deps/icu-small/source/common/unicode/parseerr.h index 0096a13b1cdd56..f1976581a1ea63 100644 --- a/deps/icu-small/source/common/unicode/parseerr.h +++ b/deps/icu-small/source/common/unicode/parseerr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2005, International Business Machines diff --git a/deps/icu-small/source/common/unicode/parsepos.h b/deps/icu-small/source/common/unicode/parsepos.h index 1d56bd07a4bbb7..7bc2627773ef01 100644 --- a/deps/icu-small/source/common/unicode/parsepos.h +++ b/deps/icu-small/source/common/unicode/parsepos.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 1997-2005, International Business Machines Corporation and others. All Rights Reserved. ******************************************************************************* diff --git a/deps/icu-small/source/common/unicode/platform.h b/deps/icu-small/source/common/unicode/platform.h index 33ad07f0cc175b..bf31af5d1331cc 100644 --- a/deps/icu-small/source/common/unicode/platform.h +++ b/deps/icu-small/source/common/unicode/platform.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -841,6 +843,12 @@ * This is only used for non-ICU-API functions. * When a function is a public ICU API, * you must use the U_CAPI and U_EXPORT2 qualifiers. + * + * Please note, you need to use U_CALLCONV after the *. + * + * NO : "static const char U_CALLCONV *func( . . . )" + * YES: "static const char* U_CALLCONV func( . . . )" + * * @stable ICU 2.0 */ #if U_PLATFORM == U_PF_OS390 && defined(__cplusplus) diff --git a/deps/icu-small/source/common/unicode/ptypes.h b/deps/icu-small/source/common/unicode/ptypes.h index b7f711603282c3..69d7286d323e3d 100644 --- a/deps/icu-small/source/common/unicode/ptypes.h +++ b/deps/icu-small/source/common/unicode/ptypes.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/putil.h b/deps/icu-small/source/common/unicode/putil.h index 81d24c90081786..6f3250ed685fdc 100644 --- a/deps/icu-small/source/common/unicode/putil.h +++ b/deps/icu-small/source/common/unicode/putil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/rbbi.h b/deps/icu-small/source/common/unicode/rbbi.h index 0af960a9c94597..9f2a1a62b369d1 100644 --- a/deps/icu-small/source/common/unicode/rbbi.h +++ b/deps/icu-small/source/common/unicode/rbbi.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** -* Copyright (C) 1999-2014 International Business Machines Corporation * +* Copyright (C) 1999-2016 International Business Machines Corporation * * and others. All rights reserved. * *************************************************************************** @@ -56,15 +58,11 @@ struct RBBIStateTable; * *

See the ICU User Guide for information on Break Iterator Rules.

* - *

This class is not intended to be subclassed. (Class DictionaryBasedBreakIterator - * is a subclass, but that relationship is effectively internal to the ICU - * implementation. The subclassing interface to RulesBasedBreakIterator is - * not part of the ICU API, and may not remain stable.

- * + *

This class is not intended to be subclassed.

*/ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { -protected: +private: /** * The UText through which this BreakIterator accesses the text * @internal @@ -165,24 +163,10 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { */ int32_t fBreakType; -protected: //======================================================================= // constructors //======================================================================= -#ifndef U_HIDE_INTERNAL_API - /** - * Constant to be used in the constructor - * RuleBasedBreakIterator(RBBIDataHeader*, EDontAdopt, UErrorCode &); - * which does not adopt the memory indicated by the RBBIDataHeader* - * parameter. - * - * @internal - */ - enum EDontAdopt { - kDontAdopt - }; - /** * Constructor from a flattened set of RBBI data in malloced memory. * RulesBasedBreakIterators built from a custom set of rules @@ -195,17 +179,6 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { */ RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status); - /** - * Constructor from a flattened set of RBBI data in memory which need not - * be malloced (e.g. it may be a memory-mapped file, etc.). - * - * This version does not adopt the memory, and does not - * free it when done. - * @internal - */ - RuleBasedBreakIterator(const RBBIDataHeader* data, enum EDontAdopt dontAdopt, UErrorCode &status); -#endif /* U_HIDE_INTERNAL_API */ - friend class RBBIRuleBuilder; /** @internal */ @@ -402,6 +375,11 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { /** * Set the iterator to analyze a new piece of text. This function resets * the current iteration position to the beginning of the text. + * + * The BreakIterator will retain a reference to the supplied string. + * The caller must not modify or delete the text while the BreakIterator + * retains the reference. + * * @param newText The text to analyze. * @stable ICU 2.0 */ @@ -661,7 +639,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { virtual RuleBasedBreakIterator &refreshInputText(UText *input, UErrorCode &status); -protected: +private: //======================================================================= // implementation //======================================================================= @@ -670,41 +648,19 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * in text or iteration position. * @internal */ - virtual void reset(void); - -#if 0 - /** - * Return true if the category lookup for this char - * indicates that it is in the set of dictionary lookup chars. - * This function is intended for use by dictionary based break iterators. - * @return true if the category lookup for this char - * indicates that it is in the set of dictionary lookup chars. - * @internal - */ - virtual UBool isDictionaryChar(UChar32); - - /** - * Get the type of the break iterator. - * @internal - */ - virtual int32_t getBreakType() const; -#endif + void reset(void); /** * Set the type of the break iterator. * @internal */ - virtual void setBreakType(int32_t type); + void setBreakType(int32_t type); -#ifndef U_HIDE_INTERNAL_API /** * Common initialization function, used by constructors and bufferClone. * @internal */ void init(); -#endif /* U_HIDE_INTERNAL_API */ - -private: /** * This method backs the iterator back up to a "safe position" in the text. @@ -728,9 +684,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { */ int32_t handleNext(const RBBIStateTable *statetable); -protected: -#ifndef U_HIDE_INTERNAL_API /** * This is the function that actually implements dictionary-based * breaking. Covering at least the range from startPos to endPos, @@ -746,9 +700,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @internal */ int32_t checkDictionary(int32_t startPos, int32_t endPos, UBool reverse); -#endif /* U_HIDE_INTERNAL_API */ -private: /** * This function returns the appropriate LanguageBreakEngine for a diff --git a/deps/icu-small/source/common/unicode/rep.h b/deps/icu-small/source/common/unicode/rep.h index 21eb2918648749..8fa2332a71ca3e 100644 --- a/deps/icu-small/source/common/unicode/rep.h +++ b/deps/icu-small/source/common/unicode/rep.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************** * Copyright (C) 1999-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unicode/resbund.h b/deps/icu-small/source/common/unicode/resbund.h index 8c979663622cfb..0d37d4209d6f44 100644 --- a/deps/icu-small/source/common/unicode/resbund.h +++ b/deps/icu-small/source/common/unicode/resbund.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/schriter.h b/deps/icu-small/source/common/unicode/schriter.h index 65042494a0ad89..b5fa32d0aecb8d 100644 --- a/deps/icu-small/source/common/unicode/schriter.h +++ b/deps/icu-small/source/common/unicode/schriter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/simpleformatter.h b/deps/icu-small/source/common/unicode/simpleformatter.h index 7530cf796fcabe..2b74f5ca527ca2 100644 --- a/deps/icu-small/source/common/unicode/simpleformatter.h +++ b/deps/icu-small/source/common/unicode/simpleformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014-2016, International Business Machines diff --git a/deps/icu-small/source/common/unicode/std_string.h b/deps/icu-small/source/common/unicode/std_string.h index 05955c5d1e727f..104ef0c83e8cfe 100644 --- a/deps/icu-small/source/common/unicode/std_string.h +++ b/deps/icu-small/source/common/unicode/std_string.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/strenum.h b/deps/icu-small/source/common/unicode/strenum.h index 8defe2039b8d41..74ff28decc3df2 100644 --- a/deps/icu-small/source/common/unicode/strenum.h +++ b/deps/icu-small/source/common/unicode/strenum.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/stringpiece.h b/deps/icu-small/source/common/unicode/stringpiece.h index 1df790562e801c..43864ad81a8292 100644 --- a/deps/icu-small/source/common/unicode/stringpiece.h +++ b/deps/icu-small/source/common/unicode/stringpiece.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (C) 2009-2013, International Business Machines // Corporation and others. All Rights Reserved. // @@ -40,9 +42,9 @@ U_NAMESPACE_BEGIN * in a "const char*" or a "string" wherever a "StringPiece" is * expected. * - * Functions or methods may use const StringPiece& parameters to accept either - * a "const char*" or a "string" value that will be implicitly converted to - * a StringPiece. + * Functions or methods may use StringPiece parameters to accept either a + * "const char*" or a "string" value that will be implicitly converted to a + * StringPiece. * * Systematic usage of StringPiece is encouraged as it will reduce unnecessary * conversions from "const char*" to "string" and back again. diff --git a/deps/icu-small/source/common/unicode/stringtriebuilder.h b/deps/icu-small/source/common/unicode/stringtriebuilder.h index 1749ef4bf7c7c9..c2839fe53f29ff 100644 --- a/deps/icu-small/source/common/unicode/stringtriebuilder.h +++ b/deps/icu-small/source/common/unicode/stringtriebuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012,2014, International Business Machines @@ -184,7 +186,8 @@ class U_COMMON_API StringTrieBuilder : public UObject { /** @internal */ UHashtable *nodes; -#ifndef U_HIDE_INTERNAL_API + // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, + // it is needed for layout of other objects. /** @internal */ class Node : public UObject { public: @@ -243,6 +246,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { int32_t offset; }; +#ifndef U_HIDE_INTERNAL_API // This class should not be overridden because // registerFinalValue() compares a stack-allocated FinalValueNode // (stack-allocated so that we don't unnecessarily create lots of duplicate nodes) @@ -258,7 +262,10 @@ class U_COMMON_API StringTrieBuilder : public UObject { protected: int32_t value; }; +#endif /* U_HIDE_INTERNAL_API */ + // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, + // it is needed for layout of other objects. /** * @internal */ @@ -276,6 +283,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { int32_t value; }; +#ifndef U_HIDE_INTERNAL_API /** * @internal */ @@ -289,7 +297,10 @@ class U_COMMON_API StringTrieBuilder : public UObject { protected: Node *next; }; +#endif /* U_HIDE_INTERNAL_API */ + // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, + // it is needed for layout of other objects. /** * @internal */ @@ -305,6 +316,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { Node *next; }; +#ifndef U_HIDE_INTERNAL_API /** * @internal */ diff --git a/deps/icu-small/source/common/unicode/symtable.h b/deps/icu-small/source/common/unicode/symtable.h index bc34dde51b4cf2..829c8105d05d85 100644 --- a/deps/icu-small/source/common/unicode/symtable.h +++ b/deps/icu-small/source/common/unicode/symtable.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2000-2005, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ubidi.h b/deps/icu-small/source/common/unicode/ubidi.h index 27042ed7f4b94e..e59969861f3402 100644 --- a/deps/icu-small/source/common/unicode/ubidi.h +++ b/deps/icu-small/source/common/unicode/ubidi.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -718,9 +720,13 @@ typedef enum UBiDiReorderingMode { * UBIDI_REORDER_NUMBERS_SPECIAL Bidi algorithm. * @stable ICU 3.6 */ UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL, - /** Number of values for reordering mode. - * @stable ICU 3.6 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * Number of values for reordering mode. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UBIDI_REORDER_COUNT +#endif // U_HIDE_DEPRECATED_API } UBiDiReorderingMode; /** @@ -1959,13 +1965,19 @@ U_STABLE int32_t U_EXPORT2 ubidi_getResultLength(const UBiDi *pBiDi); U_CDECL_BEGIN + +#ifndef U_HIDE_DEPRECATED_API /** - * value returned by UBiDiClassCallback callbacks when + * Value returned by UBiDiClassCallback callbacks when * there is no need to override the standard Bidi class for a given code point. + * + * This constant is deprecated; use u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1 instead. + * * @see UBiDiClassCallback - * @stable ICU 3.6 + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ #define U_BIDI_CLASS_DEFAULT U_CHAR_DIRECTION_COUNT +#endif // U_HIDE_DEPRECATED_API /** * Callback type declaration for overriding default Bidi class values with @@ -1981,8 +1993,8 @@ U_CDECL_BEGIN * * @return The directional property / Bidi class for the given code point * c if the default class has been overridden, or - * #U_BIDI_CLASS_DEFAULT if the standard Bidi class value - * for c is to be used. + * #U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1 + * if the standard Bidi class value for c is to be used. * @see ubidi_setClassCallback * @see ubidi_getClassCallback * @stable ICU 3.6 @@ -1995,8 +2007,8 @@ U_CDECL_END /** * Retrieve the Bidi class for a given code point. *

If a #UBiDiClassCallback callback is defined and returns a - * value other than #U_BIDI_CLASS_DEFAULT, that value is used; - * otherwise the default class determination mechanism is invoked.

+ * value other than #U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1, + * that value is used; otherwise the default class determination mechanism is invoked.

* * @param pBiDi is the paragraph UBiDi object. * diff --git a/deps/icu-small/source/common/unicode/ubiditransform.h b/deps/icu-small/source/common/unicode/ubiditransform.h new file mode 100644 index 00000000000000..509f68bcc012e0 --- /dev/null +++ b/deps/icu-small/source/common/unicode/ubiditransform.h @@ -0,0 +1,321 @@ +/* +****************************************************************************** +* +* Copyright (C) 2016 and later: Unicode, Inc. and others. +* License & terms of use: http://www.unicode.org/copyright.html +* +****************************************************************************** +* file name: ubiditransform.h +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* created on: 2016jul24 +* created by: Lina Kemmel +* +*/ + +#ifndef UBIDITRANSFORM_H +#define UBIDITRANSFORM_H + +#include "unicode/utypes.h" +#include "unicode/ubidi.h" +#include "unicode/uchar.h" +#include "unicode/localpointer.h" + +#ifndef U_HIDE_DRAFT_API + +/** + * \file + * \brief Bidi Transformations + * + * UBiDiOrder indicates the order of text.

+ * This bidi transformation engine supports all possible combinations (4 in + * total) of input and output text order: + *

    + *
  • : unless the output direction is RTL, this + * corresponds to a normal operation of the Bidi algorithm as described in the + * Unicode Technical Report and implemented by UBiDi when the + * reordering mode is set to UBIDI_REORDER_DEFAULT. Visual RTL + * mode is not supported by UBiDi and is accomplished through + * reversing a visual LTR string,
  • + *
  • : unless the input direction is RTL, this + * corresponds to an "inverse bidi algorithm" in UBiDi with the + * reordering mode set to UBIDI_REORDER_INVERSE_LIKE_DIRECT. + * Visual RTL mode is not not supported by UBiDi and is + * accomplished through reversing a visual LTR string,
  • + *
  • : if the input and output base directions + * mismatch, this corresponds to the UBiDi implementation with the + * reordering mode set to UBIDI_REORDER_RUNS_ONLY; and if the + * input and output base directions are identical, the transformation engine + * will only handle character mirroring and Arabic shaping operations without + * reordering,
  • + *
  • : this reordering mode is not supported by + * the UBiDi engine; it implies character mirroring, Arabic + * shaping, and - if the input/output base directions mismatch - string + * reverse operations.
  • + *
+ * @see ubidi_setInverse + * @see ubidi_setReorderingMode + * @see UBIDI_REORDER_DEFAULT + * @see UBIDI_REORDER_INVERSE_LIKE_DIRECT + * @see UBIDI_REORDER_RUNS_ONLY + * @draft ICU 58 + */ +typedef enum { + /** 0: Constant indicating a logical order. + * This is the default for input text. + * @draft ICU 58 + */ + UBIDI_LOGICAL = 0, + /** 1: Constant indicating a visual order. + * This is a default for output text. + * @draft ICU 58 + */ + UBIDI_VISUAL +} UBiDiOrder; + +/** + * UBiDiMirroring indicates whether or not characters with the + * "mirrored" property in RTL runs should be replaced with their mirror-image + * counterparts. + * @see UBIDI_DO_MIRRORING + * @see ubidi_setReorderingOptions + * @see ubidi_writeReordered + * @see ubidi_writeReverse + * @draft ICU 58 + */ +typedef enum { + /** 0: Constant indicating that character mirroring should not be + * performed. + * This is the default. + * @draft ICU 58 + */ + UBIDI_MIRRORING_OFF = 0, + /** 1: Constant indicating that character mirroring should be performed. + * This corresponds to calling ubidi_writeReordered or + * ubidi_writeReverse with the + * UBIDI_DO_MIRRORING option bit set. + * @draft ICU 58 + */ + UBIDI_MIRRORING_ON +} UBiDiMirroring; + +/** + * Forward declaration of the UBiDiTransform structure that stores + * information used by the layout transformation engine. + * @draft ICU 58 + */ +typedef struct UBiDiTransform UBiDiTransform; + +/** + * Performs transformation of text from the bidi layout defined by the input + * ordering scheme to the bidi layout defined by the output ordering scheme, + * and applies character mirroring and Arabic shaping operations.

+ * In terms of UBiDi, such a transformation implies: + *

    + *
  • calling ubidi_setReorderingMode as needed (when the + * reordering mode is other than normal),
  • + *
  • calling ubidi_setInverse as needed (when text should be + * transformed from a visual to a logical form),
  • + *
  • resolving embedding levels of each character in the input text by + * calling ubidi_setPara,
  • + *
  • reordering the characters based on the computed embedding levels, also + * performing character mirroring as needed, and streaming the result to the + * output, by calling ubidi_writeReordered,
  • + *
  • performing Arabic digit and letter shaping on the output text by calling + * u_shapeArabic.
  • + *
+ * An "ordering scheme" encompasses the base direction and the order of text, + * and these characteristics must be defined by the caller for both input and + * output explicitly .

+ * There are 36 possible combinations of ordering schemes, + * which are partially supported by UBiDi already. Examples of the + * currently supported combinations: + *

    + *
  • : this is equivalent to calling + * ubidi_setPara with paraLevel == UBIDI_LTR,
  • + *
  • : this is equivalent to calling + * ubidi_setPara with paraLevel == UBIDI_RTL,
  • + *
  • : this is equivalent to + * calling ubidi_setPara with + * paraLevel == UBIDI_DEFAULT_LTR,
  • + *
  • : this is equivalent to + * calling ubidi_setPara with + * paraLevel == UBIDI_DEFAULT_RTL,
  • + *
  • : this is equivalent to + * calling ubidi_setInverse(UBiDi*, TRUE) and then + * ubidi_setPara with paraLevel == UBIDI_LTR,
  • + *
  • : this is equivalent to + * calling ubidi_setInverse(UBiDi*, TRUE) and then + * ubidi_setPara with paraLevel == UBIDI_RTL.
  • + *
+ * All combinations that involve the Visual RTL scheme are unsupported by + * UBiDi, for instance: + *
    + *
  • ,
  • + *
  • .
  • + *
+ *

Example of usage of the transformation engine:
+ *

+ * \code
+ * UChar text1[] = {'a', 'b', 'c', 0x0625, '1', 0};
+ * UChar text2[] = {'a', 'b', 'c', 0x0625, '1', 0};
+ * UErrorCode errorCode = U_ZERO_ERROR;
+ * // Run a transformation.
+ * ubiditransform_transform(pBidiTransform,
+ *          text1, -1, text2, -1,
+ *          UBIDI_LTR, UBIDI_VISUAL,
+ *          UBIDI_RTL, UBIDI_LOGICAL,
+ *          UBIDI_MIRRORING_OFF,
+ *          U_SHAPE_DIGITS_AN2EN | U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
+ *          &errorCode);
+ * // Do something with text2.
+ *  text2[4] = '2';
+ * // Run a reverse transformation.
+ * ubiditransform_transform(pBidiTransform,
+ *          text2, -1, text1, -1,
+ *          UBIDI_RTL, UBIDI_LOGICAL,
+ *          UBIDI_LTR, UBIDI_VISUAL,
+ *          UBIDI_MIRRORING_OFF,
+ *          U_SHAPE_DIGITS_EN2AN | U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
+ *          &errorCode);
+ *\endcode
+ * 
+ *

+ * + * @param pBiDiTransform A pointer to a UBiDiTransform object + * allocated with ubiditransform_open() or + * NULL.

+ * This object serves for one-time setup to amortize initialization + * overheads. Use of this object is not thread-safe. All other threads + * should allocate a new UBiDiTransform object by calling + * ubiditransform_open() before using it. Alternatively, + * a caller can set this parameter to NULL, in which case + * the object will be allocated by the engine on the fly.

+ * @param src A pointer to the text that the Bidi layout transformations will + * be performed on. + *

Note: the text must be (at least) + * srcLength long.

+ * @param srcLength The length of the text, in number of UChars. If + * length == -1 then the text must be zero-terminated. + * @param dest A pointer to where the processed text is to be copied. + * @param destSize The size of the dest buffer, in number of + * UChars. If the U_SHAPE_LETTERS_UNSHAPE option is set, + * then the destination length could be as large as + * srcLength * 2. Otherwise, the destination length will + * not exceed srcLength. If the caller reserves the last + * position for zero-termination, it should be excluded from + * destSize. + *

destSize == -1 is allowed and makes sense when + * dest was holds some meaningful value, e.g. that of + * src. In this case dest must be + * zero-terminated.

+ * @param inParaLevel A base embedding level of the input as defined in + * ubidi_setPara documentation for the + * paraLevel parameter. + * @param inOrder An order of the input, which can be one of the + * UBiDiOrder values. + * @param outParaLevel A base embedding level of the output as defined in + * ubidi_setPara documentation for the + * paraLevel parameter. + * @param outOrder An order of the output, which can be one of the + * UBiDiOrder values. + * @param doMirroring Indicates whether or not to perform character mirroring, + * and can accept one of the UBiDiMirroring values. + * @param shapingOptions Arabic digit and letter shaping options defined in the + * ushape.h documentation. + *

Note: Direction indicator options are computed by + * the transformation engine based on the effective ordering schemes, so + * user-defined direction indicators will be ignored.

+ * @param pErrorCode A pointer to an error code value. + * + * @return The destination length, i.e. the number of UChars written to + * dest. If the transformation fails, the return value + * will be 0 (and the error code will be written to + * pErrorCode). + * + * @see UBiDiLevel + * @see UBiDiOrder + * @see UBiDiMirroring + * @see ubidi_setPara + * @see u_shapeArabic + * @draft ICU 58 + */ +U_DRAFT uint32_t U_EXPORT2 +ubiditransform_transform(UBiDiTransform *pBiDiTransform, + const UChar *src, int32_t srcLength, + UChar *dest, int32_t destSize, + UBiDiLevel inParaLevel, UBiDiOrder inOrder, + UBiDiLevel outParaLevel, UBiDiOrder outOrder, + UBiDiMirroring doMirroring, uint32_t shapingOptions, + UErrorCode *pErrorCode); + +/** + * Allocates a UBiDiTransform object. This object can be reused, + * e.g. with different ordering schemes, mirroring or shaping options.

+ * Note:The object can only be reused in the same thread. + * All other threads should allocate a new UBiDiTransform object + * before using it.

+ * Example of usage:

+ *

+ * \code
+ * UErrorCode errorCode = U_ZERO_ERROR;
+ * // Open a new UBiDiTransform.
+ * UBiDiTransform* transform = ubiditransform_open(&errorCode);
+ * // Run a transformation.
+ * ubiditransform_transform(transform,
+ *          text1, -1, text2, -1,
+ *          UBIDI_RTL, UBIDI_LOGICAL,
+ *          UBIDI_LTR, UBIDI_VISUAL,
+ *          UBIDI_MIRRORING_ON,
+ *          U_SHAPE_DIGITS_EN2AN,
+ *          &errorCode);
+ * // Do something with the output text and invoke another transformation using
+ * //   that text as input.
+ * ubiditransform_transform(transform,
+ *          text2, -1, text3, -1,
+ *          UBIDI_LTR, UBIDI_VISUAL,
+ *          UBIDI_RTL, UBIDI_VISUAL,
+ *          UBIDI_MIRRORING_ON,
+ *          0, &errorCode);
+ *\endcode
+ * 
+ *

+ * The UBiDiTransform object must be deallocated by calling + * ubiditransform_close(). + * + * @return An empty UBiDiTransform object. + * @draft ICU 58 + */ +U_DRAFT UBiDiTransform* U_EXPORT2 +ubiditransform_open(UErrorCode *pErrorCode); + +/** + * Deallocates the given UBiDiTransform object. + * @draft ICU 58 + */ +U_DRAFT void U_EXPORT2 +ubiditransform_close(UBiDiTransform *pBidiTransform); + +#if U_SHOW_CPLUSPLUS_API + +U_NAMESPACE_BEGIN + +/** + * \class LocalUBiDiTransformPointer + * "Smart pointer" class, closes a UBiDiTransform via ubiditransform_close(). + * For most methods see the LocalPointerBase base class. + * + * @see LocalPointerBase + * @see LocalPointer + * @draft ICU 58 + */ +U_DEFINE_LOCAL_OPEN_POINTER(LocalUBiDiTransformPointer, UBiDiTransform, ubiditransform_close); + +U_NAMESPACE_END + +#endif + +#endif /* U_HIDE_DRAFT_API */ +#endif diff --git a/deps/icu-small/source/common/unicode/ubrk.h b/deps/icu-small/source/common/unicode/ubrk.h index 59f0ed181f8458..f43943ed1ab12c 100644 --- a/deps/icu-small/source/common/unicode/ubrk.h +++ b/deps/icu-small/source/common/unicode/ubrk.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1996-2015, International Business Machines Corporation and others. @@ -114,8 +116,12 @@ typedef enum UBreakIteratorType { * @deprecated ICU 2.8 Use the word break iterator for titlecasing for Unicode 4 and later. */ UBRK_TITLE = 4, -#endif /* U_HIDE_DEPRECATED_API */ - UBRK_COUNT = 5 + /** + * One more than the highest normal UBreakIteratorType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + UBRK_COUNT = 5 +#endif // U_HIDE_DEPRECATED_API } UBreakIteratorType; /** Value indicating all text boundaries have been returned. @@ -130,7 +136,10 @@ typedef enum UBreakIteratorType { * word, to allow for further subdivisions of a category in future releases. * Applications should check for tag values falling within the range, rather * than for single individual values. - * @stable ICU 2.2 + * + * The numeric values of all of these constants are stable (will not change). + * + * @stable ICU 2.2 */ typedef enum UWordBreak { /** Tag value for "words" that do not fit into any of other categories. @@ -163,7 +172,10 @@ typedef enum UWordBreak { * word, to allow for further subdivisions of a category in future releases. * Applications should check for tag values falling within the range, rather * than for single individual values. - * @stable ICU 2.8 + * + * The numeric values of all of these constants are stable (will not change). + * + * @stable ICU 2.8 */ typedef enum ULineBreakTag { /** Tag value for soft line breaks, positions at which a line break @@ -185,7 +197,10 @@ typedef enum ULineBreakTag { * sentence, to allow for further subdivisions of a category in future releases. * Applications should check for tag values falling within the range, rather * than for single individual values. - * @stable ICU 2.8 + * + * The numeric values of all of these constants are stable (will not change). + * + * @stable ICU 2.8 */ typedef enum USentenceBreakTag { /** Tag value for for sentences ending with a sentence terminator @@ -316,7 +331,11 @@ U_NAMESPACE_END #endif /** - * Sets an existing iterator to point to a new piece of text + * Sets an existing iterator to point to a new piece of text. + * The break iterator retains a pointer to the supplied text. + * The caller must not modify or delete the text while the BreakIterator + * retains the reference. + * * @param bi The iterator to use * @param text The text to be set * @param textLength The length of the text diff --git a/deps/icu-small/source/common/unicode/ucasemap.h b/deps/icu-small/source/common/unicode/ucasemap.h index b37e16588697f1..d7345e8a402ab6 100644 --- a/deps/icu-small/source/common/unicode/ucasemap.h +++ b/deps/icu-small/source/common/unicode/ucasemap.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/ucat.h b/deps/icu-small/source/common/unicode/ucat.h index 875477c2138b07..418b64fa19d919 100644 --- a/deps/icu-small/source/common/unicode/ucat.h +++ b/deps/icu-small/source/common/unicode/ucat.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2004, International Business Machines diff --git a/deps/icu-small/source/common/unicode/uchar.h b/deps/icu-small/source/common/unicode/uchar.h index 61835840a33c0a..7f6ea6d9343ab7 100644 --- a/deps/icu-small/source/common/unicode/uchar.h +++ b/deps/icu-small/source/common/unicode/uchar.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -39,7 +41,7 @@ U_CDECL_BEGIN * @see u_getUnicodeVersion * @stable ICU 2.0 */ -#define U_UNICODE_VERSION "8.0" +#define U_UNICODE_VERSION "9.0" /** * \file @@ -427,8 +429,13 @@ typedef enum UProperty { */ UCHAR_EMOJI_MODIFIER_BASE=60, #endif /* U_HIDE_DRAFT_API */ - /** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for binary Unicode properties. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_BINARY_LIMIT=61, +#endif // U_HIDE_DEPRECATED_API /** Enumerated property Bidi_Class. Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */ @@ -515,8 +522,13 @@ typedef enum UProperty { (http://www.unicode.org/reports/tr9/) Returns UBidiPairedBracketType values. @stable ICU 52 */ UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015, - /** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for enumerated/integer Unicode properties. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_INT_LIMIT=0x1016, +#endif // U_HIDE_DEPRECATED_API /** Bitmask property General_Category_Mask. This is the General_Category property returned as a bit mask. @@ -529,16 +541,26 @@ typedef enum UProperty { UCHAR_GENERAL_CATEGORY_MASK=0x2000, /** First constant for bit-mask Unicode properties. @stable ICU 2.4 */ UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK, - /** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for bit-mask Unicode properties. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_MASK_LIMIT=0x2001, +#endif // U_HIDE_DEPRECATED_API /** Double property Numeric_Value. Corresponds to u_getNumericValue. @stable ICU 2.4 */ UCHAR_NUMERIC_VALUE=0x3000, /** First constant for double Unicode properties. @stable ICU 2.4 */ UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE, - /** One more than the last constant for double Unicode properties. @stable ICU 2.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for double Unicode properties. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_DOUBLE_LIMIT=0x3001, +#endif // U_HIDE_DEPRECATED_API /** String property Age. Corresponds to u_charAge. @stable ICU 2.4 */ @@ -590,8 +612,13 @@ typedef enum UProperty { /** String property Bidi_Paired_Bracket (new in Unicode 6.3). Corresponds to u_getBidiPairedBracket. @stable ICU 52 */ UCHAR_BIDI_PAIRED_BRACKET=0x400D, - /** One more than the last constant for string Unicode properties. @stable ICU 2.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for string Unicode properties. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_STRING_LIMIT=0x400E, +#endif // U_HIDE_DEPRECATED_API /** Miscellaneous property Script_Extensions (new in Unicode 6.0). Some characters are commonly used in multiple scripts. @@ -601,9 +628,14 @@ 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, - /** One more than the last constant for Unicode properties with unusual value types. - * @stable ICU 4.6 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the last constant for Unicode properties with unusual value types. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCHAR_OTHER_PROPERTY_LIMIT=0x7001, +#endif // U_HIDE_DEPRECATED_API + /** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */ UCHAR_INVALID_CODE = -1 } UProperty; @@ -684,7 +716,13 @@ typedef enum UCharCategory U_INITIAL_PUNCTUATION = 28, /** Pf @stable ICU 2.0 */ U_FINAL_PUNCTUATION = 29, - /** One higher than the last enum UCharCategory constant. @stable ICU 2.0 */ + /** + * One higher than the last enum UCharCategory constant. + * This numeric value is stable (will not change), see + * http://www.unicode.org/policies/stability_policy.html#Property_Value + * + * @stable ICU 2.0 + */ U_CHAR_CATEGORY_COUNT } UCharCategory; @@ -858,8 +896,15 @@ typedef enum UCharDirection { U_RIGHT_TO_LEFT_ISOLATE = 21, /** PDI @stable ICU 52 */ U_POP_DIRECTIONAL_ISOLATE = 22, - /** @stable ICU 2.0 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest UCharDirection value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_CHAR_DIRECTION_COUNT +#endif // U_HIDE_DEPRECATED_API } UCharDirection; /** @@ -881,8 +926,15 @@ typedef enum UBidiPairedBracketType { U_BPT_OPEN, /** Close paired bracket. @stable ICU 52 */ U_BPT_CLOSE, - /** @stable ICU 52 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UBidiPairedBracketType value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BIDI_PAIRED_BRACKET_TYPE). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_BPT_COUNT /* 3 */ +#endif // U_HIDE_DEPRECATED_API } UBidiPairedBracketType; /** @@ -1572,8 +1624,40 @@ enum UBlockCode { /** @stable ICU 56 */ UBLOCK_SUTTON_SIGNWRITING = 262, /*[1D800]*/ - /** @stable ICU 2.0 */ - UBLOCK_COUNT = 263, + /* New blocks in Unicode 9.0 */ + + /** @stable ICU 58 */ + UBLOCK_ADLAM = 263, /*[1E900]*/ + /** @stable ICU 58 */ + UBLOCK_BHAIKSUKI = 264, /*[11C00]*/ + /** @stable ICU 58 */ + UBLOCK_CYRILLIC_EXTENDED_C = 265, /*[1C80]*/ + /** @stable ICU 58 */ + UBLOCK_GLAGOLITIC_SUPPLEMENT = 266, /*[1E000]*/ + /** @stable ICU 58 */ + UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION = 267, /*[16FE0]*/ + /** @stable ICU 58 */ + UBLOCK_MARCHEN = 268, /*[11C70]*/ + /** @stable ICU 58 */ + UBLOCK_MONGOLIAN_SUPPLEMENT = 269, /*[11660]*/ + /** @stable ICU 58 */ + UBLOCK_NEWA = 270, /*[11400]*/ + /** @stable ICU 58 */ + UBLOCK_OSAGE = 271, /*[104B0]*/ + /** @stable ICU 58 */ + UBLOCK_TANGUT = 272, /*[17000]*/ + /** @stable ICU 58 */ + UBLOCK_TANGUT_COMPONENTS = 273, /*[18800]*/ + +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UBlockCode value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BLOCK). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + UBLOCK_COUNT = 274, +#endif // U_HIDE_DEPRECATED_API /** @stable ICU 2.0 */ UBLOCK_INVALID_CODE=-1 @@ -1602,7 +1686,15 @@ typedef enum UEastAsianWidth { U_EA_FULLWIDTH, /*[F]*/ U_EA_NARROW, /*[Na]*/ U_EA_WIDE, /*[W]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UEastAsianWidth value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_EA_COUNT +#endif // U_HIDE_DEPRECATED_API } UEastAsianWidth; /** @@ -1631,8 +1723,13 @@ typedef enum UCharNameChoice { U_EXTENDED_CHAR_NAME = U_UNICODE_CHAR_NAME+2, /** Corrected name from NameAliases.txt. @stable ICU 4.4 */ U_CHAR_NAME_ALIAS, - /** @stable ICU 2.0 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UCharNameChoice value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_CHAR_NAME_CHOICE_COUNT +#endif // U_HIDE_DEPRECATED_API } UCharNameChoice; /** @@ -1651,7 +1748,13 @@ typedef enum UCharNameChoice { typedef enum UPropertyNameChoice { U_SHORT_PROPERTY_NAME, U_LONG_PROPERTY_NAME, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UPropertyNameChoice value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_PROPERTY_NAME_CHOICE_COUNT +#endif // U_HIDE_DEPRECATED_API } UPropertyNameChoice; /** @@ -1685,7 +1788,15 @@ typedef enum UDecompositionType { U_DT_SUPER, /*[sup]*/ U_DT_VERTICAL, /*[vert]*/ U_DT_WIDE, /*[wide]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UDecompositionType value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_DECOMPOSITION_TYPE). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_DT_COUNT /* 18 */ +#endif // U_HIDE_DEPRECATED_API } UDecompositionType; /** @@ -1707,7 +1818,15 @@ typedef enum UJoiningType { U_JT_LEFT_JOINING, /*[L]*/ U_JT_RIGHT_JOINING, /*[R]*/ U_JT_TRANSPARENT, /*[T]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UJoiningType value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_JOINING_TYPE). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_JT_COUNT /* 6 */ +#endif // U_HIDE_DEPRECATED_API } UJoiningType; /** @@ -1810,7 +1929,18 @@ typedef enum UJoiningGroup { U_JG_MANICHAEAN_YODH, /**< @stable ICU 54 */ U_JG_MANICHAEAN_ZAYIN, /**< @stable ICU 54 */ U_JG_STRAIGHT_WAW, /**< @stable ICU 54 */ + U_JG_AFRICAN_FEH, /**< @stable ICU 58 */ + U_JG_AFRICAN_NOON, /**< @stable ICU 58 */ + U_JG_AFRICAN_QAF, /**< @stable ICU 58 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UJoiningGroup value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_JOINING_GROUP). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_JG_COUNT +#endif // U_HIDE_DEPRECATED_API } UJoiningGroup; /** @@ -1836,10 +1966,31 @@ typedef enum UGraphemeClusterBreak { U_GCB_LVT = 7, /*[LVT]*/ U_GCB_T = 8, /*[T]*/ U_GCB_V = 9, /*[V]*/ + /** @stable ICU 4.0 */ U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ + /** @stable ICU 4.0 */ U_GCB_PREPEND = 11, /*[PP]*/ + /** @stable ICU 50 */ U_GCB_REGIONAL_INDICATOR = 12, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */ - U_GCB_COUNT = 13 + /** @stable ICU 58 */ + U_GCB_E_BASE = 13, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ + /** @stable ICU 58 */ + U_GCB_E_BASE_GAZ = 14, /*[EBG]*/ + /** @stable ICU 58 */ + U_GCB_E_MODIFIER = 15, /*[EM]*/ + /** @stable ICU 58 */ + U_GCB_GLUE_AFTER_ZWJ = 16, /*[GAZ]*/ + /** @stable ICU 58 */ + U_GCB_ZWJ = 17, /*[ZWJ]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UGraphemeClusterBreak value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_GRAPHEME_CLUSTER_BREAK). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_GCB_COUNT = 18 +#endif // U_HIDE_DEPRECATED_API } UGraphemeClusterBreak; /** @@ -1864,16 +2015,43 @@ typedef enum UWordBreakValues { U_WB_MIDNUM = 5, /*[MN]*/ U_WB_NUMERIC = 6, /*[NU]*/ U_WB_EXTENDNUMLET = 7, /*[EX]*/ + /** @stable ICU 4.0 */ U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ + /** @stable ICU 4.0 */ U_WB_EXTEND = 9, /*[Extend]*/ + /** @stable ICU 4.0 */ U_WB_LF = 10, /*[LF]*/ + /** @stable ICU 4.0 */ U_WB_MIDNUMLET =11, /*[MB]*/ + /** @stable ICU 4.0 */ U_WB_NEWLINE =12, /*[NL]*/ + /** @stable ICU 50 */ U_WB_REGIONAL_INDICATOR = 13, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */ + /** @stable ICU 52 */ U_WB_HEBREW_LETTER = 14, /*[HL]*/ /* from here on: new in Unicode 6.3/ICU 52 */ + /** @stable ICU 52 */ U_WB_SINGLE_QUOTE = 15, /*[SQ]*/ + /** @stable ICU 52 */ U_WB_DOUBLE_QUOTE = 16, /*[DQ]*/ - U_WB_COUNT = 17 + /** @stable ICU 58 */ + U_WB_E_BASE = 17, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ + /** @stable ICU 58 */ + U_WB_E_BASE_GAZ = 18, /*[EBG]*/ + /** @stable ICU 58 */ + U_WB_E_MODIFIER = 19, /*[EM]*/ + /** @stable ICU 58 */ + U_WB_GLUE_AFTER_ZWJ = 20, /*[GAZ]*/ + /** @stable ICU 58 */ + U_WB_ZWJ = 21, /*[ZWJ]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UWordBreakValues value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_WORD_BREAK). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_WB_COUNT = 22 +#endif // U_HIDE_DEPRECATED_API } UWordBreakValues; /** @@ -1904,7 +2082,15 @@ typedef enum USentenceBreak { U_SB_EXTEND = 12, /*[EX]*/ U_SB_LF = 13, /*[LF]*/ U_SB_SCONTINUE = 14, /*[SC]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal USentenceBreak value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SENTENCE_BREAK). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_SB_COUNT = 15 +#endif // U_HIDE_DEPRECATED_API } USentenceBreak; /** @@ -1951,18 +2137,43 @@ typedef enum ULineBreak { U_LB_SPACE = 26, /*[SP]*/ U_LB_BREAK_SYMBOLS = 27, /*[SY]*/ U_LB_ZWSPACE = 28, /*[ZW]*/ + /** @stable ICU 2.6 */ U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ + /** @stable ICU 2.6 */ U_LB_WORD_JOINER = 30, /*[WJ]*/ + /** @stable ICU 3.4 */ U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */ + /** @stable ICU 3.4 */ U_LB_H3 = 32, /*[H3]*/ + /** @stable ICU 3.4 */ U_LB_JL = 33, /*[JL]*/ + /** @stable ICU 3.4 */ U_LB_JT = 34, /*[JT]*/ + /** @stable ICU 3.4 */ U_LB_JV = 35, /*[JV]*/ + /** @stable ICU 4.4 */ U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */ + /** @stable ICU 49 */ U_LB_CONDITIONAL_JAPANESE_STARTER = 37,/*[CJ]*/ /* new in Unicode 6.1/ICU 49 */ + /** @stable ICU 49 */ U_LB_HEBREW_LETTER = 38, /*[HL]*/ /* new in Unicode 6.1/ICU 49 */ + /** @stable ICU 50 */ U_LB_REGIONAL_INDICATOR = 39,/*[RI]*/ /* new in Unicode 6.2/ICU 50 */ - U_LB_COUNT = 40 + /** @stable ICU 58 */ + U_LB_E_BASE = 40, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ + /** @stable ICU 58 */ + U_LB_E_MODIFIER = 41, /*[EM]*/ + /** @stable ICU 58 */ + U_LB_ZWJ = 42, /*[ZWJ]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal ULineBreak value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_LINE_BREAK). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_LB_COUNT = 43 +#endif // U_HIDE_DEPRECATED_API } ULineBreak; /** @@ -1982,7 +2193,15 @@ typedef enum UNumericType { U_NT_DECIMAL, /*[de]*/ U_NT_DIGIT, /*[di]*/ U_NT_NUMERIC, /*[nu]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UNumericType value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_NUMERIC_TYPE). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_NT_COUNT +#endif // U_HIDE_DEPRECATED_API } UNumericType; /** @@ -2004,7 +2223,15 @@ typedef enum UHangulSyllableType { U_HST_TRAILING_JAMO, /*[T]*/ U_HST_LV_SYLLABLE, /*[LV]*/ U_HST_LVT_SYLLABLE, /*[LVT]*/ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UHangulSyllableType value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_HANGUL_SYLLABLE_TYPE). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_HST_COUNT +#endif // U_HIDE_DEPRECATED_API } UHangulSyllableType; /** diff --git a/deps/icu-small/source/common/unicode/ucharstrie.h b/deps/icu-small/source/common/unicode/ucharstrie.h index 0575a974d0c957..8daed447cedab1 100644 --- a/deps/icu-small/source/common/unicode/ucharstrie.h +++ b/deps/icu-small/source/common/unicode/ucharstrie.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ucharstriebuilder.h b/deps/icu-small/source/common/unicode/ucharstriebuilder.h index f7a8039b776729..cc9fb77a9176e0 100644 --- a/deps/icu-small/source/common/unicode/ucharstriebuilder.h +++ b/deps/icu-small/source/common/unicode/ucharstriebuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2016, International Business Machines diff --git a/deps/icu-small/source/common/unicode/uchriter.h b/deps/icu-small/source/common/unicode/uchriter.h index bf8f2a8cdd1b05..1365c9b7d1a0ae 100644 --- a/deps/icu-small/source/common/unicode/uchriter.h +++ b/deps/icu-small/source/common/unicode/uchriter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1998-2005, International Business Machines diff --git a/deps/icu-small/source/common/unicode/uclean.h b/deps/icu-small/source/common/unicode/uclean.h index ad16158e6c5f38..6a5a4f42b6c886 100644 --- a/deps/icu-small/source/common/unicode/uclean.h +++ b/deps/icu-small/source/common/unicode/uclean.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ucnv.h b/deps/icu-small/source/common/unicode/ucnv.h index 564656c284f8e0..767c1a2a7f44f1 100644 --- a/deps/icu-small/source/common/unicode/ucnv.h +++ b/deps/icu-small/source/common/unicode/ucnv.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2014, International Business Machines @@ -941,8 +943,13 @@ typedef enum UConverterUnicodeSet { UCNV_ROUNDTRIP_SET, /** Select the set of Unicode code points with roundtrip or fallback mappings. @stable ICU 4.0 */ UCNV_ROUNDTRIP_AND_FALLBACK_SET, - /** Number of UConverterUnicodeSet selectors. @stable ICU 2.6 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * Number of UConverterUnicodeSet selectors. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCNV_SET_COUNT +#endif // U_HIDE_DEPRECATED_API } UConverterUnicodeSet; diff --git a/deps/icu-small/source/common/unicode/ucnv_cb.h b/deps/icu-small/source/common/unicode/ucnv_cb.h index 1698de8e333093..a553481c45f893 100644 --- a/deps/icu-small/source/common/unicode/ucnv_cb.h +++ b/deps/icu-small/source/common/unicode/ucnv_cb.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2000-2004, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ucnv_err.h b/deps/icu-small/source/common/unicode/ucnv_err.h index 9d37e18c158bfa..ea7f757d0ce799 100644 --- a/deps/icu-small/source/common/unicode/ucnv_err.h +++ b/deps/icu-small/source/common/unicode/ucnv_err.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2009, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ucnvsel.h b/deps/icu-small/source/common/unicode/ucnvsel.h index af27f3d9a9a015..b5820031a5a9f0 100644 --- a/deps/icu-small/source/common/unicode/ucnvsel.h +++ b/deps/icu-small/source/common/unicode/ucnvsel.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/uconfig.h b/deps/icu-small/source/common/unicode/uconfig.h index 90f5a58da34938..d681febf4f8c3d 100644 --- a/deps/icu-small/source/common/unicode/uconfig.h +++ b/deps/icu-small/source/common/unicode/uconfig.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ucurr.h b/deps/icu-small/source/common/unicode/ucurr.h index fc8999351f6330..8b5d41ae3b8a7f 100644 --- a/deps/icu-small/source/common/unicode/ucurr.h +++ b/deps/icu-small/source/common/unicode/ucurr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2016, International Business Machines @@ -50,11 +52,13 @@ enum UCurrencyUsage { * @stable ICU 54 */ UCURR_USAGE_CASH=1, +#ifndef U_HIDE_DEPRECATED_API /** * One higher than the last enum UCurrencyUsage constant. - * @stable ICU 54 + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UCURR_USAGE_COUNT=2 +#endif // U_HIDE_DEPRECATED_API }; typedef enum UCurrencyUsage UCurrencyUsage; diff --git a/deps/icu-small/source/common/unicode/udata.h b/deps/icu-small/source/common/unicode/udata.h index 16c1aabbdc10f3..abc043f6d01c91 100644 --- a/deps/icu-small/source/common/unicode/udata.h +++ b/deps/icu-small/source/common/unicode/udata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -408,8 +410,13 @@ typedef enum UDataFileAccess { UDATA_PACKAGES_FIRST, /** ICU does not access the file system for data loading. @stable ICU 3.4 */ UDATA_NO_FILES, - /** Number of real UDataFileAccess values. @stable ICU 3.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * Number of real UDataFileAccess values. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UDATA_FILE_ACCESS_COUNT +#endif // U_HIDE_DEPRECATED_API } UDataFileAccess; /** diff --git a/deps/icu-small/source/common/unicode/udisplaycontext.h b/deps/icu-small/source/common/unicode/udisplaycontext.h index 7ecb95b02c9a08..eaef02d7956ef4 100644 --- a/deps/icu-small/source/common/unicode/udisplaycontext.h +++ b/deps/icu-small/source/common/unicode/udisplaycontext.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2014-2016, International Business Machines @@ -41,7 +43,15 @@ enum UDisplayContextType { * UDISPCTX_LENGTH_FULL, UDISPCTX_LENGTH_SHORT. * @stable ICU 54 */ - UDISPCTX_TYPE_DISPLAY_LENGTH = 2 + UDISPCTX_TYPE_DISPLAY_LENGTH = 2, +#ifndef U_HIDE_DRAFT_API + /** + * Type to retrieve the substitute handling setting, e.g. + * UDISPCTX_SUBSTITUTE, UDISPCTX_NO_SUBSTITUTE. + * @draft ICU 58 + */ + UDISPCTX_TYPE_SUBSTITUTE_HANDLING = 3 +#endif /* U_HIDE_DRAFT_API */ }; /** * @stable ICU 51 @@ -132,7 +142,29 @@ enum UDisplayContext { * e.g. "U.S." for US. * @stable ICU 54 */ - UDISPCTX_LENGTH_SHORT = (UDISPCTX_TYPE_DISPLAY_LENGTH<<8) + 1 + UDISPCTX_LENGTH_SHORT = (UDISPCTX_TYPE_DISPLAY_LENGTH<<8) + 1, +#ifndef U_HIDE_DRAFT_API + /** + * ================================ + * SUBSTITUTE_HANDLING can be set to one of UDISPCTX_SUBSTITUTE or + * UDISPCTX_NO_SUBSTITUTE. Use UDisplayContextType UDISPCTX_TYPE_SUBSTITUTE_HANDLING + * to get the value. + */ + /** + * A possible setting for SUBSTITUTE_HANDLING: + * Returns a fallback value (e.g., the input code) when no data is available. + * This is the default value. + * @draft ICU 58 + */ + UDISPCTX_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 0, + /** + * A possible setting for SUBSTITUTE_HANDLING: + * Returns a null value when no data is available. + * @draft ICU 58 + */ + UDISPCTX_NO_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 1 +#endif /* U_HIDE_DRAFT_API */ + }; /** * @stable ICU 51 diff --git a/deps/icu-small/source/common/unicode/uenum.h b/deps/icu-small/source/common/unicode/uenum.h index ec19b0b59e61fc..50dde60da1824b 100644 --- a/deps/icu-small/source/common/unicode/uenum.h +++ b/deps/icu-small/source/common/unicode/uenum.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/uidna.h b/deps/icu-small/source/common/unicode/uidna.h index a5677a44064690..d49729a29ce846 100644 --- a/deps/icu-small/source/common/unicode/uidna.h +++ b/deps/icu-small/source/common/unicode/uidna.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/uiter.h b/deps/icu-small/source/common/unicode/uiter.h index 693ba2ca827de2..74075e5a6e0ea7 100644 --- a/deps/icu-small/source/common/unicode/uiter.h +++ b/deps/icu-small/source/common/unicode/uiter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/uldnames.h b/deps/icu-small/source/common/unicode/uldnames.h index 8c153d6a41e05b..8a3dfd0a6a36fa 100644 --- a/deps/icu-small/source/common/unicode/uldnames.h +++ b/deps/icu-small/source/common/unicode/uldnames.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unicode/ulistformatter.h b/deps/icu-small/source/common/unicode/ulistformatter.h index bd83199441c89a..bed18984e9c255 100644 --- a/deps/icu-small/source/common/unicode/ulistformatter.h +++ b/deps/icu-small/source/common/unicode/ulistformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2015-2016, International Business Machines diff --git a/deps/icu-small/source/common/unicode/uloc.h b/deps/icu-small/source/common/unicode/uloc.h index 0caa02ed7e04dc..5146000f28cca4 100644 --- a/deps/icu-small/source/common/unicode/uloc.h +++ b/deps/icu-small/source/common/unicode/uloc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -348,10 +350,14 @@ typedef enum { * @deprecated ICU 2.8 */ ULOC_REQUESTED_LOCALE = 2, -#endif /* U_HIDE_DEPRECATED_API */ - ULOC_DATA_LOCALE_TYPE_LIMIT = 3 -} ULocDataLocaleType ; + /** + * One more than the highest normal ULocDataLocaleType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + ULOC_DATA_LOCALE_TYPE_LIMIT = 3 +#endif // U_HIDE_DEPRECATED_API +} ULocDataLocaleType; #ifndef U_HIDE_SYSTEM_API /** diff --git a/deps/icu-small/source/common/unicode/umachine.h b/deps/icu-small/source/common/unicode/umachine.h index d7829bafacc6da..22820d4b003a55 100644 --- a/deps/icu-small/source/common/unicode/umachine.h +++ b/deps/icu-small/source/common/unicode/umachine.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -49,6 +51,29 @@ */ #include +#ifndef U_HIDE_INTERNAL_API +/* + * U_USE_CHAR16_T + * When defined, force use of char16_t for UChar. + * Note: char16_t is expected to become the default and required in the future, + * and this option will be removed. + * @internal + */ +#ifdef U_USE_CHAR16_T +#ifdef UCHAR_TYPE +#undef UCHAR_TYPE +#endif +#define UCHAR_TYPE char16_t + +/* + * In plain C, is needed for the definition of char16_t + */ +#ifndef __cplusplus +#include +#endif +#endif +#endif /* U_HIDE_INTERNAL_API */ + /*==========================================================================*/ /* For C wrappers, we use the symbol U_STABLE. */ /* This works properly if the includer is C or C++. */ diff --git a/deps/icu-small/source/common/unicode/umisc.h b/deps/icu-small/source/common/unicode/umisc.h index cbc2d9ceed319c..4cc665721a00be 100644 --- a/deps/icu-small/source/common/unicode/umisc.h +++ b/deps/icu-small/source/common/unicode/umisc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2006, International Business Machines diff --git a/deps/icu-small/source/common/unicode/unifilt.h b/deps/icu-small/source/common/unicode/unifilt.h index c504d17ed9e8d0..cedde81de4a0e1 100644 --- a/deps/icu-small/source/common/unicode/unifilt.h +++ b/deps/icu-small/source/common/unicode/unifilt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2010, International Business Machines Corporation and others. diff --git a/deps/icu-small/source/common/unicode/unifunct.h b/deps/icu-small/source/common/unicode/unifunct.h index 3fda80a64b0c53..724893ad962bb0 100644 --- a/deps/icu-small/source/common/unicode/unifunct.h +++ b/deps/icu-small/source/common/unicode/unifunct.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2005, International Business Machines Corporation diff --git a/deps/icu-small/source/common/unicode/unimatch.h b/deps/icu-small/source/common/unicode/unimatch.h index 0ac66c49e26e1d..a83199ef61f720 100644 --- a/deps/icu-small/source/common/unicode/unimatch.h +++ b/deps/icu-small/source/common/unicode/unimatch.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2001-2005, International Business Machines Corporation and others. All Rights Reserved. ********************************************************************** diff --git a/deps/icu-small/source/common/unicode/uniset.h b/deps/icu-small/source/common/unicode/uniset.h index 3277f11328a8f5..32e973dd791d5d 100644 --- a/deps/icu-small/source/common/unicode/uniset.h +++ b/deps/icu-small/source/common/unicode/uniset.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 1999-2016, International Business Machines Corporation @@ -360,7 +362,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { UnicodeSet(); /** - * Constructs a set containing the given range. If end > + * Constructs a set containing the given range. If end < * start then an empty set is created. * * @param start first character, inclusive, of range diff --git a/deps/icu-small/source/common/unicode/unistr.h b/deps/icu-small/source/common/unicode/unistr.h index bf00974fddb70f..6f62244a1e2824 100644 --- a/deps/icu-small/source/common/unicode/unistr.h +++ b/deps/icu-small/source/common/unicode/unistr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1998-2016, International Business Machines @@ -74,7 +76,9 @@ UStringCaseMapper(const UCaseMap *csm, U_NAMESPACE_BEGIN +#if !UCONFIG_NO_BREAK_ITERATION class BreakIterator; // unicode/brkiter.h +#endif class Locale; // unicode/locid.h class StringCharacterIterator; class UnicodeStringAppendable; // unicode/appendable.h @@ -172,8 +176,6 @@ class UnicodeStringAppendable; // unicode/appendable.h # endif #endif -/* Cannot make the following #ifndef U_HIDE_DRAFT_API, - it is used to construct other non-internal constants */ /** * \def UNISTR_OBJECT_SIZE * Desired sizeof(UnicodeString) in bytes. @@ -205,7 +207,7 @@ class UnicodeStringAppendable; // unicode/appendable.h * and the internal buffer would hold up to 11 UChars in that case. * * @see U16_MAX_LENGTH - * @draft ICU 56 + * @stable ICU 56 */ #ifndef UNISTR_OBJECT_SIZE # define UNISTR_OBJECT_SIZE 64 @@ -1902,7 +1904,6 @@ class U_COMMON_API UnicodeString : public Replaceable */ UnicodeString &fastCopyFrom(const UnicodeString &src); -#ifndef U_HIDE_DRAFT_API #if U_HAVE_RVALUE_REFERENCES /** * Move assignment operator, might leave src in bogus state. @@ -1910,12 +1911,13 @@ class U_COMMON_API UnicodeString : public Replaceable * The behavior is undefined if *this and src are the same object. * @param src source string * @return *this - * @draft ICU 56 + * @stable ICU 56 */ UnicodeString &operator=(UnicodeString &&src) U_NOEXCEPT { return moveFrom(src); } #endif + // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API /** * Move assignment, might leave src in bogus state. * This string will have the same contents and state that the source string had. @@ -1931,16 +1933,15 @@ class U_COMMON_API UnicodeString : public Replaceable /** * Swap strings. * @param other other string - * @draft ICU 56 + * @stable ICU 56 */ void swap(UnicodeString &other) U_NOEXCEPT; -#endif /* U_HIDE_DRAFT_API */ /** * Non-member UnicodeString swap function. * @param s1 will get s2's contents and state * @param s2 will get s1's contents and state - * @draft ICU 56 + * @stable ICU 56 */ friend U_COMMON_API inline void U_EXPORT2 swap(UnicodeString &s1, UnicodeString &s2) U_NOEXCEPT { @@ -3212,17 +3213,15 @@ class U_COMMON_API UnicodeString : public Replaceable */ UnicodeString(const UnicodeString& that); -#ifndef U_HIDE_DRAFT_API #if U_HAVE_RVALUE_REFERENCES /** * Move constructor, might leave src in bogus state. * This string will have the same contents and state that the source string had. * @param src source string - * @draft ICU 56 + * @stable ICU 56 */ UnicodeString(UnicodeString &&src) U_NOEXCEPT; #endif -#endif /* U_HIDE_DRAFT_API */ /** * 'Substring' constructor from tail of source string. @@ -3277,7 +3276,7 @@ class U_COMMON_API UnicodeString : public Replaceable * @see toUTF8String * @stable ICU 4.2 */ - static UnicodeString fromUTF8(const StringPiece &utf8); + static UnicodeString fromUTF8(StringPiece utf8); /** * Create a UnicodeString from a UTF-32 string. @@ -3392,7 +3391,7 @@ class U_COMMON_API UnicodeString : public Replaceable private: // For char* constructors. Could be made public. - UnicodeString &setToUTF8(const StringPiece &utf8); + UnicodeString &setToUTF8(StringPiece utf8); // For extract(char*). // We could make a toUTF8(target, capacity, errorCode) public but not // this version: New API will be cleaner if we make callers create substrings @@ -3617,7 +3616,6 @@ class U_COMMON_API UnicodeString : public Replaceable */ US_STACKBUF_SIZE=(int32_t)(UNISTR_OBJECT_SIZE-sizeof(void *)-2)/U_SIZEOF_UCHAR, kInvalidUChar=0xffff, // U+FFFF returned by charAt(invalid index) - kGrowSize=128, // grow size for this buffer kInvalidHashCode=0, // invalid hash code kEmptyHashCode=1, // hash code for empty string diff --git a/deps/icu-small/source/common/unicode/unorm.h b/deps/icu-small/source/common/unicode/unorm.h index ab3e34e84b3add..f527c263f0298a 100644 --- a/deps/icu-small/source/common/unicode/unorm.h +++ b/deps/icu-small/source/common/unicode/unorm.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (c) 1996-2016, International Business Machines Corporation @@ -22,8 +24,6 @@ #include "unicode/uiter.h" #include "unicode/unorm2.h" -#ifndef U_HIDE_DEPRECATED_API - /** * \file * \brief C API: Unicode Normalization @@ -129,6 +129,8 @@ * For more usage examples, see the Unicode Standard Annex. */ +// Do not conditionalize the following enum with #ifndef U_HIDE_DEPRECATED_API, +// it is needed for layout of Normalizer object. /** * Constants for normalization modes. * @deprecated ICU 56 Use unorm2.h instead. @@ -153,6 +155,8 @@ typedef enum { UNORM_MODE_COUNT } UNormalizationMode; +#ifndef U_HIDE_DEPRECATED_API + /** * Constants for options flags for normalization. * Use 0 for default options, diff --git a/deps/icu-small/source/common/unicode/unorm2.h b/deps/icu-small/source/common/unicode/unorm2.h index b557d6a3ec2ebf..56e99b2a22b413 100644 --- a/deps/icu-small/source/common/unicode/unorm2.h +++ b/deps/icu-small/source/common/unicode/unorm2.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/uobject.h b/deps/icu-small/source/common/unicode/uobject.h index cdd14f42accb7e..96b1b8fbeadd19 100644 --- a/deps/icu-small/source/common/unicode/uobject.h +++ b/deps/icu-small/source/common/unicode/uobject.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/urename.h b/deps/icu-small/source/common/unicode/urename.h index 627ffa9bdc46df..b220a546975e47 100644 --- a/deps/icu-small/source/common/unicode/urename.h +++ b/deps/icu-small/source/common/unicode/urename.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2002-2016, International Business Machines @@ -474,6 +476,9 @@ #define ubidi_setReorderingOptions U_ICU_ENTRY_POINT_RENAME(ubidi_setReorderingOptions) #define ubidi_writeReordered U_ICU_ENTRY_POINT_RENAME(ubidi_writeReordered) #define ubidi_writeReverse U_ICU_ENTRY_POINT_RENAME(ubidi_writeReverse) +#define ubiditransform_close U_ICU_ENTRY_POINT_RENAME(ubiditransform_close) +#define ubiditransform_open U_ICU_ENTRY_POINT_RENAME(ubiditransform_open) +#define ubiditransform_transform U_ICU_ENTRY_POINT_RENAME(ubiditransform_transform) #define ublock_getCode U_ICU_ENTRY_POINT_RENAME(ublock_getCode) #define ubrk_close U_ICU_ENTRY_POINT_RENAME(ubrk_close) #define ubrk_countAvailable U_ICU_ENTRY_POINT_RENAME(ubrk_countAvailable) @@ -1013,6 +1018,7 @@ #define ulist_getListSize U_ICU_ENTRY_POINT_RENAME(ulist_getListSize) #define ulist_getNext U_ICU_ENTRY_POINT_RENAME(ulist_getNext) #define ulist_next_keyword_value U_ICU_ENTRY_POINT_RENAME(ulist_next_keyword_value) +#define ulist_removeString U_ICU_ENTRY_POINT_RENAME(ulist_removeString) #define ulist_resetList U_ICU_ENTRY_POINT_RENAME(ulist_resetList) #define ulist_reset_keyword_values_iterator U_ICU_ENTRY_POINT_RENAME(ulist_reset_keyword_values_iterator) #define ulistfmt_close U_ICU_ENTRY_POINT_RENAME(ulistfmt_close) @@ -1355,6 +1361,7 @@ #define uprv_toupper U_ICU_ENTRY_POINT_RENAME(uprv_toupper) #define uprv_trunc U_ICU_ENTRY_POINT_RENAME(uprv_trunc) #define uprv_tzname U_ICU_ENTRY_POINT_RENAME(uprv_tzname) +#define uprv_tzname_clear_cache U_ICU_ENTRY_POINT_RENAME(uprv_tzname_clear_cache) #define uprv_tzset U_ICU_ENTRY_POINT_RENAME(uprv_tzset) #define uprv_uint16Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint16Comparator) #define uprv_uint32Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint32Comparator) @@ -1456,10 +1463,7 @@ #define ures_countArrayItems U_ICU_ENTRY_POINT_RENAME(ures_countArrayItems) #define ures_findResource U_ICU_ENTRY_POINT_RENAME(ures_findResource) #define ures_findSubResource U_ICU_ENTRY_POINT_RENAME(ures_findSubResource) -#define ures_getAllArrayItems U_ICU_ENTRY_POINT_RENAME(ures_getAllArrayItems) -#define ures_getAllArrayItemsWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getAllArrayItemsWithFallback) -#define ures_getAllTableItems U_ICU_ENTRY_POINT_RENAME(ures_getAllTableItems) -#define ures_getAllTableItemsWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getAllTableItemsWithFallback) +#define ures_getAllItemsWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getAllItemsWithFallback) #define ures_getBinary U_ICU_ENTRY_POINT_RENAME(ures_getBinary) #define ures_getByIndex U_ICU_ENTRY_POINT_RENAME(ures_getByIndex) #define ures_getByKey U_ICU_ENTRY_POINT_RENAME(ures_getByKey) @@ -1607,13 +1611,20 @@ #define uspoof_areConfusableUTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_areConfusableUTF8) #define uspoof_areConfusableUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_areConfusableUnicodeString) #define uspoof_check U_ICU_ENTRY_POINT_RENAME(uspoof_check) +#define uspoof_check2 U_ICU_ENTRY_POINT_RENAME(uspoof_check2) +#define uspoof_check2UTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_check2UTF8) +#define uspoof_check2UnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_check2UnicodeString) #define uspoof_checkUTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_checkUTF8) #define uspoof_checkUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_checkUnicodeString) #define uspoof_clone U_ICU_ENTRY_POINT_RENAME(uspoof_clone) #define uspoof_close U_ICU_ENTRY_POINT_RENAME(uspoof_close) +#define uspoof_closeCheckResult U_ICU_ENTRY_POINT_RENAME(uspoof_closeCheckResult) #define uspoof_getAllowedChars U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedChars) #define uspoof_getAllowedLocales U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedLocales) #define uspoof_getAllowedUnicodeSet U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedUnicodeSet) +#define uspoof_getCheckResultChecks U_ICU_ENTRY_POINT_RENAME(uspoof_getCheckResultChecks) +#define uspoof_getCheckResultNumerics U_ICU_ENTRY_POINT_RENAME(uspoof_getCheckResultNumerics) +#define uspoof_getCheckResultRestrictionLevel U_ICU_ENTRY_POINT_RENAME(uspoof_getCheckResultRestrictionLevel) #define uspoof_getChecks U_ICU_ENTRY_POINT_RENAME(uspoof_getChecks) #define uspoof_getInclusionSet U_ICU_ENTRY_POINT_RENAME(uspoof_getInclusionSet) #define uspoof_getInclusionUnicodeSet U_ICU_ENTRY_POINT_RENAME(uspoof_getInclusionUnicodeSet) @@ -1625,6 +1636,7 @@ #define uspoof_getSkeletonUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_getSkeletonUnicodeString) #define uspoof_internalInitStatics U_ICU_ENTRY_POINT_RENAME(uspoof_internalInitStatics) #define uspoof_open U_ICU_ENTRY_POINT_RENAME(uspoof_open) +#define uspoof_openCheckResult U_ICU_ENTRY_POINT_RENAME(uspoof_openCheckResult) #define uspoof_openFromSerialized U_ICU_ENTRY_POINT_RENAME(uspoof_openFromSerialized) #define uspoof_openFromSource U_ICU_ENTRY_POINT_RENAME(uspoof_openFromSource) #define uspoof_serialize U_ICU_ENTRY_POINT_RENAME(uspoof_serialize) diff --git a/deps/icu-small/source/common/unicode/urep.h b/deps/icu-small/source/common/unicode/urep.h index 3d1b0b6902e386..128f465319e2be 100644 --- a/deps/icu-small/source/common/unicode/urep.h +++ b/deps/icu-small/source/common/unicode/urep.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2010, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ures.h b/deps/icu-small/source/common/unicode/ures.h index 190a5050aefc4c..620d9268aaceeb 100644 --- a/deps/icu-small/source/common/unicode/ures.h +++ b/deps/icu-small/source/common/unicode/ures.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -120,9 +122,13 @@ typedef enum { RES_INT_VECTOR=URES_INT_VECTOR, /** @deprecated ICU 2.6 Not used. */ RES_RESERVED=15, -#endif /* U_HIDE_DEPRECATED_API */ + /** + * One more than the highest normal UResType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ URES_LIMIT = 16 +#endif // U_HIDE_DEPRECATED_API } UResType; /* diff --git a/deps/icu-small/source/common/unicode/uscript.h b/deps/icu-small/source/common/unicode/uscript.h index 7615a49998df89..a20cd157a45507 100644 --- a/deps/icu-small/source/common/unicode/uscript.h +++ b/deps/icu-small/source/common/unicode/uscript.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** - * Copyright (C) 1997-2015, International Business Machines + * Copyright (C) 1997-2016, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -32,13 +34,13 @@ * See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/) * and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt . * - * Starting with ICU 3.6, constants for most ISO 15924 script codes + * In addition, constants for many ISO 15924 script codes * are included, for use with language tags, CLDR data, and similar. * Some of those codes are not used in the Unicode Character Database (UCD). * For example, there are no characters that have a UCD script property value of * Hans or Hant. All Han ideographs have the Hani script property value in Unicode. * - * Private-use codes Qaaa..Qabx are not included. + * Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR. * * Starting with ICU 55, script codes are only added when their scripts * have been or will certainly be encoded in Unicode, @@ -424,18 +426,33 @@ typedef enum UScriptCode { /** @stable ICU 54 */ USCRIPT_SIDDHAM = 166,/* Sidd */ - /** - * One higher than the last script code constant. - * This value increases as constants for script codes are added. - * - * There are constants for Unicode 7 script property values. - * There are constants for ISO 15924 script codes assigned on or before 2013-10-12. - * There are no constants for private use codes from Qaaa - Qabx - * except as used in the UCD. - * - * @stable ICU 2.2 - */ - USCRIPT_CODE_LIMIT = 167 + /** @stable ICU 58 */ + USCRIPT_ADLAM = 167,/* Adlm */ + /** @stable ICU 58 */ + USCRIPT_BHAIKSUKI = 168,/* Bhks */ + /** @stable ICU 58 */ + USCRIPT_MARCHEN = 169,/* Marc */ + /** @stable ICU 58 */ + USCRIPT_NEWA = 170,/* Newa */ + /** @stable ICU 58 */ + USCRIPT_OSAGE = 171,/* Osge */ + + /** @stable ICU 58 */ + USCRIPT_HAN_WITH_BOPOMOFO = 172,/* Hanb */ + /** @stable ICU 58 */ + USCRIPT_JAMO = 173,/* Jamo */ + /** @stable ICU 58 */ + USCRIPT_SYMBOLS_EMOJI = 174,/* Zsye */ + +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UScriptCode value. + * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SCRIPT). + * + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + USCRIPT_CODE_LIMIT = 175 +#endif // U_HIDE_DEPRECATED_API } UScriptCode; /** @@ -503,9 +520,6 @@ uscript_getScript(UChar32 codepoint, UErrorCode *err); * * Some characters are commonly used in multiple scripts. * For more information, see UAX #24: http://www.unicode.org/reports/tr24/. - * - * The Script_Extensions property is provisional. It may be modified or removed - * in future versions of the Unicode Standard, and thus in ICU. * @param c code point * @param sc script code * @return TRUE if sc is in Script_Extensions(c) @@ -532,8 +546,6 @@ uscript_hasScript(UChar32 c, UScriptCode sc); * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned. * (Usual ICU buffer handling behavior.) * - * The Script_Extensions property is provisional. It may be modified or removed - * in future versions of the Unicode Standard, and thus in ICU. * @param c code point * @param scripts output script code array * @param capacity capacity of the scripts array diff --git a/deps/icu-small/source/common/unicode/uset.h b/deps/icu-small/source/common/unicode/uset.h index 1db3d3db59e938..b4ed176eb951a6 100644 --- a/deps/icu-small/source/common/unicode/uset.h +++ b/deps/icu-small/source/common/unicode/uset.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -196,11 +198,13 @@ typedef enum USetSpanCondition { * @stable ICU 3.8 */ USET_SPAN_SIMPLE = 2, +#ifndef U_HIDE_DEPRECATED_API /** * One more than the last span condition. - * @stable ICU 3.8 + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ USET_SPAN_CONDITION_COUNT +#endif // U_HIDE_DEPRECATED_API } USetSpanCondition; enum { diff --git a/deps/icu-small/source/common/unicode/usetiter.h b/deps/icu-small/source/common/unicode/usetiter.h index a0aae22115238d..d70e897b223335 100644 --- a/deps/icu-small/source/common/unicode/usetiter.h +++ b/deps/icu-small/source/common/unicode/usetiter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ushape.h b/deps/icu-small/source/common/unicode/ushape.h index dcd8bfe6791f29..97fe9e3880b843 100644 --- a/deps/icu-small/source/common/unicode/ushape.h +++ b/deps/icu-small/source/common/unicode/ushape.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unicode/usprep.h b/deps/icu-small/source/common/unicode/usprep.h index 767279857adb47..fce161759d9f9b 100644 --- a/deps/icu-small/source/common/unicode/usprep.h +++ b/deps/icu-small/source/common/unicode/usprep.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/ustring.h b/deps/icu-small/source/common/unicode/ustring.h index 10080350d66144..8f4809c8159ca9 100644 --- a/deps/icu-small/source/common/unicode/ustring.h +++ b/deps/icu-small/source/common/unicode/ustring.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1998-2014, International Business Machines diff --git a/deps/icu-small/source/common/unicode/ustringtrie.h b/deps/icu-small/source/common/unicode/ustringtrie.h index 871d0f887a3765..50d31ba226c308 100644 --- a/deps/icu-small/source/common/unicode/ustringtrie.h +++ b/deps/icu-small/source/common/unicode/ustringtrie.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2012, International Business Machines diff --git a/deps/icu-small/source/common/unicode/utext.h b/deps/icu-small/source/common/unicode/utext.h index 5c6d3d05c6c9ce..84ff22ad630f38 100644 --- a/deps/icu-small/source/common/unicode/utext.h +++ b/deps/icu-small/source/common/unicode/utext.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utf.h b/deps/icu-small/source/common/unicode/utf.h index 679e8f6e630e77..7f40190eb81ac7 100644 --- a/deps/icu-small/source/common/unicode/utf.h +++ b/deps/icu-small/source/common/unicode/utf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utf16.h b/deps/icu-small/source/common/unicode/utf16.h index 986b4137170476..3455a40e56cceb 100644 --- a/deps/icu-small/source/common/unicode/utf16.h +++ b/deps/icu-small/source/common/unicode/utf16.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utf32.h b/deps/icu-small/source/common/unicode/utf32.h index bf63e69dba00c7..f93727c109442a 100644 --- a/deps/icu-small/source/common/unicode/utf32.h +++ b/deps/icu-small/source/common/unicode/utf32.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utf8.h b/deps/icu-small/source/common/unicode/utf8.h index 94a01342407745..095e955ecd3c7e 100644 --- a/deps/icu-small/source/common/unicode/utf8.h +++ b/deps/icu-small/source/common/unicode/utf8.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utf_old.h b/deps/icu-small/source/common/unicode/utf_old.h index 47dd1da3cc98d8..b550b28ae3ad98 100644 --- a/deps/icu-small/source/common/unicode/utf_old.h +++ b/deps/icu-small/source/common/unicode/utf_old.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unicode/utrace.h b/deps/icu-small/source/common/unicode/utrace.h index 1a51ff9a62d467..9add16f1ccb078 100644 --- a/deps/icu-small/source/common/unicode/utrace.h +++ b/deps/icu-small/source/common/unicode/utrace.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -64,7 +66,13 @@ typedef enum UTraceFunctionNumber { UTRACE_FUNCTION_START=0, UTRACE_U_INIT=UTRACE_FUNCTION_START, UTRACE_U_CLEANUP, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal collation trace location. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UTRACE_FUNCTION_LIMIT, +#endif // U_HIDE_DEPRECATED_API UTRACE_CONVERSION_START=0x1000, UTRACE_UCNV_OPEN=UTRACE_CONVERSION_START, @@ -75,7 +83,13 @@ typedef enum UTraceFunctionNumber { UTRACE_UCNV_FLUSH_CACHE, UTRACE_UCNV_LOAD, UTRACE_UCNV_UNLOAD, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal collation trace location. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UTRACE_CONVERSION_LIMIT, +#endif // U_HIDE_DEPRECATED_API UTRACE_COLLATION_START=0x2000, UTRACE_UCOL_OPEN=UTRACE_COLLATION_START, @@ -87,7 +101,13 @@ typedef enum UTraceFunctionNumber { UTRACE_UCOL_STRCOLLITER, UTRACE_UCOL_OPEN_FROM_SHORT_STRING, UTRACE_UCOL_STRCOLLUTF8, /**< @stable ICU 50 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal collation trace location. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UTRACE_COLLATION_LIMIT +#endif // U_HIDE_DEPRECATED_API } UTraceFunctionNumber; /** diff --git a/deps/icu-small/source/common/unicode/utypes.h b/deps/icu-small/source/common/unicode/utypes.h index 5a761c094b8e48..8325d534ed1167 100644 --- a/deps/icu-small/source/common/unicode/utypes.h +++ b/deps/icu-small/source/common/unicode/utypes.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1996-2016, International Business Machines @@ -373,88 +375,6 @@ typedef double UDate; #define U_STANDARD_CPP_NAMESPACE #endif - -/*===========================================================================*/ -/* Global delete operator */ -/*===========================================================================*/ - -/* - * The ICU4C library must not use the global new and delete operators. - * These operators here are defined to enable testing for this. - * See Jitterbug 2581 for details of why this is necessary. - * - * Verification that ICU4C's memory usage is correct, i.e., - * that global new/delete are not used: - * - * a) Check for imports of global new/delete (see uobject.cpp for details) - * b) Verify that new is never imported. - * c) Verify that delete is only imported from object code for interface/mixin classes. - * d) Add global delete and delete[] only for the ICU4C library itself - * and define them in a way that crashes or otherwise easily shows a problem. - * - * The following implements d). - * The operator implementations crash; this is intentional and used for library debugging. - * - * Note: This is currently only done on Windows because - * some Linux/Unix compilers have problems with defining global new/delete. - * On Windows, it is _MSC_VER>=1200 for MSVC 6.0 and higher. - */ -#if defined(__cplusplus) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION)) - -#ifndef U_HIDE_INTERNAL_API -/** - * Global operator new, defined only inside ICU4C, must not be used. - * Crashes intentionally. - * @internal - */ -inline void * -operator new(size_t /*size*/) { - char *q=NULL; - *q=5; /* break it */ - return q; -} - -#ifdef _Ret_bytecap_ -/* This is only needed to suppress a Visual C++ 2008 warning for operator new[]. */ -_Ret_bytecap_(_Size) -#endif -/** - * Global operator new[], defined only inside ICU4C, must not be used. - * Crashes intentionally. - * @internal - */ -inline void * -operator new[](size_t /*size*/) { - char *q=NULL; - *q=5; /* break it */ - return q; -} - -/** - * Global operator delete, defined only inside ICU4C, must not be used. - * Crashes intentionally. - * @internal - */ -inline void -operator delete(void * /*p*/) { - char *q=NULL; - *q=5; /* break it */ -} - -/** - * Global operator delete[], defined only inside ICU4C, must not be used. - * Crashes intentionally. - * @internal - */ -inline void -operator delete[](void * /*p*/) { - char *q=NULL; - *q=5; /* break it */ -} - -#endif /* U_HIDE_INTERNAL_API */ -#endif - /*===========================================================================*/ /* UErrorCode */ /*===========================================================================*/ @@ -499,8 +419,13 @@ typedef enum UErrorCode { U_PLUGIN_CHANGED_LEVEL_WARNING = -120, /**< A plugin caused a level change. May not be an error, but later plugins may not load. */ - U_ERROR_WARNING_LIMIT, /**< This must always be the last warning value to indicate the limit for UErrorCode warnings (last warning code +1) */ - +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UErrorCode warning value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_ERROR_WARNING_LIMIT, +#endif // U_HIDE_DEPRECATED_API U_ZERO_ERROR = 0, /**< No error, no warning. */ @@ -536,9 +461,16 @@ typedef enum UErrorCode { U_USELESS_COLLATOR_ERROR = 29, /**< Collator is options only and no base is specified */ U_NO_WRITE_PERMISSION = 30, /**< Attempt to modify read-only or constant data. */ - U_STANDARD_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for standard errors */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest standard error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_STANDARD_ERROR_LIMIT, +#endif // U_HIDE_DEPRECATED_API + /* - * the error code range 0x10000 0x10100 are reserved for Transliterator + * Error codes in the range 0x10000 0x10100 are reserved for Transliterator. */ U_BAD_VARIABLE_DEFINITION=0x10000,/**< Missing '$' or duplicate variable name */ U_PARSE_ERROR_START = 0x10000, /**< Start of Transliterator errors */ @@ -576,10 +508,16 @@ typedef enum UErrorCode { U_INTERNAL_TRANSLITERATOR_ERROR, /**< Internal transliterator system error */ U_INVALID_ID, /**< A "::id" rule specifies an unknown transliterator */ U_INVALID_FUNCTION, /**< A "&fn()" rule specifies an unknown transliterator */ - U_PARSE_ERROR_LIMIT, /**< The limit for Transliterator errors */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal Transliterator error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_PARSE_ERROR_LIMIT, +#endif // U_HIDE_DEPRECATED_API /* - * the error code range 0x10100 0x10200 are reserved for formatting API parsing error + * Error codes in the range 0x10100 0x10200 are reserved for the formatting API. */ U_UNEXPECTED_TOKEN=0x10100, /**< Syntax error in format pattern */ U_FMT_PARSE_ERROR_START=0x10100, /**< Start of format library errors */ @@ -601,10 +539,16 @@ typedef enum UErrorCode { U_DEFAULT_KEYWORD_MISSING, /**< Missing DEFAULT rule in plural rules */ U_DECIMAL_NUMBER_SYNTAX_ERROR, /**< Decimal number syntax error */ U_FORMAT_INEXACT_ERROR, /**< Cannot format a number exactly and rounding mode is ROUND_UNNECESSARY @stable ICU 4.8 */ - U_FMT_PARSE_ERROR_LIMIT, /**< The limit for format library errors */ +#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, +#endif // U_HIDE_DEPRECATED_API /* - * the error code range 0x10200 0x102ff are reserved for Break Iterator related error + * Error codes in the range 0x10200 0x102ff are reserved for BreakIterator. */ U_BRK_INTERNAL_ERROR=0x10200, /**< An internal error (bug) was detected. */ U_BRK_ERROR_START=0x10200, /**< Start of codes indicating Break Iterator failures */ @@ -621,10 +565,16 @@ typedef enum UErrorCode { U_BRK_RULE_EMPTY_SET, /**< Rule contains an empty Unicode Set. */ U_BRK_UNRECOGNIZED_OPTION, /**< !!option in RBBI rules not recognized. */ U_BRK_MALFORMED_RULE_TAG, /**< The {nnn} tag on a rule is mal formed */ - U_BRK_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for Break Iterator failures */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal BreakIterator error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_BRK_ERROR_LIMIT, +#endif // U_HIDE_DEPRECATED_API /* - * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs + * Error codes in the range 0x10300-0x103ff are reserved for regular expression related errors. */ U_REGEX_INTERNAL_ERROR=0x10300, /**< An internal error (bug) was detected. */ U_REGEX_ERROR_START=0x10300, /**< Start of codes indicating Regexp failures */ @@ -651,10 +601,16 @@ typedef enum UErrorCode { U_REGEX_STOPPED_BY_CALLER, /**< Matching operation aborted by user callback fn. */ U_REGEX_PATTERN_TOO_BIG, /**< Pattern exceeds limits on size or complexity. @stable ICU 55 */ U_REGEX_INVALID_CAPTURE_GROUP_NAME, /**< Invalid capture group name. @stable ICU 55 */ - U_REGEX_ERROR_LIMIT=U_REGEX_STOPPED_BY_CALLER+3, /**< This must always be the last value to indicate the limit for regexp errors */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal regular expression error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_REGEX_ERROR_LIMIT=U_REGEX_STOPPED_BY_CALLER+3, +#endif // U_HIDE_DEPRECATED_API /* - * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes + * Error codes in the range 0x10400-0x104ff are reserved for IDNA related error codes. */ U_IDNA_PROHIBITED_ERROR=0x10400, U_IDNA_ERROR_START=0x10400, @@ -666,7 +622,13 @@ typedef enum UErrorCode { U_IDNA_LABEL_TOO_LONG_ERROR, U_IDNA_ZERO_LENGTH_LABEL_ERROR, U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal IDNA error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ U_IDNA_ERROR_LIMIT, +#endif // U_HIDE_DEPRECATED_API /* * Aliases for StringPrep */ @@ -675,14 +637,26 @@ typedef enum UErrorCode { U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, /* - * The error code in the range 0x10500-0x105ff are reserved for Plugin related error codes + * Error codes in the range 0x10500-0x105ff are reserved for Plugin related error codes. */ U_PLUGIN_ERROR_START=0x10500, /**< Start of codes indicating plugin failures */ U_PLUGIN_TOO_HIGH=0x10500, /**< The plugin's level is too high to be loaded right now. */ U_PLUGIN_DIDNT_SET_LEVEL, /**< The plugin didn't call uplug_setPlugLevel in response to a QUERY */ - U_PLUGIN_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for plugin errors */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal plug-in error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_PLUGIN_ERROR_LIMIT, +#endif // U_HIDE_DEPRECATED_API - U_ERROR_LIMIT=U_PLUGIN_ERROR_LIMIT /**< This must always be the last value to indicate the limit for UErrorCode (last error code +1) */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal error code. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + U_ERROR_LIMIT=U_PLUGIN_ERROR_LIMIT +#endif // U_HIDE_DEPRECATED_API } UErrorCode; /* Use the following to determine if an UErrorCode represents */ diff --git a/deps/icu-small/source/common/unicode/uvernum.h b/deps/icu-small/source/common/unicode/uvernum.h index 9c6edc3730d045..fb7b48bc07055c 100644 --- a/deps/icu-small/source/common/unicode/uvernum.h +++ b/deps/icu-small/source/common/unicode/uvernum.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2000-2016, International Business Machines @@ -32,13 +34,12 @@ * by running the UNIX makefile target 'update-windows-makefiles' in icu/source. * * - * source/common/common.vcproj - update 'Output file name' on the link tab so + * source/common/common.vcxproj - update 'Output file name' on the link tab so * that it contains the new major/minor combination - * source/i18n/i18n.vcproj - same as for the common.vcproj - * source/layout/layout.vcproj - same as for the common.vcproj + * source/i18n/i18n.vcxproj - same as for the common.vcxproj * source/layoutex/layoutex.vcproj - same - * source/stubdata/stubdata.vcproj - same as for the common.vcproj - * source/io/io.vcproj - same as for the common.vcproj + * source/stubdata/stubdata.vcproj - same as for the common.vcxproj + * source/io/io.vcproj - same as for the common.vcxproj * source/data/makedata.mak - change U_ICUDATA_NAME so that it contains * the new major/minor combination and the Unicode version. */ @@ -51,13 +52,13 @@ * @stable ICU 2.4 */ #define U_COPYRIGHT_STRING \ - " Copyright (C) 2016, International Business Machines Corporation and others. All Rights Reserved. " + " Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html " /** The current ICU major version as an integer. * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION_MAJOR_NUM 57 +#define U_ICU_VERSION_MAJOR_NUM 58 /** The current ICU minor version as an integer. * This value will change in the subsequent releases of ICU @@ -83,7 +84,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SUFFIX _57 +#define U_ICU_VERSION_SUFFIX _58 /** * \def U_DEF2_ICU_ENTRY_POINT_RENAME @@ -118,19 +119,19 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "57.1" +#define U_ICU_VERSION "58.1" /** The current ICU library major/minor version as a string without dots, for library name suffixes. * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SHORT "57" +#define U_ICU_VERSION_SHORT "58" #ifndef U_HIDE_INTERNAL_API /** Data version in ICU4C. * @internal ICU 4.4 Internal Use Only **/ -#define U_ICU_DATA_VERSION "57.1" +#define U_ICU_DATA_VERSION "58.1" #endif /* U_HIDE_INTERNAL_API */ /*=========================================================================== diff --git a/deps/icu-small/source/common/unicode/uversion.h b/deps/icu-small/source/common/unicode/uversion.h index 2200cfaff199af..63e2d17a363d94 100644 --- a/deps/icu-small/source/common/unicode/uversion.h +++ b/deps/icu-small/source/common/unicode/uversion.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2000-2011, International Business Machines diff --git a/deps/icu-small/source/common/unifiedcache.cpp b/deps/icu-small/source/common/unifiedcache.cpp index d7450f785a3e1c..3e8e33a1ff2806 100644 --- a/deps/icu-small/source/common/unifiedcache.cpp +++ b/deps/icu-small/source/common/unifiedcache.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unifiedcache.h b/deps/icu-small/source/common/unifiedcache.h index 7807b5dbbb146e..67c676d4531c72 100644 --- a/deps/icu-small/source/common/unifiedcache.h +++ b/deps/icu-small/source/common/unifiedcache.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015, International Business Machines Corporation and @@ -140,7 +142,7 @@ class LocaleCacheKey : public CacheKey { : CacheKey(other), fLoc(other.fLoc) { } virtual ~LocaleCacheKey() { } virtual int32_t hashCode() const { - return 37 *CacheKey::hashCode() + fLoc.hashCode(); + return (int32_t)(37u * (uint32_t)CacheKey::hashCode() + (uint32_t)fLoc.hashCode()); } virtual UBool operator == (const CacheKeyBase &other) const { // reflexive diff --git a/deps/icu-small/source/common/unifilt.cpp b/deps/icu-small/source/common/unifilt.cpp index 5e1a131f11d2be..2d8ce355c7532a 100644 --- a/deps/icu-small/source/common/unifilt.cpp +++ b/deps/icu-small/source/common/unifilt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2012, International Business Machines diff --git a/deps/icu-small/source/common/unifunct.cpp b/deps/icu-small/source/common/unifunct.cpp index b834eeed53526d..8fdc638407dee6 100644 --- a/deps/icu-small/source/common/unifunct.cpp +++ b/deps/icu-small/source/common/unifunct.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2004, International Business Machines diff --git a/deps/icu-small/source/common/uniset.cpp b/deps/icu-small/source/common/uniset.cpp index 355dc40ac8ae02..ef1b6113d9b96e 100644 --- a/deps/icu-small/source/common/uniset.cpp +++ b/deps/icu-small/source/common/uniset.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2015, International Business Machines @@ -234,7 +236,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o, UBool /* asThawed */) : if(list!=NULL){ // *this = o except for bmpSet and stringSpan len = o.len; - uprv_memcpy(list, o.list, len*sizeof(UChar32)); + uprv_memcpy(list, o.list, (size_t)len*sizeof(UChar32)); if (strings != NULL && o.strings != NULL) { strings->assign(*o.strings, cloneUnicodeString, status); } else { // Invalid strings. @@ -286,7 +288,7 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) { return *this; // There is no way to report this error :-( } len = o.len; - uprv_memcpy(list, o.list, len*sizeof(UChar32)); + uprv_memcpy(list, o.list, (size_t)len*sizeof(UChar32)); if (o.bmpSet == NULL) { bmpSet = NULL; } else { @@ -1253,14 +1255,14 @@ UnicodeSet& UnicodeSet::complement(void) { if (U_FAILURE(status)) { return *this; } - uprv_memcpy(buffer, list + 1, (len-1)*sizeof(UChar32)); + uprv_memcpy(buffer, list + 1, (size_t)(len-1)*sizeof(UChar32)); --len; } else { ensureBufferCapacity(len+1, status); if (U_FAILURE(status)) { return *this; } - uprv_memcpy(buffer + 1, list, len*sizeof(UChar32)); + uprv_memcpy(buffer + 1, list, (size_t)len*sizeof(UChar32)); buffer[0] = UNICODESET_LOW; ++len; } diff --git a/deps/icu-small/source/common/uniset_closure.cpp b/deps/icu-small/source/common/uniset_closure.cpp index e7aeff846a79a7..cacadf47758334 100644 --- a/deps/icu-small/source/common/uniset_closure.cpp +++ b/deps/icu-small/source/common/uniset_closure.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uniset_props.cpp b/deps/icu-small/source/common/uniset_props.cpp index d8b7042b83ebed..8348f8a33aa611 100644 --- a/deps/icu-small/source/common/uniset_props.cpp +++ b/deps/icu-small/source/common/uniset_props.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unisetspan.cpp b/deps/icu-small/source/common/unisetspan.cpp index 63cf985c034fc8..1179495d4feb6a 100644 --- a/deps/icu-small/source/common/unisetspan.cpp +++ b/deps/icu-small/source/common/unisetspan.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unisetspan.h b/deps/icu-small/source/common/unisetspan.h index 2fe0fc30d9f158..36cdd98d044d09 100644 --- a/deps/icu-small/source/common/unisetspan.h +++ b/deps/icu-small/source/common/unisetspan.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/unistr.cpp b/deps/icu-small/source/common/unistr.cpp index 4804083b207066..f825de91bba9dc 100644 --- a/deps/icu-small/source/common/unistr.cpp +++ b/deps/icu-small/source/common/unistr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1999-2016, International Business Machines Corporation and @@ -82,7 +84,7 @@ us_arrayCopy(const UChar *src, int32_t srcStart, UChar *dst, int32_t dstStart, int32_t count) { if(count>0) { - uprv_memmove(dst+dstStart, src+srcStart, (size_t)(count*sizeof(*src))); + uprv_memmove(dst+dstStart, src+srcStart, (size_t)count*sizeof(*src)); } } @@ -151,41 +153,39 @@ UnicodeString::UnicodeString(int32_t capacity, UChar32 c, int32_t count) { if(count <= 0 || (uint32_t)c > 0x10ffff) { // just allocate and do not do anything else allocate(capacity); - } else { - // count > 0, allocate and fill the new string with count c's - int32_t unitCount = U16_LENGTH(c), length = count * unitCount; + } else if(c <= 0xffff) { + int32_t length = count; if(capacity < length) { capacity = length; } if(allocate(capacity)) { UChar *array = getArrayStart(); - int32_t i = 0; - - // fill the new string with c - if(unitCount == 1) { - // fill with length UChars - while(i < length) { - array[i++] = (UChar)c; - } - } else { - // get the code units for c - UChar units[U16_MAX_LENGTH]; - U16_APPEND_UNSAFE(units, i, c); - - // now it must be i==unitCount - i = 0; - - // for Unicode, unitCount can only be 1, 2, 3, or 4 - // 1 is handled above - while(i < length) { - int32_t unitIdx = 0; - while(unitIdx < unitCount) { - array[i++]=units[unitIdx++]; - } - } + UChar unit = (UChar)c; + for(int32_t i = 0; i < length; ++i) { + array[i] = unit; + } + setLength(length); + } + } else { // supplementary code point, write surrogate pairs + if(count > (INT32_MAX / 2)) { + // We would get more than 2G UChars. + allocate(capacity); + return; + } + int32_t length = count * 2; + if(capacity < length) { + capacity = length; + } + if(allocate(capacity)) { + UChar *array = getArrayStart(); + UChar lead = U16_LEAD(c); + UChar trail = U16_TRAIL(c); + for(int32_t i = 0; i < length; i += 2) { + array[i] = lead; + array[i + 1] = trail; } + setLength(length); } - setLength(length); } } @@ -342,33 +342,60 @@ UnicodeString::clone() const { // array allocation //======================================== +namespace { + +const int32_t kGrowSize = 128; + +// The number of bytes for one int32_t reference counter and capacity UChars +// must fit into a 32-bit size_t (at least when on a 32-bit platform). +// We also add one for the NUL terminator, to avoid reallocation in getTerminatedBuffer(), +// and round up to a multiple of 16 bytes. +// This means that capacity must be at most (0xfffffff0 - 4) / 2 - 1 = 0x7ffffff5. +// (With more complicated checks we could go up to 0x7ffffffd without rounding up, +// but that does not seem worth it.) +const int32_t kMaxCapacity = 0x7ffffff5; + +int32_t getGrowCapacity(int32_t newLength) { + int32_t growSize = (newLength >> 2) + kGrowSize; + if(growSize <= (kMaxCapacity - newLength)) { + return newLength + growSize; + } else { + return kMaxCapacity; + } +} + +} // namespace + UBool UnicodeString::allocate(int32_t capacity) { if(capacity <= US_STACKBUF_SIZE) { fUnion.fFields.fLengthAndFlags = kShortString; - } else { - // count bytes for the refCounter and the string capacity, and - // round up to a multiple of 16; then divide by 4 and allocate int32_t's - // to be safely aligned for the refCount - // the +1 is for the NUL terminator, to avoid reallocation in getTerminatedBuffer() - int32_t words = (int32_t)(((sizeof(int32_t) + (capacity + 1) * U_SIZEOF_UCHAR + 15) & ~15) >> 2); - int32_t *array = (int32_t*) uprv_malloc( sizeof(int32_t) * words ); - if(array != 0) { + return TRUE; + } + if(capacity <= kMaxCapacity) { + ++capacity; // for the NUL + // Switch to size_t which is unsigned so that we can allocate up to 4GB. + // Reference counter + UChars. + size_t numBytes = sizeof(int32_t) + (size_t)capacity * U_SIZEOF_UCHAR; + // Round up to a multiple of 16. + numBytes = (numBytes + 15) & ~15; + int32_t *array = (int32_t *) uprv_malloc(numBytes); + if(array != NULL) { // set initial refCount and point behind the refCount *array++ = 1; + numBytes -= sizeof(int32_t); // have fArray point to the first UChar fUnion.fFields.fArray = (UChar *)array; - fUnion.fFields.fCapacity = (int32_t)((words - 1) * (sizeof(int32_t) / U_SIZEOF_UCHAR)); + fUnion.fFields.fCapacity = (int32_t)(numBytes / U_SIZEOF_UCHAR); fUnion.fFields.fLengthAndFlags = kLongString; - } else { - fUnion.fFields.fLengthAndFlags = kIsBogus; - fUnion.fFields.fArray = 0; - fUnion.fFields.fCapacity = 0; - return FALSE; + return TRUE; } } - return TRUE; + fUnion.fFields.fLengthAndFlags = kIsBogus; + fUnion.fFields.fArray = 0; + fUnion.fFields.fCapacity = 0; + return FALSE; } //======================================== @@ -415,7 +442,7 @@ UnicodeString::~UnicodeString() // Factory methods //======================================== -UnicodeString UnicodeString::fromUTF8(const StringPiece &utf8) { +UnicodeString UnicodeString::fromUTF8(StringPiece utf8) { UnicodeString result; result.setToUTF8(utf8); return result; @@ -526,7 +553,7 @@ UnicodeString::copyFrom(const UnicodeString &src, UBool fastCopy) { // src is a writable alias; we make a copy of that instead int32_t srcLength = src.length(); if(allocate(srcLength)) { - uprv_memcpy(getArrayStart(), src.getArrayStart(), srcLength * U_SIZEOF_UCHAR); + u_memcpy(getArrayStart(), src.getArrayStart(), srcLength); setLength(srcLength); break; } @@ -855,7 +882,7 @@ UnicodeString::extract(UChar *dest, int32_t destCapacity, } else { const UChar *array = getArrayStart(); if(len>0 && len<=destCapacity && array!=dest) { - uprv_memcpy(dest, array, len*U_SIZEOF_UCHAR); + u_memcpy(dest, array, len); } return u_terminateUChars(dest, destCapacity, len, &errorCode); } @@ -1217,7 +1244,7 @@ UnicodeString::getTerminatedBuffer() { return array; } } - if(cloneArrayIfNeeded(len+1)) { + if(len (INT32_MAX - newLength)) { + setToBogus(); + return *this; + } + newLength += srcLength; // cloneArrayIfNeeded(doCopyArray=FALSE) may change fArray but will not copy the current contents; // therefore we need to keep the current fArray @@ -1446,7 +1479,7 @@ UnicodeString::doReplace(int32_t start, // clone our array and allocate a bigger array if needed int32_t *bufferToDelete = 0; - if(!cloneArrayIfNeeded(newLength, newLength + (newLength >> 2) + kGrowSize, + if(!cloneArrayIfNeeded(newLength, getGrowCapacity(newLength), FALSE, &bufferToDelete) ) { return *this; @@ -1513,7 +1546,7 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng int32_t newLength = oldLength + srcLength; // optimize append() onto a large-enough, owned string if((newLength <= getCapacity() && isBufferWritable()) || - cloneArrayIfNeeded(newLength, newLength + (newLength >> 2) + kGrowSize)) { + cloneArrayIfNeeded(newLength, getGrowCapacity(newLength))) { UChar *newArray = getArrayStart(); // Do not copy characters when // UChar *buffer=str.getAppendBuffer(...); @@ -1861,7 +1894,9 @@ UnicodeStringAppendable::getAppendBuffer(int32_t minCapacity, return NULL; } int32_t oldLength = str.length(); - if(str.cloneArrayIfNeeded(oldLength + minCapacity, oldLength + desiredCapacityHint)) { + if(minCapacity <= (kMaxCapacity - oldLength) && + desiredCapacityHint <= (kMaxCapacity - oldLength) && + str.cloneArrayIfNeeded(oldLength + minCapacity, oldLength + desiredCapacityHint)) { *resultCapacity = str.getCapacity() - oldLength; return str.getArrayStart() + oldLength; } diff --git a/deps/icu-small/source/common/unistr_case.cpp b/deps/icu-small/source/common/unistr_case.cpp index 1b52eb60decb8e..1715b6ec66e268 100644 --- a/deps/icu-small/source/common/unistr_case.cpp +++ b/deps/icu-small/source/common/unistr_case.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unistr_case_locale.cpp b/deps/icu-small/source/common/unistr_case_locale.cpp index a8d5704431ec17..a01be5c30b372a 100644 --- a/deps/icu-small/source/common/unistr_case_locale.cpp +++ b/deps/icu-small/source/common/unistr_case_locale.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/unistr_cnv.cpp b/deps/icu-small/source/common/unistr_cnv.cpp index 38998ffd026c4d..a9b44ee424c33f 100644 --- a/deps/icu-small/source/common/unistr_cnv.cpp +++ b/deps/icu-small/source/common/unistr_cnv.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unistr_props.cpp b/deps/icu-small/source/common/unistr_props.cpp index 87e19275946f72..533a683928c0bc 100644 --- a/deps/icu-small/source/common/unistr_props.cpp +++ b/deps/icu-small/source/common/unistr_props.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unistr_titlecase_brkiter.cpp b/deps/icu-small/source/common/unistr_titlecase_brkiter.cpp index 9b60e2a0358748..3d6737cfc5e3d9 100644 --- a/deps/icu-small/source/common/unistr_titlecase_brkiter.cpp +++ b/deps/icu-small/source/common/unistr_titlecase_brkiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/unistrappender.h b/deps/icu-small/source/common/unistrappender.h index a6f7c2efc44714..600fd9033585a8 100644 --- a/deps/icu-small/source/common/unistrappender.h +++ b/deps/icu-small/source/common/unistrappender.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/unorm.cpp b/deps/icu-small/source/common/unorm.cpp index fb948b88051d15..75aaea9cdfc02b 100644 --- a/deps/icu-small/source/common/unorm.cpp +++ b/deps/icu-small/source/common/unorm.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (c) 1996-2014, International Business Machines diff --git a/deps/icu-small/source/common/unormcmp.cpp b/deps/icu-small/source/common/unormcmp.cpp index 1b072c4c34d8be..b40a10a1385fb4 100644 --- a/deps/icu-small/source/common/unormcmp.cpp +++ b/deps/icu-small/source/common/unormcmp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/unormimp.h b/deps/icu-small/source/common/unormimp.h index 3dce76bc8fd361..c382f38b8beaae 100644 --- a/deps/icu-small/source/common/unormimp.h +++ b/deps/icu-small/source/common/unormimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uobject.cpp b/deps/icu-small/source/common/uobject.cpp index 900e0345952cdc..37406e4a0dc07a 100644 --- a/deps/icu-small/source/common/uobject.cpp +++ b/deps/icu-small/source/common/uobject.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/uposixdefs.h b/deps/icu-small/source/common/uposixdefs.h index ca84fefad1eff3..495deea49e3f7c 100644 --- a/deps/icu-small/source/common/uposixdefs.h +++ b/deps/icu-small/source/common/uposixdefs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2015, International Business Machines diff --git a/deps/icu-small/source/common/uprops.cpp b/deps/icu-small/source/common/uprops.cpp index 3bf44317b26466..46ceb66d8cf632 100644 --- a/deps/icu-small/source/common/uprops.cpp +++ b/deps/icu-small/source/common/uprops.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uprops.h b/deps/icu-small/source/common/uprops.h index d45fc6c79b433f..63c588088ad1c3 100644 --- a/deps/icu-small/source/common/uprops.h +++ b/deps/icu-small/source/common/uprops.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -86,8 +88,15 @@ enum { * ((ntv>>2)-0xbf) * 60^((ntv&3)+1) = (1..9)*(60^1..60^4) */ UPROPS_NTV_BASE60_START=0x300, + /** + * Fraction-20 values: + * frac20 = ntv-0x324 = 0..0x17 -> 1|3|5|7 / 20|40|80|160|320|640 + * numerator: num = 2*(frac20&3)+1 + * denominator: den = 20<<(frac20>>2) + */ + UPROPS_NTV_FRACTION20_START=UPROPS_NTV_BASE60_START+36, // 0x300+9*4=0x324 /** No numeric value (yet). */ - UPROPS_NTV_RESERVED_START=UPROPS_NTV_BASE60_START+36, /* 0x300+9*4=0x324 */ + UPROPS_NTV_RESERVED_START=UPROPS_NTV_FRACTION20_START+24, // 0x324+6*4=0x34c UPROPS_NTV_MAX_SMALL_INT=UPROPS_NTV_FRACTION_START-UPROPS_NTV_NUMERIC_START-1 }; diff --git a/deps/icu-small/source/common/ures_cnv.c b/deps/icu-small/source/common/ures_cnv.c index 6a16c50b624c7d..a810fc08567144 100644 --- a/deps/icu-small/source/common/ures_cnv.c +++ b/deps/icu-small/source/common/ures_cnv.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uresbund.cpp b/deps/icu-small/source/common/uresbund.cpp index bb6b039495399f..6813645c98b614 100644 --- a/deps/icu-small/source/common/uresbund.cpp +++ b/deps/icu-small/source/common/uresbund.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2016, International Business Machines Corporation and @@ -267,7 +269,7 @@ static UBool U_CALLCONV ures_cleanup(void) } /** INTERNAL: Initializes the cache for resources */ -static void createCache(UErrorCode &status) { +static void U_CALLCONV createCache(UErrorCode &status) { U_ASSERT(cache == NULL); cache = uhash_open(hashEntry, compareEntries, NULL, &status); ucln_common_registerCleanup(UCLN_COMMON_URES, ures_cleanup); @@ -1885,32 +1887,27 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, namespace { -void getAllContainerItemsWithFallback( +void getAllItemsWithFallback( const UResourceBundle *bundle, ResourceDataValue &value, - ResourceArraySink *arraySink, ResourceTableSink *tableSink, + ResourceSink &sink, UErrorCode &errorCode) { if (U_FAILURE(errorCode)) { return; } // We recursively enumerate child-first, // only storing parent items in the absence of child items. - // We store a placeholder value for the no-fallback/no-inheritance marker + // The sink needs to store a placeholder value for the no-fallback/no-inheritance marker // to prevent a parent item from being stored. // // It would be possible to recursively enumerate parent-first, // overriding parent items with child items. - // When we see the no-fallback/no-inheritance marker, - // then we would remove the parent's item. + // When the sink sees the no-fallback/no-inheritance marker, + // then it would remove the parent's item. // We would deserialize parent values even though they are overridden in a child bundle. - UResType expectedType = arraySink != NULL ? URES_ARRAY : URES_TABLE; - if (ures_getType(bundle) == expectedType) { - value.pResData = &bundle->fResData; - if (arraySink != NULL) { - ures_getAllArrayItems(&bundle->fResData, bundle->fRes, value, *arraySink, errorCode); - } else /* tableSink != NULL */ { - ures_getAllTableItems(&bundle->fResData, bundle->fRes, value, *tableSink, errorCode); - } - } - UResourceDataEntry *entry = bundle->fData->fParent; - if (entry != NULL && U_SUCCESS(entry->fBogus)) { + value.pResData = &bundle->fResData; + UResourceDataEntry *parentEntry = bundle->fData->fParent; + UBool hasParent = parentEntry != NULL && U_SUCCESS(parentEntry->fBogus); + value.setResource(bundle->fRes); + sink.put(bundle->fKey, value, !hasParent, errorCode); + if (hasParent) { // We might try to query the sink whether // any fallback from the parent bundle is still possible. @@ -1921,40 +1918,41 @@ void getAllContainerItemsWithFallback( // so that we need not create UResourceBundle objects. UResourceBundle parentBundle; ures_initStackObject(&parentBundle); - parentBundle.fTopLevelData = parentBundle.fData = entry; + parentBundle.fTopLevelData = parentBundle.fData = parentEntry; // TODO: What is the difference between bundle fData and fTopLevelData? - uprv_memcpy(&parentBundle.fResData, &entry->fData, sizeof(ResourceData)); + uprv_memcpy(&parentBundle.fResData, &parentEntry->fData, sizeof(ResourceData)); // TODO: Try to replace bundle.fResData with just using bundle.fData->fData. parentBundle.fHasFallback = !parentBundle.fResData.noFallback; parentBundle.fIsTopLevel = TRUE; parentBundle.fRes = parentBundle.fResData.rootRes; parentBundle.fSize = res_countArrayItems(&(parentBundle.fResData), parentBundle.fRes); parentBundle.fIndex = -1; - entryIncrease(entry); + entryIncrease(parentEntry); // Look up the container item in the parent bundle. UResourceBundle containerBundle; ures_initStackObject(&containerBundle); const UResourceBundle *rb; + UErrorCode pathErrorCode = U_ZERO_ERROR; // Ignore if parents up to root do not have this path. if (bundle->fResPath == NULL || *bundle->fResPath == 0) { rb = &parentBundle; } else { rb = ures_getByKeyWithFallback(&parentBundle, bundle->fResPath, - &containerBundle, &errorCode); + &containerBundle, &pathErrorCode); } - if (U_SUCCESS(errorCode) && ures_getType(rb) == expectedType) { - getAllContainerItemsWithFallback(rb, value, - arraySink, tableSink, errorCode); + if (U_SUCCESS(pathErrorCode)) { + getAllItemsWithFallback(rb, value, sink, errorCode); } ures_close(&containerBundle); ures_close(&parentBundle); } } -void getAllContainerItemsWithFallback( - const UResourceBundle *bundle, const char *path, - ResourceArraySink *arraySink, ResourceTableSink *tableSink, - UErrorCode &errorCode) { +} // namespace + +U_CAPI void U_EXPORT2 +ures_getAllItemsWithFallback(const UResourceBundle *bundle, const char *path, + icu::ResourceSink &sink, UErrorCode &errorCode) { if (U_FAILURE(errorCode)) { return; } if (path == NULL) { errorCode = U_ILLEGAL_ARGUMENT_ERROR; @@ -1973,32 +1971,12 @@ void getAllContainerItemsWithFallback( return; } } - UResType expectedType = arraySink != NULL ? URES_ARRAY : URES_TABLE; - if (ures_getType(rb) != expectedType) { - errorCode = U_RESOURCE_TYPE_MISMATCH; - ures_close(&stackBundle); - return; - } // Get all table items with fallback. ResourceDataValue value; - getAllContainerItemsWithFallback(rb, value, arraySink, tableSink, errorCode); + getAllItemsWithFallback(rb, value, sink, errorCode); ures_close(&stackBundle); } -} // namespace - -U_CAPI void U_EXPORT2 -ures_getAllArrayItemsWithFallback(const UResourceBundle *bundle, const char *path, - ResourceArraySink &sink, UErrorCode &errorCode) { - getAllContainerItemsWithFallback(bundle, path, &sink, NULL, errorCode); -} - -U_CAPI void U_EXPORT2 -ures_getAllTableItemsWithFallback(const UResourceBundle *bundle, const char *path, - ResourceTableSink &sink, UErrorCode &errorCode) { - getAllContainerItemsWithFallback(bundle, path, NULL, &sink, errorCode); -} - U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, const char* inKey, UResourceBundle *fillIn, UErrorCode *status) { Resource res = RES_BOGUS; UResourceDataEntry *realData = NULL; @@ -2430,7 +2408,10 @@ ures_loc_countLocales(UEnumeration *en, UErrorCode * /*status*/) { return ures_getSize(&ctx->installed); } -static const char* U_CALLCONV +U_CDECL_BEGIN + + +static const char * U_CALLCONV ures_loc_nextLocale(UEnumeration* en, int32_t* resultLength, UErrorCode* status) { @@ -2456,6 +2437,7 @@ ures_loc_resetLocales(UEnumeration* en, ures_resetIterator(res); } +U_CDECL_END static const UEnumeration gLocalesEnum = { NULL, diff --git a/deps/icu-small/source/common/uresdata.cpp b/deps/icu-small/source/common/uresdata.cpp index 00231d7fc20018..f775bcdffb57a7 100644 --- a/deps/icu-small/source/common/uresdata.cpp +++ b/deps/icu-small/source/common/uresdata.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1999-2016, International Business Machines Corporation @@ -380,6 +382,36 @@ UBool isNoInheritanceMarker(const ResourceData *pResData, Resource res) { return FALSE; } +int32_t getStringArray(const ResourceData *pResData, const icu::ResourceArray &array, + icu::UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) { + if(U_FAILURE(errorCode)) { + return 0; + } + if(dest == NULL ? capacity != 0 : capacity < 0) { + errorCode = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } + int32_t length = array.getSize(); + if(length == 0) { + return 0; + } + if(length > capacity) { + errorCode = U_BUFFER_OVERFLOW_ERROR; + return length; + } + for(int32_t i = 0; i < length; ++i) { + int32_t sLength; + const UChar *s = res_getString(pResData, array.internalGetResource(pResData, i), &sLength); + if(s == NULL) { + errorCode = U_RESOURCE_TYPE_MISMATCH; + return 0; + } + dest[i].setTo(TRUE, s, sLength); + } + return length; +} + } // namespace U_CAPI const UChar * U_EXPORT2 @@ -463,42 +495,6 @@ res_countArrayItems(const ResourceData *pResData, Resource res) { } } -namespace { - -int32_t getArrayLength(const ResourceData *pResData, Resource res) { - uint32_t offset=RES_GET_OFFSET(res); - if(offset == 0) { - return 0; - } - int32_t type = RES_GET_TYPE(res); - if(type == URES_ARRAY) { - return *(pResData->pRoot+offset); - } else if(type == URES_ARRAY16) { - return pResData->p16BitUnits[offset]; - } else { - return 0; - } -} - -int32_t getTableLength(const ResourceData *pResData, Resource res) { - uint32_t offset=RES_GET_OFFSET(res); - if(offset == 0) { - return 0; - } - int32_t type = RES_GET_TYPE(res); - if(type == URES_TABLE) { - return *((const uint16_t *)(pResData->pRoot+offset)); - } else if(type == URES_TABLE16) { - return pResData->p16BitUnits[offset]; - } else if(type == URES_TABLE32) { - return *(pResData->pRoot+offset); - } else { - return 0; - } -} - -} // namespace - U_NAMESPACE_BEGIN ResourceDataValue::~ResourceDataValue() {} @@ -571,6 +567,130 @@ const uint8_t *ResourceDataValue::getBinary(int32_t &length, UErrorCode &errorCo return b; } +ResourceArray ResourceDataValue::getArray(UErrorCode &errorCode) const { + if(U_FAILURE(errorCode)) { + return ResourceArray(); + } + const uint16_t *items16 = NULL; + const Resource *items32 = NULL; + uint32_t offset=RES_GET_OFFSET(res); + int32_t length = 0; + switch(RES_GET_TYPE(res)) { + case URES_ARRAY: + if (offset!=0) { // empty if offset==0 + items32 = (const Resource *)pResData->pRoot+offset; + length = *items32++; + } + break; + case URES_ARRAY16: + items16 = pResData->p16BitUnits+offset; + length = *items16++; + break; + default: + errorCode = U_RESOURCE_TYPE_MISMATCH; + return ResourceArray(); + } + return ResourceArray(items16, items32, length); +} + +ResourceTable ResourceDataValue::getTable(UErrorCode &errorCode) const { + if(U_FAILURE(errorCode)) { + return ResourceTable(); + } + const uint16_t *keys16 = NULL; + const int32_t *keys32 = NULL; + const uint16_t *items16 = NULL; + const Resource *items32 = NULL; + uint32_t offset = RES_GET_OFFSET(res); + int32_t length = 0; + switch(RES_GET_TYPE(res)) { + case URES_TABLE: + if (offset != 0) { // empty if offset==0 + keys16 = (const uint16_t *)(pResData->pRoot+offset); + length = *keys16++; + items32 = (const Resource *)(keys16+length+(~length&1)); + } + break; + case URES_TABLE16: + keys16 = pResData->p16BitUnits+offset; + length = *keys16++; + items16 = keys16 + length; + break; + case URES_TABLE32: + if (offset != 0) { // empty if offset==0 + keys32 = pResData->pRoot+offset; + length = *keys32++; + items32 = (const Resource *)keys32 + length; + } + break; + default: + errorCode = U_RESOURCE_TYPE_MISMATCH; + return ResourceTable(); + } + return ResourceTable(keys16, keys32, items16, items32, length); +} + +UBool ResourceDataValue::isNoInheritanceMarker() const { + return ::isNoInheritanceMarker(pResData, res); +} + +int32_t ResourceDataValue::getStringArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const { + return ::getStringArray(pResData, getArray(errorCode), dest, capacity, errorCode); +} + +int32_t ResourceDataValue::getStringArrayOrStringAsArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const { + if(URES_IS_ARRAY(res)) { + return ::getStringArray(pResData, getArray(errorCode), dest, capacity, errorCode); + } + if(U_FAILURE(errorCode)) { + return 0; + } + if(dest == NULL ? capacity != 0 : capacity < 0) { + errorCode = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } + if(capacity < 1) { + errorCode = U_BUFFER_OVERFLOW_ERROR; + return 1; + } + int32_t sLength; + const UChar *s = res_getString(pResData, res, &sLength); + if(s != NULL) { + dest[0].setTo(TRUE, s, sLength); + return 1; + } + errorCode = U_RESOURCE_TYPE_MISMATCH; + return 0; +} + +UnicodeString ResourceDataValue::getStringOrFirstOfArray(UErrorCode &errorCode) const { + UnicodeString us; + if(U_FAILURE(errorCode)) { + return us; + } + int32_t sLength; + const UChar *s = res_getString(pResData, res, &sLength); + if(s != NULL) { + us.setTo(TRUE, s, sLength); + return us; + } + ResourceArray array = getArray(errorCode); + if(U_FAILURE(errorCode)) { + return us; + } + if(array.getSize() > 0) { + s = res_getString(pResData, array.internalGetResource(pResData, 0), &sLength); + if(s != NULL) { + us.setTo(TRUE, s, sLength); + return us; + } + } + errorCode = U_RESOURCE_TYPE_MISMATCH; + return us; +} + U_NAMESPACE_END static Resource @@ -691,91 +811,26 @@ res_getResource(const ResourceData *pResData, const char *key) { return res_getTableItemByKey(pResData, pResData->rootRes, &idx, &realKey); } -// TODO: Ported from Java, but enumerating at this low level may prevent us -// from doing necessary things, like resolving aliases, -// which need access to higher-level UResourceBundle code. -// Consider porting the low-level Container/Array/Table classes from Java, -// with getters for keys and values, -// and doing the enumeration in the higher-level code on top of those accessors. -U_CFUNC void -ures_getAllTableItems(const ResourceData *pResData, Resource table, - icu::ResourceDataValue &value, icu::ResourceTableSink &sink, - UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { return; } - const uint16_t *keys16 = NULL; - const int32_t *keys32 = NULL; - const uint16_t *items16 = NULL; - const Resource *items32 = NULL; - uint32_t offset = RES_GET_OFFSET(table); - int32_t length = 0; - switch(RES_GET_TYPE(table)) { - case URES_TABLE: { - if (offset != 0) { /* empty if offset==0 */ - keys16 = (const uint16_t *)(pResData->pRoot+offset); - length = *keys16++; - items32 = (const Resource *)(keys16+length+(~length&1)); - } - break; - } - case URES_TABLE16: { - keys16 = pResData->p16BitUnits+offset; - length = *keys16++; - items16 = keys16 + length; - break; - } - case URES_TABLE32: { - if (offset != 0) { /* empty if offset==0 */ - keys32 = pResData->pRoot+offset; - length = *keys32++; - items32 = (const Resource *)keys32 + length; - } - break; - } - default: - errorCode = U_RESOURCE_TYPE_MISMATCH; - return; - } - for (int32_t i = 0; i < length; ++i) { - const char *key; +UBool icu::ResourceTable::getKeyAndValue(int32_t i, + const char *&key, icu::ResourceValue &value) const { + if(0 <= i && i < length) { + icu::ResourceDataValue &rdValue = static_cast(value); if (keys16 != NULL) { - key=RES_GET_KEY16(pResData, keys16[i]); + key = RES_GET_KEY16(rdValue.pResData, keys16[i]); } else { - key=RES_GET_KEY32(pResData, keys32[i]); + key = RES_GET_KEY32(rdValue.pResData, keys32[i]); } Resource res; if (items16 != NULL) { - res = makeResourceFrom16(pResData, items16[i]); + res = makeResourceFrom16(rdValue.pResData, items16[i]); } else { res = items32[i]; } - int32_t type = RES_GET_TYPE(res); - if (URES_IS_ARRAY(type)) { - int32_t numItems = getArrayLength(pResData, res); - icu::ResourceArraySink *subSink = sink.getOrCreateArraySink(key, numItems, errorCode); - if (subSink != NULL) { - ures_getAllArrayItems(pResData, res, value, *subSink, errorCode); - } - } else if (URES_IS_TABLE(type)) { - int32_t numItems = getTableLength(pResData, res); - icu::ResourceTableSink *subSink = sink.getOrCreateTableSink(key, numItems, errorCode); - if (subSink != NULL) { - ures_getAllTableItems(pResData, res, value, *subSink, errorCode); - } - /* TODO: settle on how to deal with aliases, port to Java - } else if (type == URES_ALIAS) { - // aliases not handled in resource enumeration - errorCode = U_UNSUPPORTED_ERROR; - return; */ - } else if (isNoInheritanceMarker(pResData, res)) { - sink.putNoFallback(key, errorCode); - } else { - value.setResource(res); - sink.put(key, value, errorCode); - } - if(U_FAILURE(errorCode)) { return; } + rdValue.setResource(res); + return TRUE; } - sink.leave(errorCode); + return FALSE; } U_CAPI Resource U_EXPORT2 @@ -805,65 +860,21 @@ res_getArrayItem(const ResourceData *pResData, Resource array, int32_t indexR) { return RES_BOGUS; } -U_CFUNC void -ures_getAllArrayItems(const ResourceData *pResData, Resource array, - icu::ResourceDataValue &value, icu::ResourceArraySink &sink, - UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { return; } - const uint16_t *items16 = NULL; - const Resource *items32 = NULL; - uint32_t offset=RES_GET_OFFSET(array); - int32_t length = 0; - switch(RES_GET_TYPE(array)) { - case URES_ARRAY: { - if (offset!=0) { /* empty if offset==0 */ - items32 = (const Resource *)pResData->pRoot+offset; - length = *items32++; - } - break; - } - case URES_ARRAY16: { - items16 = pResData->p16BitUnits+offset; - length = *items16++; - break; - } - default: - errorCode = U_RESOURCE_TYPE_MISMATCH; - return; +uint32_t icu::ResourceArray::internalGetResource(const ResourceData *pResData, int32_t i) const { + if (items16 != NULL) { + return makeResourceFrom16(pResData, items16[i]); + } else { + return items32[i]; } +} - for (int32_t i = 0; i < length; ++i) { - Resource res; - if (items16 != NULL) { - res = makeResourceFrom16(pResData, items16[i]); - } else { - res = items32[i]; - } - int32_t type = RES_GET_TYPE(res); - if (URES_IS_ARRAY(type)) { - int32_t numItems = getArrayLength(pResData, res); - icu::ResourceArraySink *subSink = sink.getOrCreateArraySink(i, numItems, errorCode); - if (subSink != NULL) { - ures_getAllArrayItems(pResData, res, value, *subSink, errorCode); - } - } else if (URES_IS_TABLE(type)) { - int32_t numItems = getTableLength(pResData, res); - icu::ResourceTableSink *subSink = sink.getOrCreateTableSink(i, numItems, errorCode); - if (subSink != NULL) { - ures_getAllTableItems(pResData, res, value, *subSink, errorCode); - } - /* TODO: settle on how to deal with aliases, port to Java - } else if (type == URES_ALIAS) { - // aliases not handled in resource enumeration - errorCode = U_UNSUPPORTED_ERROR; - return; */ - } else { - value.setResource(res); - sink.put(i, value, errorCode); - } - if(U_FAILURE(errorCode)) { return; } +UBool icu::ResourceArray::getValue(int32_t i, icu::ResourceValue &value) const { + if(0 <= i && i < length) { + icu::ResourceDataValue &rdValue = static_cast(value); + rdValue.setResource(internalGetResource(rdValue.pResData, i)); + return TRUE; } - sink.leave(errorCode); + return FALSE; } U_CFUNC Resource @@ -974,7 +985,7 @@ typedef struct Row { int32_t keyIndex, sortIndex; } Row; -static int32_t +static int32_t U_CALLCONV ures_compareRows(const void *context, const void *left, const void *right) { const char *keyChars=(const char *)context; return (int32_t)uprv_strcmp(keyChars+((const Row *)left)->keyIndex, diff --git a/deps/icu-small/source/common/uresdata.h b/deps/icu-small/source/common/uresdata.h index 1afa77c0748eb4..ae7d9a817d2b2f 100644 --- a/deps/icu-small/source/common/uresdata.h +++ b/deps/icu-small/source/common/uresdata.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** -* Copyright (C) 1999-2015, International Business Machines +* Copyright (C) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. ****************************************************************************** * file name: uresdata.h @@ -379,7 +381,7 @@ enum { /* * Structure for a single, memory-mapped ResourceBundle. */ -typedef struct { +typedef struct ResourceData { UDataMemory *data; const int32_t *pRoot; const uint16_t *p16BitUnits; @@ -486,6 +488,14 @@ class ResourceDataValue : public ResourceValue { virtual uint32_t getUInt(UErrorCode &errorCode) const; virtual const int32_t *getIntVector(int32_t &length, UErrorCode &errorCode) const; virtual const uint8_t *getBinary(int32_t &length, UErrorCode &errorCode) const; + virtual ResourceArray getArray(UErrorCode &errorCode) const; + virtual ResourceTable getTable(UErrorCode &errorCode) const; + virtual UBool isNoInheritanceMarker() const; + virtual int32_t getStringArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const; + virtual int32_t getStringArrayOrStringAsArray(UnicodeString *dest, int32_t capacity, + UErrorCode &errorCode) const; + virtual UnicodeString getStringOrFirstOfArray(UErrorCode &errorCode) const; const ResourceData *pResData; @@ -495,24 +505,6 @@ class ResourceDataValue : public ResourceValue { U_NAMESPACE_END -/** - * @param value will be set during enumeration; input contents is ignored - * @param sink receives all table item key-value pairs - */ -U_CFUNC void -ures_getAllTableItems(const ResourceData *pResData, Resource table, - icu::ResourceDataValue &value, icu::ResourceTableSink &sink, - UErrorCode &errorCode); - -/** - * @param value will be set during enumeration; input contents is ignored - * @param sink receives all array item values - */ -U_CFUNC void -ures_getAllArrayItems(const ResourceData *pResData, Resource array, - icu::ResourceDataValue &value, icu::ResourceArraySink &sink, - UErrorCode &errorCode); - #endif /* __cplusplus */ /** diff --git a/deps/icu-small/source/common/uresimp.h b/deps/icu-small/source/common/uresimp.h index ce0b03ccf8233f..8339240a276b6f 100644 --- a/deps/icu-small/source/common/uresimp.h +++ b/deps/icu-small/source/common/uresimp.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** -* Copyright (C) 2000-2015, International Business Machines +* Copyright (C) 2000-2016, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ @@ -225,12 +227,8 @@ ures_getStringByKeyWithFallback(const UResourceBundle *resB, #ifdef __cplusplus U_CAPI void U_EXPORT2 -ures_getAllArrayItemsWithFallback(const UResourceBundle *bundle, const char *path, - icu::ResourceArraySink &sink, UErrorCode &errorCode); - -U_CAPI void U_EXPORT2 -ures_getAllTableItemsWithFallback(const UResourceBundle *bundle, const char *path, - icu::ResourceTableSink &sink, UErrorCode &errorCode); +ures_getAllItemsWithFallback(const UResourceBundle *bundle, const char *path, + icu::ResourceSink &sink, UErrorCode &errorCode); #endif /* __cplusplus */ diff --git a/deps/icu-small/source/common/ureslocs.h b/deps/icu-small/source/common/ureslocs.h index e89ddb95ff69dd..85dd8fb4b7f211 100644 --- a/deps/icu-small/source/common/ureslocs.h +++ b/deps/icu-small/source/common/ureslocs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2009-2014 International Business Machines diff --git a/deps/icu-small/source/common/usc_impl.c b/deps/icu-small/source/common/usc_impl.c index a66e0d5edca020..c2b2a3656c4ebb 100644 --- a/deps/icu-small/source/common/usc_impl.c +++ b/deps/icu-small/source/common/usc_impl.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2016, International Business Machines diff --git a/deps/icu-small/source/common/usc_impl.h b/deps/icu-small/source/common/usc_impl.h index 2e972b0e9a9378..7c9c5e095052ff 100644 --- a/deps/icu-small/source/common/usc_impl.h +++ b/deps/icu-small/source/common/usc_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/common/uscript.c b/deps/icu-small/source/common/uscript.c index 3700099cd2a70e..336e185799ab96 100644 --- a/deps/icu-small/source/common/uscript.c +++ b/deps/icu-small/source/common/uscript.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2014, International Business Machines diff --git a/deps/icu-small/source/common/uscript_props.cpp b/deps/icu-small/source/common/uscript_props.cpp index fa7f78afd99c2e..20c7cdce2ffad1 100644 --- a/deps/icu-small/source/common/uscript_props.cpp +++ b/deps/icu-small/source/common/uscript_props.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2013-2015, International Business Machines +* Copyright (C) 2013-2016, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * file name: uscript_props.cpp @@ -72,7 +74,7 @@ const int32_t SCRIPT_PROPS[] = { 0x1826 | ASPIRATIONAL, // Mong 0x1000 | RECOMMENDED | LB_LETTERS, // Mymr 0x168F | EXCLUSION, // Ogam - 0x10308 | EXCLUSION, // Ital + 0x10300 | EXCLUSION, // Ital 0x0B15 | RECOMMENDED, // Orya 0x16A0 | EXCLUSION, // Runr 0x0D85 | RECOMMENDED, // Sinh @@ -102,7 +104,7 @@ const int32_t SCRIPT_PROPS[] = { 0x10A00 | EXCLUSION | RTL, // Khar 0xA800 | LIMITED_USE, // Sylo 0x1980 | LIMITED_USE | LB_LETTERS, // Talu - 0x2D5E | ASPIRATIONAL, // Tfng + 0x2D30 | ASPIRATIONAL, // Tfng 0x103A0 | EXCLUSION, // Xpeo 0x1B05 | LIMITED_USE, // Bali 0x1BC0 | LIMITED_USE, // Batk @@ -129,7 +131,7 @@ const int32_t SCRIPT_PROPS[] = { 0x0840 | LIMITED_USE | RTL, // Mand 0, 0x10980 | EXCLUSION | RTL, // Mero - 0x07D8 | LIMITED_USE | RTL, // Nkoo + 0x07CA | LIMITED_USE | RTL, // Nkoo 0x10C00 | EXCLUSION | RTL, // Orkh 0x1036B | EXCLUSION, // Perm 0xA840 | EXCLUSION, // Phag @@ -146,7 +148,7 @@ const int32_t SCRIPT_PROPS[] = { 0x12000 | EXCLUSION, // Xsux 0, 0xFDD0 | UNKNOWN, // Zzzz - 0x102B7 | EXCLUSION, // Cari + 0x102A0 | EXCLUSION, // Cari 0x304B | RECOMMENDED | LB_LETTERS, // Jpan 0x1A20 | LIMITED_USE | LB_LETTERS, // Lana 0x10280 | EXCLUSION, // Lyci @@ -163,7 +165,7 @@ const int32_t SCRIPT_PROPS[] = { 0x11103 | LIMITED_USE, // Cakm 0xAC00 | RECOMMENDED, // Kore 0x11083 | EXCLUSION, // Kthi - 0x10AC1 | EXCLUSION | RTL, // Mani + 0x10AD8 | EXCLUSION | RTL, // Mani 0x10B60 | EXCLUSION | RTL, // Phli 0x10B8F | EXCLUSION | RTL, // Phlp 0, @@ -173,7 +175,7 @@ const int32_t SCRIPT_PROPS[] = { 0, 0, 0xA6A0 | LIMITED_USE, // Bamu - 0xA4E8 | LIMITED_USE, // Lisu + 0xA4D0 | LIMITED_USE, // Lisu 0, 0x10A60 | EXCLUSION | RTL, // Sarb 0x16AE6 | EXCLUSION, // Bass @@ -196,7 +198,7 @@ const int32_t SCRIPT_PROPS[] = { 0x11183 | EXCLUSION, // Shrd 0x110D0 | EXCLUSION, // Sora 0x11680 | EXCLUSION, // Takr - 0, + 0x18229 | EXCLUSION | LB_LETTERS, // Tang 0, 0x14400 | EXCLUSION, // Hluw 0x11208 | EXCLUSION, // Khoj @@ -209,6 +211,14 @@ const int32_t SCRIPT_PROPS[] = { 0x1128F | EXCLUSION, // Mult 0x11AC0 | EXCLUSION, // Pauc 0x1158E | EXCLUSION, // Sidd + 0x1E909 | LIMITED_USE | RTL | CASED, // Adlm + 0x11C0E | EXCLUSION, // Bhks + 0x11C72 | EXCLUSION, // Marc + 0x11412 | LIMITED_USE, // Newa + 0x104B5 | LIMITED_USE | CASED, // Osge + 0x5B57 | RECOMMENDED | LB_LETTERS, // Hanb + 0x1112 | RECOMMENDED, // Jamo + 0, // End copy-paste from parsescriptmetadata.py }; diff --git a/deps/icu-small/source/common/uset.cpp b/deps/icu-small/source/common/uset.cpp index 717ea0430aaa4a..f15d4a14ab7d81 100644 --- a/deps/icu-small/source/common/uset.cpp +++ b/deps/icu-small/source/common/uset.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uset_imp.h b/deps/icu-small/source/common/uset_imp.h index a7171ad715765c..8cb31edfcf779e 100644 --- a/deps/icu-small/source/common/uset_imp.h +++ b/deps/icu-small/source/common/uset_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/uset_props.cpp b/deps/icu-small/source/common/uset_props.cpp index ccbaf91e34eeac..cf772957ee5eac 100644 --- a/deps/icu-small/source/common/uset_props.cpp +++ b/deps/icu-small/source/common/uset_props.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/usetiter.cpp b/deps/icu-small/source/common/usetiter.cpp index bd1ecaa0e7753a..2be2079c513069 100644 --- a/deps/icu-small/source/common/usetiter.cpp +++ b/deps/icu-small/source/common/usetiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2006, International Business Machines diff --git a/deps/icu-small/source/common/ushape.cpp b/deps/icu-small/source/common/ushape.cpp index 16442072702dbd..4913a3ff573ce7 100644 --- a/deps/icu-small/source/common/ushape.cpp +++ b/deps/icu-small/source/common/ushape.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -777,7 +779,7 @@ handleGeneratedSpaces(UChar *dest, int32_t sourceLength, count--; } - uprv_memcpy(dest, tempbuffer, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, sourceLength); destSize = u_strlen(dest); } @@ -835,7 +837,7 @@ handleGeneratedSpaces(UChar *dest, int32_t sourceLength, tempbuffer[i] = SPACE_CHAR; } - uprv_memcpy(dest, tempbuffer, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, sourceLength); destSize = sourceLength; } @@ -877,7 +879,7 @@ handleGeneratedSpaces(UChar *dest, int32_t sourceLength, count--; } - uprv_memcpy(dest,tempbuffer, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, sourceLength); destSize = sourceLength; } @@ -941,7 +943,7 @@ expandCompositCharAtBegin(UChar *dest, int32_t sourceLength, int32_t destSize,UE i--; j--; } - uprv_memcpy(dest, tempbuffer, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, sourceLength); uprv_free(tempbuffer); @@ -1002,14 +1004,14 @@ expandCompositCharAtEnd(UChar *dest, int32_t sourceLength, int32_t destSize,UErr } if(countr > 0) { - uprv_memmove(tempbuffer, tempbuffer+countr, sourceLength*U_SIZEOF_UCHAR); + u_memmove(tempbuffer, tempbuffer+countr, sourceLength); if(u_strlen(tempbuffer) < sourceLength) { for(i=sourceLength-1;i>=sourceLength-countr;i--) { tempbuffer[i] = SPACE_CHAR; } } } - uprv_memcpy(dest, tempbuffer, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, sourceLength); uprv_free(tempbuffer); @@ -1177,7 +1179,7 @@ expandCompositChar(UChar *dest, int32_t sourceLength, j++; } - uprv_memcpy(dest, tempbuffer, destSize*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, destSize); } } @@ -1571,7 +1573,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, return 0; } } - uprv_memcpy(tempbuffer, source, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(tempbuffer, source, sourceLength); if (tempsource != NULL){ uprv_free(tempsource); } @@ -1637,7 +1639,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, countSpaces(tempbuffer,destLength,options,&spacesCountl,&spacesCountr); invertBuffer(tempbuffer,destLength,options,spacesCountl,spacesCountr); } - uprv_memcpy(dest, tempbuffer, uprv_min(destLength, destCapacity)*U_SIZEOF_UCHAR); + u_memcpy(dest, tempbuffer, uprv_min(destLength, destCapacity)); if(tempbuffer!=buffer) { uprv_free(tempbuffer); @@ -1659,7 +1661,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, *pErrorCode=U_BUFFER_OVERFLOW_ERROR; return sourceLength; } - uprv_memcpy(dest, source, sourceLength*U_SIZEOF_UCHAR); + u_memcpy(dest, source, sourceLength); destLength=sourceLength; } diff --git a/deps/icu-small/source/common/usprep.cpp b/deps/icu-small/source/common/usprep.cpp index a3ff4e289d4b27..fb9c18b66bc83e 100644 --- a/deps/icu-small/source/common/usprep.cpp +++ b/deps/icu-small/source/common/usprep.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ustack.cpp b/deps/icu-small/source/common/ustack.cpp index c58de7ba1f5336..1de79ecfe3559c 100644 --- a/deps/icu-small/source/common/ustack.cpp +++ b/deps/icu-small/source/common/ustack.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2003-2011, International Business Machines diff --git a/deps/icu-small/source/common/ustr_cnv.cpp b/deps/icu-small/source/common/ustr_cnv.cpp index 6d3cd567059028..4b845d5adca0e7 100644 --- a/deps/icu-small/source/common/ustr_cnv.cpp +++ b/deps/icu-small/source/common/ustr_cnv.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/ustr_cnv.h b/deps/icu-small/source/common/ustr_cnv.h index eefeaa5328dcd7..e647356560e95f 100644 --- a/deps/icu-small/source/common/ustr_cnv.h +++ b/deps/icu-small/source/common/ustr_cnv.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2010, International Business Machines diff --git a/deps/icu-small/source/common/ustr_imp.h b/deps/icu-small/source/common/ustr_imp.h index 6881bce6a944dc..21ee6cba624aac 100644 --- a/deps/icu-small/source/common/ustr_imp.h +++ b/deps/icu-small/source/common/ustr_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2015, International Business Machines @@ -218,6 +220,44 @@ ucasemap_mapUTF8(const UCaseMap *csm, UTF8CaseMapper *stringCaseMapper, UErrorCode *pErrorCode); +#ifdef __cplusplus + +U_NAMESPACE_BEGIN +namespace GreekUpper { + +// Data bits. +static const uint32_t UPPER_MASK = 0x3ff; +static const uint32_t HAS_VOWEL = 0x1000; +static const uint32_t HAS_YPOGEGRAMMENI = 0x2000; +static const uint32_t HAS_ACCENT = 0x4000; +static const uint32_t HAS_DIALYTIKA = 0x8000; +// Further bits during data building and processing, not stored in the data map. +static const uint32_t HAS_COMBINING_DIALYTIKA = 0x10000; +static const uint32_t HAS_OTHER_GREEK_DIACRITIC = 0x20000; + +static const uint32_t HAS_VOWEL_AND_ACCENT = HAS_VOWEL | HAS_ACCENT; +static const uint32_t HAS_VOWEL_AND_ACCENT_AND_DIALYTIKA = + HAS_VOWEL_AND_ACCENT | HAS_DIALYTIKA; +static const uint32_t HAS_EITHER_DIALYTIKA = HAS_DIALYTIKA | HAS_COMBINING_DIALYTIKA; + +// State bits. +static const uint32_t AFTER_CASED = 1; +static const uint32_t AFTER_VOWEL_WITH_ACCENT = 2; + +uint32_t getLetterData(UChar32 c); + +/** + * Returns a non-zero value for each of the Greek combining diacritics + * listed in The Unicode Standard, version 8, chapter 7.2 Greek, + * plus some perispomeni look-alikes. + */ +uint32_t getDiacriticData(UChar32 c); + +} // namespace GreekUpper +U_NAMESPACE_END + +#endif // __cplusplus + U_CAPI int32_t U_EXPORT2 ustr_hashUCharsN(const UChar *str, int32_t length); diff --git a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp index 4a2352eed507dd..63808776199cc4 100644 --- a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp +++ b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/ustr_wcs.cpp b/deps/icu-small/source/common/ustr_wcs.cpp index 33a7b194553427..572e41290f59f8 100644 --- a/deps/icu-small/source/common/ustr_wcs.cpp +++ b/deps/icu-small/source/common/ustr_wcs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -42,7 +44,7 @@ u_growAnyBufferFromStatic(void *context, char *newBuffer=(char *)uprv_malloc(reqCapacity*size); if(newBuffer!=NULL) { if(length>0) { - uprv_memcpy(newBuffer, *pBuffer, length*size); + uprv_memcpy(newBuffer, *pBuffer, (size_t)length*size); } *pCapacity=reqCapacity; } else { @@ -200,7 +202,7 @@ _strToWCS(wchar_t *dest, count = (int32_t)(pIntTarget-intTarget); if(0 < count && count <= destCapacity){ - uprv_memcpy(dest,intTarget,count*sizeof(wchar_t)); + uprv_memcpy(dest, intTarget, (size_t)count*sizeof(wchar_t)); } if(pDestLength){ @@ -252,13 +254,13 @@ u_strToWCS(wchar_t *dest, srcLength = u_strlen(src); } if(0 < srcLength && srcLength <= destCapacity){ - uprv_memcpy(dest,src,srcLength*U_SIZEOF_UCHAR); + u_memcpy(dest, src, srcLength); } if(pDestLength){ *pDestLength = srcLength; } - u_terminateUChars(dest,destCapacity,srcLength,pErrorCode); + u_terminateUChars((UChar *)dest,destCapacity,srcLength,pErrorCode); return dest; @@ -395,7 +397,7 @@ _strFromWCS( UChar *dest, } if(nulLen>0){ /* copy the contents to tempStack */ - uprv_memcpy(pWStack,pSrc,nulLen*sizeof(wchar_t)); + uprv_memcpy(pWStack, pSrc, (size_t)nulLen*sizeof(wchar_t)); } /* null terminate the tempBuffer */ @@ -504,10 +506,10 @@ u_strFromWCS(UChar *dest, #ifdef U_WCHAR_IS_UTF16 /* wchar_t is UTF-16 just do a memcpy */ if(srcLength == -1){ - srcLength = u_strlen(src); + srcLength = u_strlen((const UChar *)src); } if(0 < srcLength && srcLength <= destCapacity){ - uprv_memcpy(dest,src,srcLength*U_SIZEOF_UCHAR); + u_memcpy(dest, src, srcLength); } if(pDestLength){ *pDestLength = srcLength; diff --git a/deps/icu-small/source/common/ustrcase.cpp b/deps/icu-small/source/common/ustrcase.cpp index 44952c4ee8122c..69c17e43b9b612 100644 --- a/deps/icu-small/source/common/ustrcase.cpp +++ b/deps/icu-small/source/common/ustrcase.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -45,24 +47,27 @@ appendResult(UChar *dest, int32_t destIndex, int32_t destCapacity, if(result<0) { /* (not) original code point */ c=~result; - length=-1; + length=U16_LENGTH(c); } else if(result<=UCASE_MAX_STRING_LENGTH) { c=U_SENTINEL; length=result; } else { c=result; - length=-1; + length=U16_LENGTH(c); + } + if(length>(INT32_MAX-destIndex)) { + return -1; // integer overflow } if(destIndex=0) { /* code point */ UBool isError=FALSE; U16_APPEND(dest, destIndex, destCapacity, c, isError); if(isError) { /* overflow, nothing written */ - destIndex+=U16_LENGTH(c); + destIndex+=length; } } else { /* string */ @@ -78,11 +83,32 @@ appendResult(UChar *dest, int32_t destIndex, int32_t destCapacity, } } else { /* preflight */ - if(length<0) { - destIndex+=U16_LENGTH(c); - } else { - destIndex+=length; + destIndex+=length; + } + return destIndex; +} + +static inline int32_t +appendUChar(UChar *dest, int32_t destIndex, int32_t destCapacity, UChar c) { + if(destIndex0) { + if(length>(INT32_MAX-destIndex)) { + return -1; // integer overflow } + if((destIndex+length)<=destCapacity) { + u_memcpy(dest+destIndex, s, length); + } + destIndex+=length; } return destIndex; } @@ -149,6 +175,10 @@ _caseMap(const UCaseMap *csm, UCaseMapFull *map, dest[destIndex++]=(UChar)c2; } else { destIndex=appendResult(dest, destIndex, destCapacity, c, s); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } } } @@ -167,7 +197,7 @@ ustrcase_internalToTitle(const UCaseMap *csm, UErrorCode *pErrorCode) { const UChar *s; UChar32 c; - int32_t prev, titleStart, titleLimit, idx, destIndex, length; + int32_t prev, titleStart, titleLimit, idx, destIndex; UBool isFirstIndex; if(U_FAILURE(*pErrorCode)) { @@ -233,12 +263,10 @@ ustrcase_internalToTitle(const UCaseMap *csm, break; /* cased letter at [titleStart..titleLimit[ */ } } - length=titleStart-prev; - if(length>0) { - if((destIndex+length)<=destCapacity) { - uprv_memcpy(dest+destIndex, src+prev, length*U_SIZEOF_UCHAR); - } - destIndex+=length; + destIndex=appendString(dest, destIndex, destCapacity, src+prev, titleStart-prev); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; } } @@ -248,15 +276,22 @@ ustrcase_internalToTitle(const UCaseMap *csm, csc.cpLimit=titleLimit; c=ucase_toFullTitle(csm->csp, c, utf16_caseContextIterator, &csc, &s, csm->locale, &locCache); destIndex=appendResult(dest, destIndex, destCapacity, c, s); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } /* Special case Dutch IJ titlecasing */ - if ( titleStart+1 < idx && - ucase_getCaseLocale(csm->locale,&locCache) == UCASE_LOC_DUTCH && - ( src[titleStart] == (UChar32) 0x0049 || src[titleStart] == (UChar32) 0x0069 ) && - ( src[titleStart+1] == (UChar32) 0x004A || src[titleStart+1] == (UChar32) 0x006A )) { - c=(UChar32) 0x004A; - destIndex=appendResult(dest, destIndex, destCapacity, c, s); - titleLimit++; + if (titleStart+1 < idx && + ucase_getCaseLocale(csm->locale,&locCache) == UCASE_LOC_DUTCH && + (src[titleStart] == 0x0049 || src[titleStart] == 0x0069) && + (src[titleStart+1] == 0x004A || src[titleStart+1] == 0x006A)) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x004A); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + titleLimit++; } /* lowercase [titleLimit..index[ */ @@ -270,13 +305,16 @@ ustrcase_internalToTitle(const UCaseMap *csm, src, &csc, titleLimit, idx, pErrorCode); + if(U_FAILURE(*pErrorCode)) { + return destIndex; + } } else { /* Optionally just copy the rest of the word unchanged. */ - length=idx-titleLimit; - if((destIndex+length)<=destCapacity) { - uprv_memcpy(dest+destIndex, src+titleLimit, length*U_SIZEOF_UCHAR); + destIndex=appendString(dest, destIndex, destCapacity, src+titleLimit, idx-titleLimit); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; } - destIndex+=length; } } } @@ -293,6 +331,605 @@ ustrcase_internalToTitle(const UCaseMap *csm, #endif // !UCONFIG_NO_BREAK_ITERATION +U_NAMESPACE_BEGIN +namespace GreekUpper { + +// Data generated by prototype code, see +// http://site.icu-project.org/design/case/greek-upper +// TODO: Move this data into ucase.icu. +static const uint16_t data0370[] = { + // U+0370..03FF + 0x0370, + 0x0370, + 0x0372, + 0x0372, + 0, + 0, + 0x0376, + 0x0376, + 0, + 0, + 0x037A, + 0x03FD, + 0x03FE, + 0x03FF, + 0, + 0x037F, + 0, + 0, + 0, + 0, + 0, + 0, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x0391 | HAS_VOWEL, + 0x0392, + 0x0393, + 0x0394, + 0x0395 | HAS_VOWEL, + 0x0396, + 0x0397 | HAS_VOWEL, + 0x0398, + 0x0399 | HAS_VOWEL, + 0x039A, + 0x039B, + 0x039C, + 0x039D, + 0x039E, + 0x039F | HAS_VOWEL, + 0x03A0, + 0x03A1, + 0, + 0x03A3, + 0x03A4, + 0x03A5 | HAS_VOWEL, + 0x03A6, + 0x03A7, + 0x03A8, + 0x03A9 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_DIALYTIKA, + 0x03A5 | HAS_VOWEL | HAS_DIALYTIKA, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x0391 | HAS_VOWEL, + 0x0392, + 0x0393, + 0x0394, + 0x0395 | HAS_VOWEL, + 0x0396, + 0x0397 | HAS_VOWEL, + 0x0398, + 0x0399 | HAS_VOWEL, + 0x039A, + 0x039B, + 0x039C, + 0x039D, + 0x039E, + 0x039F | HAS_VOWEL, + 0x03A0, + 0x03A1, + 0x03A3, + 0x03A3, + 0x03A4, + 0x03A5 | HAS_VOWEL, + 0x03A6, + 0x03A7, + 0x03A8, + 0x03A9 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_DIALYTIKA, + 0x03A5 | HAS_VOWEL | HAS_DIALYTIKA, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03CF, + 0x0392, + 0x0398, + 0x03D2, + 0x03D2 | HAS_ACCENT, + 0x03D2 | HAS_DIALYTIKA, + 0x03A6, + 0x03A0, + 0x03CF, + 0x03D8, + 0x03D8, + 0x03DA, + 0x03DA, + 0x03DC, + 0x03DC, + 0x03DE, + 0x03DE, + 0x03E0, + 0x03E0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x039A, + 0x03A1, + 0x03F9, + 0x037F, + 0x03F4, + 0x0395 | HAS_VOWEL, + 0, + 0x03F7, + 0x03F7, + 0x03F9, + 0x03FA, + 0x03FA, + 0x03FC, + 0x03FD, + 0x03FE, + 0x03FF, +}; + +static const uint16_t data1F00[] = { + // U+1F00..1FFF + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL, + 0x0395 | HAS_VOWEL, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0x0395 | HAS_VOWEL, + 0x0395 | HAS_VOWEL, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0x0397 | HAS_VOWEL, + 0x0397 | HAS_VOWEL, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL, + 0x0397 | HAS_VOWEL, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL, + 0x039F | HAS_VOWEL, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0x039F | HAS_VOWEL, + 0x039F | HAS_VOWEL, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0, + 0x03A5 | HAS_VOWEL, + 0, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL, + 0x03A9 | HAS_VOWEL, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL, + 0x03A9 | HAS_VOWEL, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_ACCENT, + 0x0391 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0, + 0x0399 | HAS_VOWEL, + 0, + 0, + 0, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0395 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_ACCENT, + 0x0397 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0, + 0, + 0, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x0399 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0, + 0, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0x0399 | HAS_VOWEL | HAS_ACCENT, + 0, + 0, + 0, + 0, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x03A5 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x03A1, + 0x03A1, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT | HAS_DIALYTIKA, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A5 | HAS_VOWEL | HAS_ACCENT, + 0x03A1, + 0, + 0, + 0, + 0, + 0, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x039F | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_ACCENT, + 0x03A9 | HAS_VOWEL | HAS_YPOGEGRAMMENI, + 0, + 0, + 0, +}; + +// U+2126 Ohm sign +static const uint16_t data2126 = 0x03A9 | HAS_VOWEL; + +uint32_t getLetterData(UChar32 c) { + if (c < 0x370 || 0x2126 < c || (0x3ff < c && c < 0x1f00)) { + return 0; + } else if (c <= 0x3ff) { + return data0370[c - 0x370]; + } else if (c <= 0x1fff) { + return data1F00[c - 0x1f00]; + } else if (c == 0x2126) { + return data2126; + } else { + return 0; + } +} + +uint32_t getDiacriticData(UChar32 c) { + switch (c) { + case 0x0300: // varia + case 0x0301: // tonos = oxia + case 0x0342: // perispomeni + case 0x0302: // circumflex can look like perispomeni + case 0x0303: // tilde can look like perispomeni + case 0x0311: // inverted breve can look like perispomeni + return HAS_ACCENT; + case 0x0308: // dialytika = diaeresis + return HAS_COMBINING_DIALYTIKA; + case 0x0344: // dialytika tonos + return HAS_COMBINING_DIALYTIKA | HAS_ACCENT; + case 0x0345: // ypogegrammeni = iota subscript + return HAS_YPOGEGRAMMENI; + case 0x0304: // macron + case 0x0306: // breve + case 0x0313: // comma above + case 0x0314: // reversed comma above + case 0x0343: // koronis + return HAS_OTHER_GREEK_DIACRITIC; + default: + return 0; + } +} + +UBool isFollowedByCasedLetter(const UCaseProps *csp, const UChar *s, int32_t i, int32_t length) { + while (i < length) { + UChar32 c; + U16_NEXT(s, i, length, c); + int32_t type = ucase_getTypeOrIgnorable(csp, c); + if ((type & UCASE_IGNORABLE) != 0) { + // Case-ignorable, continue with the loop. + } else if (type != UCASE_NONE) { + return TRUE; // Followed by cased letter. + } else { + return FALSE; // Uncased and not case-ignorable. + } + } + return FALSE; // Not followed by cased letter. +} + +/** + * Greek string uppercasing with a state machine. + * Probably simpler than a stateless function that has to figure out complex context-before + * for each character. + * TODO: Try to re-consolidate one way or another with the non-Greek function. + */ +int32_t toUpper(const UCaseMap *csm, + UChar *dest, int32_t destCapacity, + const UChar *src, int32_t srcLength, + UErrorCode *pErrorCode) { + int32_t locCache = UCASE_LOC_GREEK; + int32_t destIndex=0; + uint32_t state = 0; + for (int32_t i = 0; i < srcLength;) { + int32_t nextIndex = i; + UChar32 c; + U16_NEXT(src, nextIndex, srcLength, c); + uint32_t nextState = 0; + int32_t type = ucase_getTypeOrIgnorable(csm->csp, c); + if ((type & UCASE_IGNORABLE) != 0) { + // c is case-ignorable + nextState |= (state & AFTER_CASED); + } else if (type != UCASE_NONE) { + // c is cased + nextState |= AFTER_CASED; + } + uint32_t data = getLetterData(c); + if (data > 0) { + uint32_t upper = data & UPPER_MASK; + // Add a dialytika to this iota or ypsilon vowel + // if we removed a tonos from the previous vowel, + // and that previous vowel did not also have (or gain) a dialytika. + // Adding one only to the final vowel in a longer sequence + // (which does not occur in normal writing) would require lookahead. + // Set the same flag as for preserving an existing dialytika. + if ((data & HAS_VOWEL) != 0 && (state & AFTER_VOWEL_WITH_ACCENT) != 0 && + (upper == 0x399 || upper == 0x3A5)) { + data |= HAS_DIALYTIKA; + } + int32_t numYpogegrammeni = 0; // Map each one to a trailing, spacing, capital iota. + if ((data & HAS_YPOGEGRAMMENI) != 0) { + numYpogegrammeni = 1; + } + // Skip combining diacritics after this Greek letter. + while (nextIndex < srcLength) { + uint32_t diacriticData = getDiacriticData(src[nextIndex]); + if (diacriticData != 0) { + data |= diacriticData; + if ((diacriticData & HAS_YPOGEGRAMMENI) != 0) { + ++numYpogegrammeni; + } + ++nextIndex; + } else { + break; // not a Greek diacritic + } + } + if ((data & HAS_VOWEL_AND_ACCENT_AND_DIALYTIKA) == HAS_VOWEL_AND_ACCENT) { + nextState |= AFTER_VOWEL_WITH_ACCENT; + } + // Map according to Greek rules. + UBool addTonos = FALSE; + if (upper == 0x397 && + (data & HAS_ACCENT) != 0 && + numYpogegrammeni == 0 && + (state & AFTER_CASED) == 0 && + !isFollowedByCasedLetter(csm->csp, src, nextIndex, srcLength)) { + // Keep disjunctive "or" with (only) a tonos. + // We use the same "word boundary" conditions as for the Final_Sigma test. + if (i == nextIndex) { + upper = 0x389; // Preserve the precomposed form. + } else { + addTonos = TRUE; + } + } else if ((data & HAS_DIALYTIKA) != 0) { + // Preserve a vowel with dialytika in precomposed form if it exists. + if (upper == 0x399) { + upper = 0x3AA; + data &= ~HAS_EITHER_DIALYTIKA; + } else if (upper == 0x3A5) { + upper = 0x3AB; + data &= ~HAS_EITHER_DIALYTIKA; + } + } + destIndex=appendUChar(dest, destIndex, destCapacity, (UChar)upper); + if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x308); // restore or add a dialytika + } + if (destIndex >= 0 && addTonos) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x301); + } + while (destIndex >= 0 && numYpogegrammeni > 0) { + destIndex=appendUChar(dest, destIndex, destCapacity, 0x399); + --numYpogegrammeni; + } + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + } else { + const UChar *s; + UChar32 c2 = 0; + c=ucase_toFullUpper(csm->csp, c, NULL, NULL, &s, csm->locale, &locCache); + if((destIndexdestCapacity) { + *pErrorCode=U_BUFFER_OVERFLOW_ERROR; + } + return destIndex; +} + +} // namespace GreekUpper +U_NAMESPACE_END + /* functions available in the common library (for unistr_case.cpp) */ U_CFUNC int32_t U_CALLCONV @@ -315,6 +952,10 @@ ustrcase_internalToUpper(const UCaseMap *csm, UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode) { + int32_t locCache = csm->locCache; + if (ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_GREEK) { + return GreekUpper::toUpper(csm, dest, destCapacity, src, srcLength, pErrorCode); + } UCaseContext csc=UCASECONTEXT_INITIALIZER; csc.p=(void *)src; csc.limit=srcLength; @@ -346,6 +987,10 @@ ustr_foldCase(const UCaseProps *csp, dest[destIndex++]=(UChar)c2; } else { destIndex=appendResult(dest, destIndex, destCapacity, c, s); + if(destIndex<0) { + *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } } } @@ -419,7 +1064,7 @@ ustrcase_map(const UCaseMap *csm, if(destLength>0) { int32_t copyLength= destLength<=destCapacity ? destLength : destCapacity; if(copyLength>0) { - uprv_memmove(dest, temp, copyLength*U_SIZEOF_UCHAR); + u_memmove(dest, temp, copyLength); } } if(temp!=buffer) { diff --git a/deps/icu-small/source/common/ustrcase_locale.cpp b/deps/icu-small/source/common/ustrcase_locale.cpp index 5707c5a5be13f4..78f4bbd7a2fe7f 100644 --- a/deps/icu-small/source/common/ustrcase_locale.cpp +++ b/deps/icu-small/source/common/ustrcase_locale.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011, International Business Machines diff --git a/deps/icu-small/source/common/ustrenum.cpp b/deps/icu-small/source/common/ustrenum.cpp index af3c9fa9048b68..699ce32cfef242 100644 --- a/deps/icu-small/source/common/ustrenum.cpp +++ b/deps/icu-small/source/common/ustrenum.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines diff --git a/deps/icu-small/source/common/ustrenum.h b/deps/icu-small/source/common/ustrenum.h index d02c20779501b0..868fddcb53527d 100644 --- a/deps/icu-small/source/common/ustrenum.h +++ b/deps/icu-small/source/common/ustrenum.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines diff --git a/deps/icu-small/source/common/ustrfmt.c b/deps/icu-small/source/common/ustrfmt.c index 5e9fb924f8d3ff..c7805d8d2a3062 100644 --- a/deps/icu-small/source/common/ustrfmt.c +++ b/deps/icu-small/source/common/ustrfmt.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2006, International Business Machines diff --git a/deps/icu-small/source/common/ustrfmt.h b/deps/icu-small/source/common/ustrfmt.h index f1891bdabf58ea..3cc3d69add5e05 100644 --- a/deps/icu-small/source/common/ustrfmt.h +++ b/deps/icu-small/source/common/ustrfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2006, International Business Machines diff --git a/deps/icu-small/source/common/ustring.cpp b/deps/icu-small/source/common/ustring.cpp index ef4b05dd735478..8361fe37077fbd 100644 --- a/deps/icu-small/source/common/ustring.cpp +++ b/deps/icu-small/source/common/ustring.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -991,7 +993,7 @@ U_CAPI int32_t U_EXPORT2 u_strlen(const UChar *s) { #if U_SIZEOF_WCHAR_T == U_SIZEOF_UCHAR - return (int32_t)uprv_wcslen(s); + return (int32_t)uprv_wcslen((const wchar_t *)s); #else const UChar *t = s; while(*t != 0) { @@ -1113,7 +1115,7 @@ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number) { U_CAPI UChar * U_EXPORT2 u_memcpy(UChar *dest, const UChar *src, int32_t count) { if(count > 0) { - uprv_memcpy(dest, src, count*U_SIZEOF_UCHAR); + uprv_memcpy(dest, src, (size_t)count*U_SIZEOF_UCHAR); } return dest; } @@ -1121,7 +1123,7 @@ u_memcpy(UChar *dest, const UChar *src, int32_t count) { U_CAPI UChar * U_EXPORT2 u_memmove(UChar *dest, const UChar *src, int32_t count) { if(count > 0) { - uprv_memmove(dest, src, count*U_SIZEOF_UCHAR); + uprv_memmove(dest, src, (size_t)count*U_SIZEOF_UCHAR); } return dest; } diff --git a/deps/icu-small/source/common/ustrtrns.cpp b/deps/icu-small/source/common/ustrtrns.cpp index e835d96b6aa52b..b61d771fafcdc2 100644 --- a/deps/icu-small/source/common/ustrtrns.cpp +++ b/deps/icu-small/source/common/ustrtrns.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/utext.cpp b/deps/icu-small/source/common/utext.cpp index 20952a8459273a..a89e7a62b56366 100644 --- a/deps/icu-small/source/common/utext.cpp +++ b/deps/icu-small/source/common/utext.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/utf_impl.c b/deps/icu-small/source/common/utf_impl.c index a1f43b94655731..91cb9ba5f2935f 100644 --- a/deps/icu-small/source/common/utf_impl.c +++ b/deps/icu-small/source/common/utf_impl.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/util.cpp b/deps/icu-small/source/common/util.cpp index 5a853ea34609ef..b5d1fa4888ad27 100644 --- a/deps/icu-small/source/common/util.cpp +++ b/deps/icu-small/source/common/util.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/common/util.h b/deps/icu-small/source/common/util.h index 427d25ca38c9e4..b3ed037ab62696 100644 --- a/deps/icu-small/source/common/util.h +++ b/deps/icu-small/source/common/util.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/common/util_props.cpp b/deps/icu-small/source/common/util_props.cpp index 44349061e74974..3b7bb20d254a86 100644 --- a/deps/icu-small/source/common/util_props.cpp +++ b/deps/icu-small/source/common/util_props.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2016, International Business Machines diff --git a/deps/icu-small/source/common/utrace.c b/deps/icu-small/source/common/utrace.c index 15f5ccef5255a4..e702497d8c0f69 100644 --- a/deps/icu-small/source/common/utrace.c +++ b/deps/icu-small/source/common/utrace.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2014, International Business Machines diff --git a/deps/icu-small/source/common/utracimp.h b/deps/icu-small/source/common/utracimp.h index d88b80967a8297..5ec047a967a858 100644 --- a/deps/icu-small/source/common/utracimp.h +++ b/deps/icu-small/source/common/utracimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/common/utrie.cpp b/deps/icu-small/source/common/utrie.cpp index b8caeb722b3058..478560df66eb3b 100644 --- a/deps/icu-small/source/common/utrie.cpp +++ b/deps/icu-small/source/common/utrie.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -139,7 +141,7 @@ utrie_clone(UNewTrie *fillIn, const UNewTrie *other, uint32_t *aliasData, int32_ uprv_free(aliasData); } else { uprv_memcpy(trie->index, other->index, sizeof(trie->index)); - uprv_memcpy(trie->data, other->data, other->dataLength*4); + uprv_memcpy(trie->data, other->data, (size_t)other->dataLength*4); trie->dataLength=other->dataLength; trie->isDataAllocated=isDataAllocated; } @@ -839,7 +841,7 @@ utrie_serialize(UNewTrie *trie, void *dt, int32_t capacity, } /* write 32-bit data values */ - uprv_memcpy(dest16, trie->data, 4*trie->dataLength); + uprv_memcpy(dest16, trie->data, 4*(size_t)trie->dataLength); } return length; diff --git a/deps/icu-small/source/common/utrie.h b/deps/icu-small/source/common/utrie.h index 3cec027fe34595..17e660b3e308cb 100644 --- a/deps/icu-small/source/common/utrie.h +++ b/deps/icu-small/source/common/utrie.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/utrie2.cpp b/deps/icu-small/source/common/utrie2.cpp index 5f873c5cac0825..4bd35a924d874a 100644 --- a/deps/icu-small/source/common/utrie2.cpp +++ b/deps/icu-small/source/common/utrie2.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/utrie2.h b/deps/icu-small/source/common/utrie2.h index 36ea9b4bb9423f..810bcfc9591058 100644 --- a/deps/icu-small/source/common/utrie2.h +++ b/deps/icu-small/source/common/utrie2.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/utrie2_builder.cpp b/deps/icu-small/source/common/utrie2_builder.cpp index 0815822c5035f7..664051c5f9bd04 100644 --- a/deps/icu-small/source/common/utrie2_builder.cpp +++ b/deps/icu-small/source/common/utrie2_builder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -248,11 +250,11 @@ cloneBuilder(const UNewTrie2 *other) { /* clone data */ uprv_memcpy(trie->index1, other->index1, sizeof(trie->index1)); - uprv_memcpy(trie->index2, other->index2, other->index2Length*4); + uprv_memcpy(trie->index2, other->index2, (size_t)other->index2Length*4); trie->index2NullOffset=other->index2NullOffset; trie->index2Length=other->index2Length; - uprv_memcpy(trie->data, other->data, other->dataLength*4); + uprv_memcpy(trie->data, other->data, (size_t)other->dataLength*4); trie->dataNullOffset=other->dataNullOffset; trie->dataLength=other->dataLength; @@ -260,7 +262,7 @@ cloneBuilder(const UNewTrie2 *other) { if(other->isCompacted) { trie->firstFreeBlock=0; } else { - uprv_memcpy(trie->map, other->map, (other->dataLength>>UTRIE2_SHIFT_2)*4); + uprv_memcpy(trie->map, other->map, ((size_t)other->dataLength>>UTRIE2_SHIFT_2)*4); trie->firstFreeBlock=other->firstFreeBlock; } @@ -540,7 +542,7 @@ allocDataBlock(UNewTrie2 *trie, int32_t copyBlock) { if(data==NULL) { return -1; } - uprv_memcpy(data, trie->data, trie->dataLength*4); + uprv_memcpy(data, trie->data, (size_t)trie->dataLength*4); uprv_free(trie->data); trie->data=data; trie->dataCapacity=capacity; @@ -1402,7 +1404,7 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) { /* write 32-bit data values */ trie->data16=NULL; trie->data32=(uint32_t *)dest16; - uprv_memcpy(dest16, newTrie->data, newTrie->dataLength*4); + uprv_memcpy(dest16, newTrie->data, (size_t)newTrie->dataLength*4); break; default: *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; diff --git a/deps/icu-small/source/common/utrie2_impl.h b/deps/icu-small/source/common/utrie2_impl.h index ecb3b6fc40a4d9..48883638b185c4 100644 --- a/deps/icu-small/source/common/utrie2_impl.h +++ b/deps/icu-small/source/common/utrie2_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/uts46.cpp b/deps/icu-small/source/common/uts46.cpp index 13a1f246c21cc9..7bc4f925caca0b 100644 --- a/deps/icu-small/source/common/uts46.cpp +++ b/deps/icu-small/source/common/uts46.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2015, International Business Machines @@ -68,7 +70,7 @@ isASCIIOkBiDi(const char *s, int32_t length); IDNA::~IDNA() {} void -IDNA::labelToASCII_UTF8(const StringPiece &label, ByteSink &dest, +IDNA::labelToASCII_UTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { if(U_SUCCESS(errorCode)) { UnicodeString destString; @@ -78,7 +80,7 @@ IDNA::labelToASCII_UTF8(const StringPiece &label, ByteSink &dest, } void -IDNA::labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest, +IDNA::labelToUnicodeUTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { if(U_SUCCESS(errorCode)) { UnicodeString destString; @@ -88,7 +90,7 @@ IDNA::labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest, } void -IDNA::nameToASCII_UTF8(const StringPiece &name, ByteSink &dest, +IDNA::nameToASCII_UTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { if(U_SUCCESS(errorCode)) { UnicodeString destString; @@ -98,7 +100,7 @@ IDNA::nameToASCII_UTF8(const StringPiece &name, ByteSink &dest, } void -IDNA::nameToUnicodeUTF8(const StringPiece &name, ByteSink &dest, +IDNA::nameToUnicodeUTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { if(U_SUCCESS(errorCode)) { UnicodeString destString; @@ -131,19 +133,19 @@ class UTS46 : public IDNA { IDNAInfo &info, UErrorCode &errorCode) const; virtual void - labelToASCII_UTF8(const StringPiece &label, ByteSink &dest, + labelToASCII_UTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; virtual void - labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest, + labelToUnicodeUTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; virtual void - nameToASCII_UTF8(const StringPiece &name, ByteSink &dest, + nameToASCII_UTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; virtual void - nameToUnicodeUTF8(const StringPiece &name, ByteSink &dest, + nameToUnicodeUTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; private: @@ -154,7 +156,7 @@ class UTS46 : public IDNA { IDNAInfo &info, UErrorCode &errorCode) const; void - processUTF8(const StringPiece &src, + processUTF8(StringPiece src, UBool isLabel, UBool toASCII, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const; @@ -251,25 +253,25 @@ UTS46::nameToUnicode(const UnicodeString &name, UnicodeString &dest, } void -UTS46::labelToASCII_UTF8(const StringPiece &label, ByteSink &dest, +UTS46::labelToASCII_UTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { processUTF8(label, TRUE, TRUE, dest, info, errorCode); } void -UTS46::labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest, +UTS46::labelToUnicodeUTF8(StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { processUTF8(label, TRUE, FALSE, dest, info, errorCode); } void -UTS46::nameToASCII_UTF8(const StringPiece &name, ByteSink &dest, +UTS46::nameToASCII_UTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { processUTF8(name, FALSE, TRUE, dest, info, errorCode); } void -UTS46::nameToUnicodeUTF8(const StringPiece &name, ByteSink &dest, +UTS46::nameToUnicodeUTF8(StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { processUTF8(name, FALSE, FALSE, dest, info, errorCode); } @@ -401,7 +403,7 @@ UTS46::process(const UnicodeString &src, } void -UTS46::processUTF8(const StringPiece &src, +UTS46::processUTF8(StringPiece src, UBool isLabel, UBool toASCII, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const { diff --git a/deps/icu-small/source/common/utypeinfo.h b/deps/icu-small/source/common/utypeinfo.h index 51c3a03bf7c332..b39aa0d6053344 100644 --- a/deps/icu-small/source/common/utypeinfo.h +++ b/deps/icu-small/source/common/utypeinfo.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/utypes.c b/deps/icu-small/source/common/utypes.c index 6ff84607476400..c506dd44f5424c 100644 --- a/deps/icu-small/source/common/utypes.c +++ b/deps/icu-small/source/common/utypes.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/common/uvector.cpp b/deps/icu-small/source/common/uvector.cpp index c0cb2d83661ec6..e48913e55eac12 100644 --- a/deps/icu-small/source/common/uvector.cpp +++ b/deps/icu-small/source/common/uvector.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1999-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/uvector.h b/deps/icu-small/source/common/uvector.h index c209a30a76d251..f6abe3e78ad1c9 100644 --- a/deps/icu-small/source/common/uvector.h +++ b/deps/icu-small/source/common/uvector.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2016, International Business Machines diff --git a/deps/icu-small/source/common/uvectr32.cpp b/deps/icu-small/source/common/uvectr32.cpp index 09342f2f82d557..3607d974ce5a9d 100644 --- a/deps/icu-small/source/common/uvectr32.cpp +++ b/deps/icu-small/source/common/uvectr32.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1999-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/uvectr32.h b/deps/icu-small/source/common/uvectr32.h index 451b741f598d65..c975de769b55b4 100644 --- a/deps/icu-small/source/common/uvectr32.h +++ b/deps/icu-small/source/common/uvectr32.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/common/uvectr64.cpp b/deps/icu-small/source/common/uvectr64.cpp index afbe14f8da6049..9196274aba1826 100644 --- a/deps/icu-small/source/common/uvectr64.cpp +++ b/deps/icu-small/source/common/uvectr64.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1999-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/common/uvectr64.h b/deps/icu-small/source/common/uvectr64.h index 13d3c2e5c76e61..fec10983988de9 100644 --- a/deps/icu-small/source/common/uvectr64.h +++ b/deps/icu-small/source/common/uvectr64.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2014, International Business Machines diff --git a/deps/icu-small/source/common/wintz.c b/deps/icu-small/source/common/wintz.c index 166da0b484ac65..5a3ecae0a43f36 100644 --- a/deps/icu-small/source/common/wintz.c +++ b/deps/icu-small/source/common/wintz.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2015, International Business Machines diff --git a/deps/icu-small/source/common/wintz.h b/deps/icu-small/source/common/wintz.h index 39f886ab1c095a..01a906a401348d 100644 --- a/deps/icu-small/source/common/wintz.h +++ b/deps/icu-small/source/common/wintz.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2011, International Business Machines diff --git a/deps/icu-small/source/data/in/icudt57l.dat b/deps/icu-small/source/data/in/icudt57l.dat deleted file mode 100644 index 87131f44e10ac40aaedc96158dffe7a84df9be08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933056 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�do<0 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

ouR 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

@%X-^-&)R1V4t#7KNDKx#s86kX zl6Hhj)aO>Jnv`@w(m^XtePexR{b>DS%}n}E*$KZ}>l6R90-=qGs}m}dLZPHk%}||C z{m?O?n*xnPX$eh3%|a)KauQDsHA^@>l$Y2lG%&GEs9mUI=-#B%&;v9JpQnnxPLU|c|PT6rF3|fO!&=U*?<3I#l1m=S)z*_JeVEkV8 zDfk9h395{HR#^+s1EhfrFcORh)4_aj1y}=~1FwR&!PlT^qAEKbbO%GhXpjqLfCb=s za2vP>+z0*z4uRi5-6V8_Q@|PEY>)*CzECaWI&0rhY3ElwjgXCmYb^fCs^o;63m?_yZ)?P-XQ%6L1RX1%`lZa2}WhiorGD7O(+40=9w|z-!7l!GncIq(TM1bzj< z+N!KEI0f_qnP42q2h+eTa5Y#39s)0dJ>Wg?Dfk9N!O3;-H8>j#1mnPk;0mw|tOhTE zkHA6jBlr_EtgFgef&t(>Fd0O^LU0Y(26lt};A;@9NBabAKyNS-upE(RfCV36I7za!hzMo{?k1{|%n8!G!-CI*k1${NK=F>^I@j zbo~F-PEFZOcr^P=x(WYp^ZKZ{p#`DKLW@FIhn9wJl?hZZ8 zZ{hDbt527Q)`h-R_k|t|wb!dpKN6C)rymbJ6*@hzEhH;XKOgECcqufTm8N%v@&m7j z-U`Y3((i;m2z?wnM|~FhGW1R8`_KUOb7+XOlJf7NXvj*atlZK_?Ry$L2VMfZ!5iRh z@B!ElJ_lce@4+wN4-h<-HMc-*&;T?BCx9?G9h?E$gH+HRoDKSdfgl59f>B@`$OV(Y z6c7P3z(rsISO~5J*MRH6a&Q~C3zUQP;C}EhcpPj6&w>}hF0cpu3%n0L1_!`b;5+a$ zI1B=f<=Lxea2n&>wmcIhvS#zq)_0b68}Ky-UM3GG5m%SzHhJI{@O-WK=e&C{u{bY3 zBR8UYr`f7^zckgme{V2U^-fP$y)!r;IzaUvM%*yshGnYWnH*=r&CF80v%v^Bqu`9m zP`$?rhN?cj(?Evm(}yrETlMMJ7xV||s?PucoPnebA`TsWhJs;zz)0066K-Zd0520> zW~SJqioe@47@SKjZIU1(bG4rzv?@%FX#v4c$Dg!PMB`1zC*{TzQYKIjZl4& z+ZQ=~vxca?BRC#G{7CYQAsjnIrKM%4w0>Z4f0Z_bbMmF3qhH@FFjDpFH$?RtV5@%E z)GwBvdXCJq0jqceR3=OYDh$d`e?Gt$yk#(>_SzskVY41ArDF+^ny z%~l!sEF*K6%0NyAKFJ_o#wgN84+SGt2KAOf8_A%J3`N#Z+QHC4!_?690cz;5A!?|d zsfOb7VHugq?%hY({RV-dAWPW;hA0~!+SqHS6PG?#+1dS+J!XI!-aAue4oe3^RVH8dM`aJr1X(IOBLifsY}#%%<<7SIschP8cIFtBO}=b=ojo>7jp#iP z3{fKnj8-GCZA8{kK>V0NV1yb0XJo%VpuZZ4tdS!|s!>_lYIN`ZU;r4QM)&Cr`hdP5 zO^xmgXb+?Nkv0sT&ABZh`Lc-Px*R=%JflaeF_d{szf3h|LkjE#on=_NE^lZs7!i?%F0ln6>F_`P^qj|ewON`Xpt(NuVB%l#;F{YrwUXN zI~JC*g26mhrWUHjYKdCLcT~&OO0`O@RuyVJGr^nGX0=6aRonThe|r(2cX91GNM71C0Vr0?h*9K=VMWK-)lvKx&{{;H*HeKw4m6AU$9Q zvIC<7 zRj_TaLohYiEqGS2S1>I&Fqj^+d3$7Za2&HvdBFl^n%=N6aR#~g93Tr(xJe#b|))s54wVhd=oz`yVbM{*AGMlsCI$#~N4p~1i zXLHz6p-?C}RGS%^MxiFm&4feEL#;w>+07-D`%WWf$Lm`v!mTC3BeIV$kC1tjNC(0q za2Ch`X@D2_Bk65+-CqHNr%0q&dgjt0QUPBY15IdjWpS zi16NKWHiVI{4U}ko#Sz!0PtIQgx`fCc_0FcKn|D(7J_A9F}MNT2}+T{@3)cV9IpVk zgTli+>u zCfEmF0ndT`;B~k!5*`NkaU7z&T|hffAM^pW0WYyfcu<}e$#D)C40sVR!ViBD zev^-k1{Z-#!2`r^0GDxm2H_Qim0&FPJwV7HD^f}PA;KrYHQ;IR6nGds19p(UpKvd@ z2fR<-UkDEZuHndUfOiZcCxClEBajSAh;Ks3hZPZi%!*tN`hY#4IS7M+;1j?{Vv+TL zdBw;$a6VWIwj!fBDB<{F@HBV|JPx*iC%}{75wI0J2KZe&vK>4Mo&g_$ZQxn(8Q6`y znS|2zF9IKc=ZL$Q@OiL_@(Felx0>^NK{;SKZy7&^e{QVBau|ABpj@^XVLv7|V7o|7n5-sDQxn+6I9E+9C{Yuqt2}mPV&ilEv0Xj8 z)K4GZcbLj&qoo;Y5*sxZ@~=ouDp8Y*)Z`heAYT=*#S;f}RAHVfWJ|YFbpaba@o$Qn zGF45Prlu6DDRWS-ib_?{Of_|inp&i$PE%7$)YR!}>Krv~f||zeaopf?r7PlUDPdcv z;$lL!YGY?OwjyUwlnd4L5;c9Mnm$XF=BiS5?k!NI>|Z!V&EWrw)XYLPX9j!v7O0D6 zn9`1)o?nzdv9z#w8nR?lr0Myk9o2;VNyR1kl%ja5icEFlI;h-9rTHb(ii@XpRQWUW zrxi|{+)+&}%$rs?xqvN#OV!lk5;xL`>8OP2X6<0oQrz>7ZlKRPxo4?v(Af>TxItGp z=;j99oxsiAv4eY}&r&?|T(KQpu^nBp9bK^g3Amq|;nkom^R+Tv?r5S)E*2om^Qi zG1Zlo>dH!WWu>~ZQZ>bumFmh$b!DZxvQk}HE~B$6tFtSsvn$KZ(u0LFNxZZG`;rhZMx}I9 z-7R{mQ!cmQZn@oJyQOv#-7>pHc1zsZv8=NrzO&15e9+nPL1)JYogE)I(On!Lba8yv z#qmlPM?e=xKo>_q7nkV>=;8?I;s|gex;g^7Is&>n0=hZ^x;g^7Is&>n0=l|nH_yHJF=&i;iUND zQ>xhJ$?xFfckt=zSj8SsW(Qw<$13)8jp^-BrR-k3@x1uQ9DDU3-t*$Uy6A{Eym+rZ z!~Bz4FSwX zhE$*4&OW`JeR@0l^mg{??d;Rr*{8R&Pj6?R-p)R~oqc+{`1E%1>FwgvE4!&1o4fe* zcJb-$;?pZTy?T7Fyj^^HyZZEY_37>E)7#ajx2sPtI|;_*clGJ*>eJiRSKh8Zz1@6z zyZQ8X^Xcv8)7#Cbx0_F|>=AFu*v+T6n@?{ypWg01z1@9!yZiKZ_vw`#sf~Quk=r}= z^mg~@?e5dt-KST2IqwRVGw)iGGw*7WGq0ZI%(FnwJR9W9vqH|i`j#`V#^ubrrloiE z+al+tTypHUMS5g^n%@@bLH%idTRK*;rE0GxcLgt>zh@KOep~##o22<|@%M0&=C{S) z%SoEwFDX_0;_vIEtbV`v`#VYV`^DeqNt)j;{(eu={C@HGeUj#{BY*!V_YJ=-{ytFB z{I>Y}K}qx5;_nM3&2NjpKa@1TE&e`H>e+9Lzh9Izu_c}L7TTzG)SgJ~!JDo!TR1=s zRvF9}W~tKxBbhNAuO={lkvT)zUv~zxhP~BXb+NjHnZrfuDt16!rmj~vu?Ol(b%(l( zUz#ddx8+`bZ`#E7&yTTo?^d-{w!FXg|EkBv z1y2j@x7Ju62G6p#1aA+X6M7{$jhW8=yva5)cpY<_Pg`e%8ZwutLK~Uy>}!2#b+#T3 z?y{Ql{#O~Zp39iKTyND4&9!dk?Xvf*KY}6aK(N&67#eK-YIO^h28UY{f}^dsgI5GA znNR&DINsXB+-OVdnczjiV?&dysn(mktM*f{o%NWN6uQ#7)N00rP@6zXpdBsCJ<6oL zxksa8N6d*+1Lp+{ryXt4<@6w*q?kOZu{`OtS(kG`jNMLM5X+aYk5bj8`e0w{PYVywTP2M*oF}{CZ72Mq+x?nf~+Fu+*!u!<36(tB#QG)p9#_g?4kCUk%Tz zscT|>Z>O%&IlLOki&>P)?;x(cnLgi{cF|uMpLjWD#&T5WJC9eL3L4dA&MX6|4Q3vAor{ zh?!Nceos?g?5g&>?RnySe$g`8O{-a4O{?*8_*?Ih<+{hG?H(<8bgb3%@M$w;T^#eQ z*EjsNHt$*)?M#(RuPObaTaE`}t-qamK*yaQ^Wy&`uUE@nyYOmxMa+W!YK7KYU5Tpq zf$^l5!}D5tO!5uB{@e7%Jz}-x^<7?{R9#E=eC1v3UhDGTf2y`A&$hp=pTEyDW$@o` zOuOh&&0WUdcbnFFel_0qco+CugSq2Xm%}U3H9jAEy`rff&!1jP%8Rwa>aMWrt{1N* z`Fl#QM5agebfm^~czr{4EooJ(r7w>4EBD0i+^Nc3lYWnTdQE@k>GiHKX@!6PzI0D) zeBtT5AZD9a2CttQ9qT!~GPH}8!E3Xg?>ui;-y@n)PxbB5>%~poR?jncU+W{p zn|*h!&HC!+eFc3KiFw2Gr)RS_D)UO|+2Z-i-;#_~)%nlsFFYMyUauUU4zKllJg;Bz zcw&pc4fxqrN1xUC$ltRV&v;{8FV!oPHzM^cJm2SO({g!}M|;|{Ra$seTMhesdKO7J za-@7@`Mg$AwS1nQ|F80h2db9G>nYRY%45bB@jm!ZM)Q7MM;p^u@5TSbQd0*<=J7lq zU%LNEo_LRV*Pi#ZB6ptZOBSEI`VsX1PVRUQRd4yxe05|i^;*y0Z`s}zWcnZPI*@y= zzs>mjh80!(>Gcg>4=zs@RdajwZ|;U(KDlfDeRfqX?kLf_k9&3=?J48G(G*`>)$6NT zTVDCR`-(hw98G`KcIM@lXON@iG5uuKKGx6v_s=83HrJpx=KSmDWv`w5bxU+>=jiO} zueiV8f{)hfy>iId+3yc;gfI7Vf7v}B9_<;+FXw1aT7HRMx#Qc9*Gj$nvZw!OPhEcf z)r}VA+3Ua8?^zpv?H_H_UA?aO-2VBCsy&CNG2TDd{M%8xU$-~Dtvasu`>Xmgn10Wb z;Em{H^yZiF-#v-`eF@$bFa3o-pVwxqK9vf`T)9X0W%VuPullO0x{Z&FKa57tXGeQt zsw&63R*$Cp$oqhIhpPJQTJ?Fvuczu$iQhxs_4VI9oA|Xx32 z_d-W|Cid6+|K!Q|$g+7JuUfY1uH^r0KI5-EYFdiinf+y}`fTe@@$C7}pK!hBWKVuo z>)f{NZ&7B{=kcVD4bStMsne=Ff2;nxJ&|9&=N}{gudl-YT*rTt!&v2i?lbmPEx+rh z|6GT^28`sYzvP)3Ft&Ji3C~0FdyvcXQa#DuY>qdBTRqP_MR`1bOERfdOYX0EPp8QD zw`R{)Z!Gkm&q4ili}CD|XK>>;ujN+X!y2B~Pnvr02^?IZ{uN>9) zuSb^1%TfJP(0`MolFtL$sIGy^$^{9^UI-FZufPz#K*|Xe^5s!w<(0%;1Fi=*fm^{U zkl^rg_%5k1a5v`_U;}snJOcdbTR3NrahtU|?3ci9;7@;pbJp*$KLGmydw$y?Ex!;O zSl7e;9{d9Sh)WA5Dmw|(1`U8eUt`Ws0AawIAXU=XFWYVp*fZN^t&l2dXLHV8*!Dn> z5to+9`6w_Bu&zjze3Lkz0@#<@X1x)gFU3ohl@}4m8YDJ*NZX6R5^yc>+sq!)_N`zQ zSOffis^pwCOKkR9wjTxTx9p^UK#fU#v469@1H24g18)Jp>~}f;5PS;QPua20&Fk8C zh`1jCYoXZeeQbx4lwAY(Ww1tyeGFio6#GQrwwJ`9+Y%}(PbID;XbU=mF5n+P%3{FF0w^&q%AStlY`@tKd!WPF&hP&OZTPfN$c`e&C#a zKJ7n&Rimn}*~8PW0~&(kfWPd`IA@I=y9HrI-2}P3D21USM@9b4+&jjp2X_o=hevAh%C+;e+6x;w<-^XVENBeHzzi!wM z(q`Qs`vJh(KQ{Y1#$-v4Exvx5xaR=-Hrl(v>tHWn|HUdceZ=`^;2`)G`2E8^iuUh- zeG=^i!2X9-((7^F2s8yJ0ro7cBAa!GZ1yX(QvmxAR!KXH^WLC87y|ry*+>FpZUX$Glv;iGJXAsZpMqE$O2lNAj!7vcd%Oq|TU{5xCJjeru zAfCsbYxad;CYS>*2A6?&9{Z=+SA%7MwWDnIHnVR79?$LPRuQ)bu)mqjUS;+Jfc?sx zw(O2Q++Krqr|hQzYfsrPfLFllU@!1w7CPgUcZg#zG5Zs60DJ}5AM6Mo`-IuQfhY*p zMklBZ;^oyNt`TSongQ0ivReSTcKtTCCaxXm1iAqB*s@s<%kBr_xdVyI0IZc|vtO1y z7K{gZAf7v!xFT>NC?LL22Oa>A zfGxni4&8RnzEJjd@B-KgUIp=T-X!iFun&9;*t5z03J6c`^RA@I%0tBc2z~>s_hkp` zU_bEdtIc@>&=@oYCjleJT)XU(WVZrmf)vmdoCW-H*we`F4~BrDAPXcr^_9rGtga*( z(~c(oJTL)F1{Z*0z&=9u93cMn$`A?6BaVH7Y}O>RuLjqE>%ns1*MBSLtH2si0X6_v zztP@2DEc2D{t>VRJO#Fc7r-lkJ#wn_C2w;64%i3SBd3bKFF5}O`~cYZ#y$+<+eV-+ zz67;EU2qI&0!{?+bs8q_bilqdHv7WZDWEHe=k*|t{bTGj!1`-;Iv5UWXutWrolX20 za6VwK7rOvV0TIAHEcQjf@5A|=UkVlh_Fu7=g6ibnK>RJ>c5pXfKNEW$*a#j1j{(2j zCpdowJP%$3yFk3J_7KNjCHDK^L+~m15*z~YK432q`xo#BQ1#FSYJ%$OyAJUU!ExYt za588PT7!1L-`=F>>qs2?ci8^`y+B_u5M+ROZYFV~0DElMxgZa)rk%~67DsTW6UROm zHv3=Lmx9Z|Re*gee7=y;V*PPpS+&=vv@!x`5qAl=0z?$=RIuMy&zgt;3oVbzTT#y4Mf&vh)dn$1yU>3LtEC35Z zJZ}+ktl@573s`f}z6G%E;t{+%iMt1^1NVXl0qdmucy66OPTW@TEZ6~9Bi()t#J7{T zh;BRw3asE3{4T%ReL3|nN5!VPb1iYa?;+_L9fmgumfOV#;$bXOXkHBZ( zAc(h_b)s$7%d~$7Ec|9CfSM9gHdC^CoHqhZ!AamW;7@PG`I#UEbOmPte|m4u`-36C z1|xvq2V*%O5Ar}^T-r3wr-RvGKJd%El=DSk3Ah&A1mro})W@xyuL5g8C9w1}_HByroo4)7A#4c-9pe%njjd*CDR88`^O1^#mV#QE<)HNtM-Ppip!JmOB>7ic#sDQf!~kQIG+w?gZbc6;7?z~ z`4Vs~xCz_}{OPMWUjtY;$i5G30?Sp4K##x-*8N)&xIVBVa3^0`-4}Q`@B}L}y%>0v z@2$QFe9Kx)(LlXmLju%^=Y!QX-bR#U2H9m`5er&(uM9jq>_q11;pwKG^vdkiaS z=d*tHg{+-DpY^gATi38^(hAm0x`!{99$>wsCs{4&1#6e}hV_p1q4k;dmGwQ}E=8>b zR99sZ-GoL7$0vjnS|qehNJ;3H zaCSl(>mRa4N|=4C!%qU9^TIsih2I416CK_Uz63nSg;{ertZK8?3TObDfG}tU+Jo+Z z=dSQz!1Gmj444R}fSF)ESPYheTfp659e5Bt0iFl1fH%OqfM=TU7vMW^7$mZnWF621 zgh3m?b4a)c=mQ1;8}Muq&H+4EgjvTpJR4jJ*iSV4PjEB16RZR5(-~&`A7<7JBH_iE5I^v8>j@E0DFmr zcL3H*4!;N3!z;|VEzFoLoKT;=FF+G;DmW7`<_a_B3ik(t!EnI%Dm(!cg6V+0n!=ZX ztHE{P7H}tEjpgtL@CabM6W#%2pCR@f3Ny|L?+0Ik@4@fDqS@39gaa8N#`C~py&ki+ zq=fP7`^dVf{`Dp6*HGc)`Q@qx@y+>9(3<0rnqPizqEf$}T9;3HGx*|@y?y!OQ>jsW z1FHBsv{+3h?9Z2=g@hTZy&9pz5+^L?Yf?9-d|@gQw#G#$eKm)EwgE zh_#0}5~=Q2)b5e7RK7MAnW9s8134;j)^LzK?U8IsnM?dcbh85xT-GIW_#>!|W5Qv_ z6Q$(MBSkc)!Oq2Qw=8a%B!{F)Nha{O&?!$5XVW77-TDSq|K$#%Rv7<;C1B&8SI-C8Mjz6+LG&!mLKj{W&C{Pt&& zr|P-XnpZwopZ{FaJ?q^3{`0EoZhkM_wRbAz&ckA9Gc4?DY*vNX8{0+mC z6p4|R6|Ryi4PQ?LQ)4CV&)Edno-aJxr{aTl$nj!k(LSoi%ptGDcr|5mc`+uJ7h`gH zRB`1vGTtr8k@0R>y!fhm3y?j7 z62#kcG%wDgT=`tl@%%Z&O3x@OFu8sBg~*i{7P@odQz%~^^$;K5iPY-iQ^{FS4ZlC0 znxxa*HYPl|8y6zU)$NZreVp8z%<%~LLmiL1I{f@B;^p2Vy8ZFllw(@8@p6Z8%i!nB zswo|iA(F($)A5FQz^h5q7QDJKb#Ge3ktwEKc_~%vb1J%AE2Y0TeSdse`s-RhvXohr za-t(c>cn53s(MVjIkF|YEoXW)ZQrz=BlDQnBPqrQMuS&UlVaNDkts&Qkts%lmr}Jn zuE%FkTQc^kn&$dk{3^BA2gW2kR6-b5eW_g;1xmZ~?x$uf}1H zRa2!DC8ShM_3FNAuhI|C7>Pw>#yS@+n~Re{r>akI?@wp@?`TdN5Y86OGOi<^r;`R8z z)WF=pi&ynL>5=v=8o$gNc|EN=0xQ?8T<0F$y6#qev|`-~bJTK0OE>kFmbd7m-% zqX$|(ppWivdA~l|*m9#jdal!Ro!q?7c6wGHZSS;QA7unG0&eOA_9JtTS|zqhbdN>^ zM(ETs)}(gh+9kHrslx-qb?RJeu1-Ba@qC?{AIR6Kms^+X)YQaOojNoyRHsg~ChFAI ziLG_&$iPUQdWm(3PHmsqUZ-XTGIi=a*2;FR8lN~`r%nn?(y3Rlcbc2pIk9tME!HHu zQQfJ^S;hPz_M+Uz%0qkAhw7Gwe>6UaS7&N5=6_WssS8i~hpNL{pFR1%{-9^t&&ghM z`m~EmFFIK9X+^N%JMG_TA8Z(G*jn|sWLJ%a*22)@&_HX5HJq8K9BW>vEF`l~S6kOx zood`;-G^86tqWM$yMC<>iI<124CU0AW!=j<-*c=5)*|+FyT!W8TE{%qW7dzs2kHzs zDH?3iaQEp4nl3JVq3^+pQ8k`CJ+blKfr3F#)_G&Wo=I;^`l8BM3nqFW2afResR4TUaZ~Af5+Uoi8OUid9wXHa*qISh^8eS_{BBq`%rB745|0kQM3d;FmB#Ll;lZ{eQ5xZuSF z?$MdK1G>9MFE@UfJoRh!>=0A|N?Nb+M|CXc=ZlCyNs(m^h3{ps_` zHOp#PAyQ^pmk+vpkmcx{W!1e@{<`t!ue*Uol*Ja}udRFSoosy}{JYkdvk0^sf9}|+ zsTZ&mvwJq8oBXYrzq9Uwb(gNo*zn|fuht)$@c4u+6A~};YQ2`StR(9g_WhHY$ktXzR&%dw^|t2r zzpBnvb>{Xrf93e9I?exf8}YY|f7dc|_KGbNs%sfui>RGgJF)!Q*~^97KSN5< zp<(-m|8Ld$Z?r$D#a)AT#cF-(a{24VU)yz9EdKQyU%#=#3OD|nLA!EHJ(tbikv4LP zIs5Zc`5R;{v8MC}Gm?svsvhSy`}jDoe(McBc5vgtzt{M0>$l}!)NgqxDXt$db-X@w zoYM!)V2}h=wJjqCVwx%bqb@I}jw^d7IcG>VAGNryotH$))f3V_PP^E-Y`2ULa zH?#_>*9+b*_3hZY@UE%%|N4=sJ`{1Z0DJ7ShmTUT} zuUP%=TU8^_I}ix`s@4V)0#B8HqFxTvR+m;Jtxc@ho!C3@Vfnk|n`#X^?y8El$NX7Q zTYbRnY0VZX-~*0RsJm`V;(yG%Z921ZnT)7Is`0v0*R@;MV_iu7leX4B)Y|f{gWlO= z!Yv229OPXG$0~D2t9mb+#r-zE)k;gfYsj-XcL!z;ezMNY!B;oDBm0i*VB+AGr*;(l z)>ULniwtmG`tKvxEVyPt{JHq4eyt%(3mbb!a)&T|h2OLLuG)9i3)i}yJzBiq;~(ej zZLxWQ@wj^yV8-0@#F0Hdy-3%qYlN8G?~*Vy;oO8BbrKYJGB7{kwm{3|wZ}E7`0W^X zlrgXJcD^x?(cIzI<$B~6A9rCwYR$%pMM(j5VZzo#BV~Wv`t2H>Y0f%ToL4ch!kkT6 zTdVT%wXWPxE7^p^(a>f6+xloxcvuh3Wz0>Y)UZc4y;gxkewe|z+uarBm$=I zEj_pLT&?Yy%4gV!!DSpyeW3Gcon0AcZ+Ko?_SuFcwjyvD_pcq!X0|TlyUKc6OW*ZB z$^GBa@=nha&-uBhIa^WjSj98-%-MpqCs*!T8&J0edWKyYv)512T9$A4d4oUYy2|Uc zo~PG69rMTGwyoN=jrrrQif1amXkesYxwduXzheIQyl0zp63#Yhl@%{ml*BxD{n}2I zAIF&Aq^{}QxU*qCQ1M#DMKR`WYkO9H6=Tlpcc9PJ{S32r#gvMXF=qMN0hK?;m{&Hv zzv-*Z+%o=I*-ZP%ULT6pM$@&!)~4#(m{d7Qm-Us(SJ?jJ!h}a+ya$_gKJgtbsph)Y zTGDyz8^#!?t{uI$r@lW$30mAp2&VPdeskL7(E zzE^vm@d5b!+ok0(94oCxoz)-;6y!L1i#KiHuH?<8Lu{)fgPGAkwPm-1dE?4p`&F$c6 z;y(xH!4Ggx{fgs&dMQ|%q?QHLbHShW`CHEUJJ#>cdDQxYunD98d5m3Z#YQjk3{$^W z-H<%J92Ytv6n_t>tlW>D&%iDxj&=zz8-GKS7f<2CT zM`Sv0I;`jIhRVtdDa!)n-2_sx*P@&i2}^6fQ9~``8-`_{0D7zh_BdV^q|7I=cT*0$ ze9gTL?vKa}@}9kXrw~v}Yc?Y^+$r!PAOX2;lZD+YnQs-AbpV|}7tkI2H+3%GHk<>} zz#xzghJkD_3XB7}U=k2NneQ29a6S)Q0v3WR!7^|oSPAX~6~NRv-z+TK0>lq55Sp^x zO}Y4a^y7<<{kXg zK>YU%J%}^kFAU;%C>R08f?Oc&Wj#CCOMCf*a($0)UPdq9XF0kH&@Iov%-A07Uui2@FU<8@HIFDxPI{~?*?f6 zo#T+IUGs#R&1;q-+e%jZ`0i^T*ZjWPAgKPCa0Bt?dkKsCPiaC~LcOz9&O*vaUw}TB zb0g;~KoCwDd4zK^=>b)m!2aB{@zR8Qb@-6ObMu++CrrMtDpk&zKDqK;#Y+y~m0Oo( zo;&-}ca!#pFa5&xDu?gQVs^bv+6TV$2m7g-(zR_Wb=-X-Pp&OfbBIoALrwo%6Us4r{4yZa{}jl+ZMA?zRO_BBc|(D zA@3wP>AaWZgg5C>zTc31t98h`O3t}_vmx=15*j;scgguq!`P63KerNB?z3|*=kEc- znTnnAUB^Zr=OE|b`Zx`c^9kpV`Z#}Z9^^X%BWE^pej@G}IIUItq}2)cCTvdFlCU-5 zrGz&UK27*GAu;io#N!fAO>CQZPU4Wn35k)!(!>RcS0>(`xGwR&#K#i1C+* zVb8vB631*krs`^#K8rM!Rhm03FSjIbP+$2?sgluZm{66;laT!Rck*lUijl|{*^MwM}HAM68*oUbSCd# z30hM?DdVRJN==v;$(|F*?_E@w>+G*qIK3!$YT?9*YD)f`LDMGj%29r#B!6OVX?~uX zQlMs*s+qY(Gx8;mn%zNI8MzTPF}EmR+@vNJ7v&bo4rOGJlL@&Kr_92A$Sy9Lm^(dx zQenyTQgc$o7G_0qQczfuJ2`h+?u9eRN9K|_5?hq(Y>CFvwBnMfxkZH+c@Z*lF2}Sv(#Sv8+a}qX|7$YUt@zO*b zRfwM`TJBV~dy@ol%!Cvn!lZ!E68r#=RD9N9t3a91CnXVxdo;k5_W?@n6tYq@^+}KI!gd*=`1|Ga{ zMu|ieck9xjBOBmFavhr@(*BTKQan-RPMlagV_K=2uG>8u$W1%5a55Djo>0>Z3fX`z zPt9SIx}xG)xP3;1>}o>ceDl3R)|oZalC9`j~QlzsW87GJ;*=Mz#obxaXn zqyPs`C@!Aj9*IjLh12E~Vub8^Hx(7r^K(lk7Utf*F!Cv){1Hw0@cF1enIJ^m+NykP0bMQaDu%nVvtfSlZ|uHsvcREtG@Yyokz0 zRW5r5=1$_ZyP_%VI>`C7$tt&)IPA;i!ptq^b-NN?Pb!fu3CTlS$t?vl;Ld`35%CwX zMPY6p;H55%nlORmyi#`YnA};nXgbNidfjkmOFHy>%+aO#4d>-+aa9_@7Q&Tzc z09>=v+EfP5_-+dMB;kcInSg;kiG_!$ISt(wZWwi3aOzRQa~XHIJe*GFwCUL?Z8|dt zSBBG|fjKROZ&JWVY9@iJq@~h;0SBo(-skarG70j>bNQr}T0j_eOfA8^a0VAVFwPV+ z+DsWs@G8@2Xe<>-&S`1XEuBR;i=Ljx{UjVc0$=IUEUpYZK4!I9oHMa!LRnjsk zTyQ9v$xUmSIV|=m&ftP0$RffEV0g$gvkZTbdIn5mPRnMBS{CKX!qH1E4!2b^V5 zj%)?b^SlrT-{sH_Iel8oC2&n8aKW8qO2>s~)FYRHZ%MRCE(cGO=x{mUHHW-&NH1y^xKS91%Q<~gn@gr~q4%Ngb1C+{Ic*Mgn#%%~U4~D~q&Byd(oTYt7eSlFLKYYLBDj|7CVud{;)hl$T3dMaObL zv`YnTSV=8v6_l}3!eY`Ao|n?N=5STuawNr*SVJK3ozn&hd`#(Ki=MfP)t-R`C7eqP7Hl zEP*2~fj2Bwa=7xiirO+*(K7J1jP_p6EojT=FU#o5%c#%t0^Tiv$0QQqTHq_CL^_S0 zjN!77odP#a0h!Ynl&4Xs=}I=ckeby%g%i{Z-`hd zzy+(m3?2+7Gy~_RNl*vI@njCIIW>=g#=K>XN306U?%#hVe$Rq;P!tZb21=1C6jG2N z(6vix6gHbo=@{{|<$e3lJcqY);Eyq1DeL-4tx#G-2PnfK>q(4R$XMN$;h`0d6fw-h zE9=Rkwtx|~uz;>n$zvcd&FKjYcuToS^nz@mfWceD5ROC`-@u8JdPWC!Gs)x}?>b~3 z455=1$~?eh0;D*Ffhko0tzp!~h&vAkkib(8T#gNf%#uYmI`0^(vO3}eL#l zY#PH5T79yJ&XdsL_%<aRf{oKTIlBK~GIp z;P@6zpPtf}N)o_W2Y`AgAsIeksSSSA1H>3@CWriIA$X`Cf`P&`xG-2$2E#LWZC-xL zELv7Cz$34Yu`ZjO1EWpnCc#y~E7&g>n3@D0a0jV^cOp>I^AZIC`0dRufkhUk6fLL7 zV98;@26IcukUu39PX)?Zlniof8vP-kK|Bbo8Ld!U(m_5sthy}Z5L5jU1tpyfY=&G7 zWWyiGDj;5V7H}vXY_$wY89!(^{!9Tm09I@ac=C(+T;7;xrw^mWL{x;D}~G0<~- zV!U(kXpc5}wCiC1c>iesks*<2Ac%oG7fR_xjS|lAk^Z5vQ5=rYKi)akGjVjZ2NFHx zH}%W4tso5iqMh*zF-HAPs$YRjt1wr2!UeMW&8uIoHwD|qFMJN;m+SMna()@V^J+yN z*IaV7egf-KxzmAbt7W$YhFn0oYL77ZXhsN*oUxva>z){f7z-%ZUujsUHVI23{i^N9 z(~RStxdJV#aZJ&E5Y?M&b&%eU&+M}MQJkP>|TC;bZcf0qcoKzcsSHs82>VIDCOza@!JFnL1J>tDjg-%6} zc?WY@ABS*lppkd z*ZX7d&s7ec%trlPq+vSm_~Tw2mcdNd3VF0&=fA4!1yBuHedHex?#9!-g^tbxg_&4~s_;>jC_)qii^Pl5C&;Kfar@zPF?~h~8 z<5B-{?0VGwN$h*f`A=f!{AloF!A}G~75r@Q3&A^s z{~SE%xhMGb;5UNb3Vt{E{os$3e(x8-Uj=^~{C)7*;Gcsp1U;cZC=#j-HHKP4YeE}B zTS7ZRdqSs$_Jz&~ofmpls58_P>JP<37lw|8j)z_w(nHBmI+P2Y3{^r)p*M!!9J(y@ z4(Q$96MA3hgQ4p}9}RsBS~Uk*{@;iHi-G^w7--c#75YNxOQHKh4~8BJJsf&0^kfKp zHT1jCA42~X`tOh@91ORFH-&eG$!V>>3*irxe_ygd+NJOUDt|uhrQx@E&koB|NINh5 zs&HqxC)^*7hoQfA{Q0$`;p5@ghV?4kuO-8`cuO%@F^shr|CK{(1OR`1j#Ih5s53Mxv31NPA>sq!im0*%g6R_W$_LkJ0q( z$brZO)iiusZzLWWGoCR5MW*m98MJ8G$oqVy$cKY(i2QBjt&w*`u8dqAd4J?Xk&i|` z5xFh$`N&<7dm`V6e9MT>{de}iZ`mJI*r$Cj@>t|QB0o`2aqTye-$$N{ycqFCW6_3a zYjkaN6YOt$qNhjCioPOxFxnp-ijGHL9erIi9X%PHk6sdeOZ4xe?~Yy>d0+I}=nc`E zqqjys8@(g?mFRuZZ$ux8elPl1^yksvMxTrRHR_K=Vs)|RSVwF_Y-j9@*txM+#4d>S z#16-XW5;6`#}cubST0tKEyUgsdvoma*j2H=k9{C^UF^Hw8)C51{r~Xq5mhFSb}LF3 zP*nb8h_oz4C9Qh2JMqq|Js1-y1J+bLd$ez>U)Tl_{waQMxn(ClIz#K%y0NnEApG8r z;W|Uff|Tl(4ViNc@*q@cknGNY{0SW?;t8Y^avi4A>W#?eT$y#6wk~qZEwvu(-3~z1 zL7F4Ts{zlgxc2-%&a=E~ZfPawnq^dSjCK~*lO&LbFUWjT9+qPo&uLs9lw$+z5WD`5 z^N*vZbF1J-`~OI8z2%lH%K08#*WmgPu8-il8P~12K8x#zxPFZ530%Lx^`E%9u|GbK ztAgvTxUR%?4X*FvdKA~sa6N^q5ohpr;QAb{J8zlZL8`s0QfF|ry zpMZDbi#-d#>0bic=D*_Fi2T;z`u!5L%Ujoad~j(g?Czi9-97a zHaRs|pb@7;(~`~3wfTQaKlBo@Z*7HLDZW{*n_*vL`h31@F`Vzgc3}r=PVrUXNCkBS~EEO75VIXD^Ur=cerI`*zGqhv45V1T9 zB|M&&CpwkxV|k+gLO%76@OR`W6(6FKr$GkFo=KRxCiO+A=%K8coP`aHdJ){ALz#r3 zWikmBJCtaX(U@r z_J0m~x8f`=#DxYZ0qaHrmW>27_=ys%2GF)9U?8YW^k$(Xg|2^!syQHVN=F##NZ44k zsT7`Pp*+mb!Zv{EGrpcG!(IR#_7pU2Q>euhqA$Th26gPzvX-2LvH&|?r(pntK_r>N z?zRjr1oIQ4Gdeb9L8qF8ZXK%EH~Wtt|b^GU~8LP)>2SrLwB7* zA^<>J3h|*UPod?Y zA;X3A=J6lFg*2356WwwCjvmA>%ozHz2Adi#m^Gjrnt_R81`4DZD0^mr(iy0$XQ0}e zfnsq6sGWg|8=BaeC2eL|OG9U!p2SfP87L95P&z=nvOEJdV@{iec?lM`*<1n_EFYD! zHaoA)!mfepXP_d?=&dC-rkpXry(E4Y9-3%1F8PI43^qGOWF#{B2O0d?HV5zA{hsS-e3s0!WJpQAY z^NTRwXqiPoU@^%o8S$1>0hT5PsZRuSYy_%B{D*!B29zvxqFEq>*5OHP4xL=kvglgS zJK|b~>Jc`c^fcNUrOl=hFAaUmER90Yv7iC6P_<@r&{isSF+M=?voKO+(E+j*z$;Kr zgBY?fKttc3MMGtmm!Y#X>_i~R92A4pf>Y6mYod2Z-G-=*%zF%$#4DKa@=&4YQG)!umS04wOZcC|g&51wppE+1m<`Q^D@#aACbJK_jdY;Q5nM^^O%Rxm?^*qWk2Yx*V49&re zHCL%HUq3c zD8VFKnwmIBO+M}eGlf~+N0ojW^(%pFU{b=xJM@JZ?n^L9mS94IIS3ch!43AA64ci) za+aW)FJ+;Vgeo|P#6aSu9P$NHN_k`q`*Eo_5%1ye$Px8>l)va%CD^Y^7`jVf#U%`I zFjBy9f;zxvT|y(4=C#rSqAZ|XFrk+~NhO##OH0TV=1pZ1)S)<^)yn9JWmtB~u&k9~ zX)L1}FjUgwQBD?cL6M%42FD!@UY?;j5qqsM=#|s>APv2B1~BU6(F(AzmQks44(Sx| z8g{8NcuTp6Xs{xd!C%THz+pKqL%5(Zri{_33=UIrG_h%XJ&oRB(l@AsV} z>Fztnh-ZAi?;Lr5HjHyDf9FBD^~mjz+y>gp(X!BA5jxlC{oXZNMDflfSO!RhHVeqvoyx$gQpwEJ{8O?9wN3HNsuN4Nx zRpX4=z8%B)Q0BMj5Y_N;qk_d8XhTInw^D(5h_eiIb;?Z&*d>VU5=3@M&RvpGSHHxR zthxlrT~g>SL2{QMxl2mWC7E}P%Xi1+MiZRMSO-&*0L|zuiVl{l0yG?|z)Z$?RhYvW z9E?MAq7g9CsbF=Jf>f}KfPrqQOSe>_TPo2lmFSjAbW7h5#yD}KvJ4N~z6Fak6Q39rs!`t>)Sq981_G!4-yf7JDn73w zf#FXW4NKs}A>%8C4XRaegHjJx=CUgF9-*@y=`1~xWskH?kF-sXRI5k&W{*%$kKn&2 z#WfZvWe?W*Nr3iaLJmoj9+Cndl0Si5^h+ZfOs`+iZLmGeml+p=xw=WB{Zi$As0S4Iu(ai2 zX_~`2#2Cgt%ry-vK%+hb15((5UU`!C9T2Pz$kzjs(}1)gM@)Waa-jh(0Z@<`Og1F| zYrO;@)2IN~3aCHO;N!o;cTyCL zp_KJP!O(~l*%(Jhq#y>xk4QmAW{ox*sbCc-(;Af|Mx_CucTqq|X;j)_R0d3AOdgf$ zj!KUim8?gl@}pAgQ6WR4gN^D24UC#iH_FvPDxVal*eXE9mIRDCj;1l8Q4mhhjDR%W zC>Ihb2!1561pSVJEE#k=CKVZz<{OjdGic5bJ;#K1j0u&ENwo|{FecS9M#C|wkHHwm zq(6=6DIvr$u4ZE9V^9&B0bvDWT;3$F47`u&*d(AJT zi=s?ks=|g8uEGXKALE)S^%d7mF<>ySqf+^!LW4)8^hZ<1;4v=kKQ1jkF0DE)Y;v57 zub9#?LE|wYsbgG@MX(`_T{MS@rg|<_gi?=7YKAO-JZ&U%f<#!9DL4bFOXCaZrjdc6 zp~f9z0M>nBQ7Zl?aLr)_BK{)?Jolu(k+Fz$Iu!mhkx!l!{nGy9AZb5>yhnSYqBF#FVg(HKi?2&1%cg4=zLJ zv^+D>d6d7HdGMDL1Kcs$;_o5;Lb&2D1t+<~Xf;FC5`Mw<`Fotd;7$Bh-+&h(jE;w2 z5H^30@fT7Le$kN2m_aR9wB=G4ptVJAcA?fnWHm;3xmbXi#i$(m1%X1^4 z?^fv!ATG3zDr~m#G1bN(e+P6-JAt@tFSa4E&a}pWRj#sgw)`;aLFlq0g`+A3p$&_6 z1UtHFp-!|ZSL(5ahzFk7Y{z=9%FRt@qY69dG>B_apP7QQ44tYB*hGQ2RvEgq z1s9a`%QK(tWf)hqj@7UZXk1a$q-w1(e1T>6DlN7U^l^^3U8=lXZOAf^a`?X6fI8!L ztMX#dM~q(31uRsLB*9}fb4YP}*r!}^Iku3WPv9%AE@oW8I>!lnd4*33lyoNJsu|ar?yzc2u35I1w@cA_ z(M9Vcs=N?l9C1g~$cx<*fN~syEfXQhO`tL|@VyCj^50R_LR=ATFTtXsc5^K^IU;2amR#z_ z72t$YVqh;dp`=u66p4t3HKCPj%(!TLxgFGEJv(ceL))R=cW(>-dmyc0TZr0bN5rC+!uei_N!P#Jk;9$@vtQH6(T zCC^yULu$kkiN6cISZ1u!hXe{`A4WaO1a_#ELYEp%-E)R6Te|kRl>6LqyH`!2ThZ^z zxH4~Xa+q$#*WGbtBy&T1Rco$f|w=}uvE)pSidbGDF-knR-5)EKZ5x>}9LR;33S zW8EnnTeWV-6@QpkvpS0=hZH}2y*N^EYki<*2Gp&e6zyUk>P_Bd zY8M4M00{TST2NxgN8$mgpi~E3V9_a5{hkI-n>j zZVQodd4-M zms(^M6Xw0d}l$0S7Y(D1A0{P9qxIt#}%%DRih55w7krft#k#Nb4jmpB{|X` zi8Eblklk7znftq;y-L;)jkcw6krp!b-1OYX989QF*630)f%FlpyhAEow|-|-jp)>n z*~=>$47b)t^r=FL_H?PCck6;W)eO)L?NYtP4IMQ~=ES+A5 zyOliYhW4uRx}lMce@s_2NH+O)=e#-Q#UADVYkNc zB103&9$<|ZVp(zP5$$oU^2#h<;@Y9q(7U0+tFgS=QDfDF*|DroTRsx}h>kV^@X) z55tPvij&QBgMl9*``7k%cC;<{`vOQ+5F z!^mH(tET3crwoy2(@M%Yg5ZEWo4Ix2jfhQOvmJ~rd<-}G!#I#Ez1Bzb} z&ab=iovcQY@=)h0>GRHV$~qRFz(np${9ykkLbB3==Nyqk^{6|)l=xhKLO5q?B4L~H zvFQcye*E$cL*&4;Vz0(md5RL__o_R!#L}CwpUKcm^9&@$5Z-FS2a%r0xgtwrW1MQG zK6Ph1O1p49iqs3o5~`5&b?g>X^SM5}H>F+5xLn=hlqjTL*mbGq9Bg07Nzx&lrL$J3 z2&ctHELVMn-)Hf?%w1T1ww#n7TWM9hSZhxteV!LZtPiR?OD5?P=VDdj&U&V3!DaNJ z#a-x@bcn65DmP0e5)MGPlh4bTz&^!v*so=jlYYn93HxbW-5C=4#G!>s|3D3fInI;L zd7c&V&yiE=EBO*mJ}`nZV(S}1!rLi_6DyRaQmSM^=cE$y0ot62bC!VhqIH>cH4K>0 zq3{7GTqxd*@8n~{hV0GtOyn~>JAolH9a4&)FK?mGwU(uQI zbTGj#??OME@w2zHU4))V0YY!Yva_F#DOnV|89@>>eEYG;QOUX!YIH*?Dm;4h4xvHE5&K}0{ z;{-_;T<8^oQpF#}ugIoC zSJ>RB;tY$9A#eo9W=FQiT=wDoL(Fw9}z!OT`hfj&x)^W$$(B1Y|x#xNv=U`l1iB z$|DjT_VK#(pJu(>Yf8ilMy#`!Tj`j#*`g|^)sHNzI_qn}E$g+@ZY$#>M|&sUWQ8H& zte2Iq=%C4EsrR+uA{XnBNtljB|I*(npRj*f%}Bn&sm=5SzB1p*74_xHPR5qrY_8Yr24^Kasp4Dpm3~J! zxu%u=35*O9e>IIS<2&`_(k_$eSLQe+b3L4?0sG9Btw?DZ9?AE!JhdR{F)>D+?L_-@9>&S!i{jGN_gTLH}UDX-Y` zm43%oB;8u+o9SSSz9YU#4&klJJX%LOX1ilmJm4$in^M0;&qAN>l~iWE=vSMgjg#+T zQ-z`*3vV*M6VCCJcuN`WDE(dFR(uox6<2>T@s9&ykd75!EcIB^uiDYRmR;sAODpgu z^}=B-j&!75IIkhztn`I`%=wPHy*Nra%Om)~0V%4!Rys0HF?DCZIHdRh;W7_$;*)SE z|2OATGm0Nt>6Jy1QIy)9{Ln0CQS}SAEsW9$%efky{CqXIl%IT^Ihp0b zc?Wp1$|*KooQ$vnZ?xPKPJZZ4pQF1IZ-NKH$^YGSNVv1Vh>i}&{@|YzKa{tp(2h<% zAmzuQIj-@=gwML@XGqx-aI%NOr&V9+r#Ps7MZcDO1x~)rxtPh{a7={@KjwZ59I%a8 zR{BD>Ja<^;UuORmJq_XHGgg0>aT7bQkfS{v>0gwVob)C-GQyqn5m}W%>UY8g&p2XR z)z>Pg^drvGo$|KKyJaq8#Xb|K`tC!!xL3cN4d{6W+?lV?1GW*l$}jc8A>(Qsv~sZ4 zyExlj_zBmxtcGXSig>g7myGYG-e64CkDN~W7vWAhO6HGT7w^p1TF)Z#zuAsbFRnju zwy(8T#wq^@oiM($-t?1xfp7HJD z2=zkb<}8nuzVsuGWlnk?P;wv+f>->?q7xZ^2`AmIgyRq>2iz>D*a5A4&3Xy_xK~cg zY2T~iM=XaH-po}gqP235YdEz=@nI{zSlGB5!#Uo`o+iSbbla`$iiErI%)Ls4JLOy9 z8(ibU_*Q*QJo9vQd%c7YQ+q+Yx#@&(r(7-lh;S!8h>eA^CG}KRzOru3gj;y9;LdiJ z{!T3n`lHcc0CNGiq+&{oSx)r zU*Q{sTjiATo#PkxSULN(j5~xo=|uPgrFJJjly+n{NSB-@dP{1V zoqYSSlCNe#anAH*T%h*ZNw+f3BAo4O;Zx|4z1LZO+3!Uy8}VS3Q})>r?!<%4(+PLZ zqXj>NJIgQqf^cW~W!$H0jC_gI?;ygUDBeJNbt6FT$Pjj|ms8t<|q( z9N|hU=Qu0;jk;WCIn8uL?`qMB1$U08W_!^W#LE85wOmel#%wQAuHeVM3zgO;C;gcC zaqFo}`VsBBRbN^6LF*Rz>Pq^-v50`Lte1Nnk@*YGrgPEBpjt^onU?))W%{D^w8}Gz zF`ae|nU7d-;RA#dKP$`Q=2s?t;)G1Zx6(23LthzoxbQd5-r4U~meVcIm~?`T=!oy; z!x=!Cj@2(rI;VzpW&A9tiv8DGGbs9V!p(LUJ&)9j@YUw^ggfcMTvbL*(#m>qwTE+j zlzP#QBjY3Wxa3@>JxJhg{FwF~t6hXo67DRI$c;Fz)78Jsd}TGGg-?-xC>1&Rt&HQe zjgmjOTAn;`B&8UCisNUb26g)>D?>O`n82 z`@8TH!ku!dSswSeBYa8x(a@U5_r#zDccx>OQ|urXoy66yH}1i8(u43N!pR>jd`dqe z+({?G2PmC5@gwsr_6oL(Tb?)JaZrC!#W34NRufouVX-4KKKX+M7kXpwa_Y@Qek0t8 zXAABur|1o6ogx-j*4NZWIrU)NA-vl7&NUD2en^rE%P!QFQUdf zdwX#_B7F6HafS)fvErNbL(85WE^-v@&Wyj3K9|%uVx=Q|I|nLfzp%05ZD;v~ZV7kdQ^rlsYDg#Ub~NEb>OEUX=$SS_ zCm%M`=Xw!4-puldykz0Wgs&W5$j?drPC04_wpzkxUHwkzABPB|MD~28KXO*)#E%IV z`nT$9rUOrWs+P|6Lezzl@45Avggg0wtW&}`Jw+g-!(=`MN`y5+hEC;o+R<8Wyg{-qz`uxFLNwVq1W!*I8@ z6VDofdYH^O^va^c&Fx>JO z`-=%5!CSG{3m?OY?yhjB8+$xp2E3xA;1f$eCGU$Sn8 ztLL2Q%lRUNJKND*2`*+oA@cX$|L=b+B9c>5q%M7 zFHSjJ){hbH%y$%ZXS=w^BQt%`!w;Yp$lJ}GN3`NQ@gx13aPl$txI?&eToC#v+{x#q zzJxpbm$bVHKZ0H+8Uzy#m%PZ=;xkfyxL{EH&}w%xK8{d##20#Fd}sU03Rc3M<&^%; zwe!w?WTqo>pqn1Js?v!!(I*h@Lue5;m-2Ne4p#4oNzgzg|kqR;+^Yc z2qzvaxl80Ro*Cujld>O#qYLE|t6n0{nD990OIE0ua9M3(m0xz>^E45soN2Z@C2o6t zrN409my@4ZaA!M8KV^I;9!xmg6*$s2@rFa`0C&%$xvtEazN{N2+$o2P-HPzl?A^3> zJL}t{^c7t7;_MePUT}?~vz#V9yT@x;Crs_RlMZD*NVv1Vo9T-@xw2ny#g-laX1l=S z0^n{w$yyOUs_yJL!as4aor1gDy^Pj%jw8Z{;nzjUb@uqw+naFOD`{IX_0{kQtnleR z;fU+^SYNANX8O_}SHj)vWMrPjS&Neoh&)5MlP}4xA+8o79#*D5quO^hxKqwI%PD(M z?e-w9E8rSAr~EJS3D*=k=}^u(Bb?=2nXkLwnepAb`NST_)fi6tkv(Lb9XZD}neTIt z2l<9uZXuj}Z)JJNvF!9F@*d-pPB^cZQ`KY#9#>I2`GDCjvb)6He;MD|US@sW>pjeR zEx7uliHFtaQ}h?+9Dil~8?By%yT?ItM<+iQ`HiJ55&wG`ezcPNG(uWXEy0ZGajGKg$zq#Su731VTG7b{%9G6AE$Fqu@@kiB8 zC$5fl@@?5k1BWQCaZ~sh;ZD7xjGObW-fP&yh9#rn+hr)-s`p`Ll z6giM^@&SAQr9GE$XFnA>=jvo9eq?tI;T#v-`bNT?d_&rW+BzrR#Lf<f z!Y6sYnv*|EyA$rjr}Qtvo#mJLH9UynpPm1haQ0G5OK#GSsU@=dqu_y3vQusmInB9l znUp8<=#_BuR4wom>+82UFO?H_OA35r|+%DElnrqDdN z<0bGs`n~qcwXb;RLsw{5Yah_A*FtswsC`_!Rr`$gdF_kZm$k2I_i2y#|3&+z_8oZ2 z{-O4m_EYWW+Ed!Ewco+3_J3)Af!}POC*+C3Yj%^T4L-9sdbWDL=H2Pp>p9JHrsr(W z%RPVF{z}gUo`aq~&w%HMXVi1d^J>q8C*etXGM<8`1P_3(_gvz+)N{FKhxRVd-+Oij z-|zX5=fj>GJvVzk>G`zhbDnpE{>k$t&j;GS;`y5A0ry-ZzE+Ids(fmhf@!YrU`YPI)g6%y_f#f4$&+h4=N|H+kOzAJ|X&uJE4n zUFE&ndyV&6@Acjryf?ug_HEv$ed{B)d+&f>?7O}9dhds4?1$hR`}^J>!9VuTyypgg z;cW^1%KKaI@4e4@|LlFi>+wZ>b-pHFt8a~OgYt5{+xJp_~ z@O^!KV5s$mz+1hCf>-+9?Yq_UUf&0N|KR(u??&IvzEApY^Zh9J+5gcK_8)zJ^8L3@ z^ZWf_e~rJv?+diR^L2;6Q(N!f>fh@>(|@l2mHtnJFYvGP9Q613e;gd}AMua+kNIEi zpYSLADSyWQ$5_E%@-O%|d0y{-i}Hy5ZvT7zAMk(3|6zZx_eTFG;Su{z|5yC?`tSEY z>3PuqkpE%-_pAP}&uH5m`4xO(Kj(km|DxX;2nM2ox*J+OaO&)Bb9#VhuOLDMhxm&2EIh;QtF^nE<=$@W_Vw+HSD+#R?#aDU*zfUo(X zz{7z@0?&mW4g56lve1)(Q-P-g&jg+eJRf*5;0*?=9-@TaeCUgz zFNb~@{wn+)|4Znbq3?vg7fJ_z5c>DfO8h41i>dA<_F(=(F>xz@G5*X z`kH7WIvXuT-w?eldKJ70-xR$)dUy1}=p)f5qEAPkj|O8+v5m34@EiO$vA)=av5R68 zv1xb=F2`OUyEOKW*t=uzk6j=8SnSr==VEuo?uk7Z`(Es^*e_yF$Nnp()kJEVYSz_k zuX#z${+jb@E~x3P8LBy2^O~AO&1}udn#Gzo)m&b4WzBnQuB*AJ=F>G_thuM=!J6;Y zJXZ5m%^z#D+M3#q+U>Px*1oc~uXe2V)wPqg>Dsy4h1$QZeP`_lYX7nJGqrctezo?2 z+J|btU;9|?f7G6;{eA79YCUz)y5_pIbzACo*PT&!Zr!Wu4%Q9Sjno~ldtF_sE?-xv zdqdr2bywBBzwRS-pQ!sn-Q9H$)IC)9{kq5M{-f?x-S6w3uk+Q{)VJ1etlw3CR{bmM zd+IN&e{FrbzEc0@`YY=HzWyKTKURNh{pafMs=ufHU+TYI|499h>z}OuZT%nXU#Jf@ z)Hk#>Y-rft@REl84d*pn(9qj3+;F^MvLVw@Zg^wE?)i~GqhQ_xyzPIrsjkh*_vGKmf zZ#6#B_>;z`8h_vTe50=^+SJ(8(X^>)XVYm-XE(i~sjI2KX}IZF)5T56rfgHGX}Rgm zO>b{{Pt&zcH#Xhc^o6Fon;vNTPScN?o@n}Y(;u5&XbLtrHE(R*(frcpvziYycQ*Gm zA8Ed*S#O?gE;TPVzoq$|&F^czzWL_n&ouv2^WDu~Z~kWU_nIGV{#o-=&A)4YuK9&# ze@m>TrDa3Q&XzM;Uf$B#a=2x*yFmbTVK|CL2G~ONb9Rxr&@EZ^Q~`e zeQWFAwO-x&!Pbwo-rRay>la$T-1@cF2V1|}`oq?rwVrDIL+gLH2HNV{+S@j_?P=TJ z_KLQHZNqJ^X`5*~*|yyF=C-%Dy{qk-why=6)b^>i&$oT4?Y_2uZF{)w-`k#O`*qtN z+y2t#ZI88osHLfWUHjJdjlMGiJKJB{es=qT_Ve32+k4vk+Xvf++sE23YJW}pM0=t= z)t+k3v=`b-?F;R%Z+}z!TiV~&u6zHk{ax*U-~Rsg54B(4enb0B?YFew)_!~Y9qo6u z-`#$1`~B??wm;PVaQh?ekGAje#v(s%|5^Jl+JDo2S;w>Oe{O%F-P3U(5a@_?G$hZR=`V+c?yATf>RA>9$KfR{*m&wB6Qr7cjcB@k-C*Z7#$~H%>O@8{0a*8eDGN+Hsrb^o|1^hdM?&F7CL~GutuWae3pv2JiDc68u^4+n!51 zuIjk9nlJ09$Kq~nQ>=R1OHn$~PwvvsDo z$Kee*=q;{U@4aHpe(x=fF9~0>=7u$|^4_*)Fx=<8Yt5+l{xx?rKECEy_+sy=HEHj2 zYrJdg)~;Q{eRS=U zYyTX1W^LK~;@arCwsl+A-P`z3m(S~sPAy5a7153YN%@tMX));+QA#m48?1=n8~ZCbx~{T1GG*LSUdpZ6nP=ux7@ z=+OET>zB1RMnCC&dvtnzaeboYlJ$3ZFVj8|{e1L__3zfMS%1U&??-Q2f7kl^*Z&&6 z-#?^1y#Dd^(WX=DpIh(UP`6>{hW#7P-!Qo$zhQa9B$W>v1c~4$6nm<^4QkcJ>Gk~r^UYMjc)vbw{7E1+SZLvct5M1zVX1uLmNjn zUc7O3%-r} zu>(y{Z+w1Za8uK!AICOs+Pmpc(@0a-rl(?mhz)JJxaq{E*{11D#Z8xNx?YQ>5nMO^ymRyZ&F61Eym@kSe)C-ocQq_; zzI^l5o3Gz|%jP>aKeTzi>C&d{zDGAdx%rvRFK%wB*;F&xa#hnAz5~AKmLA^&+5=kK zmeaQ!+A^}`;w=}{%x;lItC*?Pm)t9`d^y|d=7 zt@qX3-gN)gyPF=~`t6#>x1QSi+}1~HyxV?JQ@3sHww>Glv*s@~*ZG3A4>mp0^f}+h z@o)dOCz_saI)B^YZO=F5w=HkGeB0IAg3Z@&BY(bS+ugo9w%xn!p>2DcAKmu+-u1OV z)}Gw0u}?FY6W+J5o&k?phF=eJ)`d+GM8wqLvbrtRPG-M;<-el&kzG&hiq${8>-k-6_1F4?yRT{fn7?WF4b3mD-?)44?sIo{ z?S5JP(C!nvr*{{3-`0G|?z@`1>aW;+&F&j^f5!hM{EOG$-+aISw%vE__Go|cc(fmD zzwrFUv&;LU)~;RTKN9kQPc(XOZ1{A;vUVBX9Sofw`h#|3!zRoQYqT2eKRw;rC2QUr zJRCST{8E2G+f{r2?h~Okb-xLIpyuv6-P7kichmh1?b@*KGybXAt9|+U$;NMbm+IF> zTRihko#Ec#bo1j41??QnA78HBShE;j@Ei?%!}k`*j^j1S(D=3=Yma&!-ktT#f+z29 zys7o&+9zwD@o#LN3{SS--*%DzgODr#EBNW~TqJqdv~jlS zxn^(67Xuq2@2lA8)*g!9)Ku4UN$}py zYg@MNJ>VOtc|g0iY3r7?J0I4zHXYb+ee`c5Tl}}xq-&$$=L18{ z=eL~O>}?Eszghc(+Gl-FX(yULSJ#FH6{FaHScW9`^Q@z#`qcW9BMkeVSK{}JmZ`1_y1d6Yj~6A{^skWo5PR! zFZDd$d~f6r+Q#)gb;0I`8ybS&ihR=B=J)P-xcTAcx;-tPO`h-izw3W%{o~E=s$aWj z=bp#>`}dr`=kT8KJ(GL#dzSZHzUSKdtM^>L=axNp?74T(Lwg?G^W>h7)jzZ6#XZrz zrI9y(4=s-aET@e($AwpQ*oU@3nhx-+LG`=P&(t z?|pFZBYVeNZfpoQG&i89H0)^z2VU@R)y{5c4*X5S;fA9PuY&|W4=Q|f!#f+E*!%v5 zr}y4s``fHNx~m1cR!#G2Bgs;i7a@;d0o2cXcWIkL2)!|^X&>Ar*UcWp0qpCWu=Yxy z8%yVs%Y{6gId>-D3-Qb|_i3HesTsJwE0y&;!o_p~Ugwkfa#7D}@EF^5OoKbt_%RJG z(@sDIdCZK{qnFA__-uyPQTY9Y*FrcYgxfxNK!ZmxIN5@?D-e2MQ6%JnE2^79P;R_E=%sMmWrOITQ4!%3HdI^5Fqcsx>RZ3p>1h zca~-{Gy0@HrFE9G@bt;luxzDY>%?NRV_H|2))m*_i}xUEe^7(FQ}{R?fZh|TTWEVP z)Z(KW{OgTgq>YVf<5=I{tBvE^N{Nk@wwiARq*{(@RI~C{)M}jNWN}hY&$5Q_TnexE z$rJR6EunLf@Yb@vls23hwdlD6W ziuX#fFb8L22C;U6Jg_%nOzY~@;077~g5lm5u5sZH7anPQ`!%>{g-=$vDutU*c=Lq+ zNjRN^i%B?Egi}ShFNBXkI8TL}Klt{8Uq3j%gF85Qbu%)m;_4y|j+Nm;7~XH;yA~d2 z;qDY3MB(7ih02@y5h1oZTMMvl%r0ly<0?gwuPoqQ+CTiySIe^2 zFMN1OMq{H#3u5MJLCie+>4>+#Nb2b?74>9RJFL$EG@vi*nHe&vDpqYE^Xq~1aynZm z!rkitT)pBK{id=sxm21-&T9ip#nh5wbAx&wtYa_@9I+zle6otExSrMF3{%}ub_9y0 z89ke|A|w~niNeHC0ZqIBwx-1eV6ugHA)i9Gz?VyUKBpJ8q2wG`=}>ZEq8lC&ffKyr z(}^UqLh~a$4IVQk4@`CfnJS_m)-%GFhxNINKEbch9rCEyFq{siD*BQ(oPVf3x^ z+#KGN5H5hnELO`qoK6;t$%%OSWF?seZ-oEJg077wml89{Y!)Ak0yhZfGX-swosw}X z=;eAYsg2Gji&NRcJoxRHKASd5GginXvwB4vLsfNctWwM*m(-2iO(A%!GOxp-<5BP< ze0sE4QDr^4Jef3-7}xU^y-jT6YFltClJk3_J z)u(i+ggTn<&^qNMjF{$gQHLkN`7|(C1yyD%xyg!^SGS%9>oY#+)=T;%5&?%ZA?Quk zLm>~pnM>xogL(#(V?;ct7blXXiBXV?o~r_9(~}rQtA#&UsNlW%wg-O5^)&oI8cBeu zB+G?`>T|C?SttU{=KDU7lU2FH1qcM7B~&J5#yCt4ZKO7!=RnfdBRnsc3zcfo2GS`E zL)FL_t!Geq^LbED6{?McE?7)DusB!%*%|o^R?t7J4=a-J@ap>#@MJ!*%T8AD z9Y>ET+n!47C&qVil8aUOcp;^Oie{|$g?zEVam|Q7#D<)#W;+CG1f^TA(|D{l-4Gfg zlb9)#%jV}tDmpSKR8oa%4#Vi?h0}%#@Y-qQF{&3P#%y&TE2ihbM$Fe^74$6g;aEC9 zgB6i% zvLWCc0DPhsyfLX-bj6n-SQ7Xu@chJKH0}T9)nJ7+UGddeB~i((`q5D|ozB*(exqpB zd@5D)iL@mY9_Z3%Y?0N|1iJndxP+B&7o78=&1`^VHVFzh675Q6(-@SikL=i|jiQ6w z^C{>P<79_cv_h)jcubdUX;hN=0$5qPNa5Vbr(4fW7SmIyBuWShv!HXpJVweX>-%mL zfgQdYr>G}v73$W@V0}fhpK6SyBzn31*^Xa`X$f>y>-9_;XvTjF0xHWw@-BiAfmxZ! zV)!kPS5%*Y0+5hBXH>Cl!&Em!Jo^{mp$Xl}`Jfs{GvFfgR{aj@3ng0;@;K2AK4lkFj1=qydl*BzRkFjN2}%Y=1_PLXR1%q`1CabMlS4(Unh&6d zz=?c%*2)X~bXZ@mem$6mqjfW>K{9}R3arK|>R^+mXrd(^aih|6ir!Wt-eN@J{U(~H?4(TG* z8JMI*eY{}nUqk6Rpv9`-kQ$QB*p!)OtdgrazyxG9aPgn6jRQPU zn4TD&v*|bvDEVY!Jei%bC0N0XvOrF5!A9`W5_ z8Xk>TOn^P=2QU+2x3vHVF^>YaY=BA*#XESkXs|u&4S3wi3g{fwwF5;Iut5^>3ZxKw zq+vaa%Gx0#1?p&k6zjXurNV*(Fjg#NL2Xuy@d6|lFmqLx1A~|VFC`%WL6U+}FReoo zuZFTYox_=e=9FZmf*8J+P!1J7S>`xm1Pha>l?s<;Qjmv$NIrGxshKHi3guy@sQRfq zWQ?ylkIk@H3Y>)0Vt$NiO@Gibzz-6h_q(TDKZ3q$e?JCzDsNl%5W# zcH{{sgiR?c_^brrVR8A zpqNujN31Uk_EZQ+Y2!(FbZ|y((;n1&eV6{;;Dk!N+andeac91RF?sg ziH|}h2hq`JOK6t#Vg{&`v`3Q#vnfV_U>F$;$|p00>{7KlV>%d% z5qk_X{)}RQ%yDcIlvXldCD9v<%*STZxj9bZRjfj0$spOISsgT}TlIu8DtFRI;Ap9Q z+K}P_{AxUnY=A4HT;ouAr-5laOMl3>PJddY^_elWMH4B6NWHi9SpUY!NwH zkvCVPL3Oo2@~8rODhX14^|=pI#UeUS6#!-I6lO2>Zw4`=oalqhYl{|7W;yF*TU9@W zDzpqDtv-(~fv%Rc?$NPxyAO`R2rza|5AVusaG*0slhhP6Y9;`pEM&#%BdsYQ?|c=2 z;R3_F5gQtSR1r;KJr~&#%(sv^)6l)oSCi`kn<`AdK2#9IQ;*iqH$y8Wk|6o#a3-^JKC01?S5r|yon-NY4jL#IytGQ9oCFoE+jHDg>02V$DnJ2&}F_K0~1;lYQQmx6$fgSRRz8NYQLp0kgq|uUC(Xzw$k_|aGfUNi zoq#bR0c(!Z7#yH1l_%Q+Yc*jo6H>00j(-)weKEK&x)V9Y_|@N?>Uw zAg<3Ot#B3$91Pfq9M@5jGAmXEEJ00MjX#ovk`*KwA02yH9E@UkbnNBByoKW4&HRX`UMym~q>BC8n-HG_^PSB)fgFY9p{V~F)cxgEm^j5=6>$Bjww#OpW3?(#hH9~r7fwnB8+Cyk4s|Z7B z^uy|_LUFo~&DfqRIb{x0Hu(d?s6HlknCY1xK<)?6tUjg72`KZeqCq?Y*R|eLmlv0r zU==u`7YjfEIDnZ9WFXok&Brlllx_GJL#M|yqWYGfmLalQkYdHE!7)8!<$sJlyrj() zf#KrP3AIq8dr<2h(t2R6#?Hm#+RzDYcuYHrU34cjtPRnyGYzI{tnlc>enXxVfr)Wi6u;*JIlC7opE@Y4dGdY$5j42kCt_j zbE%|6op{ev6yzK3%w)D=BcVYBXP-iqMs3-DW+*hRr=h0NIaVR(}*9|hJIjpBC%Q19@L&Y<#;}I(TFc+ zT?s~6Chm~s{!r#Ti2Ee+Wh#8;IR#9a_2>8W_rf#Ph+*bOEU}y{yIDG(c)>hbcKSu( znKwLLg6}(VXI!4P!X2qnVq%jggi4-lWobk1`6sR{>@c2`i}~}cE$b_@WRpgmLx{=q z<<*j`qNM^R2`PnLmgLmcxoNhz~XoKPjtUgbFt0_#+@(6uwr z3d~39D%=q5WdHUc%0hgQ^4Uf# z8L=#N9YC0;1F`*hdJXY7fKqZ#<`VMc2~G0~#$A^@m(0S`xXO!X1oE5{V$_~*C-%+~ zqs|&1RP89eqz7-s;|O<{lX^%^N0A<>&Dkave%S6Ty`;+>_T0zG_LXy&oMp%%U8$*+ z0)5XDcf^SW<>@Ls*WB3}7Xr#!NIx;#XcXn+SryK>LiapNo$0a<(|Zo{;R&_U6M5%p zSZq0-9zxE;)adz#xX$7q;e-nA1x{|nbVtz|Om_E&3vyy^gJY2DlKZ*I9n@S)MsaernH`6wKY;;_$@#1j@`&ogC8s4aeBk%hsiGAU9)gw|_&KfVkp$4APs-`mkk9 z{wiauDG3l~{ElY_vH!Ts)~Rqu9_4;>2<2e!S@~uNQ1Z5wZ^lq7$|Eb^90LYeBi6@G zznv%>4kLHZHju*X<^s8i8_;M)0S z5G5cdu(tw7EcQ#%j=R5;Hdz-^qx&0jIC3jzn^L}#x{#mRzaf^T)npvE=z0V(Wkffn zERzm+#t2J1hdW0C@^qd@!}FU+h0=?dkFyuDKk#g%)!tYmi1Qnf2iP0jsZsJF?XOIY zG7kN1EaMw{zowT!`j3(RL#(qm(*p>(1ED-~(d4;2_nNIqZZGdFIgsrq?abP&wR`@}H6V_q_jII$!$w(t~te$07B@gRaXMWB!$=~U#QmD-NPDb(7-*K!U)`V)D-;n}%4lK{svX_(P7rDwz)6FM_ z5QCha^yYrYXJS#L5_?Z&{iUx7)!W~(hq2em*zWAdd`HZXmRU~scRbzFltAq7DCLn0 zvo!AS*tYDoG6!>}$#IJ#1#9pAZcwF2jIK$`ItfJjaeDadRf}U$zfr1J;shnjDDy zjIsgiU~+Zy-2mV`+l4JiE@1zT^(L-(8W~%{P4k`jlH)$5S@*j^)SYLauTIy5ay%wJ zoitAmk20TO-JS1774^-5npVD}T+T1aquk$(;~h&W^BiZI90Tc#hMdIx-3e6^QsCq& z?}$r|29&oBAV0V9pkl9Psw6bK=OkVb+f20~2;F`=)K=vr7-k+rRTu{Tsu>~#?p>!M=E ziekZD(2XwM?{{Y2ndBt??!BMS{qqvO@AI6g&ph+YGc#`;7|Suo-J@Km^zHql(E_gM z`Sv1PlYM85B2_EjVkdoS-&m>54pI7G9-h9IkUpY+y__-S%9iyH)FkJ3N-WQJh3lE; zp*W^(uiU>EID+{eWV=QEWBE?4cC}X?STE;6xrZ5So|rCrpKCPfx%-z~j&M0*xV8(I znf6SNXwMe?^HLwu?+;co`$CYEel>~yq+Ga>ycXRrSIE87p#D(qh9>lxVlaxKI& zXDqpYELW<`J6Gfm9}8>`Jpkv%!EBN~lRJ58YoJZiVp%8Gli|7==#%>Eaxib$SDS-* zEn~OxE7Y9RIhRUb%U-uvwtR~hb;%S`Z{d28wz)va&vP}DzyEnkYIY6UPao2MZNT}6 z-&omgxcLO~cEdDoW*>Jh?*| z7*FY0I%kH#d<)mBTqCjd)NpwD-2dyBCVezOWH^O{L+K5cDsGy@$~l0O)ogGeqJx(=wgb&;!6<9H>6WT zTx*5PFW(Q!w%hCa{`F5o481c~I;#fB&lNCzm6UN{`ScxJLrEV#FuoRXocn2IgXxc& zm%VTA5&Fv~;~8h~b^6Dfvtsmctl##iJfqf*e0)17uP||hF+O~Jvxg{~JuimG^J)Ue z7QYX`{PfX$E34ES&sx&g&eie_jA!k9e>m&!@0aB{Rn8WiBM0sU_*Gr@8`lb~H9Y?` zm5-x@=Y_-LdB%Y=D|hp9AKAZt+CN*ueF5Lt8NMFpxsU$-wFI^B8$+^11J7xMuV<(| zuFiN4h2^tXs7bEJ`F_*zb0Sp;XW8^dT%j+*`D1zIL9WyImC#(g9dW$)j;K7QfuCqi z5=RU1@^3u8D4L0MS)gg)vXCMhap5+~TG&dCbJ{t*6l=-Hk>zKJGA8OWSeJ$JNGV5# zIA$U}<;c}?NJ&|SOd;i%h@7^hOpzzb&k%KGAwSE=*C}KzIYN$*IA(^`B2&mXnU1Zc z)PvPRd1Wosjh!OA4E|;rA)VsSw4T>5h256EwPf^5A$2PIB?G;YhIX6Q%39cG6A@>6 z&h)KJAzLeZCnroFCWYNExr3z06Z)2N&@$NCoPLrHY)jvMVJ&&kk8K|r$jvhPOPYsN zc8W~VT4{ySf>=gAaxevZPWH>d6vhhqn4TWw;V4S zeJoj~kQ%e?h;o?L$`rPYwiWgrQGHY7LSEUoeaDMTA@xoFK?(Znbnp}mwY4r&uzcx* z=pzP`lqsbDpae`|e2^?dYMnNgsZwP3tHsVuNi&sw^p_(8)@j#58(=NQJD54QOw1GvkE&KK?Al;C_tK4D{==4CCqSkcY07>QCK>LtA$JG7XVtnD?vqv6snBHfw3b_vA?BBPwaz>W(zHLGM^NJw=<8u*TjZ$ZxUy^M?;Y}>C-zHUt%tA2yAdT@LL`j|g*{YAd&l!TX^dB$wn$GUwfn(oJ!QPQR=+DY9 zGti%Z7lh8e9%L#b9fGDTf>la_=#)3^^XnXbAU( z`H)}EaFj;2Hr#?_3fUHEh5bjAU4~2{B@NeD-!f#1!D_KvD_7F}eNa9u%a+vkr~OBz zokET%wk3QvwNps@;7myE_4V5MVr3xLAGA>R?VqQxZ9TlT#*fJ|!uMkNVt+*GWQ**T zLEn9pv~sq^9xvgw$P}zgu7c(4Vf>g~i?PCiZIQmPuN>ihD^o~0H({LwFf7g*?jHBfM|f3TYo)MGdAglj6@bHZVoFjmZ?WR?dvH4x~| z(MR7D)Q3G2hRY$#r!8_%)!!$}GVGa!Ddes(Tn=f;a^9CID2KFUS%xg1x*xbJkSV0? zu+5yED2K7azA0Fey=ye9KAFPUM~2un_Fa!Lg|R>OzLd1TKKiDRJI}sr%kVPn6#eyK zmmxJvorYUs{}j?E4_1b~50)Ocf8W}1w#E1Ng;G*!L48x0)s{&irLo%*UW@enJj#Bd zW^Iov%aEgub+IJ&oSFA!ioSL#M?-iDTUYk_V_+H5x}*iMjDb2Gm?B)K;VJsAl%%B6 z)@7Te6^84>j0U;NVVnEwL#CiT+v6qN#+btHKUquvvCq{&{}cmjkz-E!Wa*{CB@Iu} zx3%F{Wq96QURScO`^f7k@=6!4@DFxoy#IZ;yb{50Zptfoyw8p2-g&1IuU*^sz{vX~ zdF`ngDGJnCZhlRcSG9OmNnXR^6$suJ(Es{CJpwh`!|O!6 zhSC2{3${$&@xvPBHS_SR1U&1{J3Hl_1oAqeJRjd*Qr@e@D}C}x+h8g9eMDYsWNSGm z+2uECOyCLg))U4l}sVmg?-PD(bnxX5-p9E z(SJq`Pa);tOx4%c?K0?L>~j}J4mqOan3Mj4eyne6`(GR7wIyDeOx$)`>?;#)jUYkPXlTT6bPOZVNqVj&nzE8Cb ztYr$MRzU19~;bq7a zyt2*vEe30?Ou>6Dsk6a!It$^vqAZ`g;63u@%x0bF2YJn}S+tkhWeU6Ha^&;sKd-d$ zyUF&o;qVlcgeCDV3VGMiz^j`aaV#dY#;N6tv!j9)4Uf%mejrFfZdRJaql=o54!}L$VyR!I2Q}(NUt-F5;>Vi)m z@cvRx)(@V*=D?wf&W{-2Z+em|tt3&$a4pbZapCy?rP4pEUh2cJjcYkm`;_OO!dADMC8s4|byFcXpVe)Cz@HDjb zRifSUPA&R^@HBG8Y3_M$7i}MGT!fG1!P4}-|CP2n*w_hA6K?ZU&?eq<$C;m_bg;3* zJRCFfK0tB<$3->L@a`Nr?{mE}FikDu<^8~%LFg6u1gu;S(4TW8utx`a1v9Vmxj5d* zB4;y>Q7N~aef!%7>=*I$c1|kjuqY|NR4tFQ4{u#v+uK^T-DOvseRhMT)zxldGek+ zdbK9JCxAUK>m2OfIzHvacs{eneciyBNUpUxdgW^4&qt-aTa})$P54^sR<4Zuk6zZv zZ#=Va=y7RrgRRpm5N@8YC=%_KtK|OWRiP)@N_r@JtPEytwMfO)BQ?tL*9IN2$4Vgw z?VW9ucX~^2#oyAu$b0v~J*++USQ1AkQ_B@ofB9+YNrdxW45a#FHUV!%Yf3Jpo3P^tco$GpP-+^-+E7EwZboz0eiMzD%?H}u8>s0iR+xO~-*x>i0 zb_ZU>mvbNYMj{1QL4Uz_u+Oy4w$8KGTNhXdB0dSM@;;cF=f5j`?+9!3TM=(Yvc#VP zE*$T%?z3{zhxtB>2;kSV*7GR;C43qCHR}!QZG0R11M3F&JKngIF~Li`FQjhqelY5Q zH_cZZWC@Qtd8`tp9iBpdrwD0}q^wDfWPH_WwBu06SjUl$OM;%ryGMSXnxArIdT09d zbRSY2j}!&?igt-(x}$YucVukTj?te44~aZKl9DAOUuI<9$b>Ze*D2{sQ`}LkXSb;5 z7&rL?4jvzMdU0IgSnW97vDR^xqrvrw`%QPq)#%(J;^Rg$RrDb|e(2({*OP$bqmCyW z+Z|6kcH$e{FFRgw?8Y~^-*LR>_|UP}vCr{^<15Fvjvw$9?qBi6x81>(;7=oN3{LRH zk9=k1xU|DZ?g$?1bEjP}^4gI<1&>Rcn|5w`?dZj$|CTl;>SUph*G1ng6EgoelC_>K z_%nn|Edho|-XU7_m}t?V9)>pwy{3zhGErKlm*HQDl+o$rUrTc0c%?Hg;%m{S8w31( zgY&|qGer)+$gxb+^K%k&Oc3S8in6m)8B!p4S^wA(4CxWN`biw$7qYAsDIXS6FO6WD zBS-N%=Rth`+wJn<8{ko{7}s!DJiY>+>`HZwb{*;(>pIdk!Ij|(x!!Z-;!BFhxhA`c zTvJ`8_!9UGSGB9o)#!OB@(tf7zTHumL`C}__QiW|N}23EEZOqk7`4vT<#`}wv#&9E zr|$%hJNb0i55C&K;^f@qi&LIU+2Ynqo{t{?D~!(Uy$xemG<_>#EKeRtaXsSihFdQW#>?|m*}48C~nO4**~4qoQ2 z4JM1eIA;_~+9q`Wnh5z>Xu3;;zajch9=C~_zjjf!I(Lz?T%M9QVYjhD1Al6E;6uv~RSiW53`Z5_KFW za!IQ`Tj=IC5#kl)dxiZyB0|Oq`zsYa^rSd$6ZIyF<4Mx8MLYLJQq~)sTa&I9b)PO$ z*9n<+h&nD2$2d_(%}}=CYGKRk#8I|>u_*BbQL9Ik@VqEtvXFbI7y+|Ic!H4f0#TaO z&gVi$GeyWvB4wp0O={{F5qpRTzeJQKeO94Jzg=kOPEoHMXKf;7zNqDDk>*#SM>!U^ zi}p*4a!0c*B_jPC*|80O3ZuWGv*ToWER%J+tPibF^gl(L{wdldTm?QKvXLx6<3vKRksz9;c1(6#=j5-Dp3>Inrx(ap&7 zh`%}Zzi}?e_un|`W;N=63A8wH;t2lU`#<}uLUw~(P8$8zY_9Vi#Nl{#_Yw@lv(>pBj3>XCmjbX6Z6ivA2T zx&xoZuR{LVz^dqDQKvg_Y{Ds^_0gxGZU=Uu3=2iqK`*g^x*^*{o^A1oN&KCd#57+i z-G{fq=-go?!}ek!iyJn}@?xOB=lwClW@8b?zO(bQOv+7JDR&IYpMi036zXY*O-9;AN(b+%eB#C#3vvAz~{Qy%6$0_~~C zk$IDlhxulVa)E}TgXq)0j0)mQ@BBR~mi5IVPZ{#WILbsGrY9)(PDr^BzJ|YJp+A<- zK6>8&t*}3~|9IGXY~c8~I}q*;+#$kQW)}494rC1}7Wyt0cF6S0-~(a<%ZAzMA4VHu z0}l)PV?H~a@>8FE!~QJoZK90ZbRSU8%TP}}j&>W44aQO9AeGyGhSui_brP$dJFnW0mdk~2kJoTl4G2@cpm*68+d+b zH0p5&qKBO-ba^ViY_$XSV%w43M+5uBw5NN-1~JyQh;~tr51~GH z;2~jWtlu6Bm%`_{1D6V4&i0=Kd+4-I681p5qU}6KUEoL=Z2Pd3t@ceAVM<_ZMXu34O!{M#c~9Q>?t; zUsEA#vm;f=+IRfOF=)oF-G8;hHflv395eRV4v*gf*Jk0PXG1$K(0Q9HXJ= zeaMsK*e86@(HKKJApckBhZx6KLyr{Y9hp!88sn%CX=oeori7w@M;pFQ`CZsA`(&UE z%6_;KYYO&tKE(E&?4vQNub7@Z!S>P*_3bbEn!U-P=wBe)`$@kf_|b2B zll_SsLElf>n0TG|eVy>pSy&VOG1_Ilg7n8A{6P9KBK#SwSw3`1pLjNG>}cz3vF_M{ zl~FPB@b4|8>3~mt5W0EE8Hzp+y1gj%Jkb|ibG(hPB$WBMD=D!MZF<{TDD3wtgb&5I z{LL|R$mPh>n0mSBkMSz}-_D^!u7~W6sn-izx*2*O4_mv%Gaj}k>x)F2N281ftD8r>l_XWZ~c6=eizsI`o2*|tD6^i~8vi;%uG;s;W%vRSD zj2Wy2P|nS0@9MzKVoV)@{FSg-yqY%tUdVKWb+71amR*9l7PRXeXNzc85b_tG?|q{R zhK)elpmT&s8;Sb%!nS)M$5v;r@ZCMg`v>G->;FT@-~Tscgzx?*+VBTfip|jTAJ~2N zK<6>|ofqMfQtziMrWl*U(V(IF#KmbX?*AP}k4{qK*cv zcdvu}Z$-H?&{r2YX2hAkWq(jFq3GXGXY;7vgbc?Z?Ih^_eg7n(`|v(}8GS)J`Px5p zNMGCf9I{Z}Wsd3aj}EKG>#}~w`tN9z{jBHc;a#A=`@4p}hr9{S_n=>gbqw-k10~Si zhoYkp z_qZ!+csukFJG5QsgZ3ATI<_Ls&Cu&<(8+13rwL#ADe?sHdzTduzn8#A+=$%ysZ1o{XVqV8^mn{I9ZR|m?iM!B2))x$1^PCNV;#~laT-t0e4*!E!ZNj=!@mF*0#leQ#vW#mc2 z_XCdOgkGVFBg#5i9k?2ut^!LBDj)<--OV(s#iA>)spWYO=YKSI%0h`d(}iG=Kr zcp~G^1YPStGk!O0?GevzVQWk;`-fqn=W!`p@obnZ}ms z2GrHzzajn&QRf?C&AUG-6rCa3o6)De{qsp3$^Byw=D6QsQ`y-4a{u-T_PHD3gZ~b@ zi^4p@um<=#&h?znija=;&UV!EZ^Um#*h<9vIi8T_S6EmT(%g=5xfAyFHf-jCQE!WJ z`6$wUhwz^Ti=C%AS37&0e{-hB|2ygC*nc=LO1;K;v$Ht< znUptEHaqWgKJ0wL`9SQ`&YiIr#{b8;$9a9~XU=b(4X(3XSG(?VeU$ou>uJ~Pu05_l zQirAu84>AzJZgmdDEIO1?6fNPxabD=z46=Q7rIY#pW)u%-sHZ=y~F*S`^EVGxZiL` zCyYwiKz0ni341v-J{z$)M`z!|`qz}digz;zr_UItzPb^~t$?*Q)s z9|C)UeZUvMSHQQx55UjBufT7>LBMesoE_i;B7rC%1{e;+14%$KkP3_j4h6;nM*2R9Tm0*^g|W)iK6=y z{an#675z%lZxsDb(H|83Nzns}{;FuNqQ8Suj)SC!%XWGd^(z{wXi(8;MPn2l2I@l@ zv7m`SGLQz00mcGH0o30_Q0h1nGzXXjuYTefSwJk1I`CF0)B*F0(v=cHLwY|5x5oD3~T{tciTW8 z1Re#R1X%VC(47F~d{NPt72O3&d0qv519(S;zpv3P7 zV4M2=An2pOlK^$S19T_wBCrc!{@tK&0hD16D9d>t^kZP3`u!#7H^2`7(;Wb1-d{m~ z2bc%j#*J>k4=_y-lxd7bQBHBb-C22KIy04#sLq6-yWtY{l3WoZZP1X$M!&^5pr0OQUAJr`iy zde9BPMF8V21HBSp9oMR`O`tcbuv-F_yJ&92S9rPraP#pHBSC^D(Y6$tEeB8 z@#0$Ap$pe?{cfN9zkZCA8I(N0B|DY^obWvv1|U4`{1dX}PRD|)V?>l9tD z==q9nP;?_G%e)BmG8J|uD0Ol*=qBJs;8tKWKzX+)dJib`ZUcQ#g*~e1<0|e+&>bpl zr=rg*`l6yQE4oY3S3z0sZqT<>*d9>o?tRdYfqm-tm!RJOKd9daKzo6M0LyS5X>IfZ zlsgiXVL{Ls#m9ms0*p^qG)2XwfsRpOV-+0-N;!@Kod|>gmYD~7EWo(QpvAy6faR8h zGEF6DHNZ6WptFHf0H&D($}}yY3l-l6+M)PmpsN6;Jzdc=6zx&;EJe>&^jt;PDY_n% zb({~nQH5OsN_j2=y%M-qg zT{}Tv1a_(L-HN^e%J{cH_W&QN@J~P~%RbOA75@$B4~jnk+6yr6L53ZLJ_jggq@qDZ zqZJ(n$}t-Yng}EVX#n$#QS>lH$0|Bb(FvfGXCi1w@p+)f0?a>Ig%yHMRbkT=EmyP> zl=4=A)&dPG{3JzBQS?+$)-?xozTy{ywgb%H3AzGU1F-Hh6zx&;EJe>&^jt;PDY{x_iAM|4twoiq94*C^9U4IAq z6Ywj*a(@TKsUBfRZcslE1Y!Wj$ATsTw6kQ;G++!c7GPf;1ZXj-q*rPEzz( zP|9#TXdy6Fg-=)E<)BqStqN~Ybhe@=DS8Sh>pT^-MTIQ{rHqR~+ksAC1wa|sD0(_5 z=Y%sr&jQW`)&m;=rn^YdOBB5fl=WN=dbJAMr0DgaY|G7{w*z;n@Ou>9rs(~kl5J!64@PjY2=p37a~86{39|d zkPgR#NGf;qt{!MfmrV0Z9>;HKb~;1j|B z1V0J>81zRaL>(TL7gZWHJE}eEEZhTnbJYD&JEPu>+8=c=Dkge#bVhVRbXD}+=vC1h zaks|P(eFn8933@e^pK1p1w&>IX&TZ#Wc`q9hHM`4(2$pgd^qI55Kl~8%$S%^Oi4^* z%;K0eG3Uoz6?0e2_L$dV_Qw1i;~zS5=(wTB3@sblFm&P2vxjaP`oz%x41Is-4?{h} z;)WeHtZ-QUu*Jj97xXR}wtd*^!@eB$+pys9(ZfT-ONY-IzGV0r!!I1ZY4|k=+axFO;0ghvu~CcKld zKjG(uKN5x{rX-F}%u6gutW7*Mu`O{;;@=W4NxVLBYvPW?U5W1}?oa$B(Va9TDJ|)! zq)ADoNwbp{B&|t0FX^92wl6NP6l>9^TAIVXpMvgjsRA|(cQ8lBQMzxMwJ?ihH zt{Qdcs7FTa9QF37&qo~?NMD=2A$?Q&o#_v!f0AbP>;par zz68Dnz6X8;eg=L4dV$}8gMgK8^*8}95CH^$C}0RM6c`S~1Bt*0AQ?yj(t$&O!+^2C zIN&H?0x%KC1VTU#kOxcxjs=bfCIdyl6rcns1~}3j7BA5BLLcjJA4Q zfCuma5kL@#0b+q9AQ?yjMgxZdV}T=qqk#+{1WW>s15N-6fFfWDPzsa*6+j&@3upvR z1WpD{1zLawKr7G=bO2qza$qH}8u$y)4Xg#u1kM4@1J(l<02_geflGlafop(&0oMUH z05<`*0Ji~m0(S#jfd_y`fX9F*f$hMvz;nQhz%JlbU^nmv@D}h6um|`6_z2hwdfDecSfcMrWo=hMFlYmozQ-L`^3osv82rLHLfTh4` zz;a+EumCx7 zo)jPr7!8a84g+v)t_RoVdd342flMG9!1cKvT%YSX9w-2&0;NDDfa`NTxIWiY2h0L+ zjjrcJ0N3bxnt^%10$>q<>vTO!fDWJ&z;(Kw)xckXGl9PX=K$vc>w)uu4ZuafCBS9C z<-j$-Cg6JDM&K6UHsB86PT+1}D{wDxAMgP15by}_81Mw}Z{R85Y2aDlIp75V*9?39 z1H1yf2D}cu3E=u+&mQ1?;3MD@;4|P0U_bB;@E!02@H6lW@L%9J;D3O1DCQ2p4R`@u zckGD-qJSa5P+&L^2jKc+kIPE4p7K7I{&cF9mUO6Ltf_YYRb5l)0 z!L%7x=e*`Fd~&{XUPoK=+<8mpwd2vlW<2^j2akcz2VIN@AY1WRV;df}ZtJp|m*C|h zo%r2}-<^1XvlEZN;ydnbOBc^+#G`9kH zA5ZgX)||O>0eop;9)V}g7cB(veCE;?0JIa|R_kgiEU@M*M~dZmihdPxufqG1n(-#3 zdH9;$LOi9pa2|kXvlrs2(uFImxos`h+$DIzaVgTFl({Hn?n;C~p1F{s1#-5`!~0t> z;|WRVbUtL6zi2VgZq0{k=A*v(ovW?+%jW`kvsCjMYr!16WoRCOrvlsX ztgsfeBOG}abmB?ea3F7S6$|DO&LI zgn7s`Zw}CDEnKt&K-dzzq^EO*wQxE3)p+ejQ}dEVIL>LuW6n(r(HV=HTH6-2FMtg! zYHC}KM}3>x(SwWe)t{!0l?+^lcJjEI$1Xg%h_)=6i=tXU7oo6L@T~|(n-;a>SE|yYMviGW=d?EpA?6E$+aF9#>ke&G<$SdY~1WYefTE(STNHsC8j0u*7ObZ?r=2 z)dv;Nve{Pa68vn(i)qjqt&qKSDUw3wR&;V}#|o>ptEr%~c}`PlrPaC| zZ{vWiw60dUOJMeRkqjzpgB)$J>^5izjRp|5Y>m~n952>^>f2V}6PL|%frS8GX@Pu8 zFdCMi@kaXU<-eQ8tSjIxS?a&nc8l{2bq%E-=H z+Dg*C8qb6;ode(vI30LS7ey|ei)Zy0<2l^Lppa)N2IV-DU` z0AuOENa|?AdzR3wj`lfL2inqs@;YGYr!Aictg$+m;Oj|C@g6ifi{(oIQhe2=c>#d8 zKw&I*&BYt$7qmAOPHCE2ZF807f-9QVR6ND%!fPlNE^4a48z-RtuC`VH&qQMsbS=U2 z$S~F}SWp)%s0$t3wG{7;>cH;~e69U7JTcozUw~r;O6qK?uHmtv3`f-6i9DShR#z9^ z3Io}?Rw5rpY1hhy)-rVGGWeWjFo9+8HOm&@YwHU@;XRfungih3Wc)jgmDjut6Z*;2Udi4#KrUKgK%m)T|DWpf!h*2GNk znF!BBcotrpmxb^wgoh9wLU;(_+2FGgmyNh=#O2_34)`3z=O8{8zjN_B7r%26p9h); znvd{&gy-j2858j`QPiJ-`ZG{>2I|g0-5IDm19fJg&J5Id(wV+APFpAwCN)cn%>fgfx&PGlbvJL1s4MAx|dSp9z^VAyX#Wp9#4#Ax|dS zo(Y*UAyX#g$%HJKkR=PUWI>KB$dLs(ve5P{v^@)L&w}2wP=6Nc&VmlIpo1*vAPe8bVt`Xk!R%455u7v@eAAh0wMT^c_OGLZ~x@Izy;0 zgm#5kXFfg}gL<=3Z#L@9M*FhSzHGEF8|}+Rec7ll8+y)0JF}tZY}B2dl?@;r>d!`7 zvr%t0>di*I*{C-g^=6~qY}A{Ldb9J8KM!$v$PXE^^N=4lmW@8oh8#JNAqO(#K!zO1 zkOLWVAVUsh$U(bvAVUu7%|V-U(B7O-7JzW*I0tp-WaH)0&~pyz&&fd?WXORGIglX- zGUTA{9MqQsedoZgbMix0?nJx-7B-fPdUGdc136YM^qz~lb5VCL>dr;`b2IT0OSC-~ z?af7dbJ4%KXmc*=&PD&`qTXE8n~OfqMIYy)k8{z-xoCGT+M0_xbD{IxeAEHG=c2uN zXm1|s&6}8O<)O|z^l={AnTK}fLDzYxFAuuTL!0wZXCC@C5ADo@j`L7o9_q_O9eHS1 z9@>?chjP%aJm@nIZOccxeCQ+}Y4edbA3Dj0eEB)}02g$VpOXt9O%BpPPx)}G`H(w5 z7wMq0e2j;Dl%JoAbkJXZF4Cbr`RK=d)R~Wd%tzbu(U1A4KOgnyqn-JANC!FcAxA#i zoS%<$lm~6kN89uBkq+(8huswv6j%j?v#f%tC00Sn46C3Nzsre2tDv&hDuAOds773M zg;h{f1c25e9^UcA7O6>!qp4 zHnqIWn##$p0GMG-g`TE1;D3WvQc!4>6joa$Q)XBtD5YdtfmKq9Fyt&Lud+%iz*iD8 zt&-{@pcp8(N@^>tlDeq?X`?l*ti+mDQEW}C1gh(;X|<)+w7N=bTD?_TTxpeJnOTac z(iyc@DYBPBlcm)&tY_!UY3as+dDOPzIXbs|O>o89@SmpHvRz*P( zFcqk_DvD-U6~zcEE&=MTiYX0N1$wQbtk|k3F9m9?3iMnBb}SW@NK;v5Rm_-;=^o(_ zx1x5YRRQCwn1!^BpjaPNLj202a;tJmwN*K_%&J6}RZg=iOR+pCt;6D=*uvu1s;oki zYW%L9jrBn}76z48RY4g5T7>@~D4`0{RF%)Ns!)3sY^DmmTUCu@kf5r%5jPo6!40Ok z$9Sq$HQSn5P;1SssIX>MR$4Qws;rqaXIe9>tF4(eHP*~p#MR+HP+xD&oHfguiH@Jy z*l5k1J=>~=byZKZs%La7}RsRqVagOyVahDc3Ku~k!x^e6(|UxQ&%Q(p#vpM@;5W?MB4NZMEgR9m$e;kD?r z+M;5s79+eC=2ttt%&ILb2e3pcud!;e>ZzSkiRBXFQD!a5tgWlZf(bkZKphlaSBC#s z7FCp5b-4T5GDTJ_LNeGyP>)uSQxB?y8E)mK(n_3#U`%B)%CQ>|GT4h;~bp|H?u zC@QiVii@p=DO0S5sZ*_nk`k+7+BB=7wA5;tKHX|4E3+EP%dG}zy8+s6m@&g@fW{l3 z@djwT0UB?B#v7pS2B^CM>TZC#8=&q6sJpS)YMfGGHDahV*5QANH5)cL8#Xx`BW*Sa zv@{zDS2TBG@w*H@u)Kg{YD!i444B7^@ z-gLz`rZQKB2#3{yhquGA3N`S^Sd18Ptj4igNL6DMgNJ@_gj*0tmN`qLZ-l(Kf6i*g zk#D56fYWfqz8yz6b#Y_~@Ok1`B91Hv>uYgjT`(XV;jG1RnmAIDLXidrAb7SB`o^(H zNDj{?c$QX#R`SR)iy%9XloOUAj*U1L3yr~B2%ah7_r;OrOu?Jb_?=E_b*d;0eg{0J zBynUbN`waBTLe!XV#J9fWh+5XS}29Fa3bQ!c9jaLrV9;B7qQbtNSWZ_b&v*LLL6C6 znJ5QS7b3Zi@M51ET$WTR0x?XM0+tnMF`uA8AKeJt5U>P3T?oHA_OypII>=h zdU2$jGet|`B?ZsenL;Y~CBajxGevsrbp+3TnJH`!BT4Yoz)aCcn8v|lf)+y|ZF@HnFYUcR%B-*&d}Y}9fb=i`q@ zre6R*VZl4h6Gw(D#AvfH-deF;>h%^BDPh;@{6;$CsOcB zL>ippLdX(PCg1xhi1i4LSmfb|Gq>VMN%%!z9@$>`Ry&+g5j<<>Tj_XYTX4!z92be>5^a?N2qz6$P-7Fyg-!3H)6AQC?Vgl%Om?#zVCgZ(20BtIp3enUSqrX#!DWVlJB5o zf3XCbzA*$hQNse_1l$Gsz=U;>43UQd*pr6i4%W7OYBYN##v9%Hd-fZ=Ql1H z&QZ&j;3Tey$5jWBnoC6+KK1 z(SleX--k~5m!MDO=$GG}=Nn6DnYbn)%46Tk-tEL&17&YAUl(%AzLDQs=erkKF0Mt0 ze&QDdI`Dh8ke4x7gj#8sAEtn(@8cUCtHE<#NrQ)`=jC{4!koZ00WF?<33y7&H!gC{ zW`FQ~m6d|$yD+ho6Fk#b;7|H5@=RZVlGEUuI3LUvWtNCJgZmdSZN z4Yjh~a^xNlFJA+m_QLl_P6JQR#rN2uaT$BoRj#TSLWqgCz+ly(65oN6};@D0`T;7 z{JI0@2F_bdL!Hpmv0bc-{*L`iebP$FvtD{Vre|MpZsR+~8P2(l@2jUg^m^o37kwXj z%D|bAJoU->kGf?WIkwqe_627|hExAs<5K6+mRJt9I|%1Y$@G+;{((I8OuxxAv>EzM zwuO48$E2RwF3zLW743~al;u-?&a6zs^z^3;FBLr7QZ34-hb7PQIr3;fEQh|8?V`;5 zQZV1CDtXphBg)}>?8#G3uG%RB<)P1IIP0air9QbPmhVNa75b;oWjOm+zJ0e=ltVvD z8K@t6+a_qAI;YQNTPOqlEZf5J>0xcVqMzmXVtS5(G$k|F2ee`8nJWW34Lz_4H#R_z zXpfyaB29&87yYp<8&?UoKjA9D9wS^U*m=2DFli{8Jsz2+Sjf+{f<4Ch9%#0gcFuK! zT_$%&v`_XaS8~)X^}|&K%V(c*4Z(7_R_02=&dawJ+qNyop!6s9c%%-w!m!iGFG5H^ z$rT~PIgYrtu=R|qr{HBDadl|hB-a@nQ!JCK3cJi!VPjG@t|Zt-juFmFEQjTD4PmFp zb-F%0^-v?ybAM~b1!a@Ilkr%ia1~;g z$+d_r8&@87I9D6CJ#fuohx5(Y^vj%os1;miM4YrazTuai->$t=j90$Hmn-U8%s(89 zw4`N7NB!UgtB9K=;&A>DzqtF5{YSlXequ_TEmOZ(gVX`X$}0Sl9u`*#`^ZciX75#r z9>7&uVJosfXuB*$S`;modX?jYc1LR{7FxzV4*1P}lzw zY&%yQv;fv1?SC2CBWve~S&8;^AP(oS@QdGQrx(T9OZ<|(!d*IdK>(s1>{cc0s~i%Zo= zYfFYZZSdR9Cv|JLZyq#CUCTD`n>}*WQ%f8fEXDSPeQUsdEPe7VM&GjErIu)Qi}6dg zkH2X1w#Q?8O&r(rCZF`}QWk#Kg1sWGhbvH)X~#*gXqU;gv^{dsy=tLeY{|HO zHl^^pFSgFO0;gm$CGKPqJuUm84O(IQ_s zan_DYGtf1^Vr6;^_nHVgPM3;URK}x#6@PrbHzp!i7)c;Y#y$kVD-)!Kza~*V3VJt zzwhr3)I+)LQ77doLf>_wb@DtkCFkC=3%{2_Cw!Ye*VFul16OLZ#7eCJ$3o#H`L!Lk zpWpJ~T7#{WYm{2pfXv0w#kz5qoM=1lkV8723p3Kum(o7^%gmJ{HP>G=v@@pVd2=H# z`-)oNxeAuXy(-6?^n^0h*0nuK`)hz!$@xRpW=fE&^}e;y`^q^uJk;)YBN@|Hi1l)K zZ4JUk`dbCl(vyaVO3C`x#=eznEvZQ(uN*Nl)b3rQUwT2@!-hVk_1mjuIZH@Ou(dAz zV6l*et&mr?6DMHjtTEu4$pPl<=|Qz%AsH4 z*MMxh~v2=er=EE0Ohw}I>gA~c^&R!$HNYaP@d$u+qZdK-9#F$F!-I! zEQH%UzshU#*+^r~s&Ic*idgR6nWhX!sbN_@`^zq$>k6A^tj$Zyw9}XCa9lLjJT8W7 zzP=AX3u!11OXHaW9=Yq|SrVR4;aL@)&Eb*ZJUf$yF-DDY=b46_lu-8nQG5QZB%TQ| z<*_7LDtG;CM=g&3=dvg6;hBK(&^@jWBend6TMmS^$zQls+9wVdJ%wyCj#oCQ8~KYd z)TaE!bstxS$E!NHeq>L`SYH34Ez4iL`ebs_uN3Myo?~E3WJ+9Q?N=kO0NQc0pi|R| zStx~P0Gw8yb%NC$=yXf2G4NNX&7G^c^A*<{oT}5k>5}REQHxb6y+NC63|y%5{(&zI zu#VoK%{2xRR4M+bLsYu%z&EPA#=u27@1>gio92E|>3V}U7v*1vZ&k34#(-0$>kZmm zV<4bqzEQ>cqlW5qqg8Bg@MA5(<+`?8G((l>~_UP`7hQ|U8TbOQ5A~o z4c6;=$7%Vt=u-TeyI*tnD$XAjr8M3ccvQzep}5}Q3SF{Ecchl|A)UjcbJ$#CV5r~j zRU^T6odfDseVL={n60@?&GqWqo>n>hQ8l`how}509rl^Zfqqk^GzNT{ds*k$t4lU{ z?Y?Xbyr9c_M{_OOI&F(>47{mhcWW*|ad?(ghrOq`-e9Z_v$@{jk6PyAm8AZtOkIkt ztH!`yo%ch{?bF;>it7zd(xuqiXbgM32=Noz9MJ3?%D1Mr&@Y=4@+f4CHC4l2mMOaKBEMs=48s>(JZ; z#YOqAQ@ZL69;3?Z4caC52D5e8bgk3lb-i|MW8hF#UT@Hjjq=~1Z7p8cYu6FwzeSff zNylbru2|Q5m`<0gV~6Xo<8+v9C5?f}IxM8P-k@EcKWe&`exxp?NTu^feW3GB)nN;? zx0s-Fm{Lk~d8H~xl>c6p&Umiwz|%Uf;Y@GY^+x&MR$7blKcsR*`A<{hw=rO3nWM|I z=a0rfxt87@DUE?@9X3OAO?nop($X7W{H|_?Pqn-|U^qK=urT;%ZP_;08#Hy)X$cw> z*Bflq5*Y3z9cKKg2|H2C_k?Oklz*FU(J8v*CRK_*%J_SmYYa5&baoH+2CKDBTU0DG zt~tBB#=sm^a&ORZKj?IeH8)R7U~`RuB|0`*%Y3>H>rz~Ipk3wd4%l9_J1}3#*Bv-Z zbBh%h<+r_el>eTf?d8|%l3TSbHrE(9OUJI(+&P*XqP4L?hpp4x2F<;qwJ}WRuvdLi z{*6kOD1T6M&+C43sIcDPLRCs*z;Lz>8UugVwWaDhPSZL5p<;W3ChQ)a;}Xr?t+{_{ z?n=!a)Z8_S^GBK0+$I$kAVl>y!&+6BRcQvTBp})S(fRZvAHP!jGVj;i0nLrp_VS?$>kinf*Y1E>Da5Ptx&zUQ zYYhCRCAD+(1{Y}G^qQ8%PS+h+uk#+JTmGY}w=r-~bE9=BM`~_@=5jT6oaQELZmQ-= zH8(?ZFKY=-(P7Ps>kfROTiFsNZKFF7ueox~ja6J@AYPYpsOIW)dERKdl-)Y-^Gf5` zd1>wlrH$^uPnt7fzv-}u2)jI|=5npf?#r`u*q6GLb9C5idZheahq?8drbBbgz6~m@JCLMn8?AHvL+7|k z$Np1?U81?5F7HYm_LJs1)h@a*uvK$=bR7q^HEq{iqAu@O9d@P8@x9i;SvqW;4h!l! z#_3WfYVKkkTc~qv)on8)>K-lqHJZCkahTP#?OM7#djvEFHt8H&wDdRYu+5rl(bC_o z!|qdDci;jobEHm}s?){mut#**b$RMu2)O2M~4;a7A5L>ZLT|DbJ*u;3EtLuLz)|_ zOTI*NZ|GR#Cyf_)NY{3U=04XszSrD-&E2Xc{YHlwPrX>zyFzobbjcfZ*fl!rbF&{-nZcgdVLxf^Q7u8T4tr8d|FI4;v)UM4+l4yaI31Rvx%+j=J2e-pr9WJ! z`#^_XrpwFMu{Y|lEFJc_mTI!*=4hW|&w1T=bC|uBGBct*4`Q{cW3STknHl>;-Iu#` z9TT+#d$m+&Yp;@{W5;Xm8=cq8dG<`#9k^Mye3z~*UFW@9$F9U8D0j$u08 zJT2b|I-R9sr|7Uxb$OARGjsAZozARPQgkUXy52E5%&d`C>AWt@ov!N`ro+s-$*hd- z(6MJ~?mW#c)!Zq%m8n`+%XRD-nj5EMbF`!%>OMbKhZSmWz2@H0>D*fSkZ$=sT7qgF z`>f)+119WjEz4gtw^4JIy0$i5-UT|gR>#iP++{lU3eC;evH#LxE3{Ns>#)sQ`crid zms%4x2CmoX_Gno;b-Fin-kbG|y+hZrTj{DhuvcqspXPqi>8f=pRl1HfnltOaWS!$C zE!E9>)ZV4T%&K{t3hNG--mri=NYAFKX^Tnv2k*;#D2?y5`=} z+`F24UvnR6?i0;@rFHt54*ODbUu*6=&Hbpk1DgA<=6=_l=^5k4&ECMQ^o@Tp>n3~W z(04X4y96^sn2}=k245Zf*BESHVfG(pJ#KamW-V%FCNl!e{==;A z&F;kPSj@h{_~Jfmer=QXKBX~W_9SN4VRklVUt#ZJx&vlkVK}pQG5Z;_UoiU$v-&r_ zZm^w$S#z1)iCO)d9f8>g*t?0wfZ0Q=(fwxjGxmO=J79Z(?todxnw^8aj%W;+y^Glk z+53vdfW4dOyH+-^02(!`^jZU!i-;>~+mf#Q0sa*RbcF#(Kjd zPRtI&>^kf{Nq67{J(A5{!|Yw`wMuuu#2U`*HSF1-F<^EbW;PgXH(~YxX1}mU>%gp4 z?44I*!0bBS(CN(n!|X83PRZ;)%wEInA@du(((Fm>y+(Jyj8L<~F!P()f0*67 z*=r286ES<2!FD2M|6yiRv+J<;B;5gfjoBD5yA!h~F}sc{^-OF=fLX5%wqqG=pEB5< z#H{el?!=rmFgu&Ub}VMMWA-j)ooMz8X0Ks(7-o-S_A_R8Vy~|IYRIf<2HW=-4`=o+ zW@lqo^=9v4_D5!qV|Gtw&otN`tXW&J+4q<|iP?3S9frOC=nj}2i`l1`J&D;VnLUZU zkLnJXxy;^WbqCC@$Z%#aWOir+cPD*!HfH}Z*zUyaam;?k>{HB6#O$KY-o@;D>@ygB zd(}Q8(j72+CbOUU|6+yL9WX0A!~MTs>)CrNTn*QL_y4@hGCLr92E)}pZ8>IFWcEGg zER)%nnVpC^pJ?_><~*0#gPHx2*{hkIm)Q&1do|dBUU3`F?1jv3%@c-{g2HRCO z>Yb)pPvVX@J(A6t1haaz_nh4U6K2M~z3;&l1U06+1LE> zya^G<`)~55L>wA1KA0EG2&@a-;XNwiXZI9;x&JqJR>W3sQPAOe!26iD#$OrC4_q9W zgg5a&<((GsoOebT5v`;PH-c~*PYdX@&y@!TG=EDty;?zKi%J;s(#b2v1}%@-|P6?-uv)$h$p_z7dg4 zzWY4sk&k%pbdQZZI`ZG1oXF!M|L%X*bCJI|@+Hq}o_W4|-D`qnk*&USf)BYr@Ki@W z;l9GZ$-mOq?Tht)>iMg$F>=4>)W}=>fAcMfyvzT+r#4N??~_R$Xk5r-qR!R^!+t*edIqP@AX|C`H=5lk&pTh_r4Ka7Pu!k z-g|RomN(yfXXLiXMPpYT2Jf7(~(eZlvN{}tbxzPJ1{y|cXU z`L;)%?A_~|>;1wv+W#%Ss_+4>2QTt2^)C0m9=IwvG;nR;<6vvx@!)U1_uS7#?uz`2 z_sz)nBlr0oexLu-$gllhMV{&XF|s#uX5cn_AK^T2nd4}2M`sQ02R#vYTJxzE-r3D3 zv;Jb8Ypu67SQlBBSyx({tQ)Oct6G#wFBQ1ei7f~-fg{Qy>ESN?X$kL zzOjC=4p_a`LCfjzIwBp>j$w{?#|TG?W3=Ni$2fdrH`9^hnB+L#QRtZJnC_@_R6FV& zv+>>CIga^`#g2AIr(=am3^$7db9-TRnq{OI__@tflh+MtK7Bj2KPzsQ{64@h3+8H ztKB!dZ*y;PZ*xEBe$@RWzAC)a{i1u9d$;>7_a66$?oZrby1#QDaR2VMJZ_I4Ul@+@ z#Cj4v$(}UN7|&SGQJ#sOkSEV`tYN*bjUM{0#I0e*o?wR#gNL4GaeoflI2ZUkuo1WvxDxmma3gRVa2Ied z@F4IQupM|7coBF7cmsGB_z?IM_!9UQ_zCzga1e0C;9J8$6fg`(0Fr@p;4t7wU?PwW zOae{-ih)v~5~u+hfRlkazyhERI1N|<`~~O%&H>f~7Xp_6R{+-nHvqQ+cLMhS4*-t> z{|24`UI2ChuLJJ@9{`^KUjW|#KLWo3{{x&u@y%Z#2n+?{fssHOa40YiI2s56`M~i& z5ikv?0IGpmz)3(eFdt|II)LTC8elDOHt;uK18^~LIdBbdJ#Y)K8Q2Qk4?F@q2|Nuv z5Bvw%4ZID!59|d#2fhY=0Db{}2OPt!DlZTKVt_bc1ds}h0geDB09imDa2!wwlmO+x zOrRb(5jYi?2P_7b0?UBaz!|__fpx$Iz(v46fvbV*fSZ9kfGxm%z{9{3zz*O!;AP-7 z;4R=i;A7x3;49#J-~jL&U=7DNt$|2j2oMV-0V%*Cz*t~BkO|}h#{vbwRG2b>T51Go&h3fKhP1l$hX4QvA*0v-pR0(Jr~0j~mY0(*du zfPKJz;5*=FpcnW9aK~c&1JS^6AQ2b^j0W)X`>LaW3?K(M2AB*?0j2{pfZG3yz4rib z;^_YUWl3K3Vyjo%>at{2YOpcgl+b&}5Cf)$UPGv+1w!wg&^w`rUP2E&G!t4d5Fqr> zV*LN^$PF+F$@{zafA4)>&GR`sbLPyPv$Lz!YBj3`4M8)|3bX|sL08ZV^aq1L8W;`6 zfyrP7mzJ=g-m7)7ZaSUMOLscKXmsu9(KYE5;Zx>CKV0n|`DlYJaDg_=bz zpq5grsP)ulYA3ayIzpYK&QX`BYg7jHfO-5jbQZRJ`CjyU5F7)i zz|Y_^xCU;4-@rrg47>tw0ZW173J`%vpaOaj18l$re4sG+3?zbbpc1GCYJ&!#DQF4W zfDWJw=n49PfnXTDWR~Yt;#B3-oF1G$IC~q!8O9mO8N(Tm zv$g4**_`>DMVw`vRh)I4jhwBV9h^O!1DwO0BUbTpm}%jo>P{8m@sG!?kjq+&HeETbNs%n}DZTmFHICR^`^jQ>_|uo8rkGvvrGim-hfq+j`D>#mnS{@x%E%zK9>eSMW7_ z1D?NSdm*$t}SK?RY*W}mbH{>_vC-YPIsr-)oF8m(+K6pykApS7^ zNd6d{|4!yl=g;QP=P%+fJof?eg2{sEg4u%kf<-v=5h`91t89 z92cAtoD*CWToGIs+!EXsJPD3KXYE^~>zqM)dV=rd7CQ5jJMQDspzQ7utDJk6|`sHG@H zlq%{d>LThc>MiOo8Ymhn8X@{dG!9QWnrxiiR+0QiJOUAid&1@i93nAihGLtiU)`Xi<6{j;!)zU;tAp@;u+#O z;sxTx;^pGi;`QQ9;%(xc;=SS@#YeOHxnLNYYG_EJ=~1 zN;*oqNP0;6NWPK`lnj-OkbEN5~BH1q4E!i(QBsnHI zDLErKFS#taD!D1SEx9LoD0wP*A$cRolCY#4sX!``%A_i(P8uaWE-_2(QkT>#4N8kj zOGp!?Wuz6Pm8I3BwWRf=jik+_$QspmeBo1fC8zPC7|CO*%_D zPx_s7sdS}ut#pHQi*&nmw{*Ysko1`Jr1Y%xf;3%vP5P_!j`W`Nq4cTr59w>^TPZVw zir__vB9<>7h2!A2U=o-P=75D@DOd&8gUw(&*aLn9N5M&O4qO6P!LQ&h_#He2FF__? zDsgTFgdhSafeu6iD~JVNPzV$UB|%wG5mW`WKz+~zB!kwVJ@^vz0DZyNU?>;~#)64p z8kh|hfF)ohSO+$NAHZ&K02~1)z*%q+`~q%*JKzC$0$zYWL6{2XRzLuxKmoKM3Rr*> zct8*o0|}rENCKaOnxGzN3|fE`&<=D4-9aBP01N>mz!)$AOa-&Re6Sd-0BgZUunp`2 z`@v!G6F37dfGgkzxDD=u$KVg}1~Ak(w*q`10dk-LMqmaG5C;OFD2NB8K?P6+)Btrs zBhVat0a8IH&<*qkUxC43IQRyP2UEaIFb^yO%fTA30c-_3!9H*Z90#Ytd5{jSgA8yF zJOag zG%y;B1CzlFFc*9WmVwpad$0xU0DHkfa15LRKZDEQ8n^|10}sJ7@Cv*IEG^D~fCxka z70`niU;{4T1BJn7AQ6-Ul|VI68#Dk-K}*mEbO2pIPtXqx1jE26@GY1Grh_?PAy^7l zf%RZB*ber9AHh*@5}X51e zE`nbGo;6kD4tM~bfEVCT5T?ibAK=H>8d9JDS`Y;+zzIAc2#SFOPzEG{&p}O44>SfX zKniFFI)m<@4;TQ3fDvE}m;k1NSzta`3|4@(U?bQDc7griF!%|a0T;j(a0A>1_rYWE z2Y3S*2E6|PA4q^4Xn+xzfdj;W04NILL1|C{Q~@cB-gX||_zWb1a-b5Z z25N%_pebkx+JFwA3+M^@fq`Hc7zMrslfZN^2P_0j!78vGYzEuG9`GYL3QmG^;1akB zeg${I@8BtT2{Hi_e~!TcLJ$FzKnJ3M6~qEBC3_GeZT-P1dIT9 zrfH1{U@E|KOl!;scy?)x6<{sc2)2P;U_UqvegbE}1%T(0*0=#~gZtny_yfEF3=`h} zfW^>6L`T>o_{d8Do;g}0oMB`5sCcRbCn5sR){FjG#fZlFM6^PUJf6eH#Q!_^aPD{+ zc|4zV9Q_c#{Lk;J*0p1RiT`=vf}B?=WahPHFoY+;sSlY)*MoZD48{sMgRv=y!dnKz z$-@$_Kx$X~`B8U#JDeBxh~I)S8&}y^F*h;~Fpo3OF|ROhF&{9WGc%dtED=l2(z7fq zH)}hty!&xAy%eh=s|Kq9s|Bkq>q}N|)<9f4AIF-;n#WqoTFctP+RZvdY-#%wtn;j^ ztlO-6tf#D3tS~mM7+eUU7$;JW&D=6&{4_8T@UTo5h` z*M`$}F+@6ubcY`h(z@f2XM~qYKGau!S%}!?*L-?D9#`#itjpx)XieqpQq^~~bx5fR zR4L7|P#(@kCGeFg1KG@{7Y)hi?ks5q=>2c=+k?OW`+gb^l2?=5$ef zDw5JtCMuQ+P@hp{sLE6=T&GH=QmHOfA8HUaj2c5tre;%%aD{3kwVm2SZD$^)PEi-B z>(pK9F-osM7I;5#I1*g5isINg@7MgNWjE>3M`V$Y_Fgi(rb70zO7^mLZi~hw*NW4g z(~Z-QGlVmmGZDWWZf7pUm8i9xEu7t)LwH8|1!%5u?rWbtMQ#ml18xg$TRcC#H}^kXzyG%X?+E;N1pYe${~dwFwK zcp`iyoXrdq&BmOkf0OdwJ^#)9zc2zj$h zb>)bzFOl1LPYSU3u+3j-0)Mmq-@I2pDZ4!NJ^jBQ#X0;1`TAO(FaPiR%-?c8cO_=F zZYTZj=O4v#0=ZsrhG>4y=Pw=kR_vSn-}32ldV0iv`HnV|AC7;o+|FE?t>u!^cILWw zta4g^d?`jdd3M{6Tm6$7?Z52JB#0FR1jPiUvfEeui+*Yd8VFhl8si@cz7+JvzCRH2 zxW@?^VfF)EQyVq)Fc+dBYNiS136=`h3T6rx3RVcd$IRd#1pD6U`RF^Pf3l_@w>=}c zEVwDSCwMA&Q(*5bp+G1jGbuuSSTUEP@JFt7eca2Z*Cb$WMpewqXo@)*9Wfu{E6l|h zgLxRUF$ZInaHDX?|3cq%l(UdRS3m#vOD2QOpom*8!@=<2e?H6MAJyC9zpRHc7GO5_ zYQ{Fq;y#TT+YHRvro!Zyqg^rV^RNbCO)w8Tf4qG$1A883UvCP#5OxW(tzU-8nQEqq z>0uUPR$#Wq8n(k+>JiLo%$>}=WR~=u|KHX+f83!weJwiwYZc0Cb9L)UZlip&e5-sr z$?uf!k?%w9fc&uhIF?SHn^!;F%WE0lCj1$*LwEplueyX6?Vulx+&tROApOtg?e9ZKcq9o%hG22VekK&v7=jE5ks95ny?&5ne^Q#d5 z3el)2BUP0D8D@c%LL2!cOXk3Bf5$F=oBVm^2cwd| z_OJ7i3b{h5P%DOJ4$B;ssa0Su=)Zay6)_5n!mfx_#E~9+ih$ypypW>Ezw9sLZEniS z&4qMX8MG#cw|BDAv(ufd3vYAs=~+jR(%**Ck+(tEtCm-4WSF>J`C0+feAWOg$;xmFowE=PyYdd~n+{+3V z9?6dMSoRVlm7V)JdwBuNOC+C8AXs)#Y|K>_h~Oa?i-30nm^JaZ_oL(-u@@8Y?w>?@&4RGuP}hK zL)xO4u!K;IyPry8wrx3KlCUz)>S%opVQpbO%(`tNY%Yw%y-_W3p4V2`Uf2nuhe(;iBKK=ZVRQH+%M!En4`^kx8}WPLw3Jp{fc({EJ2nq zOOz$fl4MDmSy5Th??v&A@LS;o zoF`8cDzo>?PmfWL7Dl!%OP^)P3iTb6WgYO$Ij!@?n_h#EHfKqf{z;#CwxRc7UYXA2j3(V{C{Hix z6xuUGzH_W{EDDOj#{TY|z01K~f^sZ-`8!$$gM+y)fBoWRuU}3?A?x0Xeu@E#L5iV@ z;fhg;G4Ji&f8AsLS`OX&2Qj#_-@o+z208xox5{fVPB9U_r+lJ+%rwVqRz7Ru|DCSi zFBIq>MspPl6pKhtn6v(`U;o~JK`wpl@5%PvB-~oixV_CAw-t)jpB!}&Y>n;j?KcH^ z|6ARA+nK%xm~OL6xL0_fpm+<|GidvgXmuzzp7*y;ovg<1`Jvl<>MOK8O0kd9{b%=6 zhW(T96v{`abCB=*gVjg;(f2mfelOzwn5+L_{djr(<>hi$pc?xIqBuci2!9iP%yX`B zc4l4fwr-QvChLPWfK~gfP0@I-_8-^L_B0m?Xt$$)7#-jR8?c`W8?pZoHetUKHe>%u_Oll3toQe~58dQyu;=COjV;+s(HHD+QEU9m1Q&NE zwquJ$pT54iUFOT=oD=1(Rldp(vVZpuc)!8N&JF%)KRC;KZ!5p=Dd%jK!3e{4$Vs8C zlCy>Ay8J1pk9W6Q&R$Ko&9NwG8Kz_@!3Ib1nXIa)bJ`K@xia-wpwa;kE= za;9>&a;|c|GBoyi`&C}~x2&JBg^pl+|7psJl3w0LAN1ZEA(D$!BCW_EipJf!Hc@Q$ z-MPg@@uEcBpIcs3QB;N8p<7?nM3jvCbK8pAi#mzAih7Cqi3W%U;SSy5qEVtTxJP%Q zXo_e$?$VtrS|D0P?$cc-+KBsfe-P~y?ZKV8XE8JSkm$JR6z9O2OV{8I;jPl0(tXl0+$!8d(&N(8((|}O_`0+Xw=p*Z_Xt0dJ}3RP#6JjC=xN6JB7Od|4y)$yP3Na|4VR` z`!n|j{*B-f=7hZEhVulxRm#sI)+wdDjmm_Gt;$jnJCtQ3_9zuR+=Yu*QpD#GwIdow zw2EjS(Ji81#Gr_@h%ph9BW6b|idYq~G2(}a-4O>PPDGrKxEgUg;$g(|h}RKek-W%= zNKIr+q%+bRStznZWZB3nk+mZmN4APgjqDWJBl4@rVUc4ZCr8eXToAb^a#`f6$aRsp z8qM1jxh-->0g~&_F%aOk*e~G-Iysf;i zydL>$Mh8j5kV#DqNKr$&j&S0u@&#kcnlHGNnu-)8iKJ zD4ATPRT))uJG0C#bIEWeiRY6QlEtWs%B-r-WKNYEwRdL6f=UP-k4)-L#_o}X{rK;^!D}@wAm63`>Wk69{ z*+Z42ye6+idVSv;gVF1~2tTxVS3@7W=}*&~V|eJ3l`iGj<>W$E^wFBm<$X5i*cH6& zs~VshtQv}_hO0)azQuC9DgmFebc$3=QbpkNR)zIqFm%c(B=#8Pbd?#OxMs43GgWg` z3!q;FmSis#%H^tX?UP}NrMQ0-FfL2c;8A)nce zmCAR%Z|qYYR2@~FRGn2_P^GJ`seV=6QQcQPQaw|>RQ;)9s3VjtHKpdOMQVvUQms_$ z)JAo*+N@T=KL_Usjg@wFtlFcluJo%5sf(!-)P)qK)MeEHMKb)AE?_GqsdFNtmmToU zyc776d_xb_B*;qPUGni)*}tsKX;(p3N%py{EBfsYdgkjt$0Bdpn_WG-&%W$h$n|IA ze}n$PYXG}}Y#_UFzBX0V)v%tm)VN2!z}Mj1c$%TrP zZNoptT^?)cnJvO;dFXbt`pib*j39 zy0f~gx`(>Ax}SQ0dayc8JxV=RJwZK1JwrW5y+FN0y;8kSy-EFpdbj$3`iT03`mFk* zI$eELeM5aqeMfyy{k!_H`kDHr`cE}O!`5&$LXA`-*QhmmO|-_MacJBcpQezem?mCR zN>ff#QS-T`hNh0Dfu@P3h2{%QTTKVemzwUH-kScJftsP3Fr1mw?=t#5{{ES{0cYj( zabkpqJ~J1ool2v6lxC4?t=x}uU;6C44bIFX74-W(=eW5~o}~OnqsH&v^!a&prB+c0 zzo$=EHqAXo6f|P*>c(o`E&p9*oUvvJ0wzN~FLi7oHN9gGP_d%}vo2whV z+|QAm&y#<;{QDUG%3}T}j@H7D+AY#7(Ja%f(5%v|(X7*aui2>Ctl6shL9;`%OS4C_ zPjf(XP;*#wRC8Q&LUT%UMsrScUUN}%S#w2mRdZc)Q*%pmTXR=)PxCrG2B#)MjbJ zbSz!Cj-%u01UivUqKnYUbPAnHr_t$j23?dcMrYPpb#|Ro=hDULygI)ws4J{1sw=K5 zp-a#u>PqX%>dNbqbd_{fbX9fLbp`DSe}6_+P^))!m+(vUovdH7t|8^GnTfssjHafp z_IsXp<{sI1v-imMviHmOvk%ICWFL_oVjq_sVV{&8W1o@z#Qs@!l6_Hjnw>5?%f2f6 znSBFC_zUb?vPND zXLRRu=XDo#mvvWkS9RBQH+8pkw{>@Q_jC_*4|R`qPj%0AFLbYTZ*-ZuEM1tMr4QG0 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%0A5bgc zAyNzBK1BblX|#SC+PEYnF1dvC4=7!0A5oh_`CL$P3GLHPYl};Zp;l}{$$+(wQ(pbP zo91NM<3OJ|h>h^HT@R>L2q@nSO4mYq50w3b+Rd=W)#^v6GU#Dk@grCPPwUfAy%Fjh z57g=w)cr;$3|6L4JUic{H+sr147Il{u2DR+Z+teIRk~ITJ#D509in56aU{xP+2D z9j-JeJ#~s^-=KrNi^oOPhy^wV$gi{P(CYKo^GtrMTiOZnL5s_di)(}k;U&Z>hm;#q zF4V2}(57pzqqx%1W`0=nZ#^ZXZXxo6l3FMZ#F>eROF~ey#n9&0Y4zeZzq}i9c`Z=B z3e|%-w16P&h+fl<+Qy@>FRk! zv~jI;c%xZXC@nEsvNYn{=?yh*iRrr#^MT&=t${_2;?k||LP< zZ{+ns?LqR3(!Y=uw2<})$q#D20F`rSpSCJ4E}4cl7k3rQrPlYVr^Y0F;#{DdRzB#rF;SJv7JDY8hf_pmy;fEmE93 z7x7s=ZJjF=FWNWc_Rn{&bnfy%=1WNz%6EjwvZuA1xU4PI86YT`cGgdQLwqi%UDXgB z3h5Ogx*KAZL-aJH=1||j4YBP|Ymp(E12wY_ZMyo0xX!nSwp`yk>s>u~k(x`_YHeua zIyWM&c@LE3hw__3%T;Tt#cka>*(ENIF|=~&v~W8ZTGhG8zN;CEQzJGjAg+^p5L;7R z{Zd>rL#W;u(rcl5Bh*em)SSr}-S1+mSEYrtWk|b0t%gGN3aA}BsCgOGcQW*d_7Ows z5yE|l#G%#>L$n>r`h?;|+`iiiv#0gnkotz$Sg74YDBp}EelsCYjnX^-$gXv${%c(% z%?|Zc-)Gy!vGk$yhLwTh`i76ao3uDo-K?4}+FI_qk96&bLA6^b4(MiOK*_~=y549s zY@C5w-47)-aYj>ddBaerRG_}Q6e?%^gB2Cm3IRl##buR?OZIxqqVA1b)ov{fYVH@( zL!m4ov@*4OqgRM)bpgtsv{Ti7K&X}`spJBsYtTN;>+{Ce!y0?iaOWsqtf*G=-P<-> zZY?~NH1z0NfA_XMHJadA-#(~%h)XW(+e(+Ubvm(mV<=w4#h>#umF9j~IlGm2Q0-w( z7k_(O%=&R(b%m0%9l1uj5X}kU5AucbP?8kaZ8j)t3)N?!R-;0ji`ja)oO1KHrOQf% z_6>cdH}Zi!O_Cupfa-6djcXUriSFiuP`)UXT&#<=CK%Eypp^y`FMDdk(^>|~zlUmt zP#hS~jWgovztG<=O@vyFvf|dQRo1>cyihlCp>FPmUYh)%M)A;#kGO8jitE?Ep_6mJ z#9Z7fk2kuVDX!bCp_d;|yF+R8=pHGw>9he$O#3<&8dP`Vb@2jx0o)y^%jIuHBo^a@vZVxV*2>KK**$DHq??fSl)N1)%gE>ic@3+HLKI zxRnr8ySWRnx%ACM>FRl*WW^6m_RjFtZcfy)v38#Lii?tlyYtFuwof;pPG>=O{EBOz zL|l7Ct%_=M=)_q|5QjUZg-Rz*8RA+2f|^H#ND`{PP_=}*Ee3rxZ^DGjoo0{!)I7Q&5|+8m10Q0c_!=f#n;{g7YJeTJVt!~HHy@%{Eq*e}X% zdcS74_`SIyVZQU_EoSzP*mPMUs)i==)%HynO8@A{>eH|CDOo6qv>H_Cdq z-*YK_zo}h(zn8LU-n!nEXTKX$`hKIUH2v;)xZk7+_j@|wesg7cd;eCiPX_yiu)SO2 z_gVH9g&OUhnDX&!#YaBxJj4CwY-#%amc{Sh(tL2?C4mZ#=i3Dw{F63OiOP38*?XQalb26njhZe?3evEO}`CT8h2O3lUu({ zT;m-}49}c!+^qq-){TbeMT=Dx&3w`H}8xP-~dpFC2U(Q|J zZ*s*?zYDeaSI^S)yL-j=n|kr=7nqm-eseH+_IriPCmDwGITouInSW>gk@;eE4|j?x z+?O(7v8_+kUYlOqz4mzb#mP~g@!ao1h5Id~aKCpN?l%v^?>^Vxj~x14*3$GFw_)F; z*s}Ufu;Tmu#$@%@+=pIS^?O&PdE=%V{hn{}{RVQl-SiwwQKV9;vt#zTWjGrudjiG`_0Ah53k#I;UC@f*)KD%4Ev4NWYzEcsjqMS z@ikyOF=PT;y=Tv1>(uykM))ton>4-z<(!(;LfEX949Sfg#5*Hn?ZnCo%+uzFSRLV2 z$_I9S4({s}&FQRHTczN!SsUX4H3zmY+|H(*U+WWi)241MI5~i4UM4@tDj|NqJ_w3>FWbtoRX4}H*z&DS0^M3xeG-m!MP2VCDPlEV|op;%GG~3(s&MGeMlwaxn zcEi4FU3zuHo6DOOsEs$*&_|SI2VEP%y!YkVULTo=w*o~U=nM&}JKM+~wnIXHtnO%2 zn7+y%w#xeZ3pNqx7a$GHA}B9%91AudRLxS z&tSaqD8BpfwIDv&D_6X)o;|&MEk4)!g#5$rOuTXMjj`G5WBZL=-t)&3&m;HCt!&!I zlZt=-{lVs)|2w!o$Ob>X?10#R4yISEhcsq;FgwOZwOjo3YE$@k6K}4W7H*#Qw6lBS z|MBcy?X&M%Ti^W6r=MPOvxD&Uv-D=IPcQk9(#g}Ew`{)nZ=R($XWsnXRnvNS3zL61 z8xG@0zYA|!e&MUtN%4P}6m%G7_w<+W*4J&gy%QZy$E=cPhoy(vkj2(?!hSJs@yXu` z{pO?RZ(Xd)EjEwXJlS@AL7vu#_g%8xvaB0ydU(^&+qLKR>lW*cnK=?OhomXa1* z_1QFZKDk*fTm3O^Y#X_Uw=!gxmQN>5pHAP9KfVs88?~3+ji(RZ^uNvD%IDJu4^BI6 zydL~?p2^cp|LH@9#-dF_nv3m3tPUH4IxE0e*?pw2v$^uL1Gx2t+wCfz4JwUMJ=wC6 zeXm~{<3)M}x7sTn*KBq8{EjG2YZvxx+d_*j|IYD09sTyM8wOh!di`|D7H>CWb>5ef zo<7QQy7r`}Kk28vjK#EJ)ALO>{>#gby?*7-x^4bWhHe@%=uEQxT4~ZB^WwgrCLY)E zpPfvG*3X=Hz`qk`o2R>?PaiV0>h<)pvF!pc4?L&UH{m}JWoO0;cegitNL2FJ_z?s zS?TS1rc1s^x4IfW@%bv!vyIDxUY-v0{kz%)KI17|-xS|BM&+}+l(6xA>&VJ%xyLs8 zdg|J)zOc9QVFR;W;`2%5+1Q*+PMh+X{c>jUxLlsC@~*7l#=BO3w~kJO)lbEDs#;l} zPaV&@+pqf;!^Z0wTNYejE6uix_-#ji#mdc|z)5rbWKvr`S%+;GJ#5q4x8zsgbI*3d z&c?0`eY<*nZ{LUB`ttIYXX~=^ApttZ2Y^XIUBaD;hIf2{op~j#0TyyLs^TzX^QV*Jx_@x9C6Y&;Ub;{t5Ig8qct(GBmsLz?{3;*)2% zy$jeFM{mO?AM-(NR6Gj}=acBau-eBn+)iZi%Y*p#dc~Xb=r1s<5&!VXU%%V@c@K-t zP3WX|^)KxkHuGKFNwDHuTMu`VXK`&|MpVBO&kvz{@ZQIUcWhd0Tw6@f!-r33`Gl8G zqZvJy-q%5wXS?DDcalRIqfoj5AGz&*mo)kdUnt!83-34rv-+D4te=WETitTuwK8fIFFZq(kYbgS;6b8bPj#<(Q?^&=OO;^EPwqhzlgqk^(;O=r*gH# z_7~pa=9zDk%;`vek$D@xs5VvC{4w!D$-&%c%QctTJo7!u(;bVAXJMEB&u{$aht$?z z+~V^q*ekPQ{G>Da64fi8q5f_T+W2dC2XCd(+qW)uB{yF0ZHzX%KJCs*uC4P0{LRz1 z#hVjZRgfk*_=?%)*;rh;#?x-zTM1&5*$S4fARu@R11*b@Q>BlWwrnJaRTaTz?5Smkc{gv1wLT z`e443H1uQBz}DzCzVKKU7tMvK6zwg#XDE9d^#z${Oj@Tsx)xz4)bD)KmF*~9O?D)O#^S9<_PIz zcBwR0XtIY^CDy*dbcUU=noI|JH@j3_+|k+ga>ihFEPG{)b4TR#QzxM|jT3L%$D0S$ zN9e-pxpmsrtL$4myVbBdY+Y;hEjw0U$S#HXz4Z&;l5+VEFpbu~VEJeZcx{o@NIsbM zg^d?{KNz3d7uJv1A}cu3vt7_h-+B(2h~NHeEfzoVaMp9gn^(q9<7s(1p}*;!%+EG< zf-70U+Xp+(wRLX|p*+pBlN&C#ePQ;hI+`2R7UJt)YrDtOF@0J5k!QMHeVyU0k686Pay$BL zl-lvjD%r|}CgB;M@U|Vib{^igb0?lv<)4S!PgzVRuu&IpFi%k5fq7mVZ>NEr#oII6 zcv8`K#KZbaxbx28=FzYo%+A1TfAk7srZEJpScFJHI=ae+8?%wxf|oTyj`^;?Euv>rOtU zNrxBXE!-N&VmcO1wy@IZbJ%#WxH(txeOoA8zX*3yZLu*T++JR|@AijVD_Fes^1WW; zWAUAiU(7}=zNa}n=WmzB{gO?8_WRmx+xXU+q-Rl9Ch+pZ|JJ6Z;R!E3`-x&}NBQ&> z;?nmU^WpBZF5Y%wz361|ojMNZPcGiJ;P-4>=L7A#{FQ?b|5jf%zLS^oH1@B2jKP~H zyy=avn~yQ$#Gif7y`xZ`&EFSqdNYhI3truTH-Bdjw@qPVjeOX<QD=WJ? zY`#26`Mle{ZShB!Xv4|#$e%~HGB;uz>=bhOo9}Eq3w7doXq$$%9=!bQ?HT;=$=Bu> zrM8WXz^hmA$+Pvk-fb;C%n#eLx>vLDhlkVdyvW1feNmTOIKd4sp^@U|)cYV~dB2>3A?ufD;{54>_V+HGHE88=V! z(DSbOWc9UbyqNc}>EY$st%21&_@wVf6yBV-Iq}v+%AaSna#;Vc^xduupLXY=uFS1r zZeL@~4?lhJpm&d~>=K=_c$&*Y-$f{WzcUQeo^3DRf7!azq-_^-@U1(%_2N?<>|9Z0 zIsLGCuAi?g+-#oCWUu}>C%WgpvEgp=Z`N{78@#`A1*r9wy9?{O<;hl4t*{**J@4N=y`5L^wF}%L6 zGYBUQomw8WRlca1{^7ydy4Ehl^U34$%x&FDT^|((^5h#E1K00``LxNLMb1BG!4Chv zbh2eNpS8}}enoRkc;^nVx}>XTt|9)^w|Qf3h~lR3QY&hJ=x@;kO&I&oEd!Q`e~{>VwguGcQ&mrs6*G};B;eSg|^ z(!2lC97p`&r}kpEtwu_t55hZdg;!T${esPbcioIOpY-}@G8BL6V()14Z+%Q#yPdLi zgqLS{40A3T|T5;oUJeKV*4Y!Ji}W@SRKh<4?Ov^_qCCD zc9Ift~n-O(%kd4D~(ZYW#Zi3zRMOa zKSr08)tSqijjM~chELs{JWYq~I4?g|)5t*|gsnM~ExfiA_9Y^A8{WCU-w)8&^l^CW z1ut*DoxF1J>qc7_cx4Ws^k;9vH#1K9Y^HjNm)=~@{mgA^)>B=KJFvRzzwqiRjamEP z%G+MS!;>#1;7S6-IH1V%r`L`cxJw&`T<&(^dKXNu-!M{BS zSUZ-U79@XPv{-%615aJltg+r|+KI1?%G0+aHqZ8b$lu7vR?taUduewVKk;DCr9Mjo z4xfCqP1C+Z?czlI#bwm3SFf`N%Ho{5w_i{` z?R8eJbH7_w>#n7-rXdTa?T?a-<%@6c{t(}DNP+j~)^5>7i^pI>}GBl3B z>wEih=-MKqj(3fHu(I?)_{gO3iw<{VeCt?0Vk_)$ocvEeGGkTW@;vLwR<4z6{sn87 zWZr%p`)>t|e8TC!IRy`Y$8q?`(-(EJd*V-fnKfl6#p_e%7rdOcQAXU;*7hnJf5opK z;&g>^B00mXsC?ko4`C}r)dl|ZHP(ygMb>t(vBA5YMXX+CFRNq6S0rU?zwCdwGbiD` ztQ+oI9pQ8mHf!H^VLB|H)u$)n)+!hC6JT;ScZOTvU))zn#2XFpA8rpi++7}+KTXGA zBLIC^tbN1mX_)UtKH{~7u?+TAgyqc`X+A67dKcL)-g?pKEjN2n8hG=!UbOOow=BCT zC%$_n^0!{J_1*JM#n(4sJz(E8V(2^Kq2(FgH1Nt~ZHx43NXKA3fGt`~55uiDE~eXI zwO`!X_2TnCVWY>&6W+FfS3dCOX=UNy&JC82eqLF6)uv&qi_Z^_f9r_#ci+)q2lN-x zhHFQ^!MX9-Qg%%HY=5-2cizp$md~-DR;bjZJmLCj@!2t$_9O@ARaWNV3RhK&pLN4;y~|MF~(;8vUbYf~d9FGyWlAE*yDmoeYzduYp# z71hnN@gn{kBjO?dDtYE#6`xO){LdLPUj)TZJo}x1%|HLDzR;QW@}U=eM7&vV-t;s+ zKUs^wmDL%H_-QY%`nH$HKaqZYQ7hZtt^Yb#+qf^@xE2pag6=n&AxK|5-;C9iXMWno zTaiyUo=o2TdVn-~QnnrLYdOXDO^UE_w>E4s!t^E;c?6{;e?uD(rdU9#rrl-TT z>60n5byV-Nhx@Kp<=2T<>ZW%tD0x1a7CYE1KY2cx)-ZeRT_ZVvPd-NSjn_)a);%n` zSQ_^$Ytttq%gzPaU%Q8z(f2`ENY#l7U z_JX%RvV_uT3;5*IoQur+_IrLEY)6Ou;q@EgQ^zw$)8`KV<`#`ddcLuqj=}4j!Rs5t z>u0i;r(W3*x?u(C$SoVfCpQjjJL3qv~_4Jt4 zJ^ea6=9eSauZE9o>m%u^e$l-}cN^uIOxz#oOt^R&oy=il3_kUv)k*6-`N`saMKgKA zMy=ATTkY;dwVqwP6{d|Bn;e{{wHi9eG0jP(SzXQNUAdhz zFnZdHlm7L|6IMrU3UAxN`T{-ojnZuwSYIoB>we@QUR~%Fy!!BuOH=bLeUWtQ4sRXp zRT@F*Ubrs{h5J@?xHAA@YbBe$I*QjX_%n;OZ@6_2m<;JB%(J7zi|Gt(WZnGDG4(a^ z`uo0X?!9UDE`~JxX=6&*8Qd^=E+${PDvcU${^lB+zm{L#aJglzpTkO85i#B^?p-@w zorM#x1hzNa{XW>~xqUa!x-?cPHl98tL%U4I*V33pZ@kv3zSbVIhw^8;(+#+D1>)7Q z`gTrldEUK9Y3yR2`2CixF|_+W?sW6h$|syW;l9{k8vZe!#Wz0+Yk`f=?-H+un2_MX_eO2yvq-)j=t~J98f&G<-+Nt_dU*5aF&n2!zk1s|D;)@LK6=Q$t6!wg(%A1Q zpPkFg(|q8h>D-ifI<|cBu{I67`OvX#Qzs?)mc82AD3%1sm{^TpxzWImo?2O5lm9J>7%B#2j zkgUua8?(gkn8n-Mxqx#h>$AapzwBrJWMj=aN6p%>SIIp8Fqz~NZu}{WO=>Rh8y7nt zhn>O8Zk%;a@$LJni#1Ps24PP~HT`k6C?DH+qP^0?)>O0S?a!9pS)1)Uor8_%bEn&=vHlOdzV|<-uE&2c z4tHN(yfo=&_pjLsHImX(C!7m z+kfHhQ+}mz=fa-UP^c{gm8E9&_P-aNI?%1v+EH1NvM$p~YLvV57DIFjx zd>JO6%0262v`!uA6|7#B)ww%%#+bbJ4Q99F*)HOyZ%ko(>Eo^?!n-DxH?Z>8)3U4L zcWsTIh@a~2u4ulNcrzI~25Vn^1U~PYdGEXVLbc=PSNm4Svxb%zvUO=(OSVRU>@yFX z-1IM)&z5{>=;}##i;8a?ET7gZ(jRts>z+@Np0|e2KJy~>oKj!6-t_0ZpV{l$YM7k$ zHP~3DZ{p^pIcsj>cPw)|6hF0B-;=41zKg%I^($tZXKQh_i@VqL3$>LG9$-AMf$+8w zylup%lb)=sp22J&OwRf&ynPB@9V1QY%m1vUh}SOK8s4=>{@uyHK1)8%7voKR&0eLU z=dk#AGe6BP@i^D#gz?Fy!K>R=QKgUnb6&{qn7&h4#~YK@}^Lyp#EOz#)y@lEc z*4FV~U!!Awi4XsD3|^lBUi-sKK62>1Yjw0jxphDOhVg+t(ZAr+cE*z`kJ9i!K_sn5u_~WfL@MMcqYf0t9=CY;Iv#sf*P-oO3-zVHO){2+6(=OSB zbkE4T`g6`u8I#wB!|v==-}AjG@mkdwx;TEs(~phsS0GE%IthIGn)4y;%Uea&Ugl-+ zkw5&+qtAxZ`M&2_`@-thyS(GYe8psFjjg>x`NNx!753`rTuR?JlZJfKD|0bpVfoYU zO>YG{-EgNQU(UO*t~Z6?f%insPs(@A-3 zzq5C__MtryW2;|2ICjkMmu&j%bGFWRK6;n5ckao9w<1GUPI~Md2VVPNM_K!_A@JJ6 zJowrj);HCWc1n+bm>nQbcEz*;ft1i3;Si8g9j_~^4 zuy&_E@Q(Fv?(8`?zffhoBSV-z8^_^ocbE+6v(sj$T<2EOC0+|2^bwe>*jpCiq)*4l zjTPATg~`pB$RbG3w!o`1Fn-uxcx4Ogr{)Fj=-{V!(@!#YUq_z$JACrdw;CVa*ExKi zJL%%}i}GooOIwTIwzi6K^5OlZtE|%DzcHfrYK%x$ty$4+zumXCg7rE4u9h_)_PoOS(kg#7jdy@XF9P-FIw-*LK0D?yb}6<9>x` z`yjmf)-Rnc&)KEwZgnIZZuMTd+7v#rs@>T@z6?3{t}&=FLj39>yz@1)NAohe3ZFE6 z-;6ystJK!y(7I;hBfM)GzGuJna>8SE1Kxh&w8z?Wr;$$@Yqas)O@QP8pFFb<>Mnk5 z3-9XWU;ENeUpU%!bZSH$^{;LYq(9$ItyiA*rnY^ZAfYp42(NzyYhQK%-uCq+&EST#UGWxvbk)*0P>Y z>6b2^&TpzX;pX?UUz^bD6O#Aa!-GA?dx)M}nL0h#PG`EMpO73KVV&*%@bvXT@_1wF z&vVUj;hP{5tmuIn8)Ni^-FmPyK}Usb{}=?%8i{GV|=7 zQmd?#*!!eJW_h)wv;h)`~*<61 zlMXwsWUqTF<)3fbBXqP}=$?z4XXm|pOIw+`Kl|H*7cyhnlP=vAO1j^Bgz6pogJ*sx zt5y-Z=joJX>zPvCwa00zd&+ye+h@r}>JLKIFDc#a%WtPOJ0(Eph3z6by+r7q^0OKJR%U)l`Tp#$!}nTTHuRDM+=0GtrI%7PAFSv>=3%=`R#Lge*0XW-#(Y;x6kGI?ITY% z>u5X)S}i#xnCsga%bypzKf6npr*?mKw{`g;{c?yB?%KoiIPDO(0ba1v>0DW z$X%YiSRw1ctxXBtdEsHLZ|yeGdFCrk$Fd8ZRuQ_V{Pek$pFUFRRep)+p7O3CzWsE6 zW(TWVlHL<)O{dU3{M#{~_uVtml zp5;~UGu~!a!?VLDulydmkMB+dBwhVh=$=w5?W&UX_4~8C-L-Fee|Fa_Co%5N?iSM= z;r`58&uWNu&$G@{Xtli1>Wk3PvqC#=3f)V%+eo)-@6WU*Kax#0BW)zv&>0&&J7c3z zViB zOJ|jrYip{V={M&RI$wPey1#etE6#S`pIQ4-o;jX5nz6CH7NL8}`*`H$&YAxS-BWJ+ z8FQ@Ho%R!|{a72JELii@duv*EzvsET&0k#a*<(JE5K@OPAI}Dp+R%C=a_h`MM&}k$4 zd2~=8^Q@BtTlXU~_sQ=e{>xev-wdf$*a@L~%6m(HI<>pM_m5j^dUje<=!{1~jYlk> z&?&(V;mK3zXo%3sQ|RO=bn+Cs=XoDH>^0u={L>>(KD1}|_wM70(=qpFezkLDW(BD{ z`QAeJly@oFQ@cN-^RG^e(RpW%s}Tz(l-1v7_xJ90*Xi5)v&B3)>)q%4qtHI}%uIau z8iel8e*37O8aWN*w|QG95~{ZPrqKPpyDw$`wv=ilbWi!&JlnC#YDnW><$X4ixIa5{ zLn#~oHf7^qynHretM@k4__v|6@+Fr$FL(RmYYq2jU*1}p9XQ$}bTm@vXr$2bx`d9` zC3G+0KCbv?!~K~x`N^}B1iUG6(C zUrp&dn{YSXZy>K+{Q9yMtEImh%xh)`rM%~2r}*fuecfGuvBP^$d0$I#I_h5cZyuUe z+dkjNHV@X6M|5^#g!ZXt_g>|E9g8 z-@ErQ{$8Bv9YXh%cWrf-q?9yL=%jQT+V2lh5q@FAejkO z-iA)^_v~JR-JA7(on|;+9~8Q$^xO7qop$ie#PiG?=V+EtrPD~EdrGU@y9(|s`2E@X zD7dy}bm|~f9h5HQB%^cLh3>iBM>Q#UO!?44_msN>P@Z>mB!$ zcOA4YdVjWKNA0)PlfI_(rMlMvwMGcCgJ{U`!q>7A5+^JQ-#jxBy>h6p+mo-)ltQ zP$Rk?CuM708@lsyZ$Bq_@6Yb-XP$U}wyX8*r#am5cZJS+k5K+D>n3#kU7@qWBb0}` zDevX&h(KGNKfOP@TXwt0r{@Tr-Y;~Q?tLZEv*XhWCEeQSi{W!u5386cm_qFYlBOP>V;pFK=q*J|nCi1RX&a$*>{KfU&y~UhXbXLUrY-bVAejHoE zA8u}6XvgqEYlVgQ1}7zJ)QYudcRrofIJw;W*s-kYXO@57^Zos#L|cXK&+Zn?ot^u$ zyIpd6r(E<0p>{24tI*L2p>$$Xo)Olwm*;8Tw$RZKp;zZ$o}5q`LU)DkoSphQ;dZwS zcK=RFr@Kzb`Ja2}XoYhXcbU08d^Ahwy!Y*t$j|H?l+byGuV2sao%=RfS|R-A*u!pr z_56P(WE9~i{eGT*fBtGSt1@i7UHraY)UL?M&)U_m=PZPHr*7;bT5YpVZY;4g_v;sa zFjRayAf4Ix!TjR7lQy2eJ!#G9_{-l+_$TwXFaOye`SlAQ&fjj^SttC?w3t@Wn#S;Z zeT=@pe&MGh<-U@{Z~OK9;=8l5^0%U!JbLbA{I7=-JUgdiE#%kpdp}kW)n9q|(Wlf; zF2A1Nh~JxT#tZzBkP}hK=Yz?s+u?=3Kho&*{-3V;k#{!%tkNjYnsW93%T=D4GcSn$ ziGO$g{xxAIhxRPXm(R*`zU8fH1?lZnsZ}eVytd^1#tZLX&o}(hC4YR~_2d0%t6#kE zqj~m&(E{tz*1`Q&q@M2Nht+f^dGs3l^-eAOf<`wU?9coE+ex8)+-sF)M`H64>y~RZ ztk}{u?MvPpW~&O**Q1~M#J#->AAJ<&k*x<-AL?JtwcijkFs!wt7z9p1=GUiTAnD z)^nE6^H(0vjiZInSS@V*N&0>M>c8b@yuLsG-sAb^&+qV@^|o^FYeC!p(|7uqe))C~ zo!Rk3*twWJHCxzd*9aqQzu_L1=RG}5TYZwAg}Ohta`gQ3PK@f`rME)8dnEeT(J!me zez%!FnEhj4j(*Wna|q}3Jh%E~W=9^{zwjCL3!ky5@bORz9}lqb8G{NRKc(>TR0^M6 z&%*hF%MWhWv$4)*NAavd=qr6;+FHJ~FE-bDW8tK|{VDtV>NR50AFXeO&R^4i%>M84 z^d&No}OjBw|C*w-i1$l7e4J>__TN7)82(odlx?KUHG(j z;nUv2_x3LQJb%`zRv&u)Jb&LEOX9iy-t)#=`c(LNe!n}?dOpAB`Tg!l^7-e_^NXAN zbJkDz#j8By)A3iF32%I(>G*M)7gvSNZ|?ooZ6UdB|15muQ8;<1udvWP{qm#!JwNg* zoc!=BEOdXL_1*gQ{Q37^y58t~rst%8f1mxozt8>)>wlzi*H2!Xo!7NbPOtKy-k$hQ zzw*rT2;{3y$7ZM5yuQBr?`uZQi&+EbzUUOgEdw+6Y8!3 zo6_%PIRC(lt6uiN*^A?`embSnsZRUy`FNhzPL)NMSvljwKVSIoNtfO8KEL0p4d0Qc z=+;QP(8-6bGqe2eHIK-;sE0K#9C*vR43G4TIB7ipn~%;$)yDTUV*0*>HZm?1BVS`P z&&N$0xZkwVf=*Znlg9dsYJj8vni!+7F|+!UJel**)=&H2k$|?9k958=;(Wq?U++Ab zxFad0vD^Rd!_v)n{*TyxY4g0#lCNw}EN##N%0IDmM`<+W#P)u_$R@XLeEs(&neI&X zJqq`4|9iBwag8k1+sXFdPrS2&bSZf|d-A7=J<>XS{?~)!N_;;3%K6{(q4E9hq&}>z z%rO2kCFm9E^L#$^LJZAWN&MIFcVzWE_i43!o}by#WS%|U!GTr9|DKvTr-6f7nEtt? zLJsMYc%|Q;ko-A&@t^fD8hfWN=xQas_HS37eG8XQP{}m&xATM-PIvSu`s{ZW|9h;I zdRG5`ua7kOaGvA4mRb*o7C$c=`iryweBzrwWbl8Xhd8@Fc zuXXtM=Ue{&>-lo<|9W13FlWg6{3n0UYw~|;E1Tb{1i3ng>6^>E5-q0}(-M8lO5t4_ z8ZGPpJIwT{4T<1Ffu5+Dp-*@i2#bAv-_AC9fk;l@%#?9@w zp7q~e*88SDe(ImF=}%ePJGVYoKHeSlebxKzlhIP|ulfk5Z|&pw@b?-|kMxr^^z}XN z+2d&XWE|IjJ7znA>07h2_vq{1j`UA!JZ|ql+t?o4?a2T4HvV}h+ws|*o#1J&-tpRh z(%A9af700T+#QYW8G1ZI`n_E5h59dFY=2wq>D}dVE1ukCo{oU}Jy0M2pY)HXH6Gje zXAS+yQh(C;XN~Ri?9&=g`uX<#DZO{>NdFvjAD_~moc+fhqpx{;KiBu=pLapM-gfNX z*(dcQkP19XZ(qMgQ^8*r_@`gB`ZJ|I`u|yy`afQ$_X7Qz+t&H(n%P;s`fG;2?o5y8 z?*AHny^ZZ1<)24)r=BNuo*tXW=OFz#aHsE2>*!BO`V*9X+a85`l#@DKhp2l`jxNue*G^n^>+~TqwwceJvow3 z&fC-d%L3)~Zyf8d9d`DnKihhI{?^C)C&%H*E04#c>$pBlJ%O z_5XiW3FyIJ_i6q8bp39-ZBu_Or|;=s^&ZEgr+1sb+qWOb@hA81ztej>7ymCk{fOw} z%aeNl)L;F(7u#0?dJq5eIZ@vS{YhJ&r}vWW-BrKN{%&{PS>5^*?e?7qecaN=wC!=# z&w}1t9$%+q1B-e;)bHGSn|~ce{Tyybo~Ot0?=|(OVg2>Xlh*`))qH$@|9{Wn z&A*<`c2?Ze=d{P8yM3MYcm^Mzqn`B0e~NIA%RISa{@SOV6ZxOp`t*u;eExc@<@~47 z`X@ip?@ao4EA;)*&-3;v_Mh6k6IY*X_0#M8$!PF*eSBJbd%xViVsQqw=l}2ed%QP3 zt^K6!zi-Qvqw?3iegY_doS^r+qs%{^|+;cdsAcpV+bR_$0ey{jr6=j`xnvPI>(uYU2NY|6^xt^n1}i z_2mDaH|M`uE&m*mcWT^e)06R3A1`*Uf%JD;4Is%!4Z+{$aAE)EF~KoINa#TF(Z}f> zITYwL_is};NN;QGr1Uo4ZuzrxCtqK3W@x*-UUx;at*e)O*uJCpWc@o*z1CMlPxE)v zo^1C{-ruFR>;1c&9of^?Hiz|noH@3W|Iap{kn=;yM|U(~ptVXubN`c)PhnQjaSIsa zQ|PQA6$yhBAtp_k00Uq(9Dz9u@?qS(p>Qt@@*+pJXA|f>3mq}UgZw(Egd>B)AfFqo z?`9gqAZeUA!*!4!3{!FVK>w}SMMDz6m!Xq}On_gnhEg^>dApTun%lJ>zMU&2~Bvq1h^EX0Tp>S>4JplTQlf`w=~QlPgN zwqdvo^5254Kt}-jLfCKt&~t`L_COFYh%EK))ppZKMS4PJ(Rg76Jap zSd0-7w~Ka0Z|!2$Nf zvfyG+-z%JrU0T2=Lj^`_00Ru?c8LL|A+~m{1I&yYFo)0{F85+h`2nyRjUjMNt1UaY7^Xeqax}YAOW%c{xsOgadqYJl%)@+C_)p zOvPZHGP&!!qyP`c!%a3pxfBQ=Mg@A`!e*Y~13Vl%{fq>l3q%N00d(RBU_?;JX} zHQ?hpeHrVviBGAhX*d`)?f5gt3$^pL45t%SSekqh=q5%Etg)>a%f&A5YOA95yBXP6OP(i*M zM_{4>{0A_h$qc|Z;`t^c083#4xEA26uwkPifWO6a;7VY}4Z8Bo6yV>16HQnLVUQm< zqedh!9=*^JqeUS9BVK5_1?CGDKW4NH_!CEmOw_IW2cR@ zpnWayc_RkkpM^2uBcQx5XW{aO8WI0UAKHyXS!Y=V44E_;Wxne$8YF z$lr=zHkvm8ehS|(Apn2vjnnNWf&6Mi&29-8&mzNh6FBgP69%hB3?MgwjP7Ow{1R$u zItt_{$k=Wq(94G@_N)N=FT@S(7J&TUpq6{&01q2Zn{t3295S?f0PtQg4Rj1(B-Fxm z0^m!rn8{Rz(Oz5E9EnKwe78uX>IS^Bb6%4XJ&dPKi0#J zVF9#`Cz;Lw%r{&!VgbD`Vwt9+puYdcaZClk-Yz)Pgbn8H-S|x-D}bkC`KAoux1Mnf z(+yDWO(=7Z6zIJNRqmMq%2mTydt^Y*KHh4N1fYLB z+ms6A&%i{ce1N+R)=WhJ_Zpy$#Q^gm7RFM5mIju_GJwCCTN%p%9)%#F3V_cUV2qUj z4;rYTDuCXQ?Kog;NUxbSGOaM%PiubGl z41=mn#b6#@HxQey0sez{iRlKwmkr>?7GS-GaR^4EV19mzLm00E{?*tegAu^L5j$+U z4ESH-G^XQV{(a)4rW2rl0dZ4%CP02BbZw6W^CoO#&lG5140OyC2jne?^*v%R zkDtbG?wJO1L++Ll705jeAr?!Z9&6Z?sRZzbapR^efUm;0j0iw)4`geP6!0GL6Q%-y zpK}lvGJr2a)^^Fj_(gN(OqGDIgJ})qpr593Y}hjJhqvJ9J;Q)cjhi=BgZ%%*FPhGP z_V*etnd$(a55?>r0r(Y1W~u;sKXZr{aM15B;)zBRK#qnim`(wF9j-N<2KaS6(R2>9 zrv=KeSOUCPJkl5g%9TJk&;=lmG9Vh`f&CZ*k}(1UgK!L}#z=s#KxoD!kbl^G!xRnp zcg*R=765q$BA5oW|2$;V)DrNC1|t?$0AnE=P!$-bWP>f!bztvRa|n_O%71GNM`A$! z>kz&<4q&hOsKo}z7aELNYyvDY?`zTmdy|lHC?4cz7_1o(0A?A8VMKu68NCKq5&XztCXTmlDppQds0Lh~9 z5J=-u1Ar1yvp_;ZZ34PvECKduD1iwWD-<7421)?RvQVQylY<%ql#dz$asg@pP$5bL zBqEd!q$Q|fKxL>=K;_1hKrTm30IEQZ1Bntf2B-=(4kTLC6rk(yc_7iDW&u?gPXoy? zY97#06cf}af$>3l95n;z1Zo!0Nz@#mQz!J z%X&F#1Ekks>ws#ESAk>`W(oSZfm#QY1DghP6Quz&wS}?(X^7b-(BwlAAU$A=)JqKE zfFjMdfPBRm4brQ|bTAiaGYCjqm{koxAw$L(kj9zO0411F0VSHz0i~L)gBlrTB#>sB zt${S#Oa$6FX3PN+xZx&{2+jB)Eiz*ODmH@v|52E+L0V}h0(9J10p>zuHVOPhYbFK~ zHBD_r02~>fqc_o2vD@)7@!-*641hBGcl-l#cT>lEDgs2T{BYwiIw35NUxjKkb$Pz z97u1$M8My+%-DcJ%;$k*3ao0-J98P(hrkzs1PxsR6k#p}612G%q&JO;fLfX(K^v^h z)j*Chw*YCJ`5KUq8Vmpl-h2qqMc6Q)OW;Zh_#0FM(sCFYXcEk|AdN9Z067A#18D`! z63AB!$Y7P>46Q&~3Bv%o3P*$Xkjz(rszE!By*n}f8Uq)K)x7xpn zv0SrcJ!^^3Jga?H1YLMmbwGV!8D;q# z<~iJR_~(cS>T@e7y5R;)2iH8Odv4{q)#r5PtHulj+zM|dvVuI1c;51PxtRd5@cioY z_=ALl0z>IRk>Ql_!a>3z+M!i5{-GJzG;ThD&e(Mu!k#1`tO;w6sJrj7dlul8$5{*~mF#K2iba z7|$DvkuszlsY0reTI4Wt45@-oBBzkk$XVoq@jP+?xdvZCt{_*DYsd}c77~s^ppYmF zlqJdvwFbkX7LD;JB8r4sGNz&ECs(VYUU^GJ}{y;Akkq9Bsa7Y-w&~E`Sou z5pa_E0-Rr>$ zxD(z<p~P${ddtW;Ju zRcb1`D+el%RgP4itsJksP&rk3xpKDhTIE9J&C2;*?;+Ot5BOVrG3FaCGy#!dmSB-^ zAOVwLmq18xPmo}!34RH0@EHl=3G4(ZMuy=g%#j2Ml?mMma?G6sbfN--PjpEnC3+{) z6GIYNiAszLqsC}3T8s`egc-(oa$^(uiF3S^L{VZ7KQ~dDSe97IS0vUa-bft9jA51% z$1%4PCorptlb9*YG-d`9%H2qOm}r#r5`TA+WfCsQF^QbSNqUt(iPs3*I+^q)_j=L_Mj%+jtYh|g!IK?%`;xKA zF3F^1?__#%NOElQu3h|OE3PQ{OtL)XQ$%0NP|BCwlPS-lM^nzFTuhlxxso!May?}+ zMeKDeC4jq8aw> zf>c>*WvVh2VcnF9wAQ3{rw*j1q0gp{r(Q^%O1+#qn~Ju!u)dbMkZNgtGu6s^IrUEJ zTI&5&H}qyI#`;kz&Khq`uqIlQtf|(&P#D%sYnF8;dY{lrh!rmK@In_M$C__V5(=z^ z)*@@MwZ!@%#ak$~rVB%aLkO8QODMNiSjP(a!W7{j6s5JwS|n6k=L$8}T5C9U7gc9% zMjf!0f(w;0p+Z#ODp$UuwJyjp0;AWYQ1LtB55&g-Fm}% z)B0B0mi5o$~cTcCL zXYnkse(8+#@N@}}oz6`kq&5s#VJ)eG^z?LbdO^A@y)s>y-juFM?@q^K30OJh6Y4})y{dz^YLorPUUznQ+AekXk`{eF5iWi$Oz zIvWemFv;Lxi+Oyk0E^BLVpp3)*nJsdtW|~tE5%|n@EJ0!O9m;!%u9|{V3kB81 zp~h;kT5L#$4m*I|iyp$VGKR4u*iq~lb{so_y~{hmpTu&xQ`jF7)7Tm8EOrh%k6pwr zVJ9=br7mM{oL<4+rCLx{vGtTS>^k;R#!SWrRznF!Z(^@zbW!>!^BJ%8Z((m_Ky2VP z2%Du0w2g($?Ti+KhZ&YORyGikkq9Y*lQ1?oo1dt=MJLGpWJ{5pC--RUKPbY9Xg2$} zkEo8K6I`OmghCe4L<}3I&1u9LGRuZ-!?EGp2yBElA{()d#765CD3aPRMKT+?jnXDc zq_R=l)bQj68XK*R&gON*fX$E%-F(<)#D*gpwW%_gwwbY+wMi7s*{FE)HVZaik{4~< zJeF*}=Pui<*vLgSqE(wUn{}IiySIuqY&LEBM7POXHV_;fHzYbK8Wo)rO^A>0T*q8uE;*N$8<;ypp29J6qjINlGq_pY9FAeWfLp{Z z;W)X%+!fpdURLfZZVe~NUB@xaIn)i@ChliMajrbKCKqDc%!k_|Y*o2P+tyrdF50#) zcPRH{uBGj0?zvoyE#7t_mtcD_muO3}4d+vBX|}I%r*p65&gEXurQ0%WnYL_Oj%|vU zz;-cLXe+W6+e&Puw!?_;VYhO(cq_SbTZOIC_HM4qR&A@X)!H_Y*K;4_ZskJr5P3RV zvpkEu19@8BfGxoblV_Jl$aBx5=K19f*$&%&?J;6IYCC2-ZaZPi$eXkc&tvCJ*-qQe z*v{I{+0NTWa=#-l*e=>G*)H2Upt*U1ycOG3+cn#D+YQ@I+bvs&-3bKT4q;bg@CyQI zmw5(lXJMC~C(g69v$8A58z*DzaCQk)ydA-gX!nbUERSSYnO8BS%xlVH*|F^i{85At zmt)7b6WD3;gmxl3v7N+DYA3VvLd)$Gc1k;yo!YKDPh;24f1Ny#cPwut?`)pVZai;| z?9RWCH*81cPvu=CkJ=G=V|JJGX7k=AU&~wJE#!^c-OO9go3MKZJ!v;(*TNUOOEr` z?S3Y2*lpTv*+J~#_6U2VJ=)&F-qPMhVrBn;obN@FVC=mmbO}p>vyYYVC3yQ33Bg_@ zA=;DdsrEE`x_z!hDq+|&?aL%Ls4RQ7J;$DJFR)ig>LqFk8ZET%kcjNX_7Z!ky-p&t zm)k4smG*-YmA%?tV?Qi8BhlLH>=~pn$$XY7w6X6@(f=j|8l7wwnqCrL{ZF8{VI9CaX~?Wte~<$SwO%y6=({G`0fG{exTr30ToZf8|)e>I9o7YaG_wT zfQ}!gTrQX`VBoJ6(7hH4ZWi1rVB%SLHlBm$i@>;+z;+OE!!e#slzRe5GEh|(M))!XsH}ISIEj+{l?r^?vvJl~L zsSxRacCc`;bV#9EIba-c4ol$0ia=?f^rG~x6z^bHL@07Eq89lTF^a;A*hOz4xJ3%D zf}+bsH;V>I%SCsJ){58;_lq`*-sV0kf)~F}LKj;VV~aTs_+po0J5N%vcd^icUMzA5 zDP|SN7W0c!ipTmz#ks{!o@K>xTt#txvAVdUSXVq)JY0OHc&vD`c&6B%lvPq(A}`4& zX-oP_);)$wPL_<8oGVc~XdHae6D1c*rb~Vz&6O;c+$uRp(K_fHY$yW`ZKRcwyCp*o z>m?6Lwo0HfglyQsOm;wqk=e-zGI!aC1BZmCj5 z^d|X}CLND(qexSZ>HO8wd!-wtGmdrqN$RZQoa00A9|F!h8kHf-794k%S(Y6v!<8*M zE;%}uEjz9_t~#zct~+ixZaTh2BA3z10?U|XQDxvUQCVUc!bw<`Rfcx5aI$o=a>6*_ zoFrw%WqoDm%I=mCoXpCJP9!I)QwEjhM0a91G0K@vEGM=T$BFMGaKg$-@=J0^g*EzM z1+K!eLg+-SAXm^T0xQD3m=#eKoQlK>VMSJjq@uV&ULmGRoTN@Q6{-rEQ)`8`qOU^k zq;OI?4OOU|)J_^Ft<%Yh(TZ~w%cOkj#fmExw<>f_15O;TAt$p+i^>C)!%mn=yUGzK zLM64*uaZ$Y>NMsQUODbG;WX(q?Ift2ahi2XubgxGjkH{Or*f_Ge&uH6g43eYlGCF~ zc-6AgijzszE0k5IHK%o_4JUNfrqhR&cNM(~L%x2!$CSi*Zi56EERLiO>tCiJF z)%!g))!o$t)yJwws^6!ctsbw2I6I>+R8LjMpueDAuAZ&FR=rSNOuAXUTz#kdL+)Dj z{p!tXl;@*rcn!K{UyW4_+S$SxTVv_`3m4;zbH>-W)R1cWJiKe@H6b;unkKK<8h*`X zQc8`e<|2+eQ=O$XWi^VLCQ^Nkm``)2JF9CL&c{g|HM*L?n&BFjGu!!0%~%b` zneTkQM&LYIbE#&g=4y@5S>!BsmN?JX5J)#_mTGR-tk&GC*{FF~1F1EtMb_@FwX8i@ z`|K`Ut<>4Ec7j5zeUl<{ets9ZmR4Kr6}=&JsV%OR*VfdIIIC(~Yx`_v7()m{H zO6`>MJBYirK3?m!4{CRNLX`|&_d_y1Gs0!MZJH1=SM$JQYi=qe5Jo zsB8+{9nNK@&I)~yhj$^k zT&BpF(SEE;w{e{j|%BOCxF4rL}&}W!@zpJz9URexm+j{dE0;%a!^N%A(7X z%d*Q{{WNdIW!2?+{bK#C`jz@MmvxuB^&2jmE?X`TSGX&}73PI>MZ4nB>-7)nEnK(i zEnVNGSh+$QFs@~!;~rHcoGady;7W9*@d#8z!@tR94HgXt8ZZrZ4TJ{w25JMz)s0G~ z`Zf4a7s<1TZxM`!2+9>+cmunE>PmB^yK);Cu7Za22600{1D(orC7@*ul?^OcWdqxl zzT{R6N*Y1XahGPw4SBb0CRpu&p9ch?DC|s4UD%Z0OYS;0G3k~y#sfGo_ z<%Zb?jqA0Bg$5$}X2Ws=34NzQ>#B1da2;|Tb{%mYbscjZcU^0kaJ}C!>AKmlh!RzDtCecmb;Whnb#iHFB-N(t zmMetlt)iWpek#U!3rO{y-bW>i;IEaDP^O`KOPBW|eZXby2n#U~1gw^c&o zs%ixxB8rI;qLe5j%83f1l6X(Gp;8gm#8rfbs3ksBK^l!3k&U|>b;M=r0C9-83?K9u zA&wHqh~vZw;u^xTk%68h9&DT|&~6rPs>aqvZDU{KP@|>W$wn);(MF6L&h1btIZcZc) zn&ieu3(!{@=Nhj!E;in3q`J}E)+uy1h8xpurSWbf%Z=^Eaa(WXy9wNcZX!3ao5W4( zR)l`gxYY=4lDQ#v$=wugN;e@|gjTt!-4IP`1G6TLn?;k>?R$jEKh&y;7n)Z6nt0(qjuLZBqy`G7?<#jkVkDKmsJU*Ut8s>>e;&{T~ z?%#N=dVLf3H7pqVqt|_}U%j@x{)mUgpEzpd{Sma)Bg$jm zfw#=F!V~3DW%hp@Kk%kn)iC2>~AI?@NW0ikh{pE9uD5!p8cLk(laEgH+CS6 zbhm%V)7Sfi=gt1u{xhC0d73njd%o^@(erK38P5+qlf18a{@b&U>^QLKdB6Wl&)c5H zUT6Ei^IY>3dSC7T+4F(te?1@eXL>`(hU5xw6Y@TiIoX2zEcqbWh8#p{^mvZMB;mm8RnX zF9w_ocr9Qu;H`km0q+OQ1$+{4BjAgG713SMy2w3~n#sr<$UK`lo;j6yCo`9a&XV#J zJYqIEo0cuiZp|LbUd)Dy&BP1hX@m68Rs0%$9e*I~P#7-EAfHRL_igX* zyw|*k$v=CaCU*{`Cx{aY5@ZR=gr)>EPm?f^a4caTZzSPt!g#`kgsFtf39|{;5*89} zCM+kcCEQQgOn8(4Pc%t%=k80iO2j6HHM5&Dnl2tX z>%&ZnN;*p(O*)q}k#sR>I_XN%T+%aMi%EFit)!KtyGiRw50bW$paO)TgJdSK5F8L- z1a<-!9zozPpbGp1JtT%8T)-A^1p}l!Qo3ND*GE1io>)*IkO?XUNaPaIlFuhkCSOXPNxqsqpL`>EDfxEtYVy70jpT>Pkd*HRj8c#(yHhMv4yNEz98-uX zm6||vqmgMoG&(Jq7EX(%acBv&6j}yNOnaC7 zAO*u`@}Q|^sn2=k(~4>3wAa-NS{<#4)<)CPdTE2Sh$hVYKNxDuh^Zkr$ z>xFKq@;ymX`Z{`j<g(#&>H7ldSgOvK=Y8Mso$`Ih z_loa_zVp7H`rh>Y%6G;0d*6G$|MA`Q{oNPpXY2#_t#Ms^5=(_x*nL z+wwE;H}W_2NBi&fKj44JALsAj|B&qB@8M7N_w^6-5A|pH$M|#oll*&IhFVUw%ru>C zd9`IwI4nFP9217{CWV)TGs3IFdEpJ=lJK^0RVehoC)^M|6dI)=({`s>rm=Vj({O2y zY2-9oT3{M8jgyv`CQO^Kp0sXFo3fs^&h+2o{zc2}mNC-2b*_J*zs$eFzsA48U+v%S z-|gS;KjeSH|BU~V^{b?p{MTE?{a^RL=>N9Amlv}2j{)Pu=7;wmK6Kdru>T+y3AAulfJ%|G@vh z{t&t$-GpvVx1c{uKS=+BY(s}rc2UT!zO7~yJUyZ{p;g#g&|2E6Xl-b1Z5?Pm-g>6> z<<^PT*bIIKm-|6$N`@$7(%qS!;O&EaQB}5&AIwH2p07 z75W5ygZd`@68&BJ!`4|k-sU6vb^2#?f{j7j5*^WI-u5;94*duEI{g>=L;7#jKj`oP zq78(yE5IyZPrxmnWx&3+_ejqNU<2#}j!*~zR2#Pda)3_&JzyUBY{qRSY$k1{ zY=ojLkwjE1YHDk5)3qIGJK6SP+j!d>ZI{~KYny9RiADmnqKl%=!&gLeqU)kX(Jj%I z2%6b{7?Ej~X_0v#6O(C|Nyzle49{d|ax(>)>6yn5i!%!{Wto+k%FL!rO=frIvCNUo zSl)%q%bBy8eBQOph0L3o%b9DL_cK#?o0*R?MLc-c3x`dz_GMXRVYBdAE?J~3?<{&& zNER#WmBVGc*enY!KPx3mlvU5m&5~x7Wht`iv(#B?-W!KIvUFL4S;JXpvc|GHc;~Yw zvo2-LWL?eD@#eE`WG!Xg&Kl&cX5Gu$$a?_%G+1ImgWv^u4&0fzQ<2}gU z%0`GS#0SI}v7MM8b{A8{eqx50E#`^^;`6+8u~=LnmWeCHN^z4|BkmRth>wXkxg+AU z;&Jf>@!N-|#FxeIAD$Io6W+2Kjv9r2p@zIapoNDR+0$wBAr%dyJA=4iMs zIi#FRJntNOPDl>%g>SXQ*uN(GrZg!X--*=BBwq_oio5a#$9b&4)`|UZop3g z8v%PLzXd!BfCWBiv!oybQGvSy_Xk=9S_j$%It3B~Jp;W1{R0_+VS!PBYTO7{i__r- za4wp-z#$wza2S^ym>!rNCfap9U6 z%>=G9kU-G|x={`X9t%7bI2!nJ;5_bpAjAA)(i?$Of$s$7Yh;=#O}(Z?qt*0lUiLVq zIjtGfEaR>OCgy$^I3M_F;LX6V0#^dR54;yhrub0)6Sx`pdmuE(I0zZ^Owhid=YlXn zwn21?W6;N%6^~$wYmkL)D=(Zv3bL~G3i1nz^g8Sj6jbKH42lej^@M^jqRHDb_Uh1n=#nl&!E{2G3a)6lqO0Wg<*GsafYF# z^ip18Fzv<}C)!_UTx1MV-e!y-W*8qZM%xGMj#I8NhV1^$7_nPqe94$;zs-Oh`;M{3 z_?hv5@m~fc*f7{6*gV)G_}Sot!8XD8VCP`>U`jA8I3PGAI3jq2!VZoPevy(GoEj_& z&Iv9EE(w+gFSl0**9SKTYl6Fi`+|=I4+ozPJ{$Z>@I>&N!RILV+J9-^YKL`f=F#1Q z-Sgd3+?(8wySKUbx{tVj>wee$CwD6kZx3sa^BxzP>^#09T?&3T*s^0b_@m(K!Jh>$ z1%DlUsKc(~POx*w55c64^Z&n9|r#s3=i2A@*2e~WRkKc#4_ah5NwEj2qDBR zgdE}%LJtY+V0Q$Egop4tQaYkTI3WokDIpml;*hr}nH~8d#UYZ8@{p1aMMzypQ%GBg zHl#PCvSTphct~A`x??2d#gKC$ogIB0uZ2v89PM~3>6m%nMh&fBtw;Nf@#KCUydlk9E@exV}n#JbzNo4J>DR(Gm8H{5rJ?hmyJ zy-YdgVI2xBKonf%nH5+R94N3WAQZS4Pz(GD7zH)_v)u54ajsqH3!U#%oI;7Ao}u2M z{-KP}u+XT`IZ9k8KlBqya%gs_B(x~BEcErxs!(NUW9Yk`S35uH{HpU#rvSgvDa8M` zQ-p_V#rR!X2_CJL;`eK1_=8$G-d3x?6SS?NSzeu?y3oU+Hz>zKPlb+#z8q>xIv@H* z=ogf!(2zoYAyXTzW{SE1@5T&WC;)dNcH^(3Q~dL+^$DCv-FP_fRNv znPSZRmV#tH!(1ipV?M|HHX9^mo@Zx^l>-YeWFd{}scXCy^Rmw3CSmePY#oYYZDl#-=1>1`fU8YSgO6Qx3F z>R^^sA}yB6r8QEOv{kB=4oOc+N2TYa6Vhqv73rMxx^z+6%D*LDk*-T0NVlZWq6=I^ zky(*N(SagNk(61=tYmIbexp31z^Di+in^Ox%TzI2m}j*e%pT?d^CP^KI=F z?HKb_<^|@znA6Pnm{*w}Gxt*$n4dFmF~4E1GJj;=Xa36EVt&_T5M~r+8io$r8@8bR zLVH_FbRaoU9cT`MqQb%SB5~0wPgYb}q%69}Ybv5UXo|Xv28xaqjTD_N8ZVmSUMQL> zVmizgUFKdZS|~E?LU#GM@98?w z%y={>DxMSnMt@>_E=S4{#_!`~#anU82PN^v@$&eZc)r6x*YU22u77o1?)so>zU#BD zTV0`HR#a;$D=a3A83Y~@&>im1aYuBwhn+9( z4*TAtKWr%MMA(_Im%_%wBo42KT?~6WY$oi3uzlT5)N5h?4tu_PG3?8*+hJ0NdmcZM zh*VGNcVXVtwXhrRG6#RE)a&Q4OT|}<=ZkL?FBRV|UM;>?yixqHc!LKidB`&=L6+<; zu`D@Q0^#FI97~8L;Wpv;@ThL*@GB+m;goP%ctChactkjZ$_@{s#)l_{r-qBd zbHWS4OTy*hQPiStd3SYqeRy-YCcG=WFZ@XOaQNx)v*E9VPlU%&-weML{%-he_($O9 z3)jOx3ttNVI{Z%f58>(zew<{-E+_`f^u1TWx2AvseE_Ovptv| z`yNesclkj1vGS4fv*qLE7s{u~FPG1jUn@VzUnsv>{>tET`5S|G%HJMbE64Hgmv5Fo zDu>HW!y#ZB&mimeK0C89E`C%?y^#bA|j6r6gFn$y8)jh~9saRxcV9Buq}gBY$I zcgm^0C&Qgx$*l}yMX};od{#0mot4d!u!>k^R0W}oRmD=W8d*Os?Jv_skV`qs%EMjBO9r%kx~5lDh~hSo<#nQ zs->#iRjXC^sy3=_^gOI0MM4x_k>JHg#cqYA;-JDWGAPnfK~#_xG)16-sfbc=6heNY zB1<7r6f5M48ih*HN^MnW6>uIivQIIjIH}0ucTz_c=M)o)i;Bp|X+>=0oZ`A-QE^Kl z;jbu6cy|@c+?AgDJ-_wvA_b9Yky(*>k)L)Gb7Q9(gPB*TFvq zjgOcg*?;8F5&I*qM<_@9kAxnHKEgYadL;Wu;gRwqwMUwdbROwHa{R~(N4|+%jr=k4 ze&i|YuaR4k22l(?+!^7FbZ*ocMVUsSqxMGi=nh1UQV&Jpq8y@JqCBFgQNB@uQK3;U zQ&~|lQRk`LsH7-iRAy9e)Em^oC|OiRR83Svlsc+CsynJbYAEVN)S0N4qNb?tP{*TQ zkGdH3cGOJN73v33*P{L%wHQTkCOUr^bvx?2sI{n{qaH;4HwqGM7;O@*@=}q^qb;JJ zjXoG{6a66-AN`^3KOWA}zmnXeDbcj(fas9u7O#ltO%HZ-d~{-TYP2XiC%PcIBzm4I zkFJick8Y0EM0Z8^MIVVCjy@fIHu{z5iRd?@<<1IcrL)Re?QGKfOs{3{pOgW-Fs~lHODQA_}lncuH+?&c}l63Qu|HwoV1L10W`E1R%l?VI!G6Rp>@)C$#h_w# z$5_Q!$JoU<#Smjmd7d#}QH?ykWBg+nF<~)LF>x{cnCiadnDm(J7*kJ2653M|QxwzT z)#KGdDvPO#QO3BE_Ii>?2RsjXHpU$8bF2@npXzgSf448%{c7JQeeb(3_I=d{^SIOZ znmfYd$G(le)|k#1UCiN_V==0FZGB(;Q2hk|Wc{g_(U_NG&d0nFGZphr%$1lAW9DN% zjky`~Rm@7v_c8Zk{u8qq^Lq?5);Ja!yFz^?_Iv8S*ymy~v9_`IsQ;ll#%@wwV}GZT zz(tr}Y)~vSHZnFgmKQ6CO^fyD&x*~9g?dS2OJgfzYh!Vq4xR!15CgkrQnOEUU^A~d zrMa%Tv$?PNX!A((OU>t--)x?4e!uxz^HTHA%?@g!I#`{iE>u^m+tl6a!|Gx63+i*~ zMfF!|Xv?ma{VfMuY+F29yjucVm@V8EQAw#8$t7|KxHMTXowX5}Ct(RNpTR&^P)%tDge_C;E?rouMg0_sd+_u`bf4ALi`?~F? zw%^;}8dJ?~&9fSe#$LnMq-wG>uW2r7-qFlzZfL&L+}Hf3F>beMr?yA7bJ}~_UunP4 z{#N_-_RrhDYd7h5rsJiK^BwPZT#YsY7HccCN^OVsl=fBaN80bT>)KznkF*J0!miRTMOQ;tYgbp-nXZ?+zU^A; zGVjK9J9X2$L%ZX<1>G6lx!twh?cKWWH@Yu%|GWEU_t)L4-4D8d?}qo7_PF$T_5}5W z_r&z@ds2I3Jyks|J=&iBp0S?Uo-ccT=z-|WbZ$DTE=0%CCFyc>QeC;OMyJsY>Q3lJ zb+70y=-$%J=&tKN*L|nEr~5^>rGxc`^|E_;y(zt!y+?ar>b=|hbMI#FAHC1@Vf%=E zetl(qs=l_q?!Mu^7y8ciz25iVK4|~0esur-{)7Ft{e*t+erA6w4s-ro_Zk~=jk#a(L+Wb`E3FV1P$5}6Ya^}dH{1*r>ynd$Z1;R1yG0Je)iO}Jb zCwRlJoyZ=ZIq~U}un{L%5g)2Son!>r?k(}~9ePB#y8PoF(TJic`N z)l+XAn>lsoMBeF=k^bT4ks~8HXI?+~>k093i({`G-#UsoX?^OGWAC4&9%G;R{N%GI z-yJDC?syV&tnui3M>~&VkH0WHeEf&w^GDwpe&y)JqYsB39``x9YuIx5{oyZ;E{^Ov zaq8r~GpH9RXYL#wJ8d&U8F}~gD~ZJ(Y8+>eSCi+fOB* z{QXq-am1M)PTo3JaPs&m_A&Ix566B#`PpzZL^0GjR88&}^7Ih9-{NNvtnkYRng^_S zJx#|4UKr>f`fR`|d3dOH;KiYdl%EC=ss9=xrdhX2hH4KNwaME)8Y&$4L33j$cj&vr zA(GW0VSdTbT>h_zmkWL#${ws8yw`NS1a{Oywje|Dkw<^(-h1?yrjG~RD`TrVs&I;f zM;&$PI+L1neB#kJj=X(jSvOqg&`0SD?h73XJQ{J7a})~R)ei%2EV;rd@WlR7r~ybN zf-ha@`Plv=agS5KgEytNWu|d@o!I}?N$h{!K+jV>xAW8ct%0>qW7}gNYbEw)gZGf0 zAw4dkx2n&>khV1*>up<)1>fY*w?I$3|A)r@h35XR1PVz9w!vGe;2EJI`AKU}+Dz|1 z4SSkD@xOgZ?|1wExcm1w8_WF-9Dk1MFy^pk%z4%v6d9pm&DciRktx*JScgebhA5&U zY!u~uC~9(OMn;UrDJG-XC_+Y!5JHV2hlq+0a?ba9-_QG5YYp1_^ZNZ>-+#WZd0p#z z=DOea`S{$=NitGBrf{M^y+%5U{c+I$W-iSY!)g3b$GE$Gzs!4N>O7C8OZ!yPkznnG~*3 zK4vXaS`B|a3!8|N4?}%Wt^zKBBgF5f_Xg~A+pCot>1OOF_$b&HrKqX4p3{YAB>nlK z6#4L!oV)O=YGq1gZiE<>c~1Bn!)>Z(p)SfGIDb@nMtKHOPURjPt5M6hmw>x43~loL z%s?4ua2qDuX`HHn?|_}z3WD8?V?`QM*qPhBQQJnl36xUxe&R0tNyKTiY%^zyG}>hx zcWq*Z+q2M`MR~P~{z0`!EsI=DztrabnH47Ln$l{9LAK`cXjk=PBXwtj@@>RB+7-x~ z*Sq@G7B@<|`lkp5_a7hPT%n~u(NBUD5s9_rIsZSX;o?@d{8nIG(DP-#N6tnriyKp9+ zk~QMIDO{$(@;T8nX_hc-tNSoZ(C~Ms-fpJB7-60({D@(VSavn0QVk4bPdOT!qW>Hp^nac7DsTho@*BkuM*IvQ?)dZPCq(cMBu zUJcj8B4d6w^B(L*{iJ%IqW|56!?;x%A-D^t`^Ny98>oED*01A@KMyH8lM;du-Gyy$8Rr6J z&=Yrj1wt@ekGa~xv-5Z-h>;4j)T#EKC=3Z2(RxcUG%#UE$=?uvlcv>xeHC-)UTEX%?agvY{p`YFxAuk z5s!M5N25-R*71F{GBVs~JTtAt%35}3vJd||IjK-!F#KQ+@U`Ow+vdxkPjn18Wq0w_h(9FpcVEk?Cj6g zPIfVU8M%rJYGrq7Rn@JH9GE@--Xe1Z$J<#7|0s+VGx#6K!CMcDZE;sIXrO;@O zJE+olVANLcpk8UFKhQpn_{~%pXIjB4sDMIifF|lly|*$`Cwp_Y2@WA}9GRt~+=e%y zdvuT9Ve~Zm&iuk8&V`xU8?ufb|6JjpxCfZ>ZJukU-?CPD5^p`C`~}L$4B@6&kGb() zN}AhxWHqhk(-^e_xiWn%@Q-c5qgeGkQW>A)S;SZ$HOe&ne^A&=w1=bqK4I>)xC`5J z$iXw*5l&;Eyv#bjRWZxQ)C1!&<&aV#{llzPnt2uJMX|=D98!8a;2hIv2TlArTrbYT zsht=ufjyjC|92O*@b@F?zqBSaQeyh0na)^A8-C6C&TtRZj_GSm;SJGBpB2B9#)qdRn(fytH^YxvW^U|jnM$0;s0ZVG z-^?ZL#~2p$OQl2Q99Rt*|5MGIc{S7VizndEj6L8xFkYDJC(}Rq>dWQ-1X`~ViWzDT zuP!~L){*MtU6+k9BT-*9e<@`>Q7dLh6vqqx_G7j(GrX~U24J>cci|O(ea`Y91@}fX z7k`(pKs{D3H8X}li=lRD=4djnR?Rx0Tm;D^*vY9~fODn)Z%`@4M34;n{<(?j{g<06;`J;k^C4W5h4@v2c~iL6P@ zvSPEypIIYD4>s$`ET5WqJLXS$Rj$Gbb0=t0Wz)&BakM?ln`Im|$uqS{6CWrtwB5F0 zna0tEq78+{(OQ2fPQMSk-3<9)-Y=?Q_gdjl_R-pJSDLklQ*ck0RuP6>r&?yb71p+S zhE`#nmw8(L9J#YKF@03jGLM#InLdtaXW8zE_8T9awwbOyiWg6K&PAa-P-GrWoV9pD z(@fG9Pgp#myExMP;dLoq&prwZ*H17~uztdNwkye7Wi!&Zz+W!ErrZHdh+NoQ>{ z1qJ?)_xn@zR-Rd=yZuM)B4%ek=c1Z9hxce0;eG5cwHifcctH{K0Q`!tZytUrS3jQ#voR z!fK>+Ugjn)wHyBQ&CEK(HGLt=%(-kg{m%5~?K^)QH#1GwVt*VCzg>fRrt5lt>fiOJ zYD3;WPC;FNKECw3-qXY^wPl57+1GDkmXOC^evABRsq6RqtY16h*J|XQMd?x<)yVse z%lWs=vzZ@ek#^Xh(yjjbaNcXCKGJTMeT=^}F8Sk_?N3XFKOgJ;@rKqnL;3Dqv$hWV zT{{*%R%Fyi$D$H$*^l{;N+y(WyT6iUw$5KsGe%1s>~DX%KYfj}%(6P;kL_cBY*+p5 z^lIi2Zn0N0-{GS}{v5?MG1I)wpSLi-cG0hOFIqm^=&SGeLw?5}a(crpHY0DJ`&00b zEVBmZ`n8+>cpLb&<$f)}U*gIBcK?>&b&EeOU(Pm1LZ`pwEN*D#L-nV=mj5WqZx`Lg zv^!|~h1=u<#b#|C@wbSMg=QRO{?Ychzh$rR+s*Z-Z--y|)}Oaob4uq-DWX#!ap8o86Y?<9aq6Dn`PJRYv(X*y`M~4$cJZF{{_2~Mch+6y zzU-OeY2nNBbn~3`{q7Bsp7QqejPw2JyY8FjS?rGX{Kuo@MM=wxRu_F)c&R9&$Xax0 z)|pvn3Mal>_-@@fcvV{AV};G;G%e~_Y?WrpQ{}hi8m?J#qH7MGe{HGPQ}-*sM68Nv z?r9|7CFNR2;Gw0(F?(Zj;~IqJ$7hF4igzZYC0tL4PAm>fODt6{Xaf?*S<`Lt;jNtI z&c)WtPOt5PJWs=0GgDW}(GmHIO$v^qw#(rPm111gW6pGup6aTB_w=uK&(aQh8Y=^} z1ibb5xV+yxS&x$XhgQX$jHw8n5qmiHSnS!*K4AmG`Y6#!&ZLuJ+mq&5$E9{ji)|nmb|T z1e;g!e&N|VVSVAJ6Lw9oN!z1yZM&6Ry-cnOuZ*apJ}gy4S4AI=J{j!{O$!~SEs=Ar z1u+|AMuk>{=3Aw(F7Zd?KJn%84%^xI%keW3DieyrW+cWaD-$PKE5pu)l_>k%wVk~q zW+>j|F1BvT`N`{){>hV)%jE0HGs26)9VtahpOnEVwUkLIMJY{`?I|0rol-A{50bRB zQsq>{B)w6DPs)y{l5^C(noXJ%lO9(bHbdI$lu~Rdr?CDW5n3Et8d2kK%GG*HxmZx| zRO2tY{&W?i%wt?{%X4I-4qCbn%7b0M$k$wvQax9;E7#T8^`L9GYll3^wZT>5TIyOW zPjywePPxvxLNY_78mP4ea$DCHd7A4J*H+i7u4KiI8ebuIbrre}y7bIC$_ZCOrd7Jn z)!VgC&Ucl&7P{<;Cgr(WDh)GNxl}19HZ)>;sxHk-U6v{-+aq>G=+ds#VfrXrRm7>( zu)oPws;i#Mf)%# zjLli4>C)o(mGQk2`y|@%hUc7w0^D?P*)0z*Lhv^G5+zLOt4!5e+L|d8-)^~sr-N;WHCm#6Y~pN95U_H}SszO=_%^fcMZl@$U28@<4U1$BM67G*&NaJCqW+ zL~-EhdR#sAwTNr4pYcTNVNwrezdByMp^WrQ)pjdmJ#+MHo_Fy^^f0xCv|pX2?3XUe zbKNDLSiGgbv3^7us6?Vvc6)ZkoKs5XG*%B<=ctplCE9qkp*r4{ps#i>i6}$Kubl9O z#~2F&d1>kD6`P3BX^D5e`-;1v(hn&gqHI+gE4}b-07`Xx{i3J2XSck^yH*{d+Z~hj zGWApGGbtSD?B~hwEYMbYH+e_f7I|tZk9(F$vuwj7O7sYPkz~KTTU+lw;$E+8M(Li5 zi1E=m(hzN{T&9NLnsGfv*NO|vw7!UCzjj>iV7u$KQZ~z&`sgR3j~XRiF8cUF^w>Je zD$!@{N=oKY*9zsdTuW*c+RmC2+AC(1=8Vm^4vXz?9Ti&~TONBown5xQwNu!E_yJ+# ztOeG=Nukab;kn7n{b?NvE1vo~rf#uYr?n<5Y74C&nErnXv zR@qXm=Y>nZ;R_NM<>3nTix|AoV6F0&XRW8Zr-gh4Y3dU)&(c3+K*->bQp>OqtJJBc zw`P}``8B%Lyl$z$TjTeJRD~P}(WL`Xhog=~owb~d(xmNCr!2do_C{Hx(C8WR6uCfl zL>FOCaAVDinw2%T*W6W8!#7IOYh182s9}{xgp3Lq7t&3e6fz~GAS6N>>=@=4;TYu@ z=a}SZpf%F6v?)rq)I>xPH6#V z>9(Hr@>)-4#ey%@lqs@$pL87UMwg__^vsLOqnTqcM&D_!4Ux_xfuNh zL!Tp4|7ldM=4hR9Ynz}s=1yZKg<8E`2U2Rb?qB4CuG{DRDxUReRHRvdg?qJ|W`1+t zkC14t>WbN^7&BQyW=dv@%oj2TWqyWIdo;5$Gf4`K$&I0zK1Q7q`jxxBceiy|#B5J{ z+a~2AMh&N}#Irx5gHoO})YB^2o3bW+UHGn)y{Lu#a((Z9<)*tt9;npBe^e`v>-7{5 zMu2njNacohL~f>s;5#82zP-^F&+$#tN-iN-&z@z5nV~h1MstG^?~q z$;&L0FJf$YUYY9FF`h(v$~-d_9Xp1-ZF4jYJ*u(ys@xTObW7yrUQPPSJ=1eUDa0=A zdZmNM0e%zXc;BoVct1&Nb+mHDeOx^vcTkTg>*d|@5WVLAv5x+`-B<3;nYBG>(zHxX znv$57yfPvu?QXI5XsDnJC39UiQ(K{0T~(Rp>g;*7y;R%twnDXK*S09MQd^?XY&J)u z)!Jl?=y;QO=EzK4S|RU{mtuWFD~PFbHs+HM#P%Ro9Y0^H3@5%@mMkR zcC~dq9-&FJiaF&vo@GOCNENNJ+?A3^y-bl3GS8v4--nTQ6~f;lZ$=o@wklkAqyM2U z<%XHPRZXJR!Q)w#nHI@dbJufG54EA}6VcOJDpOs{GkwaSJFZHtQhD65xWVx`&e|yz z+R4-+savSmIxi+aw3~HZ%&C~OF_)FlSj{#C?@>>SEe_3&T^yPlyE3$wb&5)FQLl*I z6}va~a;y{=9oH(ZQ(T|80dWONQQW*ZN7&-H!*SQ+LgVA(2gJ{d-xx0?XbGVS(FySh z=?N_orfBUFIwg1$x+E-4C{LIa)+n(+>y$XkT97yo>)XAF=}K+evBW76mlLI=(4q>B~OZuOwj8WwZZ7-bb)bq~Iaqc&5Y z#fs~Sd!~|ruN&3!b-~>jU%9K$+gd9n9$6WJuaNAQXJKsxAnl z`hrifO0*845tr5?)Q5}FSCbX$!{$h@N#;6{`n9o&#`k-~ni4tkpRZCsP31K=zLO*7 zI(!8IJyMg*-W-eZvktyVwhQ0)nyJiGPe;tbdhMF$EvysgVT>u0X?@W|IWFtC2BP8X zX|$G(!gZ7-@)68@b-dHv7H~tn5lZ)jKrO@ld&6zTg(dP9Wu!V)-=Rj~o~Yg)8sF>V zD`yF|pFFF)&9F{hrS#BaY%zL!@AFC*yhZBo&Uww1QD7Df!CYPswKiH0Q_j2lD*H8> zzv?6Q{puC>Ih5jep4Q4N)MsOSzib4qhp0YU7aW&<$M>_gXqTiCrLo>uIjvpuJSWjA zs<~&N80kA;jYKU=$K6!ty#J7=x*xJ(1&3Ck;mb`IBidqZYQeYTPD-=XzWO<-3tGq= zwWT*p8mKiz{nJ?recSGavKwVY=Mh+Us5CdNM=7pF3DNrcihGVST!~SdDeb)-a0XBF z5w+8)7#APRlx<7h2esXDsMHEG!d&-wy@P%g-`l#PMB3Iz$c{&`)~kn=a2s#3x>cTu zR(4LlqIN*K+Gci8n|klXYVcrYZL~dFHJ2%;QTikC-mWX^0?e(iNp^jQGG6MdUz9hg z9rP<`V;z)+YMf^zX2g#8KGgd-Ls+ZUQfo?UBX+0{$WdaJULx=I+$AkhWpxiqqop_> z+vh&-j#O8;kIQvbya()-Jqu&U;`Z9Be%@!UVQjbUG(@9yx5c_DA9GEKYbwr)sGrbz zHLXVO&NSww^h}y_5)?W+I4AeToWBg;G76RMLR;PJj`VEuCP?Ge5(RnGX?>ueZPZe& zXtA~Q$CdqfSC>PQbq%$&!&^t6ilZSIX$Go~d+az<94?K(m&WY!Tb>fU2kf9mEpLIZ zF;>+xai;jJREY0uwZtsX*rNbT*p=Glt4AJ;c2 zxLU8x!a2)6cNuDOiG13fE(#HZuG*8?HS;R=#BSfQ`d=+kMX#f?Gg<{cn0YU) z8WEnIOJ|nY`*C1=&35TxWs->9INFQ5wZ&7Z*TcS$gZDIyQZh&DLhS6&YFy9!6RWQq zm|r@mbCjm|GMz(`Vg_inLp7|Z`^VHyEK0nroeC?`TBMAy&Cqvgxnc}Gr!>TVz(p-V zm2Exr{n`RIofl%4Kp%v!Ykh<-UfHlWQKrzEd_8KpBx0XCgwts5V4Ay#cS^a#b*J4v z6|>V(mxQu$U{zO)bzCa;D%PTv*27uMRIKPuWBgx$eXCcowkveedao_!GDSLvb7%$Y zyb4zYdSe}LhUcbxg-_R4s0r8~S&DlL&Z9*)!^|2Y*1)&!OFn$Z@(tc`2+Rm~9#j5% z>ojVD*1R<5p1?eN3Nvj&X2Z+`Ws}+zUlQEmEt9v(Ta_JZV|*-Zy4&NCReUeAurYdn zm=vZD(I)GyZ9}DJiideawO73kEzMrrUaCiH2dWBx8JGFFs z1N(Npkv+?vZQrHSn-cfxReB5i0sR^8Vf_(bD|?jpnBK{kW6$%Q)Z5ul>1Xu|dN<$e z-u~Xp`b*yHdQYEZiTCE(`}j0Vino*9W=YpVEnfQzK8IznFWU05FWxfB=d^UOr&+q$ z^X6Q`pQTB2629`3zZ|#$mZOg(}^m>I}(6Upo+EKL> zt5l$B@wS8!*3zWKNvELZN34voO2?wt#Li1N>D*{dPxYqhk~hW{zdb%Qbr)K#Bepyd z-*t+~4Ufc^TQ|Fp;A}9$7lVB^+S^--XLA;~SBPD>CW@@r!N|WvKB%5{_w!II$?!yC z{V`H0^Z2~OalN2_(PXs^zIeJ-eOvX}R$s+r#ty~fn6L8 zMdotsDH!YCL72@q<1Di`HdAO{X3QPV@h-$f+)_5Tjs>w8`=9YX;*0Wj^5yxc?{xF^ z_rB!q>5KRF@uhf;zVd=^ulWkZN79_o`^u-A$I(=|9`>$Y6ldYIQx$`qDHZ!wv=gsjM{5rL`^rr#eC(`XUp))oe+|K2 zT4Q}IcFir)NUU3vu~xjHtdhep4m89Lc%)~M=ZZqR^I_QUUf}MGJ@_;!Ewm`6IHs4i zG%#N(#VMC@#+sE{o|>E1 zLjB+4Mh!7*JeWy)Sz5Sp1&j7X!ZA`G^mI^ZZ#x0wc&v0zYi66HkF@#p_WJGX%sM!~ z+^1|&sSjUqPxfFBQJll{FFI${wc%J9e(Ift^FrDw->nYB_!on<+j)0A5oV-qE&B0p z%oAPkO~^=$1ZB!(i~9-7=Pd7gGXWu108JXX@;Y;o)2_Qsuxi;iCt-zdS6*e+>rk``W- z6zy!`9OsZ z$Aw!ZZ)hiLm)ONlZ}>**ILtojD1-ji5wT~(D#9(&_2_oi!LfVe$0elU+E;XJQLHn( zTZ%;*6}l|$RAP(pmC7=l$#n~@l9ws@xF%MPy`{rRSvVUVY|V+2!rH|RjyR>HVRoBj zbvhU08r~^fFC7)PJ$#)NyX%Ps)=?>IG>fz`x=~Cw>j=6=iu84g#p}GSr>wh@b$m7Q zf|{SyKfEg0hFZSq-lX)^SE(Iw2D=qI;B{=P)FoO6eI~9C#Ca0*T6z=D7VMO?^$f9f zw!H)kZ)~@?3-OMGQwe7iw8UkJ4re=?LycC~B`?z)sRzQN|4$=c9(Mm6(lGC<-f`a7 zy#?MW__Fvr_=@;^?=*aKdy-{}<*vMRTw%XcI|v@Jd%HSe7G9zzr~`3!)!kDE??}EE zeUYwkr+D_OF}OlS=SFpK#XS2Wu7ItuX|-eRf02dj(S0AkeHp=BC%CsyTsD4QP%PLCN)2Cx4JBB zxYABpoOm+vI%+!%XO%rG1TkoxO!+qrJjjY0uTBI0_sy97T>|$2>==qm^Z`W0|Aekz-lu zSmRjd*lyqG*k#{qZ)d4+R5}jWw>zfz4%>4ryBx>tC+(dqdmX3jRgMFW!;Z7|V~&%K zQ;rMvvyKan%MP#Qx5 zSG`YBuMEd-Ykluh-$j|`*iGta+fZC#Te#(QJ86p^-qx8hnWIwz}Us9_P%o z9$De0>&d$3A*{+zyJ^*3BA<6}!IjQ3xi!X<5NVcj$xH8xpBga+U$7tRIq#cgQzW_* zARK4l)3GyFhMihkPZ>L%9k33kwNtnxtHafAr4CrJKcqKSZ^$v&;Ve=Qk%zvqtA-sXx!jn^&2mCoN33;*q1hUtc@KI zBYmrQr`uTP2lw;NcW4{`mlE2CD_Z}*mlB=tS1+fLx1E>J^{>aX=-ebi%8uC{nie-D zu7&Novr+Qk@M0||Ww6pKWnRQFZB2wt^2WDwdYxUI^W?$KWzOQ%SZRA`qd1$bTS9(9 zpRiF0S&6xc-4eHljYx_QU*}wg*CXu>&%xJo^HVoQ6zD1cf0aQJR`7`~y8d>bxGSkG z_MzxJZ39+4uVVMOs5AY9#}{b%Z-(=y|wJM97dx3MWry8W8H zF%E==yyNW_=?KY>EcW(_j1GwpneTOmO!K9M7^{TZAqAEhmM-{$#L380k!K_GLoP&K zj=Ub(D@2OYqN?AaV2cWkT5PF)Pr)*aBPu#7J}N=#71bxIf7C|HfT+Py!=frIBcduT z#vKgXEu*5wMeVZewLDpTI3#c(9-na#un%GaK9Rs@dbO4`NrjThgqPvbJ zN0iCE#hFE>FC6C;R%x<2OFe=68Y0y>Sjo4>dEP#s?pcLi7(A*b+_sw*xYk57t#QS_ z`h9*6R11OH5cT5DceqdM_P%D^8xc77ztdP`v^W}tf_v9UWr23uXUBa(7O7Q|7b~4c zDFbZBG!-MxMb8y0U5%%m{mClMki0ZTH?(Eqo}XB8#x@!|olDd(+mp7VxEr9EJ_lD+ zO60BDFIY_)bHjR>Mr*s&)thYl&D%q7sJ@MRp`6l#7@LDj%)I9!M6zPUH%4x%+ku{3 ziJsNTiCJf%-%favEGMQI&uHbu9IipXS<&>HEq+^w-&W$co%rn}enYKf;}yr<#BVF1 zl;i1^oR~?G^t(oc-$3YnMJ#hCkZ$}oilXBj@jFV`4->K15g`~hue!))mH4d^Hl-n? z`~y!h<-~Loehtf9k%oL>>D9mN|EwYLfI%ns}RRU!mp7A zBjhaMdRT;`3tuxt2!+DlNQ3bkDr{46USYH;3X#BnDP zOS&kfa-p;kX)E?p2u2;P5jL%a-bwr#rB^CavQm^!zR;b*vbzXBTf|#iq`^p4BVjpT zgls4)MT`aF*CFi7MVJd+6njGvPCF6iGNCUPAxskXMt^J|T-S-%2Mb@nh!)a9gf>Ey z&phGFF3P{Q&?|&}v9MoegeiVQGAZ8EB7}p&)hR+SMjlG@yqI(mf>F!0ML0#mZv*k$ zNVw*U@noq8VWUW)Q6sIy@i>u^0%4ymlosN*T-c|GG;A07tq{7AqbiZ>E~0hiig@FN zYk{!L5}}O~HjRY7M%WnT>=dc;3f)lp2wz4zrwCu;MXFATyxWBRV3GGeA}#EA@D79j***#2uaMvEO)F%>P|+1~e1* zDO~eB;A^6s_npJjoOHd1zM=KJ6p1@kT1pGB|1sM`Z;rU>i}7i=LPhV$;d>la8}>;e zJ->NR`zGg|#~R{sPc-gsyAO9jw8weX7HyG-_GsfgOO&m?GdOSR;OXeC;R#deyHs{* zf!bL5w?tpXqP0pB+g4nA?%{n>X|4CLWq6LrSA1(d$+|9G@~-#obMNue-5^eF8LnYD zkSDqiWUIObZ=rFDdw|z!bPsn|>=2fDT1oWfu2tR@xI4P3x5U#1clpvCZ3A(a$xdHG zU#9Pn_+FL`_c4^rc|)Qvb(=&s_|(jmCNrdsV(6irx3HGzt67OSI?p=demElj$8TKHN=5XX1x(Z7&2@ zLUr{itXB>yYn8{bi#|{pjlJ#_zE8aozQ=9#ajv?+cSODE9-6lacMy!kT`H@wyK2Wh zG*@u8O7Hridk;czr7cW6?YrFDJCC0C9ho;rTd%cL>r4Ie=uU!A?Mb|s#44@8yP;Yu zGJba}=Wv%GeZNf=t~;PvU2o&5A^IJU7EAxjNbTF`Q{!bTt`}Hcq>~L<7_O$Z3XK%Q zm+6-jvQ>nushYk`+fU*@kGHz4xSDL(n;eLTLYLuc`XIYtD^1nNax_YmT&bkYlu>ybsSO<6 z9ww#Ms4dgqtu|)ao9@B+FzReP_Ar8L`R`&4*qBE~*n#vJIigU5^I_IE+0n7ls*Dz7 zr1sV{2h#X=r5T9X2+{oCjO*5L%{-aq6`bbkegbg^*N<5jft23bk^;F4*i=tjaPDvI zQ-Sij)pu}u%yKtcP;Z>8Q#h0-BX;_aG$WV6K8+S<)U?@m$;$8%d}OBV)=~-X{kPhf zwG^C+fd4@HsO|%;--z94{bq<}I)m%a4BadlGvweB543Iysd|jT^=SGHgcTff^|ndj zo9%{NC~X0MM(WLU2I3E{WwWHsa186<5}@=@f4Gw`v$m-ojo1PyGQ$Y8dm|s!N6PBq znqipXnrSym>sFPl10^5GpJ^9pU1nNHF;Wp|%>k=GTFiLOFz;kty`+p>8d@Mk^MA8+ z12F_r60olBYSfH5YneF+4v|_>Ae=j=Ah>0j?anN-;J#_Ly6UMh+Lmc=aaZVCQpa zLP5fUgtZAf680yYPPmp3k(ioTKe1(E2keFRPaKo@ChnF0D6t}OXX4SsKNDYgkN$j% zhA)bqJ7!_@+%@lSdw<>hb@LC;e{j(r@E*Z+=YBBvNNLN3Ef=;aZBu$_zAWV@e7~^z z@9BgS^Zu6-@TEyZ6GDP29PldI+Rwh^tmoNK%`m?-$Nl^z0n< zyL$AGyis%(+O|F#WL6MuS)d)JfSRuwdqR!DiXh6_>n&? zlrx9Fe2uhFnN}~+QFG|eOyi!?y6-(ZXHRL;dpYmf-di@mUa1*tK5FGngnwe5ty)fG zq#%%s(+QL^Dita-6}f7YG%t~IA5~&#xPuiTQRxNJEcDp1CO+}vKufm#Xn z`F}q)>aqjZ<%xNhkX~wsr;&0>UvNlfZFWNmklUX5WE+x1C4ORFAeDhMQH@rhEXd7B zdq@(68OR5P8G_O=!nlN*3zP`ColeN-@E;4R)j$k^lA_jVmU*CjgVP_&?SOI@lJviN zm(eCREmYAK)c4f)s6Egz@ya|F3wwcbQ+kV>z5+2I~L>BQ=rH>DPj z-y=)SrO(Gmhh^zuWy=^TO_BZ~wU$2k;7c42nIq+s?T%MqtIh31wmaB%SCH*DI3CEh zB|C54y!qX=7+HEus)8-~Crzp%t+{kiXb&roC?9?UL+sD}Ui6GljVJ{x3v zo$|J3De~J~dLFh^<|*Gp%m4UE(q3ZinFG*@{>mY3C~Mj;(5|QNBy9w1HA$0R-9*}G z)-p-UiBBPI0&A^F8&UQrX>YLhlnC#o-$^TAtv6{W|M(YaGg%u%+TpxLq`k}92+|s; ze~>npwYj7XJ64ahQr3=;He&Z|(w4CHC*>`Bk?{K=Yrm7-g}zl}_c3ewuh6bfR!LjK zS`2A@{=^{mCJF0l3kX{~;4OxhLJekN^QI%d!2(qF8dCQaLECruq^v@7j5^7}4!08pF#j%!k5L(ewZAf#n)|%|H>WKDSi?vRq z<>!ku-^1EO(k8vXjQrMT?RC;@bB>YLh_zXym2cZkS`*evgywsLwEJ0GL|TIu-;wqJ zYoC!;Fh;b49M&REL0kOiHL`2ZT5ZxQ{t#vGFV>!;yiNJ)O|tW__9EH!QD%_Vg|$M` z8W{cKN!B)!c6OL(FFjfNp0sxN&LY3hvUZ5H(q$E-^=IueX+;wUkv5Pu{WP>04fc}u zZ`R^TOD_}Ydxf=B(v~f|i|j_R_8@6%UKjm*JZmE5p1khY1nZDe=hE769& zV6BR@@_!1y+gLk8n)g3F$?q=KYMg<#c>PPH?PD#0wCimjC+&OI8j&`sh8V*Rv6ewv z@rl)BcZ{|6q{S~1ZQ~c#yriwUltgyFv(}9?$Fp5YJI~r7%G->Bo1|T4?G>`?Gx$r= zZm>4^EVS~!nv#Y`>%^S$Drsjsxk$qeOG5jGw5-G~q=m9}lC(ZOYLOPnn&TX_bcdLa zVp+R~vr1!=>6%_qNUtmTq6sgW3S>af;}v?58waW8AXQQrEjxkP?5SbLr9 ziqAhlS{7?>lXf6(5oyg>Dz*hM_Qx%9wDsn)Su8!p8Jcm>8vd!t=kRJ){0o$Kx>uC z-{Z+{4r`xKeh+`;CT%`zo5}C?EHNJ~V(l1d!$xi)yJf6hA}#9}&ia~5D_D!T1TDYS z$E5v-wYy2nseO^OPg#47vU(iY0%bN2LG^xKr+J4rilijXfVvY18YimhsQPqs>eq!y>E6`Rpjw0c=UJDuCtbK6Y|c)nKhR$pVRyaHgQV4Ctq*AzUb{lteXNZlEq=3T8=0(qL|V~hF-K*ywx2Y| zlVUt=$=YGkCMlvFJjmKk%3I}$w<(Ucto=!LeOfdiEtj>wNE>!}2x*;Ji@O1>{Gr*T z<+1j}Uu1W`n4`L~wwbirZ-{kWK5K7aJul7pLyS4SSvy8)sfb-h;XTLNP115cbddHU zYY~T`ZC@zHjlry?lGf;IBeEOL+WVvp@QJnPtE?R)EiGE)Z7gf`etv^A+>Tsy_uangzg9ilkSv9^rzc6gIW-=D1M z$0)pKpCh|#tldRgg-0SynrQU>M@T!_dNOG`Ym-Q;taz2Q5Y`rxRy3|HX%Vbdkap~) z2-2ciJ4o8R?PAT4z}i*Pu8+M+b}6hiKMu{gQ?%2&S@V&0c957C(pmeG^0s}2IEQV> z+Dl}o4HI*Zi?xxY9cVAwb5qtnB(2+P>nYwAtW}ZLVp;-etyv5C8QS2bBD{xLyN9&m z3-^%SqpWoxEvL)tq;+DgH))|mI+NyOZ6s;K`iZ{(1Z&etJ6WR!*>z{_Cgp9{&lgDR z#o7mCcikz{j5Nnr7TeIMC(uT37pMW;*Q8E6FWbGc( zvSY)^ZVYQpNUP|0nzV_mJxp5q{bJ2Eg*6{(7yf-e*}ctLKhpM=KTO&?tT_&l_Km3D z*{n?^yN&mXb})~%V$v>e_=fy0VC@sqM!hHI!4Fvbk~Hs=Ub0)x+9}c;mMqd%vUZ8I zPG^RawwARTC!wuN6YJB@Sj#3Ydg&izx0$tnlBV?+X{lr_m$Yt8v&n7;Yb_~n#eaTJ z+BdA_k==lvGf4Z6wbw|?zE`Y$4zTtvX{U8x}?x-4CnBw3SZDKbT*^77kb&puUsV`kPpkpH3 zSlOx^!!uN;l(WhO6%d5An*9x3N3qvi4P zWSQP{L+|OFgSS~Mke^VthU4us@(Ots-cGPy-Xw3qy}wT>JMeV%K6yW$5jcXofq#)t z%je{tcmu{2`Gzbjx?)$tlt|n;oS;0TB;(1kI(RcjLp+b!1W$FgR9Y*~;r&4EaX(UL z#fSTKo>Y3^3C_OQZyqof`>(*uz-z!bU^4I~FdZlY<^c17MZhv(1@Ir>Q(z;o1^5cs z3G4;-13v;k0Vjdez#qUR;5s0WlhQ0e4Zs1!0Es{qZ zfUZD3&>MITco7&33H-ab#=t*-=0GdpA>a|9Bj5!d2c80+2KoTc11|wX zff2xHU;^+4PyoyX-Ua3YrN9#4L*Qdz4X_^g9QYF04(tZL1%3by1IK}1fiu7b;0o{; zpiaa~6@V}x3Wx)oKrP@NpgzzDXad|1JOJbX?SX#*9-s^GB+wIh7U&NQ1pW=Y0*nI2 z1Fr*b0W*MEz^z+#{b_y|}HtOGUyUjW;HUBEuzd*Bdo4EP239XJnM25tb#Bq_}b znAf80I5w}Fbli_I{P4t2XuKXU*|#yzF)kTuGPE(Te@yQnp8>} z_Wy)tT&sB%{>B1yO=UbdQfer*lR8OVr5@6A(yO>f@Ga>b={;$gv{w2;`cAs8XzJE6 z7z2QxfpdV0{vHmb0QG<@pe4`_@BmK%eS!W6e<&~+s4Hy>PgU>2yEj%j($)IveQIMh zOKqy&ul^j~QaushN*x~AMtxXa6)ij3tGQ}N)vbm(d}LzAA7}+U z1Uv$C1l+)5KsTTV@GQ_D7zhjoh6Aqxqk##)>i|w#q_@D+fkI$5Fc)|qSOhEumIEIH ztAS5}4ZvpLOJEzY6W9ZM2mAmW0)7Hc0KWlefb+m5;2LlfP?tyrR-gtD0n`NIfFvLl zxErVo)CV$vOrR;y9C!d|1GEJm1v&yA;4z>p&>eUhcoygfya)^eh61kuuK{C$iNG7c zTflUn5SR_j1>Of10ZW19z{kL9;8S1&uo?Ig*aqwb_5j}jKLCe-pMVp;(1z z-vK`Whk&1e6Tol48Q?r{3AhH_1k|O-KTrdR0BQnpKoXD&+zr$P>H`@-CeRdU4m<#~ z0onqO0v!Pl@EFh)=ngy$JPY&#UIYdKLxER-*MPCWMBokJEnqrO2+RiN0`CKhfTh54 z;A3Dl@F}nX*bICLYy)-zdw}nNAAm!^PrwP_H{c9#9=HTt18xH9GUOkq0Ym^bfjA%u zNCoZ&>H_tF3?LI|3N!~E0NMa;fk%Ok0AANt@EFh)=ngy$JPY&#UIYdKLxER-*MPCW zMBokJEnqrO2+RiN0`CKhfTh54;A3Dl@F}nX*bICLYy)-zdw}nNAAm!^PrwP_H{c9# z9=HTt18xFp8S)R*03v{zKpc<+qyl#Xb%FXo29OCf1)2j70BwM_zzWPCkAnXNbOyY@ zW55%@lR!T3H1G`27w8YX2)qOg0fqsu0Ive0fpNe@;B{asPykE^-T`I-#lT!(KCl2- z3@imc1Xchmfz`k#z`=MZgC@8Bh*<4EzUJ3#TdNZ93KTv;^rnD+EJ*#Lw~g#Z3y@QSoR6Z1NZij z`=7#Mw^|NuJ+KG(9w^bP`=5Hhl<)ZzeFHcSRN;R!&R_BWQ|r+FzeE|}ogiZ>4G!Ci zvcPjB`_*fzqS>_=ZDP{rZ(tn^>;%384gtr2p8?~0S|5DiE|l`0gkM>ztDT2VoWE7- zMBJOX5A*ZPFEI~gewq0-<}u*l@F#NkHKrKhzb@=Dw5hDu6nchM!2idw-Eg91xkNy?aONJK0dJj%_82{g!?HsT(!=d`E$?pBw zJywKMS4-gVoa{b?-Ba29F6O$-_cCWNXE8TpZo&M3;0*0S4)+ZX_aSy~$NVUBCuSdW z7v?9KdxFjUJcs-|%i+%DaQm^{3(SLY9daE3OC!}*xQd4t{G1e@`_4I538 z@~J<3%62o@u8_HyxrDitc?t6}=H-Gjw2wI6-5lO3)<0qWJJ#2;zm3eBnZID(%Di20 zhPIpipJ4xc*?m9r0p>%@N12Z^pJYDGe3tn<^PhqG-=BCW|Gq+@J#rzQSBg`F`-ON7bCz!hn z&d_>s{5LuNXW6|!^NY+cF%M;anfW#5ae_0ni5yUeyqEbq<^#-! zn2&=F7}C1ZQZ{4x@eb5dJbWmH+R};aGMU?Xm`QxZn&e zlI>n(yJ&WgV|KD#D%%ZbySv!EF1z2$?xWegA-lW4X8x#OH(|TUY?sY;&6!)>V&8`C zXR>`;wtIxRBeR>?$J|A5hV~@;U&Q|NS?|qy8S8!6Uq9vnY&V4MR8}rx9dzimv{(<>N<|E8MGylf?yWkA%9H-a%meHRtu=^$E>&!Qqm9KgH zWDa2t6O8Xme{Hn$Bn~eIx>@e=a62a({kj&rC$aw&=DV5Gnd>t*Vs65m&D@gtLFTs1 zk1%&&?!@e2?!x>eb3XIaU^BgakX~~f>cHvk$969;4-B#&4Etf6|Hs+>6}B5CI71uD z?oYG(1a_ayJcao!<{5%Bv_kebkp0bO_xG4fm`j-#F@M0koOvblYUWRvH!y$ByhU(^ zR>|?cCF0G{w(ak^?17~{-;SYOL}UDnsJzYWZvGjCz8 z6r7>$V1G^6-!69F!|va*drP>R<-8x-0oGfyzeDWrDDw&CUztxcpJhJJ{3r7@=D(Qb zT}HdqnC;Br%#qBo%n8gX%(a+nGuLIlm$@O>%n!}iu3bhu9K!i&!glvFKfs*B+@3j? zxg)ci*~i?4xhr!%^V7`FF!yDCfq4+~znO>X zyUcT$OPLoje;_zRTh8IH7vZD*@&B7RzEy1h3G)W__c_~bW4kTT&GN2<+ctLJ&F){b zzdfw)XZ>3a_Xp;~%s(;z%={bk@66|zFEC#coS|Li@XvAhf3dr~+h}hV!5Nx;x6vN1 zv0WIuM={4R$1^7}r!e2md=GOy<_64-nX{OiF}GlTKyZeZ!|6zV+vx9Y+5Hi)S)LtW zgBwT1K206A>lEZZ2JPF!;WT9TJPxNT^Ha<{n4e+p%iLdZhV~+d)0)G1iQR{=`!IHI z&+e~4H`Dn9((x+0cVzc*?0+Kj>&#P`3z(-1&d}ar|2^1$F}u%Yp3ioR*sdSjeZcNz z?EVqE4`TN(2j4;GxE4drmoa5yis{u=8SSs%mx#)E|7yKiLo&CHd|JD9&= z-X|FQNbJ8U`#-?$hnSBtA7?(ve46Y+nX@GvAY-P2}_T6&&sxY`2=jeG~po`{{6Nts3*odbTfQ z`^{|sF2_5UdA{HbZ2{ZuV7tZazLdF~c@^^~%H#kI9Y(qlZXl=DewT_xcdra#W)>V7EMt3be{%LK3 z{aLM__M$dO8>-E!@rsrm@|reQo2U&6dqaCmo30gVv$eTeeeHd1XxJicskU7EG3;Y) zwRYK3R%4s>Q*DE`S^HAkrtQ@BXy0i+XqRn=w4byS+Hcw!?YwqLyQbaL6y2hS=;3;l z9;+wnDfnha9lf63P;aa^(VOX?|bNUPV zOZva{m-ScmG5Q4kb^T3!n*NTSVtZGAPoJ+Z)IZR3wGZ`=^tK`Y(Ld2Y(?8e0(7)2Z z*1yre)xXz&)Q{@xYy7PLs?QDkUH?P>Q@^VJr7Meb>cPD`4l zwk0tv-O|9)$dYBrwzROcvgBCWS#m9%EM7|&OE*itaQuc+E;EmhPOTkQn3wNg>F z6&2J@#ZFM6c15VYMeIAVQ&q7ORlm#+8mIm|-SP_sCur^?0Kv&O}fQq*50lx+84fs9aaKN#EQvv4! zE(Kf-xEb()t&sapz`cNn0Z#*71iT8cSgls4HP9Mr^;q**^IMxa3R#O<-?Ub9zRgSh z-nUk?eqjC3TGRTmwSl#<^)qV=YinyeYbR@0zNQjqt#A9%I>W4^R?=45R@PR*R>fA$_K~f&t)8us?NeKGTPs_v?G1ZJTOV5&TMt_ozc|}w*O#{U z{Ri2G*oN9(IELFs*~Z!?*e2Vyxu)4>+2-07*p}Fq+kUpKv8}gN^xtgTX4`4oZQE}< zXiKvlw+#*sXS_J;+|v9cuU3^Vsv-3)zd> z-?YDNf7jmMcFOv`y`udCd%4^n+IL0Pw0~@GU~g>y%>KE(jlI473wu|4PkSGGfBRs2 zynUE`gnf*CynUj5ihYKCj(whek$stcrG2%1oqdyifMctDhkdtwzx|NQ5jfLy(0;^z z&wAXx#(mm;p7&A8TPgptXV}-fAK9PT|FP$FwRV~ueh!<%wpTJMB)lGsGF;%9RM8RPuOS=(99*~qyo;8SOFXDer{^Ica*X9sr|XAftb^GoNX$U)8_ z&ID(Y-*?W@&I9go&P3;r&gstC&LrnT=TheiXNoh`vDUfK`KvS4dBe5KxzBmW@`p3c zdE9y0dES}s{M&WSdCU2iGsF47^~gEZ@yz*;^Oe)$vbr3uKv$^CUz_4$X(J^+Evz7!PVWrimQyNnrm!84ObmkeOD7}BiE;{=B`$*SXW0^7grBgoa=+Y zFI|INLtF{2?_8r@<6McZk4%$Y(_FJ$)$Ma#^IeNw$*!MWt6l3{yBwQbTU|R`yIuQT z2VKjfj<|aJpKzUV<#JqbU3UHJy6(E|y6d{{dh9a0pSxbVa=HE8cDLKzHBX2;!kycl z&mHe9=&tE1;x6tk=`QUq>uzuDV6Wh=;*N2Du%_7;%??{>2Bk0@BYHQ(XX4k zm%Fcffcq==H|}rUBi-M-X9oP>p5&hDp6UL{J>R{^z0AGRz1qFby~(}Ry~DlRz2AM% zeZ+mjea3ykec9c~wbpUn-8u5M`>s18@V@)8`?>q2J6E88U@yBp&>a{Y7#^6M{FJdb z&+!5;@d~-Pk8goLtgs^pA&5Y3Yy&_qai*)6EsCLv_@NWKxcGCZ}dSw48&l3jd%>jFbu~CjKUa<#{^8oWK6*{%)l(n z!2&G85-h`Vti&p;#yV`kCTzzJ{D$4wi~aZ=2XPq3Z~|v=4i|6aT|AV7x!=< z5AhgJ@fi9YCu{uqd_5s#r5ju9Az@tA;#n2Z^i zg*ljud02o&Scc_Th1K{4>#zx1umgLsAHU-u4&w-p;RH_M3@+djF5@b$<0fw74({R} z?&BdI<0+ow1zzG6a&dpb0)N=ygd0H!K^P(siQLGC0w{tvP#h&t67Qfi%AhRDp#mzQ z3aX+Ss-p&Kp$_We6Es0nG(&5&MLTptXLLn(^h9s;Lw^j!V0?{u48<@E#|VtV7>vbu zOvDsS!wk&9T+G7)EW#2j!*Z;|Dy+sYSceVRge};L?bw0eup4`^AHU-u4&w-p;S|o` z94_E8uHz2w;vVkfA)ewnUg8yU(I0GqKdi9B2{(cef-poN61kBV`A`6_qX>$l1WMu^ zltvkpLj_bqRn$N&)InX;M?-vqCTNOgXn~e!jkaiq4(No==!)*>iQedgei)3e5s#r5 zhT#~2Q5b`<7>@~3OX_$don1i{PhXq)IWmt}tScTR21?#W@o3I7j@f&tyFZSag z4&ww);T$gD5-#H^uHzVCqCT3SDVm`LTB0@Dq60diGrFQDdZQ2eV;~0O zYs6zHhG95HU<}4$JSJi?reGRoU>4?JE*4-BmSZJWVKsiiI&8ouY{6D+#}534-Pnu$ z_#Fpv1jld+=Wq#^aTV8b6Sr{(cX1yN@f6ST0TNU71m)BwqOT#V=wmOcO1qM9K#8m!Wo>y z1zf^qT*Y3DCl6 zw8IzZjyUwkR~U-#Fa|$hGNxk==3@y~U^Uib3sSKg2XGk2aRwK06}NB~5AYQKAlFHr z-Gmdth(I0`Kw%We+bDzbsDcks3-#~`K0`~yq7%BIH@?JRe1qW_jq#X-X_$?9Sd8UJ z!8&ZlcI?7_9Ktc2#syr#P5g!Xc!C$;5!yt5I1q$zF-(nQTVIp#wiU(evW=fD}fs6Az>QN$J+X!sJH7x&(8$Mm0DgG*u z|BB;wY~c6PIfjhiG7m2WGo9AviPh%$f&Wir9`FClWoi;Q?LYoD`#=6R??3*wn7`#B zPox>=o9;^O|FZM9#>k)KUDhL(^^m-;|9}4eD}VP*bLW5LVefzZ?T`QX+Yzt)c&E#o zhqdxK$?{HnO(SJ`=|A#t)hBJWO=Mke`TU=h?>+t&!L!q?14jm)i&_>uCU9KfguqFG zQv#<4&IBZk#9S=IGAu_5)?y>JVK)xoFplFK zF5?F7-~j?m+X8n7{tom{CVIj{>{glfTB+qzTf|>>e1lfb8 z1-pWRfjQ1hUcLG6M%^S!}-L4$*a z28{?B8#FO!TF{)J1wqS#ida?ztqNKbv@U34(3YUqf!l(11nmlvlGqz`An0IFTF|ke zWx=b0*J&d^DL z!J%P%XEI-Cq0l0s#X?Jjz8zXR^u5rEp)sK~L+gb$4s9OVCbV7X7opul<3iPQ_Wk)1 z<=3IZLPv#;51kx3BXn-)qR{1`t3x-0ZVmk{bbsjK&=aBOLNABj480rrI7pt#e;E2C z^m*t%q3gn5g_^^xVXiQFNxDNCZyw$z zykmH`@VM{+;X}f|4Idr;L->#3GsBa@7l#)JZfQ9gxFm2{cpJ-#@Kxb!!Z(I*3*Qmm z&ax}~R#->N-tf+r1K|h5)54pEwhTQMelq+_`1$Y>!O4N$ESJK2TCRl0S+0lQ3cnNH z&+>Qp{qRTOPs0aTGQ(f;>2gbiEy5iU8W9;$Iyg^6zKHuAsnHRyM-+`H9x>PwlKZWQ zcOsIL-{d%Y7ZuSOU!Wg`ViJ~P9k#*$49}+`6!}pUB~bx&@fl*#1wGLR0}+q0n1rZ2 zrr0UO8JL6lSd0}&!8&ZhHvEQkT*ou`pXHo}a75ufe2T943g2Q3reOirVJ9x&FZ=`R zIoc(thfmQ7UC;*!7=@|$35$`86s*Iq*onP3j7#_nkC2I12tH5UgnTH5GANHKsD>J- zjr#ZmpP~g?;|DCk1{}j#{EesbyNoF|l#2fa|MtH?I|YFVg9p3$zr)K!FKGzL8Re0PT>MB;|A{H2}~Dx zo*DD75{GadcaaJIOKeAkAP=HZ6eUm^Q5Kc)A!?uw>Y)kRpaZ&M0OBzWqp=dHNXKpbi*}!y zVy&0iR}qNp zjR-^`8bwhYZ{Y)U#1IU}NK8QzZs7sU*V%_r9KDc$F&K|Yn1-2{gLznprC5Va*o#|u z4*wf$3*Nh#IJkx@dq;@F|*swyWuLBephTtPwjH@e3n% zHDV7V_BLW)Blb7qAR~Tl#BYo^%!uC^ag-6iH{y6BCK_?F5vLk)h7o5Qajp^P8*z~l zml|=o5q~z~Y9p>S;szsbHsV$zrW)}#BknQcek1;2#KT5BYQz&pJZ;2tM!aam%SOCr z#G6L^(};JCm|?_+Mtow#=SKX;h_8%j{#)OU{zkMJ(P_j$BZe3;+=!7z%wxoSMvOM% z>qabU#NtML%ZTq7@m(X9HDY-qRx;uTMyzJUkBnH$h#woVz7ZQ4v565sGhz!PwlZQ{ zBepkUCnI(-Vs|6mBQ`Z+ zb0fAiVjCm2Gh#<0b~a)+Bla|6oDusOaR5>JEd~>Z7=IgT#BYr_!ib}dIM#?i7;&Nz ze>CDWBhED993v(fae)yR8*!NtR~T`X5!V=Toe?)0af=bR8F7aZcNuZ75f2#gpb^uI zc+7|=jd;e0=Z$#Dh*ykw-H5l0c*lr;8}Yso9~tqf5i^bW(uk%EeIK5hVuIt1YVBP`&c?hWCnMOco{5xC(>uqGa@b`F{EFF-g7b_Vmm!0 zgCiyd4v7e+H{?cOc7I44dOn6m+>H7*Lf$ecy&oeY{qZl0_ zy%eg4!W}#|;)jT)mWdI1PsPhH)hls6EGqoRi0qz;is5xaRgc892Ua1x;(vP{wns?c!_J7FmfaD0|HHnB|L%cMJrBQYeGi8sjzp;bhvW1> zoQhC=5aVW<5@zEkBw;=lVlkE?87uHJQm_VVu^t<-8NXs1Qn3@eum}5a0Ds^R(r^^V zaT2F-7Uyvh>9~SxxPe>v6Mx}vWZ(fF;R&806aU~}m}b-e4L=0H1_xXSL@+`T4iBP` z2d^PNqEQHiQ541SCf>r^D1~?N9^OZJR77QbfEav;k5Ch}@iFS50UDt(KE-Efj?d8w zZ4it0=!h@S1>MjCy%2}K_!0v!2w!0czCi-M#djEq(fA(Y@Bgreh{%<0m9x zJ{DpzmLeG|@H0}d25Ye%8?hO`VjEJi6T7en`)~k%;1JSq6vuHAr*RhNaS`dbf@`>e zTlf=y;csN%0UqHAo*@(e;9r>Lu>IkO0NCM#8$k#`7$Ojf+{lZ3D1d@^9Yyd4ilYQd z;vJMm8I(miR6r$EK~+>kb<{vD)InX;M?-vqCTNOgXn~e!jkaiq4(No==!)*>iQedg ze&~;Z7>utGkD(Zb;TVN67>n_k05kP_m?t^;An!yQb)P;WemgyRJ#TnQcz(>al=pKd zCs&j{E1cnG#`jD!9*MZl@5#hy=D8Q~Fyd*%i-=bd7LV2A^aOdrJdvbR!1KD6);pdu zo^qZ_9(fn|kGbUi-)l*`s^>$`HcL~M-ynm2H++t+=#63c9&@n_zhD!#VHYmrPdtK& ze1yV-*H9Smpe!n(0h*uEynzDLz}-|)EGd*80f&Y-eqm|1_U&N$8hpZj`Sj+k8i!Blb64vQ3VX#&Mj)StBj7$h}Li zGM}HR=fD4DEv-i%OtYk?XPR%kA!+UQ9QHrxk+iOp#!cM8U2Q$|?U?q>y}s%1-PO|2 zw{LdZaW@}pX&#SXWQpnV#C&mE7mKVG@u5`Le%yubWIS{~s5&TgyjOz15aM zKV_N^$M&%Jn})f}ftQ`tobjGKr1Ki`qYw&{wn}Fx<=p7&%pB>eWA*g8p%(tnT=SzC zZChI@^-|3L9?Fx3EL*m*N=vqxq$Ph(JMtv!@3L=t@8j}2uJ(}}{~vt#sJ0F7CleVs@GY@P3A02x~k0a9hT1^)`yFIes zU-$g&dFq+Pa^_+I7O}i##N}8Ci*_tc^QgS~)@hP|DWl+V4|3$oH2iLk-*OCjrzO87 zE!jS6+sx3m`J|4m*yg54Tcm9B;K-=Rc+Y0?upPf)H}>Noj{1~~sw;l2Jl3-BTBiB0 z)<>@sf}7pwo3Q2YtlzR8 zasKzUb$RqG*-~uCBl9;?2U;Aa8axAL4s2jO&(k%99gUn_wC#GA{M^SwJjPQz#|ykf zu6c~HnwNcyO4+CXa8b)g#?Oy(lxxyg_jCMC3Dx(-!o`!deSZ2^owfZy%3I|>sm67! z?5!p_x+>cGvX?gG>5kkiHy;Y%b-Y0yN)Ssz$|xo=Bge9m?Dw=hrS8+$y}aLaOY@)% z^X>&**#A58JXwZa_W#Pv{{cS4M?UMN>M*HiWnUP#W1+>gCez%me>*MT87=Sj^)vCL z9xa7jj^yNqq|pRTNv8$T`#4N_WSpyvy8b)M97|%pOtb&E=G0&P-1n^Up7zZ11-kg= zW5=Ex>*ia|rRqM`_lsM5w0wS-d!i-g-edEn4xOoMr4--gX`XmbAJXoR!HCCDmLp{+ z>*t+UwZH89VX7se=mYZ?&Gqe6YS9hWSDwX-_pD`o$CAc)OeCEtMDH}z`E~k@LE5%{ zZ)X|ydA&XK6VuN3Sx3{x=UU#&ml>xWZ=+Xzn01UKGyTs-UZvjjUXJfEAACtqC*gv$mC#MRa5_j@%QT^`yBGzao{icM+v5(o3Y|NMApevd^nhpUQNJ)|~AD z+5co8X%zF5C3X69bMY@a(@vYr6Q6RPE65olIr$LFNW*cQ##vnSEr)rxwDcP}o@wbl z`u1zfzRsEE)PPFtCwi^@7xQJ{fl(%=7iYA2Ovb!v<9^eACk)u4$KFS@7)(7Od5`X; zpJUSU?#QvO8Hsw?m2z&dBn*CT?if8tE4xMo*6Zo~xW2DTJ1#FfTUaCgj``Q-*+XeZ z%;dSL<{_`?c2oCun4N)IDOAjftz+EYVZlPpOeWt!K$Q!i`#zsa<3 zGoSbLrOxVYZ#f2Ko#NVF(PE>Te{1FTTE+2})L$Q(FO6@ktwX72cl!pIx(Ap8E%rGa z3y)pN$?ubHMO4NIh+!EY5oJ4m7x{s<-%umgvE3Hr0=&HUy#X9ugs?8j`VWT#EhG%n*{Y={J-s`FA z>KM;z)=$=Vnn&7Ua-NI+FhfftX0WuEvi~o-(Jt-({_Ag&$Ha`C+I(tXk3I2=o(^ph zZ5{skMJvmUuhweY`Ln#;^?iN!uD-cVtNix(mx)x*Jv(^5S)Oi|nl#ROls&&vWc5gS zK6MIDfu>S|om>+rKk^(s8B;I~GcXHtFcY?nhs zRc2bdnEhN^kLG$kVJq5A-(SZw{!Xjs;yq88Clmkp>=Uu&uVj_Klyk}x#jchSpQ z+KGcs>dWBTR4rTn-xO-J*Pa~B@pp9%ne@h=TG`r~&$c98dTc&*z7OqAd;DFFk82A?TS|TM z$Q-({4d?obEcI_~S!GG90xF@ZPnros_49K=gnqr9c6OR2W#BXOfbFd*Pe~)*^D*-^ zKqH@d<$6N4g`69_^OJZ*>LPug)wbD;$NzKPo$^Aqh2C~cTzN(Ne@QEP_T{X!q|DO~ z9M`wW)FawDhMV;^)U+$@Ei!$=zlXTK*4s>t*+bv82l(v@XwJUb&E0}Lw?~HJbACtWgABy(y!agZ!VX0o>@37Xc z*48iIv8-(-*N)PDlE3TMk^1z~Cf3_k`tL^PPiXa(D&Mru7ma;E|NrRD`u|Hh>2X)H z(oe~Kv9FxF)O@K!jvMJ_pBMCYww_J~$F58->BRh*y${LuNeI;UQ&|_4UV4k8S#_-B zL0b>!Q7tyAe>!VA>Hm=JDF3f-cVj(&`7OtOA?q#e5ZOjcFV3-anefD%*jB%`ZPa&b zR(hrj7yC+`p4Zftw`RzjFi!FAi?Y1A;#>b8{F_tP&fqN&6>W7RZ&>4ai@{*t7U0Lz z`#ihvk*Bqfv3*YA3@+djuHq){;2!SdF`nZkaxLWC4lC?%BM2b~LnLw|9||rsr57Q- z0d-7kbzeFC{1H5SomLjAzf1MsrO{uf$~NJXlYLDm_4Z=QLH*pA9`HN=uWvg^FQuP; z4V)CIx7pIa(fi#RaUPPgrWmvOjAZ)Qf_hs{onuWC^>ebcTV;A#j+A}J;9Zue(wXMF zpO4IHf5`l$e$cmZLi{3a`e?r;T1=gMJuBbzGxpW%C9iy5%kC4AeMzRtW2(&+g<8MJo4q?{O@EW=?=ZdOS=!~^^OVo*VN@yEwTqUUsVfA@d@>9|#*< zi*n{)U9+vV_tDDfma9ZoT^z~ud6`}-bJ~k)nX)Z13g~^_>bxoE3n_2Y=4qCVTQkk0 z8#K?_XJz`7Quk=P_jAh|V-C}6EZ5qvlYS8tM+uZp1z&*=~C`&$(k;j zc9N7sOke#vU5+*Rt@?Fhel@Pg`s?lOlyYZCS5HUU;%a&7oZxX!BK0&zdhc{hgoE<5^pK zZ;#yBkoWM&TW})%*4qwx8t`tF2fPPmQe-vW86w-LiMuIf*8(lk79G$DozWHD(G$JV z2mLV+gYh+nVi<;F1V&*D#we-Ep`lsE~`;JO29c`KJcw+8&sfqNb*!sCE+Get!>?O_pIEW)SrtK%$=VhsL zRQ{yyjoWlgOIO{uQ2T{!C-3PJiyYRr$GF*xwe3;U+}2_>N$HydyLvLMnBFU189v+!^8p7*L}m5FIF$M$0V7>!BTpOsfR=H$MV>=Pf|SZLYT z^SSxQ7M-bM^j4CK`2rEjyei)^Px>>xeG$hsiIku3Jpu22$@Ipzw046mqkOUDmQp*p zN3pNFc5iDIt+9%{A4%F{d09>Y6vXRz10{TxtJ-w7ZDTDy+f4GK>WfD2>-Shxzuc{g zt1ZtSJux4M>Bs)q&%MA;YQ}g^Ptxgwe&~;ZK6zBK19YdgoR8BD3c)nQWC4ElW#3F<3!g5TRZo7*^bMF^mM6!zcmC31_5DB9Pw%&t zwu+>av~IA4`(NhNleM+&Dc1!ue}?S__qf)x?~k?F$z2iNKJ^*tH%BY9K`hJaNc;lc z%Tn#jR>MbXd8|FZDtYXx-6QVDv;(zu($DJ|$IkRkf2A)|uHDu7Ub_x8uH#hM%K657 zIqJSyY}G%q=8JQk%c=un;^u4XqON`P`Ss<>GF3Z7u3crF<#?4cnf+>=mT&W|-j*QK zaCd&&R`%*iT;=^9(3m&qMf&ySy=xb>9_68|&v1;u7>vbuOvGeN!wk&A9L&Q4Eb`f| z>fVUzlNvXU`vPp2qERh4pH;NwV;iJ0-!AMiwz2oUbg5qwZ=crIL#~zotDNK-O#NM^ zkG`~n^_99$@5f9rAIvHfNkiKYg7oXiQn7l!WXcEn^`Cd!Pwwrivdp-zw^{w3>SefQ zRB!#f(r&kwo?N?!a8GZTOU?xqc`Krmmf48NgSLCt@sYo3clSEEPIwNpo=0#3r*IAz za2Ypn3xDD-{0+XV9Q_D&O8qA1QrWf}KOSk}-{zu!)y_I@qLy-Re`)sd zEoBqCSFeM8+Xkvl)M(q;9A&AdSKIH8UDLIDsMY=2XzMTiR5nw8*J1ym0S7(z?Q(uy z$@!JR3b-X}kN=Q+nZ1ozUfN75JR$L{R;9AC|!nImd_td}wEVChG+ za*cR`^FSTuuaAbL)x;+)b&gFLqK^ei4a~le#W$p*W0^;*M~q`oju%y)Qa*A_djFR7 zQ@^FWrB6})mg!Sh>&Lh{pOlI_tL+ccu9xLVAH7zu^;u{sKkbQm#jdUvr>PciG#zO_ z$kBHvpq+I}!s@7MwN#12%NkjU?B})A* zG3&Ua{3UI_lT$35bIjewb+%Yd(la%|wm5R4qYnAoL;Cyh2M!?(M{(RIztU%-r8RGi zHkPYP;RYNl`aMy;?H$dxy|uE*7@U2LE_qb2{Kq{u8fuV^cN%g}O8u7htGYM3Z^KwEPn&+JLmIUl((Z1+{EhLM zPa3K&NGmwn(k1^RbDe0p7pQNCwoKpQ|CxT!`f-+0DbLO8`!&w0OS?0DZ=dO9yGS`T zy1vvh{lRnd&<^^z1U2qP_F=USvOT5!AosxIJ$K#RBTsk+lIGW>Ig~gI!y)Ot^?6lo z9m&7>|10+i%r}|oWjiONOMiIwb+5X1v<=tqfi6GUK|3Dhifk71%)vb7*Y+ju*?7+@ z`<(hM^_%Q-k|)2Ad6v<;GtJ=*T60Y%V{l|-RC01MX{|sC){>?=@5=gSFy>I-SF-b_ z?yEohbgE_gYY)wD)s^eoini8VZEh!xUD#*jjR%mm{aCJBC9kRUi>tgz`jWQ%J>#SE z`u=X*7fl+ik9iyNgMR&9ae61NC*F-N;b`E9lAOZqkL1Ezms0nBf{i?&WCPs?0epN*{;XwsNn;`(BTf zdDisYSJJjq_ng~Uu1(eau@^J4rk663>E#}SL}?pJ3|^hxS0!y=Rd>rh2KoP(`_eC- z-G)@lmwO@d|Eix`#^TBEq__1xy*Q)H)1K(-m0oy{K0W z;Vrxt-j5qgJtpmde<^oUGIb9EV1omJ2t_zN$bb#)xP&i|;rToxLbM-yh_b6q0Y4f;EGo1Z6B3e39 zt?9H;|8;b5OWW;dS0~pP@;DX~FcDKQ4Kpwcb1)b4SdT@-CGai--(y~lwY-%+UaQwC zHm#wRNmtr)TbXwUc9WJ$L+Ty9k3rubW&W)8Kv(^KOLX3i+Pcg2vf6LuyeDJaWF6&x ztVHkqTJ90)*N=L-G3!of_lLZf8@x}yj#Ss*3I3b(<=j}SMRi=I&(`~jV@m4d98?{Y zVO&?J`#W;2rqb8W=|AdqnbZ%GKXtsyy>$7V_HuXD^jbO8k$aKZ^{2Y-R@ZiFA4uwU zK%2i*3w?}YG-EkcT`cJ&ymp|kYHO)`Ua=v`S!v5Ovj3=M$!~S6%Q|`gy%BYhmRF;{ zJdUv(@>`XOciku3#QU0E($(+N>gy!GO%3$E7^zFVmm}>4NjK@-A6oRCPqv@@e}=J7 zcwa}WbiLD4ZS~j`qfTYqjM{hP9O^yROq*Zpr_au(x_8&;Q+=DK-^#vjm+9r+p!f3R zI#lwft}PQ72j>0%YOKF(5AVMxbkY06dVIds5?lSTc}>ZY+I3Le7kW7)RLr@LsAEI& zqb*NMPv6I-p3b^I&UoJjrh)Da#y1Yk+Sd*8@Kpo-D+bN@dO=@Cr55J<0kM29z#RB0 z;9cvs$OgQp|E_bkRo=WW@5ZmkJMmlb=KE2+<9y&AQ%g;_dKr zti5>0dnK-Y-{P(7jd+*(Lf)Rf)|nQ0IBE& zqb@j#lQ@mDIFEE(!8P2%U&z1%Ji-$^Lni*gzc4MQUVsq0)dMoGrU$nri-OSUXs`qaF$b9dTY{oD^CFVfexhHn=1U~BV^ zC6@g*-o^VUkBX>_56F|Gt@??jKUw`&$Eh6iS^K*&?%DSqtGd4#J7cRhziPv%IyU3i zecIm>Ki2E?gq_*rETmng+CEa>$nvw6XN&=oaq}uaa&A)RWvM@<41UbF*1|d5JiM}g zA5ZEXk5(4){7pl??y<&h;j0+ZXR^psl(K1WFXNCWa$4~{0eLEivCNdmCuoAEXn~e! zjdtjOPUwuT=#HM~gMR3bff$T<45e&`6J>o&-%DFC`<$Zom0}yFXy@k!^<-?~r+#@E zp}mB8mSLr_ZB$*Ru0^G-EorL1OIuW>Ep?)_HC0)~1nte*c4^HvWKAdgpIjShWnD+_ zKZ*T%XV!euwp80djVGj-wR@}52ddIfUvVaDI_Yzj^d!nQ8B$;Gw;NbW@3)ioML5rh z<#7)P(0lAIaW^&6&%<{%D)BXm7{2qc(YcGSH^h5lsF&7L1{<*%zhWCwu?zcf0Edu< zqd1AvIE(X0#}!b|<_kM8mwW91$_ zGxz-WbFE!mHPGA3#0RqW9nF=R(`Pl{Y2^3ZTy|#Ccxe1_)u9Iem>v1pHu=z?zO zfnMl~0T_fK_{L}3#pKF)ouBZQesBG)0aGn8M>5S93$R*yC<49fq3u&yw25j-kkMA{t+@F-R_FWsO_06q1 zU0d6iJ?zVSnEwC{`J^Fb@4b(tR?yR!9x>7~sLWGy_o7WWj=Z*&SKTD}=fPC^V`MZz zyyttqHgbw(oWmuSbCq}#Ip#OUJ{GPp(vmnc(;Ra{?*GUUlbrmJX`lM!FEy|6EX2GS zTAymM#I8*LLc5pwis>ys=RB@eJsi7ht@f;5+6O(erg#2KpWXj6eX-n2EalCa<{H~S zXL|j9awOB|^_gDvVYs43YkfJ>N5^F4|8=H+gX!g1FqOKY9TWPv$L#Xc`y8@=rzStq zwpn`VW!gP~;Un~C9Oe8Sp!K(yqhx<_FwXuR(l3oND2GZct13~JmwH(5JCJ9OyvsYW zte*by-=|xm_B=5kwYOvcD#d(}o`aO$M8>(pSeYvOLM>#fTZM$&}`i}HQV?1e2Bx?1R z_Uu;nHt}x9Y3CNkqRM(s&$n26E@nf%u9TrU@BuAwS;v{AGaE@*=#y79jwG6U1=@CE z?5m{J>hCd@n8%OI_pY_l^2wjHb8%9Kbhf)WaDr_SEr&c&ue04(k?t>8hYh5^g}4>o z+gXhZld<34e^>kKkUitHZFF=%3vGGoT3hlZ%j@o6h9_g^yWPAScRy(##9bV_R4_UvDHqF)c=PlPh*Ph=hmwQs=EzV@uN#`c+;4bd@l$YG=^v=KB zH}Gzk%QL~M9TQVPe@*o$$RjvncBFQpph-u&L8qkFgXH~lRcynh1Zauw7l~v;=TJ3si&Inj-CfPSpVzAWc-buBCR2VCT_gf?=#qV27yvQZyI)#A8q6y?u;P?mgG zKqXW`Ra8eU)J1(XWWAaYo5Q<2)Ht@Nc|U0FnVRz}Qy%(#qMl6K$JiF>zv<)rf_bLU zdwzA#Tl(2#eMVQAs-+Wuv!%BG>ig|0zk30CpIc4F-wY<*uMv-77|t?A5v6?Oew0Mn zcf6OQ&KHSGCRuK+22sjc?tyFN{mTO_s_W5c z$3r~EQ#{8DyhN@P>JIqB3Ok%Brt~19EL-JCo(+@V(&kp>C)+@ceUr9;)tavvqYw8+!dXhF!h^$$t+Bh<#nq~Czp2(ldM+x1>f);YE7EbV#5ytNwX$DYqI zBC?QpezR=qNu=|}lYFKq)^HyQIKQ9WB(?DiB(qq&dFPcro~lYT{M z$I4xCo&^nfIDwdiBuW;qcx1QshH#vn*oTWj^_kcC7dOS@q7( zQ!Gh)pPLVktFIlOt=St^GyghlA`Qv2oZG$Ul{TaIZ>b|?I;lUjb>*I)lxyMq(=4V+ z&&_Se=;Jq~-NrNN^d(iat+PwprM-10%h`o}_ydQK#&VAny_X?l+9b`T<;H5yk6*7O zZ$ovyndXf=hN>y##GVIUuo|i)!HLVsqs#@ z{I&MTUDCgg$1LMH@daK&)-^aedklu`Q>wl7KVy`5-btoco{uQ$tLIMR9_#lIRR6k+ zc~RR&qUsm(?zfgYL-o5Q9oPH8Hjez+^6biU^SfQTY5B{#MyFrRWs*C7jkq>G!1q}1 zS&K!=Ha+37bM7ule%?W8ltEdPLj_bqRa7J2HHft!c}n9xi9~q^hD3QMkVI*ddhZLW zt*Po@)i;>h={J49`*^x#X_ZIjCA0NsrqsDtww0tOZB&UVUv28^Hf^_w&$!FB_MTteds6G6#`Z_o zoT|MSqWCcVm{Q|zV}9DjxUzok^3-YP0;bT0J?L_C4YZAArD7-cU>^>!>_fyfcrQ~u zrxU(#fY!zt?RhJ!p1Z`fSB*T&vm#pA8~wtiUY*i@tLLqK#}p^-lD-tZT`TWoP<`WB z=X+ycQDXtrzLQlpjN9?vX2%!*V%cYVY~H+gAoBP!ZHuzkQ7 zgQ9MEUgj;X7IHaWx~s4b)leNZPzUwV5KYhwEzz3wY)9+>-+Xxg_TFx?zH)sa`THki zsdlYbEl!?`uFjW`?^xsj1TSxku3z#GIR|N9MW!!6`x5dFzH!_q>YzJu4fPy;#8gbjOw7hlNWy$9 z#9}N(GFIScq+ku!V7PnI&1GyiyHl=mPR+~f^g=K!fRe>NISzfAF}Vr zwu-H?NIQPESJ%g^I5;C0VgBMM>6L~Ydoqqo+aHX6_@rUyv^1X8SY+9k@yz^Wn7l(x ze@~w5t#CUkmqmR|i?%R-SK6TBK*m|lZ zwajC4_Z6{h%j{{SZk78sQWn3_!+wT-gOQ~BJtnZ6$wVm&^(?eHCQJRIU*pMjf=W;7 zCAq(<&Q0E9?xnoc^`ESpcfR$0dOc5)hO~WE|CzKOz0;TXRH%EYrL<@E^)l0zO`WaM zmEY=Isb9w#=YZ6$ebs%6)2&x(?-L3bKOn2@Wj?8|ywg$7dC0i72$RRZpnnDbUj9G( z|H+lZWoJsjXzN1jN$XtO4Eq7TCO?F0>ASAJyx(muWj7BCun0@A0zYF7)?y>JVmo$W z4-ViE(r}z@aGH1?>5y%q#$@SZMfCOZeg;IP9kSnc+;+?6a(oqa$3HFd8OPeU zQSGhC$>z0;%Rm4ea3K((2!{tz$b;9AAJHg;!YGPjcoT2oZM?hIl>R=kJfzHGE!pGi zWMA4ozWdV(Fgr85QE8kJW-b8+n=cV*1oH&zst+7MQN>$ zmzrh*^Gw7P=2z>W9lyqNA&EU(Xmxt(h!Bn&{Tlx#rl0RMz1E-MGY(kqyQWY0=4{LK z{?E;`U$oSgskQo;|7Wc6N<)^Z`UNtkPqo}CpJ^^MU7o+!`;oUW{dT68^;6eiiEH)p zmwocT@;)ehiFVBA>#V;=?Xt6(_H5E#(%O&TaS%s*^5Hu!U-fSX9~)%hnR)Y@<>g&o z=D@R@BQG%jWn4G%roTTzucu_4q`j0QZ#-)u+kRKS+1fp~4X0u`kK}RdZ_`Xp{+qNi z@CeU*@}tm_2&n>})^!{5JGoaFuZK?O`>*p@@Tb*-Li_X{1?Y;Z7 z%W-~T^TgRrYTUT$Td(Q*ggiDy3$#W%bU)L!YS~(zo9fSb$~(He|L%KUY{a#p z_y4Q&gN*0&{<}IasQa3dPuX^AdKrr-zvbNq>KaP=t>wJposK$B$g?Zne^2px--uSm zybs0u|Fh;}+^P59<^1IR`+vqr9?E{sUDEaaf3+``x|gEm-@7iB=_OyXUjOqffY)=Y zGMyS%D`Qi&<27M}R#%^XTduLQ_Z9DJdzsJo9HIK$(u}dLQqDz8&HM)XU36dY{B9lK zU(au|e`r8Nz-s~h0uKA1wO+L5whgyUvn{Y~w(Yb%wOQ>`>|LXt+23&7=U&{8PB{|H z?htoA_ebtF?r+&oMq)I^ArU`fDrRCfenJxFVExdFQG3|I4#`Qogmj@;t|=C+0Ihcc$KvUfLw> z`H)iUxfg))sJuRB9j49~T@uz>68?E+Zt{H-wV1x{e@rjiUfsKo${1nkGW?mj z#+F7}eLjTNMHA+0h8D~#)B0ZP_}&9n<4%&Ej?$j_aq;eI^3OG<-nZ4Bv^t^-didl= z-FuB)ma|_%{au~`mORLFq!OinL!#WjmNK(dT4XuB_=$PPhkE-#o-wtv{+GC?xgy{u zeLKgwkAB}hkY#_3cnrgEjKC<2Ay4CplCIp(R@+AQWz~nE#x1KlLY;T@ww&JPljmSn z-=jRUsM68)0or(yU%zF`w6?^~zWV!v<7f{#+1C96)&|sY#yam<9Iim^+4D}WIpk?B z7GM#UU>TNU6;@*%dEZ3zUY5E)PCF(uv;ls_W6Hq209mByY`rkF@nR)IFws$UNHi zG~U6W#*%s0fs%LCmP)xZTdRY1f7e1ASCGmR!ZN<_1!=v+E9BZhpWKF=#|h7JYWs~` zlgYXszcoPXM@pDfg8jZa?|g~(gfL$OBAHk6B-eTp<#|gjkE);8>s%^%Q*FzX0{S~G zpZ=jg*DK>%^>+Zv`FkoYrJAm2(l3Oz%X=Pa+sn0H zpsBR~7ycczce)L=t+a2lFLma3mF4Q>h-+p*a&kw?sw;Y-9|mFwhG8VeVgi1|bjox# zaURsNr95QpuX<)x`Wsc*$^S_ovh0V_|0nx!diC*^w7&PvkJ?DvzMs2~HWD)4vxPKM zu@if+k7aqMBm1jr&&XIOsk0=#dM_qg1{KUS-w)I8^U8IxAMfie%^FHy%yH5>jq{|J zPSlPGpL>()x+LMLKA!a%_fq(qdF50&r^(pZIUEPc$+wyR4({Q;PyXbdt>h*c%L^ild)&V<*eSTe$% zoA>{$-v?IX7Nj3s)~h@HVE?+@fgh7*12iVx&xp+->#xT0Z0yxpE0^+1@@3WG?U|;d zPd?N=`j{o(Xx9UYi?YXf_F(!rpXq(?bE$V2q`9VBf+OymXN{EOQy*hGi1~*gK}$og z52gN4?VwwS+Gu%9pO%+A>g|s)Oh2CKWnFxirTQh)!?+KB{gFA^PsVT`)V_K$h54po zmNBn)9W3v#RQ*fd`-AKo>UwI>%3rj5(?1r7 z%c`HG9+2&~hxEnkb+c9n%C_bnmh?Tudp5aVF#jvk zv24m&kIFlp)IRaugdZ%^CqFXZYLoMwd@_wit5;^Z+{_=k$&~IPYWs=te4bjr)Z9rH z`L4;x!EJJ^pXvil;(c}grh^`7N38Tri7G%k1@Ss*zCkQuq^sAx+2!*;zm0K(tx|Z- zKb7}S@IFO9Q%mkw>icq8(kX{Zs7l)2WvAYc9k+alb`0!3C+{)IUY35JL&~kU|HsVV zfcYB}Wqo67uGh{jaxJZGXXClRv~a!eRL16O(;4@~)U(TKJ~b}E)NhYAor>zcGwPX6 z)AZ%q|I58eNsoaiT2#+~>es6Jel34f$3nf9Yqk3sZ7=r8u}-S3o76{t4oO{O$~9>e z?^J0<$vueN?Rn+r@Rw&)Z}dSw^v6I9#@C3)PzkwzT&A`-$$V#-?>r>0s;^wH^Ro9XY3IxT$Ia6B6E(&|oonP- zH&w?;8%@=n>Yj!4*Lu&d_toh8fm{oydz~`A)w>Mk_>pz8ZR7o;0Z+`8zVE4>vn3xP zrX_xNxDNc&THN-t?V4@8eZPIVqlfc5XNt3i_BDww+}ByJo4Ad;xQF|Ah{t%27kG(R z$hDbk3s~XY%)Nf1c&v(ymnF9Hm@kJ*M|xs@0==NA=Lw z!?z9Ci1%;H@}!T-ML)T`nMCg$oD?~T>!4hYnmm1;oLqu@mBc$JjWQ^Ua;StVfP zI%+}ERQFkYuf^4O2{IOK(3Y*aqep9w}v|)cb$LPg6t(6s~qy4b$PnyxoZbwS6Y$RHi$(>e1R_L zh92mJIDCl#tm9Y2AyE0z%A9kEK!~U)cSJ=*g@ii^L=q4L4U=R@CYPBo$pnHdq9Tikig!drWPwFQL>3Vd5fPC^ zWDyZi5fPC^MMXsxk&ypAUDMM&O%jk#zyJCFXBpne4+OU@5Q+SOKg8 zRs(B*wZJ-H1F#9$3~T|m0^5M?zz$$1?7SP-J-|LdvIWia((it_3G?{@OHOOcpB#-g zV$aLeLRRxSYa=?x5^aq8;8f?#lEu96@oDYn-Pp4d?02cMpHiR2(O$#AX-qV4Yb*s# zAII-4%&%i?19s%$!qo#b1t=d{+e%l;ueei*c#a?pxePwLsqSs;y)T9A<-iq4udI{w z{MSe)d(YV4w#)As>k9d6RPtlHuzgS)%M1M4UZ=GmUQ2(cj@jTw$fv92Q8p^mg1=1` ze_NI5y&>MO2SI*_LY~HfwD02_GsS)~Vy9f55s<%ClxO`>nEamjo(IxD=jmnq%J1=B zz)P#3U$(9ETM+WqI&Kek6$5Zrc-gXi=o$xICAfwFWg7MRho0Y5#?w4Oc}@)7$@dz2 zN;{xnFxEpY#b;P)A2|W~?f~ut?orf_`jGTD7U*6K>EMor#CL|~kM1Fk2RgT;`#XE_ z6zg>OmItBZ5#TZCnS*OWIq=RmB`>WlP1j8m=j^OrgTy(T{)XFgNV^z#9(t&+(7iKd zT6*WSlBaR5=Bd2Llb_&|R{yH~WF(z+RqCWWC##@)HLw;~4{TJ`TY85rtw~AG)VxK! zY4I=G7k39yM)v#E?MSy1*cB@yy)#T%2I-xU()=uq$Egq9Bi{d;jXk-Zo22hy$}wi6 z&YwcpXTTT0m%vxhE3Mnf7t&mzzIR0JLSd56qjL>*UPyh4y?2ntH|qm(82x5M9Y*KF z>M(lll)@za^e!(ZgWq30`XZ0DqxQt{a@a)Ho%#byqYT@a_T@Rc=@|=ke)N31I*j&a z6y^~BUe0&c4fdxj^jj->&h>?)v$h-T>^E0G!e%Fd-+($mw;uN_0SDj#ny%*#CgYk4 zTnbzXbONYJ~# zyp(-`-Zf47vN1o?mHs}PGM@HG6uxsEd&Zv5J(cm&`>OW6gue|LKBaAXjJ;!x)_7t$ zzuSX*om$7Grc_Hu`yf0E{Dx?q8!#rvqCADbIG`9P142LrP=#_%#B~xNj&B;{v40x) z;aP~+Xa@cPe*wI6)3=U-+Qt3<`(Fc}ne@l~J@6GtH{j#h$=$ zpb(e={0&$Iyant7z6E%^PwW!lI$$7hD^LVf0)GXb1Qr8pf$hLoz-eF*-Ze7~cpmsC z@OQkAa|Z{TiV1@I=Y3-}iJ4KU(&pB|tU&<^Mg+yaDv zslcPaQs7PCQ{ZR7f!}Fm;@{W)&aYKe*;Zd!CpWBxDVJ3IPvUTD$oT;2ZjSBz@5Mx;1JLg z&&S*eJOwNP)&Oq<9|2zjX8&%d{)KY$r$?8!h^ zAPdL?76aRXL%=V94(DzH&<5xQ+zJ!}RlqdhVc=QdU%=0R347<}KnEZL7y&#CYy>_4 z4gxN$>jwf;fO)_tfF5&UGSC6&0rUfg0k;Dcz+Zv6z>C0UU=Q#$&<%6KNMJHB8_;s= zk~U#&KNo*5+t`&GEAh{$_=PHdG5Ck4%ks-q@h_?3SF7S*Q^mibir=W>-&XNkRq5YT z#qUtXf2fN8RKetp(;KHyt4m|RPp&L`63lx zrsBgYz6!ij{}fgHT`GRMO8!9=|EP+eqvD?duWZkSD*o>(ewix$ODcY~ihos=e!VJw zi;90wCBIV@|B)(wpNjuf#UE6q|4J4AwTeHc;(t`7KcR~MRTY0m#cO^}w69LZ8&$jw zyt4gWs`w_V_+(XlOI7?OD!#2szJrSItm1p9_?uLGx{B`)URnM@s`#O*_*_-|?JC}{ z;>W4dm#X**m3)^8=KUMNORQxU#zgLxhzbgI<6@OU8|69d>tKz>0uk1fRtKw@_y!J$* z{fyw1>1`_BrIPom;+v`BTdLwOQN_1a#dlD}cUHw;t%|=v#iy&}`>WzJRs2vDpQGYO zs`%T$EA5l7;)_&#nJWEw6(3c}PgL=LQSo=F(oa+I_o?I`RPm3hmaiRQ#(d`PWtP@2L1~D*1n@`28yRFI4e|Rs2zv{I{z3?^W?XtKv_p_}^4K z_e)~`(5rY0c%{E`s^YyWK1n5?qT*Yr_%^EaSE%^*D)~;T_--oxI+gs5Dn4Ds_gAIQ zRPi^f4psb}s`zQD_`j;+XQ}vyRs3Tr z{weUv@;sx8e@+#@SQWoa#jjBDt5p1}Dt^6+e@n%`6XSp3-g2CK^7y3ij9_y*ox^;? zeQsy6v!%1Ov%hns^Lgi`{7cS}zR|u_&R3jkov%A@b8K+Fbpa=iZTTb4ubsVw3psDB z72Xvda?Er+;41f3_-4B*eUG}Ha6RR!_Py!a?s~*A*(bQu+(#UA()eebGQR5B?8$IH z?ReK?7w-2x=o`*I?5p+6cR0Onug|;RljMEO7jZr3NcOh$_V5mL-{2j|Hxqh!pY&yT z7de)A=lY)UT`G*`_c;FUxSfB^x7_=ZcZ1i@Z}uMb6!PzSi}-Ec_r2?VJH5l*qun2R z_jo_{?)SD6mO0+^mGGZ?(Gzt`t#*5232w>@cB(!QhvNr#iZNjjc%GU-f`wwbA!qnURDo(BX{ zfK;Fj&=zP9bOyQs-GQD!FQ5-F0LTRP{K#cza!0;_?wz72YzKA%yMcYce&8T*7&r;<_H#2yCV+!nWeN9oPx% z0>2m74SFB2A20VDqp6>E|k#s`%k5DUm+9Qs( z?v8HxeofRp(VfBf<9~M7xi!K-{&9!X+U<|LP`1B`$L zumb|%0h$2KfE1t=kOs5^Is#pQZosubFCYWx2Mh*=06D-&U^FlmC;&=;Fi-_d044!X z1M`8!z*67^Ul5NQkM+3=@e>zYzyC=eJYO9e>emgWYpf0z zYtKI`U1NQsq5AzRC(?6n>YpIKglj?UN^Mjc016FsdXV1ps{T)u zZo{1h=fi?@w}jm*p*tnYGdQ|G!k)?A>3m+GbGZ8)vmEShi2Up|d-D2=q#it-%9Z%& zT#nuUsPt9)*j*2H$3uBe*Nd-l(OKQSzF(Z|yzZp?SMkKo>2Z59d83fzVP|$j`C


Ll4BP|E1Re(F0M7zTfER()!0W&! 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%0Dast_8EcSo6gip3a}Op>l)cxP9eqv%XUQ)wy4B zxV^CK?e%YWPdh8063x?APp2$Aou@yY^>X#gZZ-SLpPTiD`fr~4hWaQxf+`+^jn*U#L2Ay7BC>vUk?JyXJq@JRiJV^Mko(omDma<(enwz9u+D&>fS! zd2ZH6YqpnvyyjCipRV~#&0nkC)7395`quoxny0JpIkj`aYwMD;{&Lp-igd74J-$`* zQq6a3eo*tnn*Xf%Ne%sfTJwvVUyG)K+KSrh+S=MvYUk9>uU%AoM(y2oi))wFHrB4H zeLncd>e+RtpK@8%>Qk;*@Q>9;=Du)x$NZ+c4W~3N*jU#+_nos|bIRx`x76J+_XBgE zoA~Jtym4Tl-okOWq&+@%+v+qSP_FcEK3~b7$ASNnh1P13a&9 zp&gm8?>M^A-d}gT?*6)D)q@)InzAQrdKVq7{><$1%Db!3FCa z1fQt;GqrzSdS-mi4=N^W&T|m_OWkv)taY^X-*qq4yx^#PXXUp~`N%?M-B;coG}Yd6 zN>eQow7tHo{;}F!^?mhw>#wVSZT*e)1N8^%Q}v_u&j+tBf3fn$Q@>byXJzHwk5`^G z>-&suR?Wnjjn5W)1NHaTKT!Wr{Uh~{)jv`H zbp1!`AF8UWSy_Ee_1=ZsXYVcltBP~x{A1O_73*hTQ-0^{U(Z`VXLXHH!(jP8)<0MO z)%t&_|2NHhN7b{Z{&?ZW`X^`iSM930a^c6a+N!+bSM|TGua|6JG5>W7epc~s6?fOH zm_OpyytDFs6^BnddGe4u#~2RY5*!ac6MQT9MKHf?t$srMVA(BYA1M1+*>h$8Syoei zcKJ)yL*;)^{z*yEKQCKYad|~|#ZbkGiodA%MnzBX%ZjCymsa*vPFKFY@=q(jT=~Pw zimGi@!&SFdy}RneRiCSRVAe}jzp6T2-#hQB9;yC=>gl=@)qh?6t?J)ZpEj#$){a@p zS#O&4fmxrN_3iqv&ic`;+M3lhSJ!mc4Ae~5yuapeYtF6RS$nYdk81z6_Ql#?*3PXv zw{COY4Rt$%BX#en`;)qd>z=Ori@JZS`+42m`U~pQ^&hYQX8r%vpFDZZ(x7{@(srdT zrCy~Ql~PLMN|Q>jS9+t;A1d9c^e0O1RXVQpkkUz|CzU>{^kt>5DScn*zm%$$1>JL% z7AY-LTB+2c)TY#-v`gs*r2(a3r7@*9D7{JP9;JJg9#nc%=?h9YE>K#dbcNE@O3g}Jl{%Grl=doJuar<4R+?10S?Ly~ zKUBI?>77dNQTl+=V@iLc^gl}Tb!>CG(m6`aN?VoMmAaL7D;-c8Q<_jZs&u>39ZK(0 zI-&H0(lbh*Q2Mme-za@ssk%|{E3H;4ll7`^8#eHX#Qg6g@_ohV_Ypg12MsmfJ}!wE z1iNNidP>ig!MBfZJ|ze)d~W-@0)4Z7jlNmmp!-Qghlw(+4KC6bBQDavm%1mu%+V~n zoG3uF9cLwGFNb~o8}iY1oJk##bsa4uZh+?$E%T?o(Xwu};cO>b7Cqq$XU5Ja_K1xh zEhXxOk5pJ{@tSzsjOHRz7?$FN5byHHPLcTOzmtmI&1XZr)W8MgzOw5 zKJRwnh*%$SifDVzoh^cd_ZZF_J&%r-gT?UVAZ$-0pFJZ28*SgGGCNI3<&_ip12@>T*yP^<;ky$7^TGOny%uY0icv!T~PKY`EWH;iF zbAyN&Keu-C>%bmkPK$O6>xil`n?-k{^TE9q*DhRJw?^XoQ}p8PqG&(jBGH=!@j9dg zQAH>wPUBDpa2{6j(Vmb7kgyh4g{SN(thHDjH~ry~e5u#2wG){F1FSR-FOfweBl@Kj zJ#n`x3NhH5a5ud;sj#zza9(O{MeG-6+tI#-Z*WIz3-298YdOo}+~Al-HHwVa=AU6k zYmsVDH=2vH{QMQ8M@+&ni`|oq_J^OXPZ-_c<%)PC}{vp{DN@cKPB~zAOq?7`=fN zg)y`ON{vzKygj5Ii@!Dm*J*yEeWLc!S%}?oTNBQW-Xjag2(5=waFn{e6pq0g%*ee4 zcb~)LPaKZDsdxVWESXW!rzp7n16M6nu|E~Q6n z))=0{u#ig8nBD)Ha{7fGDAmrNtYHV)*>HFtHws@|vXzF<+SxwOOp&1-GZT(IO+rIZ z6f{*#Lgh<=QtQPAPl=}tC#BcHon!1YWbRDsh)dYg^ zxI`{JZ@%?j3NQJ#e5rP!o}76cMz%#8m-f||Yp=DI2 zm&Q-NT%W0BT(-~DGA`dsw=DE{O5wfG|0&fnOHf=+TwJQv9niaej=i z9b3aZPc+3$E&CjX@H>cM%mgR)D5w5Nq6YnHWJAFF)p*hQ8ZzX!SK3W912>hu)i~4q z`E6&yexb%GP0#t-BzpHXpHk2iSY1B0G84S{ZD)d)wkG5K`|j~Qi*i8p&6+0J0%tZL zFNp)$os4K(&sS)1=wPO`@l6oE_7Q5T(!5ouxk}@=Sd5?)h37|`X2O|iG2S6fINZ(T zDbY3>t9qqzxfjeHgVFd-#QBVI^CJzV))wCQA(}BMD$;ML<}?ns3u8IuBF?0j(;_DmLF%EX)p4}g|FjxnW9)LjML4;pM|Yw zf~0u#rWBrw>B!R9qcu`Al)>cf%XV;MJc?U9PE-n#eCcLhI$8l5%#S>p%)*xAT@+|? zCY%)0@1<9nFN>Pp8l&Gdi|%E9>zU!^wqiVDI@8Vpfl*lM_aFj|*aaU=mN=Nug;i`BXd!}`i;>*%dMWtKZz9=2_D9uBq=kc~fvB*)W z_4_{g@$Z@VuT-CzuvRLHK2x7kQS+Jll;)Mvctf)lk9W^Bli$_iai5v-T`ZRU$`~)! zYbFRo8x-5q>}I$RE-P*AMP)+qZ^IROaj&$(QWRMl)+la@dyb{% zd}TkfRL@u1#nRCFo~8YdQgenLnECqoF~6C3@Rj<`w5RzH7xQdN!CYE8Z4)Q^Q-|Vb zsI-_VDmK%4U#ag*>wPseTzY?B4Ko1ixtdL;QXDAxeIK9)Is%S`oZ&@dp?0T|B$&a}}Sfs8IcT7H?Vf9}oQEc>2Mz zV9TQ8N&c3p=axmkdw{>6eA2hN{ljlLamJI?**-Q-%fo+l@7{<1HCR%1C^y>e4}S69 z(T9DncR%=zd*AqQyw~o#oK?!8 z{>I1Wmz4*n=k>Yx>B}DOeEPiLKg*kRPu}`mnO@nqY})5WMvis9dBo@LIkEBH&pqUG zk39I@d+*6X`@Kg}_x<(}UpMmf?@xa4BR)6q^v_SeJD2;$Lr3nL|7aY>*^h0wf7N4c z6*r4-e6JmMZM}WuE}y&YnU8(s(Pw<_yt|%%>}|Qa7vA|Nj|cDabyq!h{R8j&u+RP3 zgFm_Vu^g1=-TvMiGk35%muc6xEPB&@zTIaYZo9wdG0IYp`Lf#{8-3uJ4^y^Hze>Ml z(G$6vO^?3gzP?9&yGKs+-n-~SK6l=SZn$@2E;n%d>mPX5jdAEv#`w~MzTHT)A1u4~r;e_s+|0MRzHfWL_dW2$tcT8iit#>}Tfy{Gs~`Qhr+tfO zp1SAJUq4NYzk81_t9$wjCy(Uz;h&y*{LwRWxl>Qn-+PuQe#@dJ_xEQXDcAGf#s6z> znckh)vgqUDj4g{!=4MNN=)i-Ybx{3J4!fOC?)uO@PvvHN>dc2L z%k}6@|54{?+V{U`>f`tQXKt^~d!+WhO*uNf^Fv>_VAVd~vi$hJzx$=*jQ;Nr^Y_cS zcD;`*y6@B1QP!Blz`s7e{KV^@pzJ#imRsFUee;AL?Y|!X@B8a=bok>Fe{}EtPC8Vc z^ewhc{mp%6on(XoH$t78q1;K2HMv$>PtJQ_g`=RR+}!Iwa{bA@xxG90>86Lb$@A`gTTWJNm|k|>ZMW0@J~z@tZgsG{&u1|mBoCkm8@VP73?k69bfB*3uHg0+R z`3JV=a9H*5^7}vP=wnlEeP_IN;Kc89Exvn8=L3fvtgm&eopQYK=Q(U0n7Z)(|D7BC z<+pw0q1Qfj^5j#&m#WU0_1T(tm6erWQGT%e{fjzI`@rd6JmW9VysP|!vZ`q^EKC$d`%br{I{bj#jcIK)@%a<>| zVEMJncP`(*d~o@ZD82VOHbP#!DKnX>4!Y*ErBP-uTAGcQ!uQ_(bEMHLhIs z_l@6Z{C49{8h_h3e?`NJ^H*H8qI*Sh#pH?)ta|gRTUWeo#d}vgyyBS^f3f0AD_&Uf z?<;<{qJHIRD_5+%XyvAr?JM`Jym95k$~Ub1Zlw<>olrWd^t93^ls>2Q ztkPGM{#EHkr5`B$Na^QFzf$_GQpIU{*G6f!(p;qlN@poGDy>$!SZS@&WlC2owJPmU z>Qw4h>Q%Z<>9tCON+U|+N*SfsE4@kStx9(&-KBK5(w`{3U+K8gLrRY;J*o5&rH?6n zR_XIf|D^O4rLQS{L+N>?Zz;W`^na9otn>?|-z!y}9(30z)ho?cTBNi@X}Qu0rL&bT zR9dHWxza|ZYn57+wkmB`>Q?Gix=tyfG^~_Xno!Cp-K=!0(p#18RCkP^zTY9EB#dIH%jGaXgx|bO7%*o zD$P?`sC2s0GNnePRZ15qU8HoG(t4$9l(s5$Ds?OERk}ebp){y8q%^Mdo#Vlc>mLkm z+@VyiTckC?$&)XuOz%j!_pEr=ivPXR`&R1OP@_N3=!L7(ud}3VzllMeZw`C&!W#dV6LdXx2k&AaP}DdLl8}zb!FwAf1`WmA0h^ zr-l;;a{2A!gQ>)L;>z~%^vwl@or#I$_)xl_ygNB1NDgEsh6<|slB1*jt*NQ$f|@G6N&iS9Yeyr&0r&Cj_h`eKa}I-z|&` zL`LdLPfQK>Z%&M)rxI7TBr~Il;oK~-I)2?e8R95b*Offl-BDriqlO~nd2G6ShZbfCWB^jIR+WRJtrRM0%G zAABFs>JwLP&Ws5Un|DtfNsW#sgXYPUwmdO9keQm&VC32pQ~E{w!Hng46R9DQPV>}g z0`y(EHIbZ1tDnycvTXu>JP~Y}8n|-z_{ezr=(xyzAazi!yVK)|!^vE>Zz3}i988Rk z9!Ly~Y)wy$C8mO*v8nLsIt`x94U7D;j}yruk#CXA=EU@9YG_#J$dMMkQ-VG*AslB( z{6K2(P(n+{W(NjD@IEs*n40WwK9D#N7L5+2M5Vq(i->7N6l0xR65~UeR3vvOGn&h# zCMOfZTDB$lnw}7*viXU`v15rW(z8XGLzyvgLvHHUL~0^8Rcm50aX^C%gw@Fmdt{wk zh1rn_k&I6a~(4Wgx|#EaBk?1%%t$->pKO~fgHX& z6NfWXk=$f*BDa~H5J;5*kWQx(oiK=b|m_H zQt3m*s#MAPVn3Cw5K>XxdOrvt6`6zx{hoxU4T3>mgS^p0^q$dW`NCiJ&T8kC2 zMCZ_ArXo0L&7_=c_B|vm2NL3eY<_cMTriGEUK|NmvN>^dGBSi^`&%W^LYm*496u6K z-J6qB6X}!~(2tuQON~e2+A@gRjEuS^HIW%lO1JqglAxmBBcg%OB9O|Ok_~VyTyooJ zVj#XZZRzx6UJ3iu-{>K<2A#o{$)nmtafXlnFPx6XuXYjCMMfz$VJU*{NluBRj7=M3syT zB7-}!r=3alA7PNl7&oT|(s8@E6F{P3Lw4;zlrph%lM@pt7{7cY5frFM8g4=c zm~YjUF#9Fj2?KV2Izoe8sl#Rp`UXz<MWU5}- zgo*y`GVGEeQ@X;5h_0X@6_unEr298RJ`wqf0nnYuM7XmzHHCGP-ICs;se@Dftr?NR zc({nZfxdfiZ}+U7FMx>-g zMGH+WL`nuaGtx-WM%{@~Eh$>kla_aejUM*volYN(74%J{N4240i#^h8X^AlBbY0nz z9v_-c%0Q6*G_R_8F!wYnCrGQo^J*S*`qVv2+)oP*_k7b75;FUkKA=^(=gHwA=|-W8 zTuWkTcrYQS$1=kcjuk93lI@N6G6GnxI4KS0JIk0IK|8t%6q{^Uo~6UFKkPA`I*=Hh zM8vs#dNe%-uaem;&Yc`UhPvFav$EY|3X{}5$;Qe(N@0)tb+jdrk~GfA9kSmi%>gIdo;ZN3W{+b7!wJVKmX%F` zkKi%_Y;YRE<#Mv{#?#Y@2|r&uK2v{3W=!*Bn`G42L)o4=nn3f>S2XB%trK(JL5 zOVDP!OZBAS8`mQ%&nV}$<%>V4zQhL9>kr}pw_K>SQ@9l zJ2|fK1>?&Zmt2wCn9WW@mLdtu?vhH&0<~-U*z~Auwe0i~hC^w;FFmR0#9(&7-o(hT zOo;4`^&-7TggzUuH<|Vb?-f#qhW+mM3SEiAiiKp`O(X}$lOyTT>D&_f5)up94e68r zHsS;rOXxcwdYbfANl|%r^1k8J*kK$p*D5_Soh8iOqX|)3B3#?PBnEo z-lo@{6b_7Y^IUdRKAy1b_?QAGojjKJC#9*SzsJqxb@fSkroiJvBhAMM_=Ncu*;5&i z>Kn9bGjQR<{Nbb&)&xenFYA<{mx88!K~Hjev8Z zNXpFQl!!u0kk}bb$PS1UwM?WY&9}|9YMDq2BC70&Pi>?pn@H~K(?2Rn_N~RT+y^_WlM5&XhLWW^AixUua!-dnjDoW9F}AzCzGRL zf3duRACptL2HMrbvHYZHToOJzq@<_{Bn^CCFw0nqwAh?E00^UlzDb+n9C*VMxdK@( zRj;n0(vx zD(N> zvPcgl6>{k7Nn)PaWP5G&dg>>T?+d z{N;-c<_cOAOiQH3%`5b+v=W_ZjO7|_NgzeS>_JKRFo#VnVLzQK*(ybzK9~;ksY9tS zlNnDOB--jHQ`jqU*kLX#89SgzbJ#*Yy#nz<_h_^%gl}7VTpq?~CRgju2yp%UknJgO zCWA7Zw>>>MkqDR3el&4NMv-KV@6(w$Bq18fPRPHU)Q097qy~>FmgKWt+L#c8u9Vm; zSCyVPm>wO8PbwbwPta& z@24Y*!{QE~?Nhief`C3Tv8?r6EnTN%C+14_CPu;~?1f1ugR!KJewq);Xi*eZJm3qE zG5s9-U}R0^+PPvQpLkQJnI*Vm{r5^$P&PUgOb!N~DGOr$v7F=))|@Sn%I3Yaw5*er*+;x7 z4@7HPUYeB?nRZX+(QdaC5qzA(bm~#9YRUz`nM^fjhM7d*2c9= zYV?52Ld8>%^;u?Aq%=8BJ`QnM90R&7GkP#Pa>j*5-N4%kPss|$_Xj7}ps#2eE!PRUgbp2g{bN$^@cVZ->txUOQD-LH8{Qw{~RJ`5h zAmFMnxPGS^l97j{w?^F4u*Biv!)lo2scaZFj^l1Ixmn4YuTeDmc!LkISyvB^X!&Wb2QUT~JaxH%6Dze5x z_SuCUvd@Q7QDpYXCB{~_9R)xT2*x zyverQlN?VTlbM`d_?}1@!p##J_}Q$BP`GDj$z-2GGsed)Ttz%?;fi!{qz^8#@pgd) zA1EiPn+Fu9ah1&$sI+Gnk@Sy5B;B(GX5C|l0_fQlSRl-mhJmHC&ldF&)^X+CxlmMc z;OxodfSgMLBWIu8+_Am6H|X#04+g|clm>&zg9>_21&8I=B#FVN<=MMY?DV{UYhofM z!J0>=rZWeek7>=Ep`{y62>EPJ#h7%vNuIE4(V{qX_K6Tr)NRYKG zWC)B85!`g0Hzx+AM#-}T87poAu zv`p$)%A$6b%}ndA(Xc#v%jOJ!m(@KAEiJc0lDFAs7d~`N!g!u#HI!IzT$f>7J{Op? zTsAOg8L@&Q74CVrEMevG|5mNwzaUszxvBE%${^rN!u%>(L*;sx@77n17^gevb^mq-``y32L2EX@Mc?`i z^ueoHCR0qMD+V@Av^V$Eu0FN~zF#mF{2wWy6M%P)%a{hC1eq`q^(ue$Q~?y&2@Z+r2D zxgb~|2(M5wnC&+-=jx09Ybvi)8Bdp0Zq(B}SJJAd1(mIO25XBQ_Ab-YvdZSltCTYg zu5;rxs%NW8gJ6aGmv*iCGOt13tY5@295?IxLBJa5FK1m<%;VLEOU`K#&xyHM; zvPDnL8prqDl6_jHx;1XLbJe58_2|%SejhutPkq9IVQ9a`X?MGJmU>)PxmF{0X=JPA z-6y`(2G-aQzuWd?`$pL*Wqd!GcJm#kfOMf|ztTZ)k^a5PJ=w3p9#y-!Dg#!djxFj1 z9j+ISpcK|-5b#CZk>J zf9&N7|zYBY_Fx!_%!A7&ANGObN<`}JQ6TWS2{nnG<6>ZXbnzJjiwXN35);b(qC=Oe#_30OL#c7vTx9F)^`Abx;6;*GozF0{T zqI#X`uF%t?)z9krSv@VOZLYo0VWUyM#j?J3wQz8bE7MPN1k@~24h;F)HMQ5&p6+_A z)vvOExghv)@9DiQ2jBJXAoyIoh&nPk%8+(;X~^*R{5LA-2I63%B`$Z>u> zU{KG?1tFsX+X{_+rN%|#A>B6WnYm2985P^J(Q&gd$Tz4aG!DPT$Vz}8{eYxkoJNh& z;&Oqs4YJAl^6fU>(5C%7;pQqOr0;z7yHs;;)ibyS;~Vsh6u4Z8=W{B%1oisLEqX@o zc*!%*!E1P1=vv!;ouz&|vwOEx<25UR+vWO~aW2<$qn@wIO4t=DyIS&xHs~tP%gA&u z)sdtF`VaWKw3acgo@e_;(#v`~+VITR%?I^t`pRT#uXdd;xziqrhbAy>1RmB)bAgjh zT5GeDqegFF6r6wsFApzsZO|xOq(XH5UxVEtggONGVffaAXp?Rzp3^t$ts@PCC}O= z=a6k}wQH5IN!F^x>DlrPuKgOP4K~zXrkd4G#-XJ`>CbaW=Wr2p4$tyMBXG#Kg!n!f z{Doc{4qkTUJll8et$akSkUy03EhKBt*CP|cJp2{PpUoQO#q7Sor-zgqRGU7v;fs^V z3VW}duj29iYnAaGe&a#ENA?|VlZ~I(mywv^|ELXgwNDfVK0U8NZ#;v4_#NwMXLf%V zx_#T^_QmrfeHTUc0$GP%hTq}+eR^uqv*$0y#|GV}x=ZzZj%#iFi@ZW|!TSreYn|G$ zcJ0?$k^Net9o&}H=u4bNU+?yMxmsg$u2uW<-5#2*I^UJE-_XG6wdZK8bM$^Ga@3LADN5t}GQJ;nHT39Png${V#qo7W ztAk$o#S_c7hs^&z5i{8L#}BwsIz`9u94j=vHlSHk!GF6PU(o?-zgoV}#xEb)41Bqj zUlKrO^PN0A4MurhBmP#on>3EeG-NU|%QX2$JtK9o+>xvsMaM`#a%dBi&Cotlkuu{1 zYubh6i+e{jSenRR1dZ1S9XNpP8X z)nM76QCppy!|vFo6<(%99pxL9!&bre0Im(LCHufG7$&eeHptEZhtg>7-z~08cD}}9 zbfhCW_IZQDqEWK{jz4hPH{;CP#IBtXU%u?{i3W!sumG?%n%y{H0}0Mvv6svaWLH&o zxEVv*-Qaf2_O?avAf-)Cco~8nflPu%iBRxuD}M2b-E0@_@_fkAE`EAQ$({;KYTyAL z)W~L=pz99FR!QowX}g0?3Sv|7-B#p|&4;G46|f?76})FO59Zl(tP@)i7F~;5(Gu4V zngqMcgjeiO_ywB3Ok=Ef)>OC;#$(U~tHlN|U%`G+-Mk2Jf;}*;I%FC9V!Of@LXfg1 z%UK`4*`9QA&@?+W;EWu7z?-cWDK*>K@YuS*e~BP8&j6}0`)RILV7YczXS{Day+G}+ z)#_N4x2nCZg>81Vl4)-|j3%eIy#zCyA;F*!uwXb_>T=$a#?wa@8O?)1EJBkEW?6g6 z!XLO)HP*6G(1UlN@iw4`49gGRG_M#M40rl$^}58t4DB|H8qjElYj2gAR)Zf7sfO=! zqmTUeWuYu+*S;4G=FJNBoP$ruZ)%y8f|A(-tT$vbzw3caMmO?>%R$xfn?XTvV;TL> zq0BJX;o#EBcERfTkG+6e&05CVXE%{j8{7`EB9mF3Q-t5IN0PM7+k9o;}s+{dX0n~c9E0 zo+6@xwL~1@LX}}vn_YzUwN|x0*QT~uP}ovf+e=(8%e5;iLp`~*ia)H^lf`VBh1sd# z=kCk)?5%MQvcq!bF{8t=PmnjpIew>q9ogwg)p{Ex^iQ$3v7}zqPGMbmzGckK%As*h zA0f~9WjT{)TZ8W?|8tFrCjf;U(kNC(4*L7P+EeGp#14UakZcE(LdjtCiBx0`tR%B$ zfca21XLJTc)cv>M#p|RcJ^=HL2R~HKBC+18+^rV=`}9Fjr(MM&zgCnI1aq|0#3;Pf zxJ3DW?K)J44B46Gap;rMb!rQ5S`Jz>9e0_=4D}y64O_?b^qz<|L_%+HBRR^_)76^a zsMX6Q^G49QK)$&c)jqANietr*}|+|!{T)y%aKy7)VyeuS-@(($z_Te zAWfWvnLpL3Q5f@b%>_Kj3iGknC|~ZpGUUv~D#r_xkKgs>>0jJ~zl7&> z$7}lbop{HIcbwPrnw_f4Mj6f9ddu+i#ODtrdikrj`+M)Y^``5u&BiD#>IWww@3C1r z99Lug!-G~&^a(rL=kcidwKlVHkn2;q_DzyRjAcA*-irSnK;Is_WGXv;lZ!h>^L^@X zd};0XsO6wW#B*mnv=PuDTgY$8dhJLh^7ea0L<}vzLwye^p>?R|TcYDmFIgVn3s1uL z=Zkp*g3#9AB)P{4N(e8~lwb9szE5@j7buaDj87DtU!V>9Ba=<*QSYNjscic`jlckk91#-YLK3gq$b8OZ7nK@!@SmKR>oDt6_gzB^&vbF@8bS*IR^F zCy3ec_@cY_mZ$M+l)|%$5;3}wAQ{?HE06xWosK!d-M5ss4i-GQ;+BE>)D%xvrG=S z@zGC21o%Bp=pBhl#1kI?$z}G3`L$Sr*cImCY;;nV=rH~X7AMl0^_y0;$hpx{sGHk` zD^@q2+v_h#&Nf7rN0wj0H^|c!0ok8um2jU-*f@w?eSn*`aAbeD5s|X0x%0 zn9>9I(1|OhFX_t~&}X(k{uk-Y4*sp6fq$VV=mAKHZo|Liqx>{iu;Q75!O$~bCwN19 z;400CWlQ~hL4hU(M)SehuV&%a*0Wd)7BW)}Rx%?*F@7w;W@+2$~4C)#JZ6ClI4*>cbwyJPEzo*1pwt}z zF?5D*OsKEv4)ZVD937(DzblDMl$f#M$U!CcA6Ysn>M*~A{U3GojYfeU;A8t`Lg2we z#e4Pb(WN$CLNU&$et*%ykG{j#MQ739Vr^Foe;YUBM6h4aPPKU+4$y^Qd2e z{@CE!ntTfB4<8;MmeG(WCJ#b>v0EF+KXxB!$B7mZ1$L$*+rCkKH&!;d_$&0gLiJEE zyAOOs3*bMC^@aI%?K<-lpM;*SR-*k9S)gX;nn&6!T-w>G;iFktfis7)@&Wp{Q{tq` zeN?|8`|GEs|G_8JKt1v_sS`hXk!SzdT|b`X?RTr#Z}!uodd5FH9o<+D>hb=tW^5GX z*&&S;$}{8}XN*z#X7GOD$%wi`}=yJ}G(BItFY1aNj zr}$5nZ*qAeA9#-@pH2QjpHL*xEaqFJ`5Oe~KIPf}MfwZ9LFN6*L$6mkT-bWK6T}KP zWZ^}=5F2gLf8Zn3U$$QIW}#T57y7D}SYs;M%H%Go!qr5tzH~y4#t@Ft61SS9F;o&LL z1AmQ}4RM~!T*L-{@ft;Mnro|_hsXU9T3Uq2PFiVwky==^=R&o=TqTR-SrS9y#%)&cd%RBMC2LcW_eVjL`3#=%OpHk>3e zJ65cfY}d?0xUpreq(k)$&J*xno#%97O4g=JZR{7V%riC5fw*!AA+vjpYrR4V;n&rp z_V$~ceihaWpV0eM=%ES89gC2$F2*4$jdTk~rjJ?fv|(gUsgXC<#`L>Cuci$nAJsZc zA5nro%FdVtObJ##SPXr{Uge2=vpO3YFDmXwn=J=~eq9!mGjGp&h36U`!d|yihb0Gn zuRe{-F55i|;Mu0S18$vucJrH}UMybppzGuP>gybQ&1d+>0<8jSe>mz2D&1WtNsd9iR=m!S>I$@n@NK1BEu=8R|7I@W08uI=Dcm zSLbQ2Xvrn6gkD~&p||`>{rN3(bqGeIT)ak)L$ft}T#|9Xy!pm{U7XrrUD)|5zY;VY z(^vEgPkH^ih?}x|rZZ^+_1bB#=SoWAbci3S>$ds}gjmk@OOi+lIF26N4V%*byqH@B zy*R}-dyKif&k$WHT#Szae&7IR;UvJg8#)~mv_vuR_6&z%eA&Z{HQ;||)!Oi@S7zNI zNm?`>{h>KZIakBlF#bC1?s2fgSd%8RSScm`7Xa*D8>`^dp1WQlFZXCHyZz-ON$i)M zN3mZmItj-wNB&rhdW$gCAjwKAJFmmOYjG9>R#vMtj@|dcrnZwbd{DbrMm>I%t<)k* z(50szY#GaYZn{n|L*cB?BG1=KcVf}o9U`Iub|UXjeA#7A$=DggJZFJs-C5KC2+^Qz z`s?qbnbjG#g{_`G`tpcCeM?|dzI`v+r#fi*sM+>2a8Hah$CnjLS!3Pe3Ad``4Aruu#Lmn+UaXvXzndIZY^8W+;Y!WI#eTOlT4D&?O2h`m zN@XtZrG+c?^n;gRmN6xpDjQtH4Xl~3M%;(He*Wy2)kI-#5}rA=#)GhxHVK3N-USdC z9X5+2?7YxhU;a*S#_>h7Xbu^U-Dot{EJ{JnVp*BwN4A6-?0vYV>2;9E~RXtjsJ2>;+DQ$3;iTXFL*YJnm_ZsLn?ah#E{Ok5$mFXZy`x&Q#Ez zCS`q84QfGKp)brz!{4FAM~cD|XGTD79F-P{N8^DiEIFn&R?@8*p>Mn!8)vs#hLRS( z@cIpH`J#jHb@JkF32Oew?9JN$A##A{i;?cCM6bW-{Vq(NGT(Qu~MX8gNyxn=?BeU;-K;T1%-2a z0^4G}B#)`?z*y+@Lj^4k6MEeoSUIWn*1v2P^Sf z7>p7BBBIf#nUKju0Pw$gi-R{jR*5oeMb~)umS3ZiMOm->a+P!cf)am*3pZG#fTuR+ zxi435owPbmf$leDz5TN^&IT79u)l&Z#}jt$>+fRwzTBLJuegKj<8DE~y;``5`yiws zcq)0@?q}~lYyZ{PAMdhA0g(uz3wFK?gwLecjx}}t;2m@Je<$0^n~Ius*rV=52j!Fg$DQ z6<^k+HWoc3%4p+xkDqvhk0#*hVd-JET=UA`c= z<4nPi$Gn_}V#gvC4HnippptOCJ0+8_gG~NdJG3iUK(cwyy-(8B?oT6)tsUM5(GJ6y zl{Kp$GAoKd>`}ZDlcv_rpE7-4<$k@LYQY^{J1w(zyCr`uI%_s5>*!XGVa>y>KVSjg zizH2nU}0f3Qb0CliazKj!h?lm2Dvs+(eGVcVWG>^A|@JQ*& zX`jax>z#HZhS4?rZ){NW1#LWRaEoh*a(e^f*}Wx7EsGW5lOC{@^3S zGxOMZaX-k)b~t!xYjzrQ^vDy&R`Z(H@Qi&0W>SHtHT-QnB8LM`%oqK6`7Ykik|3F)}~Qt=kGZ8sNb|!4(%P$`JBfAd=BpT z>u*!^=$Qxs@3sP8vqtw4h`Yxg&xTXl&^rn{93dU_oqkeH-+b zdb3pQlnOhDGfYlCytRb2O^!0|WT5LUj>xXVnRde6rX6I@paid@EZWJ9BTDRMOt;p` z?hLs#^DiDV9KhcC=!C&+=QVhWcxIkd-&@+m!%SwP zdyvM!GA;O~WAI^HbK486oY8;}T>U%`SI9$~15e$e5~q}<)$)L9xTkKg%oDuWm3U^* zu+a;aCvhXJPj27Hy3$|naX<@~%Ll`gg+K7e?8MIcdaDo&cu&63QO}hQH?$AEALU3Eo^bsMuhF=f z;g7vVliQx71JIS|7^uykR?gMx{ap~CGhD&9yb&3m^5xs*c&yONm1;w5FSNv=p)gj# zc-|JbH*}B`Azj%Gc#BV9kMrIIUNd&QMR3fMZqm+RZ^P4e@`I%V4vbzx`HZZ)#MzGV zvMbzMQeoMpt{v}!<(FZ1a-$Ew4cz<4u$93-Xb|i!lLy4O;d39M;Pk3Nx6@PlYc~ar zFZ~V!v5zW^yPcpX`;1H^zQ)Pcez!~Lg($Bca+ZUBwMn?*)|JIj_bGydF9+Q>#poWn zMx>ZGc6_9PvVNtgtTP#lq&NP67Z&IlKQVgxyGSF!MMR1Di%g93k)0Z!;c7WKW<>iY z1}DA7kLJxm8)xah{uN5B#Wanl7w^rPuVyr46a>XWL!PdHBaCBk{}_!#KmN5F4f{k* zl!SC;u`qa=Xcuu3i(PaG#xQ!(RAjwPnhhO8J9wYI+y&;wZA0z}Kg`Z(&(HaEoX*;5 z?{fK77WIhIA2!Vfr>8@j4cHMtLZrs*Wq6D6I6*T_&I^f=lQ$$^ZZj5}dwPljdKn5@FL z>&xn$Lz)@<@aD{Jtr{F4*}xuh4P7xM`;3!i*2lg5lBnMD(VI~I?a9g+i*I@Px5sfS z5nJRTcO>~@ink}d&TEhyMGqnW_DIShZ9*IK3?~n`iHSDiEFsW&LsS-TaI$!bdmEu4 zKpWDZH^uz<1oi~8d7Ij7J)~1SPVemvseka3t>w&MIY;o^DT;kr3*sSlG@I4g%J=eVrVQ)#Cubh7yVx8WV;2S8@ zu8c3G@O_vdnB^i_+)x2Eb@LLP<1P*V5=FDyH5QxZ z_6*-N06t_kZ&Xl5?2dRIWz6W`)}pVM?cBtnos|)1;~fv~_gHM3zl#JPad3Z2hr4jJ z3fCyvt};=O>({P3K|~E1cR^Om5M{J?JlcepBw^7wnXi8N<_*>zX!Z_+ns_Gi{*tldvvTXDnj zuDQ3o;fA4IJ}&v#4eh%aX-983?^DTJ@3?s9c|FIwij{@1Ts@q*r|GRX4Mk&^VOf5= zTkj}rM_JhJtE2UM_x64=`GwxSy_uB3{F3fg4IDl?_N~2PJBysg#|z8Cc5k0<-_`Wi z_#TC2VY}^bPV^ofSU1(UFI;a}7Ph_}F+MYaYugGFG`rHnxA1Fdec*<`k~MWqu?(i3m<@iKft;;`mR z`w{#}579f`%(HP#*D@;F4Gm@RqKk>N^4%BTwpaDz(oy(NSU}d+v|LojF#_LTK@ZwJ z4IkBMR?h)ph8Qmp+6cr07|%Qrzc%wwdQ^jV>LK$maCEH}SmECNpJ*_|-PYq!OTvf)d6$hfVA|IE6vD{NdKL-P|I zFlz)DcBll4BJ@cqZFYMGZm>5!WLSh)55N}2ihX>tPte)-=WK0Qgh1f$!q~Xv?KV84 z8)Q*yF}#6?9}MM&CvuE{{c==0ANo_2daScTi_TEGMe~PufBY&qRg8Orv}HEDKJGS! zyBWQgWRXMK+B-Q=jlW4kX_xX)M?CsP1Q3b>6XE?nzGK8J#OT1W;lZLVR%54|wu^yid*EFcMym; zvB#{@mlA)9mzt&Am7QYQcI6@Zk@qZ4T|Lxt09K%`Rxi9l@B9A=D~#VB=cdQYNGdXs%GDeCW#Vznhfcz zAwp*>)WXM$!dN0F)4YMaTy`=xGj^`=Mf@~{6(ePded2lBX(BY4k2Caa)PFX9Gn~y8 z9}pdC2)IQ6=M&qSt7o8xGA&Z%v4d|11<9Hg{_HJ#ZtK~1>g<*TZMpSm-#=+^9BJ`N z&I}4AOcXnKpXP5t>#gF;kk(r@Zj~(k&e~;`>?V4{+;%FL&XIM9=p_yKkqc$IhgWh}yum<8JwH7gu-7^V_B`Tb{4K zkIJ8eFZkMCoG+S1%}7LSk}%$6F(_{FCu5~hv%QG}XISi(^HrX?Maf>9-o(xzUS#F) zT~d1tXHjmqxZs%|W=qk~yQ8 zMSZaQ{K;RpI2Vg}OzWiuQME#v#JYyNq1ceStu)jvNCvN4td!^-`0;q4bX+sBV{ivE z+x<%)jcFE^Og=^}mSW@E_q?K|+q1hBAE8Tgne2|Ii&ENR`(Ux~bs4mtFQv@hK_wQ>TTQJhiO;r7(hfTyzmzCEU-UxL zGB+@A?~f>3ye*}63d|dcz=*|!Jd5Ji&M2c&4%x0QahKNaa^;uqaW}k(WnHaU8&IQ>h~je|9cmnlyL>^IXr+{!J5oky~rg(oh$+ z@A~|KCzHSbqvKthCio_bMROk6ck3PB?K^+}VXP%u8jfJ4x88AjZ!~TcEe+dZ zZEux?wOclvNT9*YCdD(x*F&qCr)}j(dplpTXo|PbdsI#wgqVl*v-bEfgBpj{c2*yj zBQMbp=wMC|%=$MyL!=+Oz{7*>%S|rtvH0?4^~PdleDr!UJC6CVb}!5RdiX6iB?z-(XM{iBzS)9mz$>0mrC?~AtT+3*8CLjQYEqjTX9r&jT~FM^m*W9o zf5gkZHs^~ltSTIbh!N|>(xR`8<4?ZOymt2G$1gmA0nQG$i&#ma^+kEF#zsaH9pXly zrz_|HOn6H1crYu1xC~yuS#dTFP=kAK!I;%(+B|MI8s1oye$7IC*dZTB1Rl;Hqc`|z zAGiC>Q=+_Em^I3`6FVQXBL)`Uva(Y#Kkt~MT;?}FjPeeR!tJC6*%3q!{d(D#0k`L@ z4V)OBvBI$9pxWq7JKizNztzL|L_*m;>{__e`0$RxKy&?^{z2I*?#{Z@-kgM=7J~_I+z=z!fMGy9AWIK`JUR9qP zm3gC{C34PxcPv^?w30I-@Ek2ix*<`RH(Ks-g+7Xwcc~?Ey0ARyqzU^TZI50+-siUm zhhv&Mf8OYK$fD!eYMD7cexJth_Fi~P%x+ltTNdmb`o_Lj7kbWfB^~jdhzo9z6!6~z zq8!f8_m;Rd#*K%3|Cu-#QU;HZTL<(s{})NJN2R1tzYss%rdIhLmiLVD+kwjbcVhPN zyGg4a)p>r$Z$%E`!$$o#q@a(>Ma!3}E&gk3UVH9pA{lw7C*Izo<)%ljQ!CRWUf$w4 zgD2jmLf+<=dpYdOqw;x=+9Q8VF2&^!GKw`Va4;dmSr6@fx#7TemA~5 z<%=BFkoM*wv)k+vkpvg?AHB|Zu!CMT$GUSq4@8WM19X% zd3w$A0EzuZy+nKO&%R`9w;jye#i!&B12-a?-1~r+>B(+c@Fo+#G!VTVLM@R|ZsFOx zPu%LjFT`8!ti3?9;$_-fhm`v$DK}C0?Fu~D{96d2#}~hy5c+Yi?|)DKTWOi383C3fzdeAYL#{9n-?BmiVZ)=lxFKdWSYGG`yGP7fUn*PUeF1-}d}f2UBGFuY zi440H-^U`SHV^ilS+772EPfvIMEv`^z~XE0x_}wUY`5vH#;+8=$=<{9_MW#zxHsqZ zmi5`|R)8iN7JO(_KMy`3wy=*4hhCwNJ7e!#p1iP>%tebd5UQ>tLag@XiV2m zAHWWf;wg=DkBs+>h$%;HdGK#~mN}#AVHPNZo$)vBfxz#n z*&fW}Da2ODesSLcuh!!&)F-?XH!P2X8h6(lv2Zb@=x7Z5ocTe^p%@#c5a1C^L@Z1)CfmF5%ig> zdXs<#1KP{ZNY9d{Kr0{*iCx;S6k#cMsIQ#{VEr2AY!{##ztT9a(Vl#t*xRnWL2q{J zLe0Pz@H(|RgPS?I8_0JI%wo>Bnep9#$MgiAo1L;@HG8P-E!Gg~LVutm>k$}6u@bO5 zqi^W62vgu`#L)UsA3Rs&T*V{xil z=&(_&&;MobP2i)fuK)jMCJA9D>^lrQiol2nDyS0zge?$A0HszE0TD%rfD2kR+SaAD z6_>BpS~b>MmAZ`9eT`a0>y~Q$y4HqnZq>%R;r=`Cdvbl&$;@c~uh;MQ{r&^bJTuST z?>+aN&pG$p`&g=CP15y80Na4s=x2OLN14*_vS2QFwJ}hIi_a1gPtO1VF*4IZZmd;! zL&p0;n6)||d9G{EO8cmm&@_2TFs@8x# z3JI;AR%m2MHZ&&n8%J{i)klRusf0jpNDtL4y?x+@P=hZ#HK-CQR=o)Q5&v_%h*q22 zkkyAv9k2|ck5B`obG5`mUkr0t@A#A&enNS*lExoGEqTWm+{GWFqliyQFht)8##s47 zW=KuwTSnI(g0`+U!e9;NN-p#g($k*?EzySgLy(^CiCErRGgj0ap6XBI_It1f)e;{Z zrs&C=8zENr_2&j|0q?DsyFUaQBsf8>X!vic?^sX|Jj~NqjEt)xGM*qar7~~G5%Nq& zA8UozDuE41HR@nF^aPqSW8yDovpfS;hC@nZ?!&2A0}b*-o};M-^-&}({N8GfShrNt z_At-z{Rys!stisTZfR{`Dudyc2N~Xj4(inp`x&0gnr1LJujLA!=z6}md=&2zxVGBC zSk+Y?&bt)+<)}WZCujIW64DY~n+;09guxo1itr#4Yi6J6dbPg&z7 zrfR`zEz^C$oOXquP;lgiOWvH&93E5r-mpBf1I^!3bWn6$EQS6M-pVl3>{wubLc(DW z!f5#|GD}uU(GOXvhY2@HNpm|d3tTOAa^)5T%UBT0jZA@btey%FN7_T zcu3Z*QWtbD@0uiPvPkly07G(NRF7hn3(CFNPY4O^?-dFATDLHoO3 z;{=(ar+e34$a9&rNKui-uo8kW=s{1f2Fs(zD@_nqDs@-;x31%%4b--_0oh4EC8W&5 z8?brr)$6C4Fq6mxEhu_P^scoxRQGcqVD2S57~sF z9!gV87mX#ocIzN!^xCe2VGAW!YmW|wDb7$Eb2yCk(&Hs{7}t7j%8Vl;rh1XCNz?bF z8)o>vzF!O}z#cdCHo`{7S;Y7q>bYL0PT#S1=3Q$F))PHn(L}hOUfa66 z=HXxUfKRj+X);Ad3mM5-+9~4+gwJQtVt}N_*Hvu>tRtdR?ICpLw^Mk>9WP^hs-=!Q zrz&BKq{W<`gbmZ~^77g=1#K8+j`i zIpAX`){EqW{fQq3J9witc#HPJeGPruaS!GRjle_UXW=k-5brAuh9N_+cx?)WfhM&d zR7>#Y*+1b&>0bOz+r4@eRyX|Y8Na#GVyoTPN?pS1=dR}}^9Ct2L+-k|i8W34sc0A+ zlhd4dO0U4p;UQS;Y^o!~>lBW7wBcu7EMF?Qvhs#RqAuRB8Ilvc2Q4cY#u&hnbr$;5 zVU5F*t7oPJ!`zj$V4icOF0K~pPeaQzfOZJ zb8TATFsM?kTH!EP%cp;+GdeWZB(Dxdjp%))1%H_P&VaD@CcB|o_fq5!!dD#v-voT! z;ip(M%M7mon_G`}R#qx8(~LElQv6}M#>d%z z$N_9f?s}v>-=9^-pe|`;e?qL#GbNSE{(~f*uHVu7tjYz`SzN$r9PLDgV2j3%Wlw6w zPN%*%{(AbYTVo^ICmL&gzTDQo(0<;meY(2bVa%{DS=j?U-|38dfM7%-OUz9aFeH%C@8*&3X6y}D?JT@*=W0}nccW~CR`YPJbn5NkTIopZmp667 zE8yx#azfECkQ%J0z(29EArCav;#5$yMF4u<1Zk}VVg&+O2nvTUYFgwwIav(`EzH$k z$|N@RM3ZvYzSgv+1!r20j@(4f=y@2FOQ^MU!5PUnyf1ZCYYkazQw~pBv?kqGid>~{ zkc?K3LFU1~6^kSJyla7(ke#*{8Sk~glPjE5L($N*t#Dz=v};vXuX3fe>Uk=yy@&%j z;J5z;L%kRzh;mdc>yef{U5Lh?IO-O=aA$@+KrUXlJ#QYv(-_%gNcC?1x=LEy&D!(xQv0rCmSO zx6X@sN+oA72iz-+z*w7r7qK@;^*C=@>hI!}TB(&c6l4d+#;Q#I;ZWMLR%UY;iG_Cw zdvm6B{{5x?P>_<=7qsLE&-3EspgkGnscqC&`mvQCuW@dTYB!{C4F04v<~{z%3A5jw zo~OOxw3UMMv0Z^K{h{bF?8U<4E;^L{x6~d^%Nb7g&CJ12OYLt{`>=~8MCAx3HD8XKJ+KTxk{lfPU-S;>sXE_SaHdxX`K7fv|6aE)`2!%jBh3E>2 zT5ZCiu797Rg84F&H;UCU$}XS?i+4Eb8mFE@3^&kKPA>w3PX}!Pge%HA%y2CAWA)pD zy>>yx2XI`q3zFW-0c%V3+9|bs>f^Ol@&+Ck_3-XqtUO0Z{mLaKG6OH#TIpHRV;9G= zg0GZvRo6#2C^v(4g*D~rrv?r$DQapecnaBM*1&094b~k7!1dj4Yt$O{cw81z3UD1mut%lx39#^UVS%Z)ci$m<7*D0 z;bfFK0V%8}EvSYQg*$pk8ntO49TeYKBm%Y|9ACWIB9Gu9LCk}P0q&dQB?E{I?Klo7DZ{GTik*BPIV4cEh z6|`%Om70NU2AVLekpA-hyP3mS1^(~uN)CsQHmgQc1t*OVoHVF)pD$-$ASra8vHFC| zejxGao-VOiThS8*1+@~T{$tNE>--bU+Emyk^!GJ$7dM_%c(VF* zFBIJr{)R09-VvOCVf5kkABjRXUT+9aa^c;E-n}pW`CSu(8)I=|Zcr0H|D4lqhMd-s zaP|=U+ZeIHu{RwL39h}wCjwg#(ttBLtp6G_(4H#c4Y#w}8xDSeZ{cyYH6wzu2xh#* z;tX1}StKR9g%pFR)c_6_Wi^0f5FcddT4=oMDQ*lsxt?_z|B4GIW5IPamzl!FmP#$W z)}^4V3u~z1(e&Gjv2VcHS4(~IA=iCd6@nb>nl>wp_`xg^J23o6t+)0>96j>@O-QZ0 za0D;kQC^@u7PeS<`@>sPUFq~&!yV~ItB1uPLvB-f{d$;zy|8C0dhby zZY#z+8Dp@H>6KSu1W{#18k>pra>Uw(9-wcUi$Y;uDOxJ>6U26y z>jmp!?Psd5SPe!|8GWE@`PiGh>t^eu7u-HTmt#E@o(#?cg@XvamMAy2jj>ryeI~}? z^2wNmW8m52M`uA^AAa)y^@KZHPhNM29jh}djm-4RORToK_JYkKYVITPIdcWOtlg{S z&x4t+t2pl2G5#3H7*0RQY!w+HxwAsmRt&WgiQJXkSVat4W%dxNBJ@SzE-kn=v`Jc&Z;94Cr#c(YTUS6oa68=>#-be@M6{>8tDa;nnm1XjKSm9!W z{*c2+F7+6IPC(m!Dl8S6)BQ>4gTz2HL^j&Dn|NiZYeDu(Q^K)_qv67YLw;@ly<5;?eu9+!8rU5YEZ#AVNVKBP9~~$t#p~Co*T#8gRUOKS)MLp zDU}++Td>13yP3-qg)^(>jwA{9kKYEa+%4EHG~d$qB z%k!7DUfKgSS?_o7nP0YK@}Tp|AG;EUy!LwhdE;dA{6ls!&Rz)_q<24WM{^A0gK!+b z{0IGo9fr-oL1kjM_Nwi;Y#=wV{B*AJcy=M8(|>p5zA zf+<`;wP3$2!}iZ=g!o}gsVb9#b=EkP!fCL`PizJLe8OG|dx_UL`jTH>VNK`Us`(v| z&O!f$pho4c=y-XQmydaOreunPb^||PT)lDjkn{IBi~mWfdi0 zu^%L;Ymt|pXss<<6ecLjEm*G zv$jlTB4>|GmveAsKFVm>vu>29Gq2Duc-xoS7>CF=J+Tris68JWzeZMCEspndc(s4= z&XTrt67~X3GFC+OPmkvEBh5L5c#i2?sPR~hO*=-@zO9JWqdnX+Z9ZgAFIJ3cQJ;${>A@)U?%f>+H;>*6lbPqk%`)$h2;y^B_X*CsU`(%P z+kBZ97O%9;Gus-&+0r`D6n@L#V%7q{IH2&h_-nMMVAPEEbBLf!`InSv_cexNGGh9M zKz$pHo@E>CCGyN9_riHv9O?CtfTILs`Z*((FWxy5^mO#Ln0oj%E^nSuG3`oWCQn3f z8l^TYtSV8}cF~q4-XF6qdj{`>o@VUWV8^!jhVqA*!Xc&!-%2;uGiJ7lV?n#Kkf++vDn$mf7Os z9joWX>giTk%sE$q(|VAms{bI}I7yWCKh|w&89iz-B{M7F0buy4yQ1KIuf+=KcdMn> z`ua>)t}T92+mN0GW)YW*(4+bnp5gA6%O2OZDBHM^FS+SXJ5V$F1$Xb+1FCJ|sja7! z|0s@8tcz6{2-nvLzL%ytr23v%NsMhII==1857mkYZYz8Ca07H_q; z`RkyvTs1H>CF%@rg;xe`HBoUh)q&H(S!JiTP!xR$R$e6+a+AAvwZ1K_-zyW8dKOA* z)$M}XT{y1t2k$-wd-7Z`F7k_0^86nC&|py3f$m*v)0@&dFW>R!+dnZ&umZh_WL_t6 zS-)e{;3eL;UfHFR(NF8ylJ+7;XQy16z!&s?(-&-H$kG!Xroty06vzCxt`B~dq z0w>(44_Nkm{k*U3eBp2SnB`JmB(-W4_{L2W4#|!Kv=JnapI2LbJ(qmlx1D5fo5kO` zyb#XaK0AVD<5GUb(2#NgR3($r6U}C@S zM5(HSM&lFrEn2xq#Zt+gTC=mrtw|=?j6}x*Y3z@t{cY6*q@-`|;(WihEN-mgyZf;n zqg$he*^>&;zg(JGVnzbK%=mfhts}2;i+)NNjUAhiuI{tTX|&Wt*IQD?#>}2)c08*7 z&-p9(&~PFah_vl`+q1jW!t99Ng%q%M85d_Mg{cinWd(H7ImRr&Zav$KslK5E{!Fjx zx$ms?s!w_L(ZRNcd|Tt|lT2f&v2)K`XAbqwUK8tO;XkhhiCpqVD+6=*@sHIE@U3t?E&nAwuN0ms zHWpO88Q+xN%#6dJEWhQ}at26S1neoCve{Y*3yPhNm32t*e zNkDb%Sny*xuinkdJ*SYs|D!!Vyy!D~Y@`U`6 zA(G`FO5y`e1g<=%p&~jNkV{u?a{_krMOPB0;}t#172#PNw#Xn2Yv~AMWMnbC6JLF>mC_+r zt=uTF)W|36OQu$dgfq*GvLYY<%5JHVU?6nRnw6HB?NUJ$?#0ry3M8;lK0)Sdr2fJ9 zRR*20V#9mdz**iL9FYTx6$ytIc|)V}55~`yzl)tzB6{s=tiprdbVm?<=N(^-j|4_j zfwIIJE7xr4adeejk({C}wE}tb&xFpZr9@Ui^i&IP>RiUlix}|qq@KE-LeKKs|K@LR z{3tty6KM zcWhV7FXoDWeB1J|^~!v!YX|x9Ea`F1nP62bA-bGWyRM!vU)qlEqPSURuKMG9%Xe*D zRu{l7mP>p~Z{eM!(fO+lFluLMRD5QQcf7pq%@p4|Uhax~W?toLfUFUCPoB<>5=w-} zyXR5o5+8}eYBg)=+2ech5FEWk(&9ndx~}T_`^iL>e(A0q$ocyKVBSZB;EdIXReK{Zzi-WbpH69 zzO6fbb%hR#CDujGnTT4mv(^XX=`^WPHV+Fty5^Wu(AW#Zia)DxnfJ!9KXacWX&YAs&scGswmlufzSTi_ z>gS=@jr{yG8lPAxu6)poA~pY=!ZY;@Fy(;g?23>;N%rg|tYTOS@do9cpCB6Vo>ks} z#GXmkOcbBs3#*(u%2&?oZHAU?Jp+Pm&Th-_ayeSy*OtpoYy5k7yjZ(bq=l{?A+xud zmV?yUSF3gkBu8|LDv5<0Lz)G>*V?9y@E&tTbKnQsfNZqAt84rC=N)g#p-<`mF#e+j z*3V8+@OsH-p^TVCjFuKMAwc!V^rmpfgFXnZ8S6Ta-yV@Y1(sH9OY9x;+c-0ofrsb@ zLtCK1T##MxR1+^2iNaExY69xAtCW5;l?fe{3YM~al5$PqwQ6{4mAMRS*+<{XC50Eq z`ca9Canuvg>PnT)U%q}LZa9U1MlpJTjB_7v2z z)XB6PH(V>MS3$b+@{(|hY`b-%Qs^27y=6~b^y}NX;F=Oa5y)Ze8f7^lAyRnHvCWPp zdPv^h(`~b-z}nm0uiP|^gM^Yn9U%BV0WiP|;wTTsuvk|mSculP^E%c(O!C&-JD zoSXw548CnLy9F$`J2`ubw&h^>ER~?Fb-86``<7QaTR%IsZsa1*-4t!fb8i{0*2g~E zTx@h+j+{9~uzdIl=WFT7W!8(ytAT;Y777~Bdcc?Qn#Q)XuvO}_>%fZ(ys|TDO*Z-j z2DRIHEp=gAAG^Z`3+}i;>&}^BkNCwv!)rz&qAP-isbj5*vTt^uUgd}O3 z!bY^t2k)MIe;Nox%ktB5e)PerfYBAqSN3r z=laR5$qDhzl@_7DxMP~V9HnbYi`w-bT{pF=ky8B;a_Iw2gAT24kjRz>PKC`o^Dg;t z-ITl02kshCF6FRR?p?pkmIfT_ryRz|?uH*Pz2dc;;y;7tr}hK?4*Kx9x!I9T_%z+@ zX~LGb>}duF9>Uh=TI;f>37^NCJx$QglPgNaN|p~InHHuWb_n@SMTWU{IFd3k1pNTTh0YR`Ohq(4|7Qs+?$wt zD!NeyDN=Srxrzoi(^hl~9DslqryH5yR6|773nXex@LvZo5R3OdZ5 zD%)8Q(e1K0EYsN#nNtOEJgbAea|kc_+$~ZiW?s)QX_2gMS~$vqaz*Ws%A9JSR{qEC z;o!b1PLV_6qaE9mdMyXdyn7+){NC)T;KadGd9$bL>ud9PIX?!=6I{=}wZQhQ*HRTs z#fmGvH_P-z=GD~jx#Zbv*w5F$xz;e4Dz_S9-}Jv3CKrqbP7R(%oV{J)6{K9s3ftRq zN!2#qh(3|ZFPAMk;H@>FF29V(gbIV4IWu1K;=&*|$~_fpIq>whYY3%^2fKVC-|%k* z4}LqGwG(yns*4=dx{#|Ssco9#-FK{aU|ol&xNq;vwfDiZDe>sg-OCoawe5Mx?AX`r zy0RyG=Y|D>+H|hSgT4#O=v+_)RxDi^Lw`U!&#j)>B(7^8nk9L%0=`;uXSW8HNo)e{ z>Zn(~Yb<6f?_%P-0E=GmT-9@)v90E|?uSJ*e7=~syi78lncLQ>Dw)!Ox|sW{v$FFh z7yQC%W42RQqRR8HrDC@VpTZJO$0$VYCd-DiGM~~CeeP~{xx>n$?hBtLvvWr4TYf-N z<${dhg! z(`rHEq&nt37&tdM9oCC7;VWbgHmM^sqMm4k1y*u*rsj^Z@MQa@>FUf#WkP4s^#uQM z7DK-6qmJrrovA!aXW8t2RYtCZ7wx+VY|4b8xhRh@ukYVhNg4M2%S77?rM-H7f_KMs zF0&%jsX<=6g@gqotM4Cphjy`o9`>xv4RLw*144y57rkX>S`m$w_PL~t#!tDVj9&ZC zEoGE$;KgkDX$Rqyy3WV=>&Z~)B)p+zh3wt1sB}$Eb|)|OWjd28jKI)^s-?tiXH-R} z%tU?Oc1ET2qebt@RGH4D&MuL?`xo<*b(yVLda|jtiiIs%(Q6X9;DBiBLM|zFMT4D= z{!_5C_mHLp1A5m&aw*fhvoXKE_3m=aFJ+Y1eQtKRF(P&CUdjB*%tyNG9trE=)K{@#^T$u@Fw?S*%M*FAcZ*WnvQ$O46QoPI`KRm>(~~7~O9{>KW>HWf>tFoF zZ$4As<|046GRcdGa!I>TY7&Ksa!H$uT#B*^Aq{mU#y{_Z64*`au3qJ8Rf>{_>er~P zZR-TB=(Jj6cQ#l%RW>UMoQM4w*-zLCmy6{lw-dL*Y1=-5t3)&=_S3PqEnjWkzY{M% z-d|#DHg;EDerfHQGPA|Tl5d^;yW{dJ*T2&{zqG@pk9lMD-rt~~GoQkq9fh>D+l{bU zVrRHXtPHb^g+ceh*`06RQzqEi$SLsloMWiPzrN+SxOwI5!bskdS$28TM)Q`;X`{J1 z)?{|0xo@e@T^q-aj1GsEEZ!-xd{#@4wz@|tH>rT;Xr%&@2!C1KMVCn~M7I|^58kGn zUXWR<5Bf=OZe3BcXEDu`9zzzgj|{H@*1q-ppImfhuTM(wJWSRe?5RX(V4T{`nNSHM z2fM^{ufBbDoIKTYyzvgoRcChJ>Z4X~)yZ>9?ebdm_e_42RxYUrPEe=RvkKmno{L@& z(De@H24g;6&f#)>ay6_%TFtsg^ofng1b273U1iHnqK2h}D~q$AJ(M{$ZHPLHD7afG zKi=8a+3ndmU~u14eq{&uK;@fyhR9d1FT%7uS3A7Bsq!m3xU(w1)T~6Xf}v|EXtC(! z`YU^%vpzt4&ShrzH~Y&cNgm`l-eFaCx~%koI-)!~f_tg*t9fvjRDP*dCvAI$cd(pw zzcAu`UVi&{CcQMXwinII4-=k;{J}m2$H`9u9cDPHz6m~m4GdYgUgq@C#$P?NB#Ev$ zwrH;xdVVsD)bQ+VQY^Y`aJ^by)uNoK?0o!f!+ZBjr3~w@3g^vNlHp|nMxdSFEIn_C zw!3b0e=N3kwGq>1@^yDU@ynH_xynN5FZ)|gGTETpdi#l2yQD7|GwkNPA=+9=!5-9r z)>&D|o{*p)fR)BxA4k%HCoa!dXtT}L-@q|>~gm4_ZwtSAKuxKU;leGwaoK8v$n>0!T9p6a_)_z zXVp6I34bC!Gk%Mp;!5W&i80=2LcB|nGjFkz>HLr8{qU+&V$5gzwu>%#X>CUte!N*~ zu+ebRd_C((7q+G4u5prfy~w?dav>Qq`{>OTK9czq;F(5p(^K@MUxPzd>AM^4$-Yta zA6^ykYx#X;ez@Ms--LqwHiU1ILwHpcSrI%>kKN0e_Hjq&5L_Mj_BjNp)$6euU58*R z+R7pOin&)Kk2*;&+d87^mbsq!5tgTL3-1}USOJ*HcE1W9h*AFZ`SGN%Uq`++!YJSO z{OSUg0l|FP8jI`r^a4leFrjW8PPeYtz^x&(2n~CKQaP^I zGKj9|eG{3#E#W*e>mY8fa9!RKn-Z^eb~>+=QO)01*2}S?PlnDuSG{Q9o8}Si3!C4J zkM>i|HxI@B-ZMk;l|<2egOl^Ij_683HjJCiqNOv}TKLrB$DU-@mxQ-X@Fpd{{;WFr za-r?bLfvYEX#2dJ+;a)G+l!Ri=40Pv=SV)h%)5RVy>~T#D^T0GE7#qenS8nOquNY9 zR{7=P1?;Hr{Lrtt5b-cV8ot-$D-p{l~FeJ#5ci?e0 zynVAn=Jn?6T79k(&ueSXWUJ5ZOjGY%)s<@3GLAPj8oi=|Z)bmJ*5}$fZ=J#@Soufv zI(^XhyRFsc{N`+ap3ck!*OunDvkerw=Uo?Y)O^s2rOU+Ebcv2aKY$_i}FKB2MXJoR;MAyr&-+jA!vD(Xeu=-D7wPN18E5ab61!mr^ zmT#P3ncF)ku+69+t$!y?Hm|2JZ>9zdTWgT77gTg^UTKtVR(ds+s5cGdM`!-r!mAni z<>s}9M7`xYzuZ(0%4|u^FE{uM){IQ=U<%_T-KU8acTeFd zr1rFBLbaQmzY1;egipop@0im8R(YOR$o?%oA%L?_bHM^ZPHQ!cpp|2dS(9KtwcVHG zJ*_8d$5M7K>7|lrD_4GF;iZ%RM1C&jWX({KoPFOa{glbh$xenSFO6)g+Y{+qx~oklk9zvOTJ;xlU(x6MN7<|YIlG2 z+t~{;osOQpAEG=MviHNdS2LqxB%fDL%a0=3$~lO)^UHaUEc_CrF*yX+4>>hoX2?e!Y}S8DW0) zpDrVc7vx(;w8j>#WwCpe6R-7+15q{y@RI62*ii7=b)3Dw<%s9kqV4jRa9$qMOGC>q z=Im)c6U3{e9Qzk6uYh=-@{W`8+CR0?=^)QfY`sRyz0i4T<8-<2@$B3S9A~NY*imwE zX04Vt+_|)8%o*-{e>9&Z?fCp?4xd}A`Ml#0K9{ZF^P&nqk22qHF`+Ni@TA}!Xyrm0)|r@3 zn>=4PX|L@v+Uezta;Ax&L5*lJ7dSUK4?BNyK6JXr#>C2ED`Tg`E{I(hyF2zo?A6%2 zu~>Xye7E@2cv-wEet3LS{IvK_9@+xa>>|K_K>T$T>a!4 zDAy3VhRHQjt}$}$F4uUul5*`O*A%(-l}q}$@<6#}$Tdr@IdaXHYoT0=<*Jrzxm+vc z`mS6xa;=iB>({h?t36)79K5D>le4h)Xvvw-%}(h; zr?ko`t#(S6Ii)AA+2qXFRD0sO^-kINS;ua2%4#>%uC8^;j;P&oMD5W|*|CS!IYUHzRQ?POc{N- zWX#1bUtyk;Pq~~b$BM^H`J8V;%fzO{b3Q9fs!G|vETd)O%#sjFC+%DlXP#*Gq@63D z6=Dq#LXr|>WKA8Gni?)OB`!0$EjMXP&661>=Q5LXnaQE7wOt2G4l|`3$|^ITv}m?i zzxd?)94V7J5NED=GS}oh&*VJcJfCl#FL21M!jw{Ba;Rv1LT@ZIPZpY1RGQXRnw%?5 z>ncqSl_uvZ(^pj{PPHkeTF#edM98PqvaEj2w*YGRg}c9ojkN=*-xni5OpT{om6 zhtk%OBA*$i$7YzaW|-V&nA~QV+-8^_o?-Hw;mkAf8L1hq{mCfLF!|4rcQNvvk(yyj znPFNzqji+&)iRTFnaR1#Qin~m77%MCg*a~d*x=N%1!Ia zP2I{(8_Nyll$#oso0iTo@#mO0a}1@;F>&Ua+~%5k&NcbWGo{ZnPv)D_=bO^!o0#)W zKJ#1Yobj4(@?T);zd(A|ki<3X`_N&`gD?Lxm~5!qm3Ha)<~ywK#l(B!<()NP^3 zd7;T?p~+#9DW%e+tu(1BOxbrf(}v+ZUUdOH9lqrr(yB`YbVVgu_bwD$}|u zGrmc@7w*fXZQPejZrtG?dSB9d z*Kjxi&zaBM;rx2n=kRy^t>Lp;!{MGhXC~@h!{@Z-1OMbXyp#L9);l!GZ>Wqrl%#k4 zUD;Y5{1HmyPB@&BJ2b&_?(k{GkmqHxM!~K~N@Rb;2Ki>sNF%lGr=vf{OA2J%3b9P; zj*&8XrmLEcGs*Pt6v>OWt(E-&b%NKazxvma?*d7An1oPTmE2iP;XCUby7!M?6=JD& z?a%tABi(aJ7$vitW4**g=9ZduBCY>s(*it*DOdM`Yl{|23A%rOql8tO^n|RIU)En> zjnqi%C8)-%@gNV7(Bq|sb6Urb8sOQwO8$}8EQ!0ynJCm$VfxelUMj!nZ{#_>#QBBT zzuj=91Kx7FO7b9A%AYI0TpwuqY>gQousMB5`Rk1ZpY~8c{Au;jJFQ@seye(%*^0Z&i>FExRl6_E;ygR4)~|zr3a?oP{VNL>FhG!E`u>=I^by=+|n4lMiB>qEH8^qHPELVr&bK5pfceGiL1XPq5C0q=M~ zYtYXY!%5w7Diw;t!yAd?j}K+xLFUhAhWv(K^VU0WeDA&v?{nyRljH(d^goApBQ5;T z=S$8?|Ni`;GEPWg#(48l4>Q{BkH19XB28DzT=2%%H7lf~zuanx%eg(Y&Ktj4o*W_d z49>i2Gsifuz)#_vUBfvB$C!M)5}NtGNCk0V|KV41~GzyZjR12-GF%+UH?Q`~} zu)9S|rT=xFAh$V*2hN~$63m~oM30nfEh)EiC%hlCUA zOz`HmK%PP~n?t#Qko4pp%3;UJ9|sVk?^O-*;u%t_&5|E`qWx)jCjhj?Oz=wpFtdBQH0`mN2HdOt zY)8R{AYm9yr4nx%LZ|`s>gQDRO%2E|oZGRjIniEkZcs8g(Qke}u+WSiBdz$`t@RQU z7b*zz4)`00j8xuoESIR0n)~?#GbXxs*xwG90K-x@DA{TN%(P=Aoz}oV%W2d4);wc)ghgOA!Q~6OcxBnc35o?U@$~=O)y_DM72tg zUohlglbav2GSXoFP98CxjJ&n=)Y<|^$CdK7^WN`-o=O_-OP zLDTS$j-_UZiahRu|6pbabYyFfgkhTBdUr~iPLqSEn(TIe+x27S|` zs$B=iw$!9KthFxwai_PDqfv4Kga$=0qk?(PkQ&n8+GqYeL6eLTnszWBnDit@T3D^h%H~BWIzb%_dxBs?8J4gIwWxLF_qKLdZ+^3i-7KWD0msPhrx2 zv3VjpwwMwbcRwGV-&z(3Sg{bTqGuKFKnqHreyIbF^uHU?O;^>LCz3g+LsgsnRFZ;t z=xbXZSaZFzQl4=7Avn$rTWZ=qUThlf+zjrMoG2ENIl_}k7Y5P z^Uq%%VbB??x52PV$qyW$GRB{d@r6c}4+g{FfOW>(IhZH=7D!`lK9kXy>d{AEH%~otNOY-AF8A;L3PY{S`n54r9x#;3*HXU znqOX(N?q2P@u1g(p&%JXi4%I1A9`g7{N!jUSKAXzTOs8lCoB#4%cX~)5H#zsqy*QX zg@UOy)X$@pw_{U?;^1(1M%(gRe_F+naAfU`aOl=n9!ZOWp~!V@RX7xWe!TRe&f8$x znTF;S$Ar^@{@~j>CxU5_@`{6_BpnpZt^iIZ3g?VGV-{Lu;cpQd-AY5F;MicfNOWw? zSo5PpsV_V>DirPqRzk`;QTFZ}vyrBIvJMybxP7e>8p+U+Y>CQu_v_SVXBcU!WK zk@x&|)N(Dtpy3nV|@Lgeoh>eJf)^3@X#n(ryK{45B3VC z4Qk7NISJO`%{R~nwep9eN77fT_gkVEN3bP5=?`Tls8xoM_OF`h ziV89TUtcg?g~YaNYOGZuq3K8J9+qO>o(_jX>2{?p912$fVXIZjKPsS2cm}plBu+3C z>koEC_*pnqX&zZfZv@jqw@4N3=U^zKr0WGpoTyOxf_jBRK`lDMa6+}_`EyXj3Z@D2 z*!j}W8>Q!0%IGbO2nW$K!<9n9Wy5`x4-hYm8?083#|}DhP#d?p{j3b(R>Q{^Cn~+w z^DA4!{c?VW^b7rsy*&z@%oIvsWs*^47SKOlj4?~nqY2P{E3v)dvrVpRB(3#J^rtVE zl;jSrDHipItKP%9rqWfgd~|4Z0{R#p9Sm2@P439waQH%@Wo8)^YbBDm{?Oz`X<@Z| z5+|5{wdAVS^`oSYVcmJTsUOyTcxjaUhp*AI;Crnf0};q-6{tzT6B;3~X+(dbo=^p{^QA*&@sC40Dh zJ-dpriAE}OBm~|K?>`};{&NKr5CdcwRX*H~+%xq*;f#hN)^PnQOyARgc3s=wKBYkQ z4}i-D`w!WK&5``0!|m*#hr;O>nHj1rhzjQoEBc<{b&>tEL_(Q4v@vS@pm3yt_ENZf zW`@pQC?r!jVb(t8?;qE~43{LmMOTXI;698Wb=3Z`;j|3ie6-9@_TX%g-`?~~O^F*M zbcUp*25K7#VjX;C2!qN=9}H)P(Z5#53WkG~n6a7B5{P2e*X<9ZDWs;JJ3#s2a9Y<^ zI971@GwrvvWwu~h_188S4t2t}(Z%4TLG+`z3ay^`2mkY` zhbwK7cD<25!SrA<<`E-A{{-=eU5~&QHws_a)q;at!xddw{5js&Ugb|pZJT69Aoq|= z6D4Qn4;YOZ;FZ8o2>eH-EPWk}0S#kep%*~{Duw-Arc_!8hX<`k^C9>SGXc#tniDgZ z(Bbj-u)N4$3Va4H0_vjcOF?cwQ=a4Ng~mY3X^TIPS(5f>Qv*0wlth>%X|Y`)?-{kI zJaj%VXQHJhQVn@!xkES)aK652g>}=YdZ=VWwuAO{ro}8uQVQq%!MeNr7^&pXmgok zusQ<`MUAbZLB^hOQ=Q(n%{v?5;g+94xo~Iye3>avK(tzqs2I#+Ft^sj%1o>sD@8`o zA1jS67nGWr-kRsiWjKnSuc|(aSSJ0}3zfW#8*>3FqyCJGtw;2GtcYPLQh5V! z=~YX~!5GjovPn5{R33~SwZVd;cG9qn#fui(0(_J_!ZGOcP12*x-sl+gE-gk@N5^1P zIHywU;rFirDJ!>TzA4)COC#n6Qj{K{H_#`8F$jlCs;w+aqN}$7wTza@<w(-^ZRV@hb%J>?YC2y*u=s@qV?bwWAG4>^ z24gHUDd7qh!vrNTbAcMrZ%0dAnNfZj%_(5mBtaTb5N+|tptVpByun(6DkP?BuR$`< zR~G3(V?jv_&B2{iBL^!4W6YKq@btswPD$YyP~ZmBW>&GI)-dp@Rvu^NORyBq>Sb*o zM5uPUV2t^Ouh1U)!_Eh<)K(6LZm+Gevd$ZaH8$uBWTkRhXP!R}zJn_L85{T(Gs_!? zK1Dw{O6m-yz@LM0pf*!P}$b&|VM?wl6-z^_kt;G98O(9kkqx0xJco3q`G+mrFiimbT+i2lx-Qj>b_S za$VyFJut4}Ix}Ci?TU+|q$%?UN>;Rl_eoSfP`mO&=qRdPpaWzcG|Zfc#s^6MYC}D= zEUG@(fuRm)&0QsmlDxFeyUr99huXl=;4HK&Dh|90>H%*O$I4E8Pqp_~%1SzOL%j*S zaV(AFyLF=Ejtxeow90RQ&+lzamWcwqjD=+m!qyH zNF0zny$DYY=A&2+WWubVUSXZ9N}eAr9Du%~RAfUiAJ(D?AqE;47P2t6oF(~#9Kh_< zC(5FYenqS68$o`kwNi>-Ar0x368RR+XNkn2#>$z|X~J=;B^+HwXAmQA zE!uNUYwUUwdwm#BaCexmmP)%-U&49|X5oT@yqwkI6Szud9=%BFK-*O7VgCuEOJ08N z3XLc?Tq%2)GU-2-pRE)x5cmj`8O{r4h1EE@0nh8SF1OpkiJ0P5lc%5CGzQCr_KBhDC!l|W9FG0l=rDcKPuJ|sn=Gi8R&~SsdOLAOZ!!=U-YWBF|5jZOPMtgpx>>ZL>Qw z{PCbW-S>w+2)D$Z6xM&CCa?y4h70;vYk6>XSc%L?tZI#|8iE&hsHJ74ln1RU^VGZI)k$ zNz5oMu1ZD_ic}89E(WD0`ZHQGvq}uwQ3}aKzl+T{F;ZTh9VJUxJ5*$$Rymb(L7GDw z*Im(Y3@?ri#d@!;6Q6X5$%ya;{( z7l2>kBTVbSP*LOWwoGMQmEnV=2)E5r0MzfUSE$Ak%wvVW zczc<=!>EgK1y{m1K;r7lsQAUtIZ92Kwx4l;FXIc!T31x>Ma5Un2J0t!@^9`bRL>V_*%iL0fn!m<9xEH6O)-jAYbYU?&4QDq%ClhmCXeyjD|x z-J;sFK-#XDO5fuerkSWz$_-c>gKy{BcQzF^pJ<5`?1@V0J+bRh_q%7Ft(X2 zso3!8Ikm8FmAMA@%&w`2(^*X#%|pjKYBphiQ;rA^#Wsz;$sA`r3p*ryC_Dn0)0MTh z0Dd1%7wk>{?>Z?x6EcYE(cF$KIV@=y7QK+Xmd$uB_9J z0gF4W>~wUelR9nb`cj|Qdwjp^$34#O^wNM!2ERR^xM$y<=XX7-{g|F7wEtqjTYaYX z>^AWD(NB;18@*g&Kfv&#PL0^AADxdKXtvhXP@E! z>^g4vXI-!9Iic@?eJlIUPSo~Yk$7P6@`39H-qG`fsomZh)oyfgk4{5ocRRoRhQyE| z)gzX6`?%-oZpFR!9CGu(O?~_JdU)XGZZn6Rp7?&>F}*8M5^y)O|{%(&C z8Q<@YUR{SB&~H({Iis!{K6ucpLnaRT*N}%s)bzWfPwAlH!!9U%u-%nKPqn+g=%sdV zcY3PZ_3iI!e_7$9?VoG^_jb+g-)r|tr#p&v^m?`1+uh!2|4>nJ=ckIUDSWZ0cjuc6 zzi8K?_?Uj5cDtwW)Al1e7kAjRbBB_@7WFIX)nQnNF(n6fuIN0W!|DC122JbGyZGIr zPm1Pr_)h0x#p8>Yc33m$f_{$_K2!KYuPG(7N($RmmmJn%-{M)t>pHJ0>DKP}&bxJu z4_#dR!_FH!e7E?5&g+W5*I_`r-a~)Y@AY2C7GK$UQ^{@p&h9XF=tUhq?)7ND;@(q+ z_3eFH$+V#_^jkP|(8$`MZ}hvP4_ijoUP z-dJ*c?@hz*D>-A>RUM8W^pBx61-%OT6$~m!6fElTqk^7=PT{GAFBOhzmuxq!-Cqme zDg3xFR@AAechS(I-HOgG+^cAIyT$DeX}7lBrgr-ml@~28`cBcBqK!pci@skpr|>5o z`xUk?ytL!h#fu9U_J6WuW&bBSzfy8$@0U8CJ?P@zb^WjDeMj#dy)PZ~dgs&nztH>j z-k%Kpxc7&hJ11@~F6eT8|L$FG7&Np?y2Dld@9QwW%d{?UmE2eS`wqAEpWEf};^&K( zcX?n?ai2d7TGQo)4v+Nzq-1lKzJ30?|Cm01>(IXYX?T`ueL*FnGOk|-Q2 zZ`La;{C?q23KtZf*KuUQio&r4dlZZ<{Q0oEy6o!zUWXlBIt%*`?$ehb*Ue4e4iV-e=&Uj!S{CW()Ee%FLz%wcvQzp9pCK!PVvhHs|u?N z4k|dLU_#deJD%BRLC2{*4(?dqV_?_AJ1+0Bx#QX%^&Kznv$J4O;ZKS_DL%Q~S?#Xr zb3wa{i)sfKweQ~k@^-truP^LectyuI;#&&-8DCnsDc;fP==5|_aw4esO~l@bSI55R ze9!qv&QColwk_5*zI&`7mU8|UE0g!aA0ua_&WY_6TM;`dJ}~x&_!IFHf+<}5T%PL2~!PQ|iYzS!wfxGr{D>`(En&IJ-)C#i|+|3?nzNuKs;?^uu6BvbGD zc!`sc>z&wFu|ATPIONdB*+=Tz$GJg1i{kyHR$8X!(8rl5&ySZJei3^~QkOV)N;vJ% z&z_R9M9$h-94nDJlBR>y?e5ror?Hz&JppCoq6#qV#hg`IrC#@IVZ$6#l9Q+Wo)VQ z8)^MP($>S`W1ZKe^+knmJ40fx%hS!$2d6u4#b(8J#&*j1ZHT`oIldqJ!Z{?qJoc*O zM9ODl>G+2Qf0yvvoJ(Q{Ipbr0l$^%;+VMl_fnGg+>a@hJj?IXTjNK7CC%!D+Dc(N* zSiC&Wn9LQb=WNcOOS)Q<78>s(V=~nIiwPCPWF+r2eOW8dZjx)b^xp&V1FmqviDF0r6h(QO*JJY4PC_a+8yceI6Snp$nWV<;i!P zhvf4%>4hCaFZT<*WbXN;5~g!2{5i^`gYHPbeS0TCbRFc1$@P`|B?jsDf{14&T^;BD z#`tlm>rN^!e<=>*kU!dFpH*_~ul#xI-%WlK-vr19?GHY)@xA%m{_*B-pLyfAZ_S@D z{yNI#?PH$V_{9ASm65;ewYU?WL|f0ImFC^F_g=OO12=Sk-ef=Re*Cx46k?TitT_o2p<+@R>yXAURu4mN<#KJ8>vp+1OIwTNqHnv%1)V`V@@@i$ zcRcJR*JQak^=YbHONH2=w>jtk<9yy1z;|iJ_CmSu^SMiJ@>AXqF;C8)oFQqqZ+~CP za{4*V1^t|oBDqhL@LLa0US5CFu`oDbi>&jIZUE}n5@!F<~ zj=#>i^zQ9V16TZ}{^?7vuUs_k1}A>xUKGUir&k-tH{@+Z|2MfB#PB27B;iem&dbqx(+ar}bZ+yhLu;tOFUfXs!{hxcR>5@&4 z*DtvB_mxjoJ>k^<*ON`o-cQkX{%A)mp4Y$a?Ig{ULSJ(8{iUT73tD@uyYx|+^p(6Q zqIsCaT2xtcUdsvPm)7m^!liZR-TRA{IgOXqeR=lfExR{d(QE{DXX}dR|IvBw>A$z6 z4|%`k!4u*wkChcTFFezwW#$cCofRi^D>?XxlDe|vdeqN2yl2VxR`zmMF6zzPV_rAU zee5W0{r2s{vO*I$DONC`l7Oxeh!g- zI7P1SOP~Bi?j#v>*+0%Nsa@N_)`dIIV}i}-$YUjJ0n2ai78eE7M~ zG;O`Esk!C{f2h3SN6*%*n({{F_z&KwxvSG#O*PNI)$-{--*%3^?Vl~DKJ$+A?~C89 z`)&GP^`o}7wEW||_nd=Q{JU^+CmS?AY?9BS=4( z^OKf+Kl!x&i-$gIx&M{V>rcP>i@JZ``=xXH8DF)Gy4t>B??{s*#eai_&9qXq*)3N1?*E`iecys5vJsmet$4 z)sNj$QunhTcXtk1+M{mphMvyOsl8e%7xk|1)xS^61r2?jIiL1zxvH*z{YkI%Z<+qV zfO_ZtfpvAy4{|17F}UTb+lSPztsh$V!o>;a(%NBlhnzUvNz5EkH|DUB^;M%r)jd3Y zv~y;=F)ber9$SC+>tkC^a(1sj@b|md-L!L@v-vlBwEX3v@%6txXF_w&hKWs`k4iRw zc+os9e7Jz~&RrOEqmiq_p{vV`elhonF>_z~Y&eU-X#OoY-@A z<&n*^o8#T*G?N zS^W==YTt77qwSr}Z**!YukBoa;NxBD{{7Rg^^2eDR(I8y66e=<3~1TdZ%F+=O6SxK zzh{m!V8pz-=YKMa;q>n< zZg}Fw#SNDiEos=ieo4cLQ>z+=-B^{F{c2Ui(goEGhxA>VX#U>PhQi-0ZJ4^pvW5db zUe<7C)$+vkr!7xZ_dcj0@xnn3A0!TLs5u@kqzsvJt}eP zqw5>ypLKMi_SYL4#vidUQFcaMV&39o5~B{^l-Og>&57dKTM}KnAKNfu;&F+Vmg5?V zx}A`Cw&{e1*WcZmxHWxZ!{bk%)X;Rv_Y%ikeR9JsTTe;6w&_&lB!3MT9$e2ovHked zy!?yxtlZ1lHXVL4>^FZC-He~Go?!JHH=8c8mHb-N0jnvccAb(GN8 zGjhEkwDxbgk0bEd|GvCt!i5_sK1Zh*5~=%wiQ3J`?g)Tj@$O;ulCsX@`dBKJ@JDH+wR>maoY{6lO->Gch8br zH%+qh{PVk}oMOjd4{1ZF|LO07!pMJM+d@&UGkK__+;J2%b%*>@YAR37N7ErrS(+l zNk>~+=MGNN_G;Zy1LT4H^=maKv?Xu;D&@Z}*E@2(FZKCI?vyiBE->qGxty1;y1lvY zHn(f; zRN47=otxiypi9$%S9h%`x~^O0<}*raUO%gQ)34X|sCoQ|o=xNC^{V;JoZgiy$MvcC z$=JS4=XdT`v$1{u%17Vn-~8kE22{>(8rXdF9|kp@a`WKCtonUyo2gUe{PyzH0_}@> zI#&LIePH!SuYOZJ&}r@{*TjKN$-aD-bYR{Rx%$gBLavc=jgo7OT$ptx$+fp!=unmK zFTRpG^4;oFNd{N`pb7rG<;|5cs^wZPgb#ovGXQ0e^q*1H6m zKa0OllYGvU{LYp;eI+I(W9y*r(82r3m5^(KT)fBN45{pAa(yLNp%jEH{ru&3Z*Kbe zL$|(Ie%_8h?wt4z&qQ1nAlrUG2gu)8I$!><1@ad)e*YzP_@!LeNPVu8J6*rJ{vYSp z9dme(n%746v@PVh(2tongIdSMjt_S(+dg^sUh@Nz--B|eUofwBmM;mpk9_doSC-s- z&!1{;81Y)kvnT9qUi13Sx&tTvz4^)O{@(KF!nbQ?oZqMJc|$s=o~jvCc+ zM{0Dz;D@ zJoHpa`pKu9y?^;Mx@z-Z&o;VhO`nC&w)}ZVm%8iEHhN3lfGs60`&~7>W$g43E&cZx z+0t>4(KqVG6pd-=vSo%-KfP?*>!W6td{H)Q+v7#EOa45fyyPG6mX|zOFqbg^*MHD+ z_QAIOkcjfXws^ksgL9Z<@|TOg+If)EJVCC#2011B%N^SG^5y2YE*oDmXx#+o&66jV zd^sm+>vqC?KYxaf3sj4aGX(8nDDoE^hfMt1l_f6bNEJFYPYUL!ka{hZ>pN1%L*))_ zPm`-st{SNj_okU=Kar}eeYWzLJHJd-U;9;M)z6&Nl(S-$d!G<*Tyji7)8g8~#>tC| zn)WJf*Vt#z;-;g2Qrx(!q(kMKH*{!xxus*%OU<29AHUSO>7K?esh95RTKVF2-BR~l zQc`*M+1*o@ZS7I{i*-Fyryks^@|3x~Q?>i{sjS(pZ{x|s`&G{9(7$nId_ZI6zXzoE z`pdw^NzV>S_kL(_W3O9=q(8oLXsZ0UMEa%EhNX5}Haz*!kt0%_ri@I!IB!(yo!+C9 zcke!?vBOtmlE3J{t=$`+x_?~y=g;lYc+=(M)8G5;gvRqunV3HGf@JE( zwR@&hn>hhtw-K zbVxth(y{T0=1$2sU+Ua=Lt~fZ6L)n@{rCx%wiM#IEKiz)Y0f|d5Juv;&##F-{ zKPXK}GjmE^nt@)zjM@uc#R;u+Qg@ot3-?U)B4JwdWnmG8bSChRz`%~hzOJ7U={7-*Q>{Z>I{_5fn z5{DLjm|WfXQNxg~A1C)%yesj@j$P?zJAT@*>)KC~?f&^$!^uDXJo(ed2RFQM!jSad z4MQ8A*(;G;ciOOq$2tv9mmD-AQTLY->3>fhmDuseQOT|K$%cx-d!`f1Cnb(-w^y=y zpUH^_cTG+XO-yMx;+ZMwM?adH_~D)VB>(#7eH->Tcfa&kk4Gt&F1MWzjJLJw}-5>94Jh|`P>8ozLJ9YD}dy+3)bZ_I|Ub-*c@r3(R{qA`n zeeR0J)Mb}Fn0$EJLyb+RJe>Y$(C<=(HIF2B|MHQ>siixTH#P4_U3l7K=_@OK-+0Em zzfXQu@pR)m>8I0s@Ah2d>ass3+wcED<40F~kX&E%VX9=(N9im6@lj)0&t1vqcI-+W z|G_8eDbIb{xc9@KC9CfJJhkNdFOqxz;>*q9ABO|_0{t9FF&1=sJ-`V z`Mu!UUu?2GbbslGto-w9ZO%6_5UWLiSLEvC$6LqXVZAr*aPN#saE!cmw?E1F?38QB z5T|*>5T|6a+!?P@xn{_@{s-O_Y z);eC*4}J6Tnk(Z|A=i)OI#@2eFJn?adUtGFyw1*< zJ8#rE10K(pzX`k3`69Cg-uBqHm@EBdEC$K7T(0j7bxMwsJ3ROQ_3<#W=eDQDq(+Y( zn@Rp;xkE#<<+@U?{|S67 zHM#$o^ute$X6ZAiweP z;)6G2Ox~7jY(myZ5>ClYzW&vvTHEkACw_#z*9hDmR#*TYaUT{1$lN2QnrP$+bhq z=S8_wr~eUnO>703_!+V$^@k_E);+CGW5?)Mt^Dmk>5F{v^w<1NVVnB0eG4Ag91o z>6Xun8@D{uG5!0CJ2ifCbLZrjCv-`Tzo2V+&lTMoYqpf6%T{+!UAVMI`mxzPQ~mep zmHd26@5TlF`=lp!=$oqlv~P0NTm2e;`%3@h8&3{s+~@v*>47&6O0BGPkl^6P`<~f7+2O8n zso(r&k96m{@r|#YGa>!%qKT;<8V>B{|5&pj|LdHYS%8@C;^fAVMN9+0|W#evBaH>OhW9#fjW zeyALr4H9kGS@WRIQr-m0cp8xW^aj%SVw-HXs$PubLEt33J%T*{>{groKUiZn}SJW)u^;k=X+Gj04S^a}|4Ti>tY0~E*0wF(X4jXFEH624S9$%2!nq}zUz}TC^tX8>OYfZD((|bW&Tc=eX!-E^ zh4c?~jf){v{9@D# z&T{zQSN-tL=6^d~o6fngYqN84x26qSN}B(2T=%BR>K-*;{U7$810afI*%2fNDr-Q= ztYjpOB$p&ZlBkS|9-e7b%xP3icc|l;Pd(Rk#=|v(am|=VMa6WEq6mUGDkel-6%!!- z>RkqL4-_xFd;i{z7PULO+tXcLU0qdOUEQk**#>Wl>MdO8Hav3xI8&aT=Dm}jM(@gA(QG&0pWKt3^m-2;f$xi7erq4! zQj`||{joH@zT!Z9kJSe$$DBj)fs+qY`Uj50x9D}0da~?Tyk;OvT^fHp+tT3#wKM)? zb{*YxYLVnr_T2}k_#G|IWS=^7hF?(UZ1$#2XZg{$&&8)p&-0y+Ux?pGU!-#T=#bn2 z9cpB6BeL}tBY}1ZqqcsQe$~+wqA%f}QofSgRJ>A^XVG3X^uFraSsc)HKF~KAFp}fc z^t5F1CdlzSv(9r*s7g6r-zT7F)%pqY9K~QE-b_4KJ#SXES+~M7b^`2&=N$yx0)EF& z-u$!T8-p}?`}b)?@bd%s5BUd)!;%|>ZqW_)nQU3wEQTA5Fz+`NSc#qn%| zWvaEcQS58EbHg`;ZwKYt8q4dI$hA{Th^9rQ@;P(Lh*f9J<@d&0upu%_`ArWoF>Xo= zd6vEvn%D6~X%gc3Eg!l0BOlZ*RF^N(yP~b)Dr;WwGYpN#sx-}jwmpV6z5=il(dr`RMAeD`w*^LUL9LlAGXCr^#FH;-^n62CQA(ut(LW% zA(OsYu|^!zHbq*0_Ib>x_Z88YwV*=3k-#(R-ZS~+Hx@TGCQNo5{y@q?WsM7*OIE4sZY4`wuI>FHxK;^&ubC_5Hnls2XXizbb!2 z?KSGUTG~i+sPb>~X6TB_OTACfdlchWRo2A?NfQRVizI=lik^&icvCM)(t}(*xw? z?b{Ib7Y53CSAx)<8HB%YuC$@>TW>k`rmlf@CS!66RdMYUo7k3~!_w6Wm#5xhJL*nqZkKzbp>n^y%*)Bw>Mm(;U z8c*E3(-kk8^)37Ed^h~pf!*2MEj@5~L{Ij}oL=$^ttfW&klym`jry=tqWj|KOZu{X zo%+c~UG7IPO$W&1b`Bu=6c5Blt{6mwULA~g`fdnew`VBs_3bc1ckyt%x$g+pW+IKh zGakum_ZWrez8l3p^iRZ(sV zgfP?GLg@~nVN8F6wzP*$I5zcdIBi%r66=>8Nx!)pg@u1=Ghq7TV-?rul8k-t4vGUq zJ2LfxIw@Ah#9=ot#vuuU>RYk5<;(O2BNxf@lFMQ*=$Um`ufE;wpBn^EJgqaTd1U z>$+kGmW?ep%uy`hbC|v5Hx#4UTxMy09xYA1$xJw!Pmh{?i|Llk({Y1tGXazC(B6@E z8Oxpp3jc5JVgBLw6&9@@U>5cd6J+oIaGb8pDJt*)sGf*|BGf@Wb6a#ciumNvN6p;^0vB>N) zg;U0R%qgv0(IDjm)?gW?cs8>R_H3L6U4Nt|qu;wO{gl*Vo)FqJhwCu*^K|H4qI%f6 zZT0BI3O!~Kudk5j)Mv)94HOFxG{hFB8YmK%i?GDmjTBubG{(9NYNC*IZHh@E4HYIn z%`g+k=5%W-BdkociYEYr(Iu{z2Y+iPg2n9|aoxm<3q=&R?*?9O*ogcY`AmK=4W`(!#ZSCEeURCOo0WhY602BZ(VT_9%Fup0!q9#9( zdY{zR_k+q*TCYmI`eT!j9G$yLC4ba)E_JzDosNb4F`1xac|*OUA?;iTz{t1KuGzzN zRHSz!a`^s6lvA@NB)PN+#V@tz_6>KSPK@(T?;|EcaE_)0#fE3O27HgUvwOGjAu1B`T? zb^wC_76U8?Kx4?-Riz)H@rm9G`bv+AH7!9O`ltte%(K!F%KZkQ8$6>2U@Q1N7Rjt6 zliD?rmUuLkKDIWL<~3<1y{Oq-dh}&;>5jWbQdy?4biqjz(UHTZqU~GFM5|Ys|Ji%4 z@%9gJ)E-oyFZQ3X|MIDd#)4jkFp}}YCCH;8(9ZeL-sOOU;6wTOv}Bp}q1E#GoQ%1$ zc8%O&_Ia^q?<>-=Zf`_u9o|Zda2@feK}|%RyEYZaMH-4)`!o}KJ2sbgvN94I)iaiQ zX_&}7UzkXn-!YXnyJ9ANcidd|cBh3jca5dkX{=a!WJ(KhgDzI08-uOI&%A6zhofx8 zmksSi$t~?=Ps;5@jGm+HQof_853HH&JnAH!l<6#6lf0J9&z`*n3GIx_gTyI;}-oW)iW<1BvKCsgJnqw6ExFuAj_E?l0PMC_q*+ zzl~_#%0OA(2tt}VEl74WHds0*Aw(u~3zZHF4HIX+3={qMagN{f(~M8{8wCS>D(J6S zry`IFEfsv-KUK_p%tTfHsP79w?~%_ykn@7S=i}H=?Jk1*mA-;a(07jjoX$d(j zpq{cLX)1r9$?WqYyWUsC&pTfe6^gUOnO@gL7qD#cUc(&Gc0NaTx%`Gm%I3;;=jTbc zrrwk-Ihrs1Y4$DIxMW^R54tVuI_ZwIW8__#U(W)mr{g_weE5A)hsF=YzV;7A9xon> z&2$PyhF1#3<@XS(Wz$srBQgOfRGEqdvdvSPLxu|8z2eIQaOjLhX9kKp+ z4XMLOO__b~x>7|QEi|^#d?`u%IA8jF?4PfeP{JByM8!IfI{mAgZ;gT09Ra>+iHQaP zMlxv_zn;ar>&FnVe6TV^VbW0I5ftv z#W2R=4c=j6bxVG?-_~p1zkXX-8&vn(%ImBAwn&zut2gw`7v?Ja5t+X)3L?=%W1`|^L#0F zMUmolonM1x(_1}CdB2CH^esZ0I)UrZkX@QuFRDkc!}O>b3O#x{ug|Z|sZS4J8}QQ( zG*nDYHQ@U%7b*J9Zp24SXsiey)P!%@wW-1}(vYw3(@df7*qm~-GEzLzHKz16OlZ9q zCe)MLrgYI|GwRZDbNbhv7Szr)mI`dFm|8TYh2ljOIK?yYE`)0)3w zDp5SUFX0cD`Y0}+_T`gv{phDV{CVb30L{&B!}nPkNbed!P?M(x(Tih)son`8^jNo0 zDkL;ak@7N(@8uGXX!rSr;Lq)AuI@8c9E0sHm24Mm5y9Up_;v(YE@&Qbzp}p@Ie{$& z(ANnQjR%bS8kWx?*E5Fo0L=fIKTEnJO(jnjER!+QugIhie^kknbA#72C%ra^9(3Bs zY%ts;I_r^wohbjf4s^HkH7rk@RVi00)`5Pr?sHSDi`IRl$1uHr*L_^VmBIr4Ao{C~ z?msFWKK*@#tdK2H@sBX)AdF;%I^Q5UA*>h71zwpC@C^7y*IBiW%FNpQGuGcAjqUzE zjU=BRAf)*R$#aq$WV50h+iJ;dbnDJ|FneJk=Z z>rC+dUC7B)1Y371D!EZBw)1uEZ%r+ z9iO*COs?$Sfg&_g)=$SN8n1}XLfPLynZ2OwK7i*z+5c#rO0R>K ztX_~d((h%D#k$g8MfGGCF+HhVp(oqH>x(Yt)R!$_8;EusXei#EY9Ly$TqKsxZX_B# zq47W69uV)%3>OV;5Gh`|J5tpCNtA5&s%YuptQgsnq;}GneeGrAy2nage`jY1=TBee|4-$?U;VDaR(v;CH4bW{^A3lxPzLY;#)XXw z#-n^ZM*jsdcUAYCi=$rn2z$;|BVY9w)wP!LTdA`>{6ZX@C$ztp3nm&27{xt$raWiV zV`ZqoWS*1^x=lT!>XKJTE$T9%P42;UsNG^+@@G*!Y6;|R8n4i!#_{^x;+*l*IGK}k>nqv_SYuP`w9U01gyih}Ij=FCc=9bF&bS(7g z8R*+Qz}8SNY~bJT2NH7c2|SJJRSSA4X~0}kjd68KgH+|q0OEE5UW*z>@I1N%kYyMqhyDV#rcqruPC`;>Xl{ap% zb=e9po1y_xwq;3%c14jb?UR<5+ZQ?MIVOFd?^pye$Vm`uHne4?b5dZk%h39}U6Wc& zavS<|Azl_Rpw&=rlzW+FxW~|49X-qH*n16K?CxE5SG#qQ+*DF_>b|6CVX05qrqjMf ziMf7B={x+3x*Q5f+Bm;Wkz{3H(yS50(9Y9>k_N{H4{eI@CBctZdTDup%#) z@G>ehyr_AD$g<$wkwx!{qLO;8iXPf5D<&x@sU6vLUwbOBdo1~S35jeS0gpqEUQSlz(sye-pHAs*_ zH(`Cs6~^5efb%d0UjmLs^x0#u=zqmNSNxb6&IdJ!R1Do6$y+~(qGzv)riiQvHmC-qlepwnvZT9LS@DpyKijRl^`u&OaeqFQ< zNgh$j)jDY^T$8<0b)C+@4b~U{dbweu(SXr9VqW1dtEsJ>b-14|>QLjIjmd&b#{APl zd#-zi1JyAul#I3vt8Tr~rpjIkDCRe@ywjol`S6@YfWd`;83nK3C(tF{PDK}CK0)_| z^%94@s`d=r_i4MTwqrGvxdvbpl%EP1tyj*Pkh9Ex&qO`Ebh15q4@vNpYtG}<_LziL ztN{u0kzjM}hjI=xf?C%%s8^4)se z(sTnW>$Fkcv1}u8#6LyunU_MWHrtH*UffJfDcgcCIJT9@e!2}WpSzt1JG=w$JXubx z+P+gxNADsg{j?iDWV45$hVPZLhWm)%_WR|{b<@~KHV5SI9vooL*FA(cyL^b~fgO>z z`sE0*=fzR{hV&TwAd|(zdmbl#ns)+ECQlOduymZkPZ9p3PUC$2+QV^40E_Kd=B+}ejb^adXwsLG@tA; z`&OkM*<#Wi(j@XOZyA1{Giv;RuVep^D|!BqzpGuye$NA?!{Yt45Qt7I(E%;Or zt~w_P{z+j@LUF0*VO;(SFb>B=YjM>WodWHi4r6o(VCF=ht>og&okWksU0nZe8AJy- z10urj96RjrIkKP41vYlo1yVo#GW*K!3i)JRCVSoVDyK!gAtru!!-WRCV>{h_$NA-! z5HmKFa;c}vh=DWTb68qAdw0_Z?#@z-JvFlqmp)E|xI=4_x2d{pQ!gzTb=pKkGaYh+ zSeO0&jV?J8(<25e^vFTHK070)J{iq6ULz$0-Nf}8wYYW*i?J2we>B?@YE! zcHzb^btT;mSwaeGxZ6?sKv zQ;~aAHWk;cKY?s0Ztlx4vbjw-nVJ_)zSE54$lZ}-?%gPI*s5sm&4n0l_VjjK`(y1n zewM@aw)i-}#tYNbk50$ZnW@+X8hfN<8-CYZ zx3(a;18^QZ1IdhY+dt1&)yWLty~;JVE5JWl03PnJf6yJy2?Ff+8UCq^-K`Rj&>xx}DxZ8!{UOAwtH+;zO+N|o=ZfT!)yAKz^SU}stD_~NsRPjCGxH1L z^vXzJM7z}ANxQ1Dz!>Ni1Q70li8=yq@)=%6vHI$5`^`B1%y?DCGpojHmGN0u6Sakq ze_p12i4Tx&J`n1k1TY!eG9B>eWZHiNAAD|XA%19Cdwx(3C`8BSUx;o05*^WaS_!l} z1#lkdcpb3YXLv%O<6pA><16Qss^bjBw|t4d_?PKhgj1X~1QY7A1^Q2gepn>*!ayNB^gsX)yh=>P&-E?y55ll;;`L7=2!Gl0mf{suJtf|5e4Of1e2*2bX$$dMU)G zqx)6mO?CQd)w2xzfe+>ZECQZL1&nxk0RUQ4PDEv??*)A`dOh8!*#`B!mekVRD|Ef} znaa7gmU}8IZI9aSsgznM6u#MIym`j^FY0<#;%Yy!+5X@-{Qn+TTa$i|{9d(T$4>;X zDm8jlG5hteL4KjRaz!m|-|GAag6@L!?Bl@0=>R_75PRqi=l=liQVkzh?h*cX&#f|V z$M2n=YvQMGYROMu&2wO#BYsKz6Kt}vz#A6Slp0KKQu59$y69RzR`;3V*S0bt~F zNgDWHkb_b231e0J8IXXAs(L4hI6@VHQ_ zt7VuVrxKi1atg^O*m$X|a@`7yg0-o=2?`dMhkx&_4Wc1`5X zJe7GS(LH#cs?5`>eir5-gsb-RS}0=^l$8p&1^f=>?WxS&QOg`0e^%ZeX6dSEx_wp* zs>c`TrCdWowk)w$)joAQUELlRe8st-_w9wYUWYc{28{Sc2GAH@Gza`g)|VB9sI5l}3-d~S#lIpahG3hi`+$VD3Trz;dYS-nmEHFs5Oq&L6d z2N!riSWgo8JRA7j8Tx$^z*OLY<$xPOJ%zknWOR&?dOnw$a_p#&Z&c22vh4vekd9ea zLmZ?Q0?%%PIv#_%o&szQWmW2uf1$tWv%1c_z<4MS3nh%|Gvamb_VbmOrg=iR`lf5^uQt1~+wV?(gLdG$zn< zRpUVrYoB7oC-v8<+A7F4L8c*$<|m=ef^0*4E%1pQw9^qF9NHWU*cr-8k?dQ*_8s1Y zD;T591-;CePY$DYrseSGZl@*CVY zZ0?uhWGT&_1!S4Sy-(t03z|Jr#><|5t%{dT$tvPEoqj@|I`))G-|>vxv|90(#n1ki z?)&;r?+p?5eIY#x$;ZP_EP5{dN`C&7yZ@?ps`)9j;#@{yJ`%={pce~rN0?9He&x8? z1>+^u59E#?CK?7JhR*;WVpl*wxj>`cff9BSi3)iOE z)=8BcJWrK$y|Wn)xw0i~?#Zq4vAegW?JYhe-+SzE+S02>vI%X~`RT+{?G((e+Bu`M9!;g{63#^0JgZZ{EvC z-YR$aIr{^?fyGkJ9;k!o#n+Xcc~V#Y?3Rv0__y_BH{pDd$qyQeHKrQiGdeexg%59n z$DM2;YvX4nFIZzOzGQ48hrLo&&(f8{UMb;xNtv0{34a|E#JaT&=GH}ou&bIV_h7KF zr->V&8_vR>CNA<}1PgnbIH!y#0`@d<4N_tV*we&4o7tYQhCNO7N0NjV#M(Y3I}#5} zJCPh7N1QEH<_<;j8_~Fm{`YB5YQaLJ@K5FOhJ{Jt#+R^4Ux=%a^;P#A>FQvgoX0D? zuWH+EhW^*|$3!Ons@&o~2De^BkB@ytbqjoraz*pw9NyCY2JiT;x+RMEwi=W+%a z#dg57#l~dn@xj$JHbX{TT(O3}({C;RXzDt8`{4D|Ca(>ObDcI)vkf;XwtA%S8_H7@ zKQ-CR&&=PfpkHp`2OZt2=$N^Uk51mM@Z7zFcbO!oJFMDCMGe?RdnE0qoWu9fhTZp4 z4ej^QZ~XRC3hgvH$MgVo<^BQ1tGb7%J*N*Tt`{8UxgAFo2hxx7yXGHLtX$9Xi$@$+ zOq_Ot9~*m8(JLXHk9RvoC$&4x`x=~~d%9$x^Jr+I!8yt&`&?ztoPsf#{7vGj;&kV0 z{4sHskV8lDqhSs|mCvC!mEYj|vAOi@{5qxn?A>|1oZWS(j}=r-*(=?>)( zd6#a~vw(N~=AObO{5~&g{Xk)0|B!#t?2+QRb|HWDb)h2j{$qY$R*_=w=_gd?v8VKv z9nYw}s}=N~`Om4PlV8w3k9bK<=vDlukGG24KYv!Nz&~Y;QmW9bJi}rK@NH-{+av(I?x-<7rzW3|N_QK!510wA zrwJ-Op6vG#qyAU-0jb*`g0Bbp^UQ$qQ^HNy=k5(`aqsor}URZV);;lt}?pVtTTHA^aT(y;@y>2ZUmnIQkyX7OT^T{gzJgZH}$0*vA8IJXA z5Gk6yI}#(FL`gTSie|cJ#V`|++R^yF_JVx<&*y7YhLJ1RQkKY6JR|rS5k|aIlfO}r z!^qzV!%BJH+e6@|$UsiYZRnyro>g#b;Wy~Mrm+EJxN-nD4mnVNvt{{G?M}W=_ zFo3{BlL6ZRAJ(+~tiB#o+p`yb@41_TEJsr|s#kUAH>ev%${3F1+R0mWKLw0CrM%4r zx-0=&90Ho00*vO6-T-@19RMEoE}kRIE24_LC+NKpe@9p3J29%jg1%k#%-I`I?oEJO z0C(Xz_W%b#8BE7(>x8@>1n%~R?dI_I@66X$o7}m7#-0h(b}el!9e~gMtCXF;*)Rb- zf?|4vOMPw?`arOG)P3&g{g?Jo6hj|*1Yx4kAXO}4+D}>w(xY1*-Q(QnN?NO56fefo3ty>V`rL%LeA|@dE}Id%kDHUbc3Kci)>x8@7bw?3QNBQwyBXyRM7f($zCe__ z8RZK^xtmeGK$N=~Z_h;lche1VAnP`*HPeizCYh|cd)U(c*-|~rn^gU%F6-6(7s!qh{8`U{$yu)jye*#FSyaYNUEcmf%JKirsALxf-BGXV6pC5t} zPXf@u=O{*9I^%CRXP}z%1-=+BUy+NFW~K@5FXGTHEb02%%WIwsGV88O53GtZ&#Bj3< z+=HPP*!g*x^0TH_+0GuE4KQuuu)Yq8;~|=q>&h=5t4F-LsfRyJ(I>7SsgHBB8W0D5X^8I{Xuw{ZA;K3& zD0BJYV;z*a{NxK8DRcSB6Q4Ijx%}i^E*qg-esal9WiCIt$pU3AKY1Cg%;kq`PFCjf z!%KaXx%}{(#x~0Hu8+O5W#7KA!`I~4v*~XfL{FCwjhxBQxRYr+7N;JW7}tkWYOyl}Jfylecz zkN)hllmLAD;5O{#S%LC%od|aKz##cnk6?C5M2P&SCZWWxR$+4brRuzEjc4J+*yj=W zh{KUY{N*S)mKII;?u@~8PPb!!Alu8guZm@Jf=RhFsRQxasiS;U_fAB%ew;kczq6n} zpnk0bv)4z#p-kEKF>PC=rC#Z^`V;PGZAN(!4p!vJ74(amYfIz7J96VBeNY1PpJ;-UJFujV`w6gwrfgR1yk7;{za$_`NH zJ^%xt{=)zxUEwUia2RW&02p|^XVlm0Pi^V;)Uf~JsYnesEH@I_$x8hT0-pa4& zmB`+vl;GM$rLu{0%J84gn#-<_w~%|uEM=EG#5m*(mu2W%$wl$jV)~A?{6%Y9@tLc( zxIqhh+1(@d_;burJZG_^9CC)s+=n>fds%03dVd#usmxWpv8@{}>@5?2<1QYo?SaQh zJjKV~dg7L1Z`r_0-k<1V&hveRvl#FN=>alD`!;y_fB5XQMh=?{&4x)k_hp*rIGS!H=<;Vm}q(bgE6u(R6BXZiuU4#k+FEc zsie$D+yM{o+finUb;2D(;>40iak##97qQ9NF8C9TcyU=uJbvj;S8@KVZ{?5AcN4P% zyUQJN1(#T<(XDYC1sHcIN;* zu6Urh?}|aV_tnATue?Y|v{mn<4CuID>K-fSW*er!Ba{%x1R52RMJwEQWL35xoUgJyg7?5f5>;9?chfT=w2bXR+Zgf|BG-YN8YS`vX~E& zHQkMutc@v~wyt|=;`*5UgbjJkdv1(jLpSBU3rLAsYm=InYrZ*VTHP&qN8WFV>0hul zZ}rV>7k;?7J#Wg99TyU|$-5_S+g>*btC4B>c#(r=|zlG=*82#e#X3<`tcpv1{os`G|V2JYLL-kxhR{Q-6+FjLgQ@r zK}|9YyEe^k8flpEM$#<%wL|lWrdCGT*}BFNuj`n^zj|&Gk$u}V{`zIJh=a$?;}7h# zh*-78viQ;%aYCOdEsA$`wz^6Wwk}@eWm7;!*%ps6v?~a1X`i^T+`hm@&oMDE-?2cu zuw`PGqfQCdna+ulWS0c3-L8oyliU&>EX0ew2ee8!JIcM-DBL4qOGnS*5<9PidG6lD zdD^WDQcWerNAF7t=9Kyr%TD_i49oRPJhH>TAofr|;_CTr3RMJ2|sicT=dib?cMY8TO9 zU;B7T_t=PMOGrU~MSNeU7XQ9-0Ds+Z7rtHhtDmBrH@0Z^Z{@)po`JZAAL=gzM(o}KkFM(`gjbQKdS2E!OkyuDt)@+8MbYt z0-Xyf&>ms*oNDdQ3cK^+3f0_KQ!IpFcN#`OPQ?gJlbi;@=iTf-t3;x?y1oJd4Su&v-t0A=2ynMSLFNt zP5#nzN?>8SR~{t^VhpMh0-%i^}G`d0AKsoThcED&PM;PcA0k!0xGB7kSm z&vheJYuw1rKLv0dpb;3lJpnVX_idnKC!{KpUhJR~`tJj8-hRaky)o3$lOrdEft|XGF?=FlZ}{wFwumej6@rRX0*RB|B2uq@ePQ$g1)S^#gcZYBA(L z6#%t=r{brWg(`kh*Et2bEbx;sx4`!*V`z+khs*&cM}l7vFw#9Y17rhC1l<$87WM~Z zxXzRjJ6EhxXfIw%q;_7X=rLnGHQr%^BC!8PzJ2{oiWY5Cc)TcuK5Mp_YIkijy`^jm z<+gV#Juhz?)o96fdc@&c?fF4#CBmK`v{v$a_WUT%#je=n!)@+-ja?_s;^ul?XQyM? z+;GDjVywpvw8w`^Y?4=-JwBA4qiTG|)7ZMA`ys^!jtIi8sVeHBQx<$bnWfUfw0~q-{ZvZeAKF8mjXKXMw zQ#7&DRq^xA*F=TlEODmSbHRZoyd_X-=Owr=G)z4wo@jaTqgjkW)z~^fLtfL_|AsWsF2aNbW58wyj`yjyb z^J&R4>qD#M^*I@HW$hZd!|d~7&)!$0W8L0});hcu^)fI0r=MvptbeTfamGYJM+pYn zRLDn2vsTmoq%Yl9`NI-w@Pi@07_x8Gb(1gkYY*s03Sce3Cg|4#75#b>>ij+QYZ73- zw9ZQM;K`LjycgpqJE52sd$KZL)xcSq3aZo9nsW7n(VeU4o{?L5-phoe`ShsSx0r6p zJRLXaHah=-_Kv*ESoZw#nI`F3AJ2bTKjNjLPpe{-Ckq>^TY}C5!r~v6VvrXW^UZjV zLEbFPEad~%U>Sy$&#Z$z8>hjTjMQZGd)H;kNG;|Gq0QvuIw)?9VO4Q!%vyyWvxwKn zj^)&6#;^^rH3u4E3sViSsmn!J;_OCPzX^>|Toe}GwJ9cvG{hWznqel6&6zMOBdko< zn6cL|VT@jwF!k=3G9{PIn8(M>nY^7A%*8d9n88>vvtvpNl%E2-FxVQ)^s>RWN7-U~ z4ec;#OMB*Wxji;Y&ym@k?})_}wnTe97&_CL8JFzBblmOAbe-hJcrL^akHv^y3b z?!mn6=!x<~F*n@3F*BXk*c(#`ib2M5N+Ao;X- zXI4%NV%Ek6GZPbP%&E0lUXXxzc;ZL?t=$a!XMd|gb``Dv)SeS!E~?{k_^eWPWdcuU z0d$Iic!L;BG#)To7ZBtV-Z`yYEJ^u*w_b*cO=i`>jmK-qyhm!vy?WP`8FkQ-HxJU5 zmEbz^4)b(md7^sw#clOuM-_VVBfP#iH>bXQHQPXZPuOJiC#2%7n%^ zGpGs5pN{v5G!%#VG{Zw3o6CAz8R2&IjAbGJoV}ZqvsCK>$69~PpZ+!ZlWJ%2t8B0- z$YBpxorx-5P+t!aY%sy5uj>Dw3;li*;4bjMJHP>`AfuK?1-~B3!J(KA^VC25d<@iX zn2&zH!3^UO#hwY5VE-bF)?g4ubCJ3a4enQt$p-Bpmbe`z>JC^73Sur;l#8`*L@CbA zj~1^=Z7;nT5{qOHy3ps!`4e6v9Y(kqTJ=i4LWKqYX)zvIrq~tlHs@Opo|TGzeQz?zqV2#KD>(BGgF2QtbZMw zccK)Vw5ts3dgeVNA6t(3ZTi40>;eg&VIJENsKNNqnwVLGx{N8zW0Kce%zHN-#w1IJ zxn)p~Dcf6*IsQx!GhVHa+GQf_Ser)JwDFCxH5N^<{_#z* zspU>s{V1eygYROFMDrSCV zT3{=Kt+2;~tg(q!HrT~TTdbFc9k#>K9@|%J&)k0EfGxY~$eg^`68mnC6SHBPGuC~v z3o~<`E7m5_jTtlyXTI&x3Y*czo$(Lwzy^AIG8X1uSX47_27B*~Ilper+{u$Lk2d)* z>4$xpmdE_C+Z+6u`l|!5lhfNUPbURp8~PCp*E0y485Yd!Y7@e&a}8w{TZCcJT5YkN zI^o#bH{sZ#2NBq`>yg-)Gf`Oo{n3JchBeblLVbm;0e9<5DVNM6WIesb!ObfcL=K+QK-J?JxX3!bu0+HO2xs4a0$HH8h-Bw z)xMCU5b~GjEA;#qUrKDAwy_Dc;iApStFh5az-HoAl|gx|98o0IU{Q^IfKcPeF9O~1!ms>%_5e+hn<3BSJv z81bW2t8K8zG$9229=)#veiO7Gr|MPRoB*HGCz@eY7OcPBg0k*HnfEH{#LSL=R8xJ_ z`Mel@^9FwV4loXd=6!Fx8Gp8JuWX{dp=g&;Gx1K{=F)rbn#&3v8HtQ@jb(!_n6P6H zo3aD8nz8Y#%-P7f7OZcQCF?X)%$jv?!8VAoV$1!k*=J5REN^PdUe>oG-q*DkZM^D; z%}#Gg?Aqf*tXuC)EMDwFOrPdTj7@YS1|;C@!XB;IVWZsH!~hRAwxcK8#oUW+UK$K2zLu9Q8ByRR2*cVfSP`iZ-wdZT~ zDKtOZM8F@o)MW#rT~$8PjD_<$V_`2J;Bfdpm$hymKVg(Mxuw1i)!Igv%YUNF57yEn z8(-4npFPm$#@wh+S)Xmdom<$D(n>YpwvG}}*S48)^;Vlx?-yE-{12AYtx;m~M4uMa z@s3tpezY}pIKhTvoouNQt?jtA`u6;2eFrk?jstbHz>({Jz9rx9kP{cN#hDLZ>B8+D z?@A?1bK^I}<5b&(R@8|gcgi8ugIeFhlhU*CqGr_brWSqInqOPknoqhTp^jzx@I6oX zQfqemQ481kQ&SfOP>EC9P_fGbsV;p9{`K%6epE~_-`78ck8=*?-Gah+@A_@|MlHg5 zqoQ!iRWFh+IUh-h3ZwYEEz#7AvoX}W#qFr8sqLxU#8|TD?vB)I&rbZFj>;T!h(>>W z$SX@w%5ZrL)JqtK#)p7W|ETLv@Hu?}&S$;_W2GbX)k^5I?SKjR(JFJ}&FtKDdvQ~H zLs_g*GkJU6=Jn9AtZ zf;tdwMQ!%8rdB%HP;*Ufsfqe_d`ew=etEIIVp)NMf*9{8?{L*o=9%7-@3F^;Z@=D| z4_xfR))1wt-Jj$IC2Y67W9Xu%wb1&*Jt*iyK1$i zLaoE8=%?Y7on|EE@@piedpC+Q*dDELzYs%znAc7iD+nWcXu{Un-v*pj9CZ2H4?evE zUjy=E2^--LT*4fUFzOdJMRgxx^q$+NdXI3`adiy(Mw7%uO-YqZ;ujllCf-9I{i>2j zvX}3g%U?V)65Hn*%g0?X;iern<;H9^qHGX`hiDG@lZYnwvl8+eCOOQ_pqxb5v z-2v#=4d^(qf{p`!QqfU9$KFuP{%2@Oj!D2dS&vrS_mG45hX4<*2jn15F!$mDAqR2W z_ugc8$U*FIQ$n_Z9K?D@d`U6nAhzG=PijC8;(9aMkOeCO$;bT&4x1KKA$?3XF$8o13Z8>J_C%%!~5gO|O3CCQQxA1dZ0-COXEF;={ZzcsJ#Y{QqC+VW5I z?I>d{du;q`d*eBNKS8C4(Py!bWd##u8S#FdOH(GE0-(up3~nw!f5TBra*f&P7fkqthfVpZTfd6ll-?_Qy52npg1hR7?@n(i#1UiLz&@PS(No|j z<$j%Nw^D$>QQoiMDOY7PG4=MT^O*WP3!l@2VV?aJ=Gkwd&EG@YrvXNG{aXMhP_Wwq zAU!*Mz~HqA3;MP{3PylS@EKI)*X2;gF955dyfuJ>;d^BhudNZ^Ubj~|!rl;DZ`4e* zPPaL8{atfu)*~ZKKi62=?ShGX;9*mF*R5vqs8!~2zquB2=OjzH`B1UEVfPmD57Aa~ zg`c(jwv&zgim9#qq`n>gtgb!I7u(~P3zRmv;=A;g`1(Cg_>%R`_>9Fa__%4V_&~71 zW6u1kIxBH3ESSC8H-uPY8_Mnr2_vRzwPlxChqJ4nhO^&kMzT|Wjbyvujbi(5k0vHu zh+)HiYKOm!jw1?RcM z=$Dt!KUy7CdKKTd-&*pA@7GaG`}N$Ozzw{;?M800{U-jUV+y(JaSA`ZK4EjQkf7E#MDa>bkGG9~bGqcwLO*U`!f9-*f@!))Dso z07m;~MU(y-dyjZpY|pMc>VUU?;3(bzxY`2?|h}NY(*^Q3)Mi}S%#k+3wk0?DD z5HFh1CgSFb!1x#ah>UkrgW|7-1&bG!R_a=4JfQYfKOU-Q{))RwpMoL`QMYDYK^PB$ zT|XJmnA%?clI5Yfp_U32>2BP0Il4P!d+f{8Tdu&Fd)tC`ewmATY% zu7y;TWGSsPR4jebt%dY%w3YO#pSARqlZ|wrsjYOAzMUu&?DF(td-2Hv2l0^cj{Nsm z9l4$`f6UtBB$}|^Su}XDi>TW)S5Zu&n4O=NW0WWdgZXM=-~}N(X$QyqH_lWM3<+x5p7)&DB9hRkY-E`5-kY} zmTvAFA{u8KDxDh=ChDryRyy1|Tsr1yxRlh4lz#JTq}2Uxl+aj^_9NXwWk1rIbCvcZeNSaS(q~lmBb}Z@Efqslwxgn*%63$^scc6&25d*ScJ8z**p7`{JZTZwjxXzbOE*07Ws>*!Nq<@I z&oGMvq?4z$VfrKnN_!^|OlVw?G$b^bvGWX(+S-I-A?9I<&CkMRD-1i+y|pUk6>3i% zjW4aQSN$B+a$t5u&-e=d7Um0qziXnax-J3VqxXX@0SggyC!p<2pz#vGI#9ORkzZyy zn0U5DjG!5_E^DsVgs zLWT=rT__k~)W?DyH4r(t;i{_FZG}4Q0oV`qIS9BPd_I25i#3efl(qCPJ=ZafdatJ^ zx7onFBsS8$EjBUN#3_o2I;mL4`OoQ9-Ci&bqhHdK{EC@vonI;9EMH@{z27LjKfJ+i zG<>Hxbo(6^@vek^25T4>bIa(&4euH3NV#Iuj1QP+GDhbPsKX4Htf6QasmT=euB%w& zq=kt?wCOYTb(l^zx{8t~y4XxDJ=*n>9#;RMKD~QqeJ1d114Y*%4YARi4d{6>BJ5PL z5j`x|7>l}YLccg-idlEIpzr-?iG3F?Rv6E2fhGD|DUyd+GsoO*=rCJbCe+Z5w%4-f zyS=t2r4Jk^(>so&;klNS(=I2j*E*%&iAPb@mtMB!E$>OlxGW#4(`jFB=6*kZ#wLIA(6RvP;H);>(+Po8;1Gfv z-CgN-A~ywuP#axB$@h(wekZa`%W$gGt8i|lzS8eRY7|CM&G$x=1uDN2dAh>ylrmen zM+5cEAD(YNJ5^Ma4m^+MWL+!x1DE=otj^nLPF@APjrLA(z(cL$U{64tN>A1VrC1AK z1OO^iJ|p*>(MYWeDeg-yEW46&Q_tTXu}y?0)Gp0n84>%a~Ji6`V0UV4lo+(Hx@AROQ##%U#M_jexAk)^|9qAeb94- z3w@3#g6e&E4E%vh825r473Ag|C~pyzy96*AvpUdTTLAcvr7VB329=3k3-&>_2fTqx zutBQY2Wy~=^#Gfoyi~wO@I7YgU#HiQ^Upb;`l094q+jTvIuP&&uA2M}0{sP=?1j2t zf;MCUPJrL>ySiqO$M0Rh%C}zRickN__n&`>n~=)!)U?a=*&nYk@_v~dKjbRa*ZUJ) zT2WH;7#p^?NHO`+6YRy(r}S?5Gsbp;LUDh=bFAyPFKCm|FPXW1#q{dVub4&_uN7Ck z-(X=M-q6}c@33>X-zj|Fm5{;qrTm;ET~7X9mnwW+kMr25$G<&l#yy{HPJOswK`y5( zshvNFxxJAs_~f2eWDl`5g@0>924YG-0Czvjj=%KSp44O=s3OoSEK^m!>N>MkG9$H@ zEARNd8+R(AW?yyhX06FkZ3#c|gM_1=`S87N`EtRR{P>__{+!K@0N#3a8%}$EAg?u< z;HQAhc+fLgu|Mde%*bijmLBo2E%H@!jrK<Z&@pO!DA7;)2Y+Zwk+*_})0jjE_D~_ldb8 z**`clC2G-Ci9GmP%7GPGX+dqSr`Wh=r}@0gPSI|7Bh57DM#{q{xoPjy@>0%SyeTnR zoA1zV>n%yy6yD+N&$lImV(&O?8GBa}?N*R-rq?}*i^2Vr)W8R6k#8TQ%&~lw=9K*? zW!Q(pv<7L9Q(|uwr9E5v#9?U0)3nRuo;kEnQKaqu=D7nt>xG0PUOF@$SS;Bke&tXc z{#r80_Kibt!?zMj>zzZ$t9O#%dnGBo@=Mct{#uq2bo6~1vAsOSI{8DI)lXQ8)}%UV zb%$%DJm{gBcE4R+hq~cf63y1y4)^VJBmq-(95S@)NzS~k=dk&{o+LF(-(l|Q`Vya& zjZ%h=XpHEOXaoHA$Cu@yETntuRoDPRUm;x8rmEU!KG0A808^pQeg=%g?-!S4&X5)A z8&vh_F>O>fE+baixQvF%#$^grHZF5oW#cj_DjOF&rLu9cO$83Z8Z@$Ru^}q^7Hg-n zZ!tHOeal3*Q`)zTi;L2}Wegx^&hbaSvV(j4(j_nz-VR;%m zD*9q?2mw(PQO}Nua#m0f53pd59c;vo{XcuTzWNN6hXrmHq_N#n6MCdA& zkB8_pQRU-dC--m4b`5c1gW5D>n{{i>wyM>Ft?A;*+I)5;T&&&LFE`u>(~s^fm)weY zd#yF`d5Z^;o79H5J-;oHw4ohwe3+EIJhwfu*~gPj9O6aHxA$f@c=-?`bUUy!?0ng| z&wbeeI{xgiOn+8-uOsWbD}d;q5y(0(>x5qkC_3K^(W5MVtyH&ok=wNBTU|8og6!Ml zgWwM&ZQhh6>!ObL4*1ggH`ojGH^G+W=7(-4ZloOUgh)fYuvsk*RbaMuXDuV8`x6rCY`ze7M&7%8=Jg@!~W=XhwOOluClr7 zJ?ve?eWjV%11@LcLprvCIk~!83)$8e zEol8pEvX6@TG9jGx^eGsxKq!Rt;oK+T2m~j3E}(F z;?3cEYAV>mw?J224zjcw;5EQIkS#n&h|iKpUO#vXNdNpUpwKm zrtiiH%Bv61BnZQs0!Fu-TGK5~xnc7Gsk38Ed4CHtMZf>s@gM(E{|LGRvU`(P3A8US z{zL3b+5s=-0#8-}Mm#lxe#8b+SNp0zmbf z_s7fVZ4wJxbS=u?r!K;C#By)QgwLAgo`te904_keS%AIZCr|GG_xts!`!9u<;-tAk zOmV~zFKnc}H$Br!6;n);cE0q8=f1S3jz8_6=}*_Y*O6|pD*$Vs5lB~A)=5_J_s+<_ zkLdB2Lc#Gb`*!dZXwFWtO4}kn# z-}vW1Mv+XQc|WJ+2YczlHCQt!)%v9FvLYZyiGHC`)7 zdLTOdWqJ8lrz_Ius{RIrK@xRt(KlC?ekaPuSm4KQ;LCBqNMGALf9?XN^N1w!zM+DA zu#4gYQP5Ee-QkEr1@+)2wQpjp5|DW z1NFHMa2x7&7jShbkEtxoNz#tfQ)Je!Qs{*K$7SrL;~3ZWq%!B=NxBAcTBf(|H0E0& zRoQB4Dwc6CO_|d7EdBM=IoT_ZbSy}C7gTqYP?_5HO(mEBLj5pRhHi@5BYGEY9rXj$ z(WDQC*X$#V0R*(KIshotrc%9!E41xodT7gU>||^R_KuHr{L6MSeV|h%YF!&$dTpc1 z{C)>LY`>X)sdn;`gH@b<-&z&(SYyK5F2FI{$DTakR%#@?_&81QA z&1I4K7K-d^mNL5xD@r2FJ5tpnYN2^Y>h<*6Xx@>!+_w&zcccuNVx`a9_23~ZQdkS-pe81R+Xzr13JFhXCd*q3s5;XTnIfkg_9w~!vs<}t% zNmEzqDWJ2s77sVi=_+Au)h~j%uOq}c)#8blDgY3eozZA!Vhq}1pvp%~r ztE}Aw$_anbyZvzcE^hTgyiRR_p4v8&=v(cGNmRRLAbaQ-*h45@r&?c(GX)6fi{ZTi zOQ8q_VG&RKqPVwz^0+U?y=n3T(c@nl|JC-2qAL^xsl2gYZ1bam7rTKc3c#LlUp>p~ z|5jZL>-^=HuA%w6@rZ~P-{VJdlPLQNIsQ>Um8_1<_)(rHffqIUVYq!iVSGF&-532U z)-j>DHq@`kR);!^{^Vc1rs?nUqkTF2DDrB4s}pN}D$`+&S_ zE$Ap)w$V4D|G1t6Q4=eQXFz@{H13u~Uy+_0fsPk|o;Lv_djq>|mZTp$wS@1Oo_MVe z`o5xSUr^!f4H`}ULK5wY^8CgH@QioxtPg;Z?h^6h%928}hbyRxnW{bfHT9YM>UfW^ zDXK@5(C-cVgMQy1!>a*C`odd)#-J~tYssdU(TWv|E1_#~eXdMRA29}9^y_KrN420V z0>BQ+wFiv&!7liD@};?6=-=7i#W7ALUnnrY#A=uCY=#3jtMpmbCJn{%RhC?dcCIL2 z&47+0fS!{8BmM?Wco}W+>18@UVndcDzrh|+CDCUg>WN}G3*r7HP|i|yInUtNwSnJF z0pLHj-_`mO!btx{I%`G)_ybAgwysI5F;NsM&>Q!5bDn4;|lv zXUNS2GvfC;jOX0CjDKf4RDV>i*6h1#h(>kSSNE%8|BA5YTsq(kRCdX>`>~XZb$Y&ta}fw$!YVwdvrQ1U1ON z4&8A;UCPVZ4jbWHj~`gw9`ko};M>1+z#8Z|@pjoxh(^ffboLVbTh-9xw1-1@PgIX9 zf8k`%Ja9O@6p1h%9V8Efi(YuUrn^m z;^Pyb4!Z#kL4A?{w}*1?H~XJ22FWj?#rO38zoKv2Fi;qz^7H3ot{ zFi?;ccaW7pkQFER4ej6aB;C75Ha&ew4!_g$B39Su5}y)y8B6iFLJhB+OTVmjm0$np zDw=<%&cnWIy}27a7Jn0)5ORwedf+xTe+I{|U2}&{?0=U^pK=d-+V(z0NFHG0>pY~k zRDVRrR?OpbU*%!B_wp&@OOI)z(@*$z2cKe}-aX?_t$R*4xmrLKPUW#)pY*83&-Cd< zHx2lsnTB-q^=j139@WM6W5H)mMD$eo6UFH)?RKR78GeuaLwRMiE3qHfY+o&bMy&vb z0E_^dO#qDgP=j9?JFC%Wmlr?#P70NQR8~K&t-H*F`bWWgYz6EB_f^>NYu8)KZe4Vi z9v9Y-qdhIq8gg+@3p781_Ow9rB4{rQG%teovOx19XfF#iFM{^6K=UGKFAFp;g7&gN z^CD<33wi2IDQ`2cJ(cfMw5Cb*PNg;?wJ?RuNzz8inkMp| zE@=fW%@QZsH}|tMZQ-`PvTIteH?D~{9<}saeA&$nKkM#ia=4Y->K(1qJU4hGriHih zn>@X(+o!SZ(zf@LCN}BPKCN*(&&2&rz5LGJ^>yoV$Jy%nr>L&riUh;Iy%)aBw?Cc zVdV6*ElX!4HlS7U$A}lGzb!GwYWEHQ%4g_Tko>r*?J+lGl%UUmOOqdMephl0KiDD+JaoQ13=dkYd*ZRt<#`7sP97w<%#p_##(C`M8AWkz7qvy z#sI`Y`P%^_dqoOm>q9|?0H}XtY};O;&7NLi%--kHh3QxET6)*%YdfyvUmxC}lb75? z&qO*56?Oy^x-l8)X{y-A@Q&I2I>{k!LvyT9r0!W3rqyt9fdO}^i01zny zpBJwa6XWpEd=1?s!3NFO(A9+b8v2zmUqfFK=4zWi29!v5Cmj#v+7*{U||(s^we zYGONf+)ydgtw(#dtG6f9ytx@)5f|t)ETk+gyJQ{;&rro@ zbXb76QLO)q?dh-Tdp^LgCBU~$fZIcP{e64K@dq~_AblKbDyLeQaiRL=vYqeE$%K3h zC3nq|Y?@((Vu(>YLovjtouL?F)Xq>0F=}Thh8VRo6hn;K8HyoB?F>HvF~t2tot0xR zIxA$SRQvOxIAYY+P#iI8YbcHwwKcj$h^npqC;S2;&k#L+mOj3DI^tHzey=QkiF(97 z;LAJUkHKJpKLZ{Yx2ylF>zIE9e`2Nz{L$`9#dal*QzE}a{#XNF1`dWZ{{W-*?PxG? zez=uG>Mm)y`MB^SQ4w zOvhjOXQsb$)V+?%@w)imsEtvI{nRb}v}A>YGQ zH-SILn+sT5?=H*65&1M1_>&5Jx(c`=6wwg|H&eJkE-k-bZ0Csk%1}44%~h_U+&0rUv7<#Kes8< zp9{U$k(;$EfLxss$PHT7iJX$q8NGX1{acw9(Kj}dpxY+?plzh7Gdu%6@BmGQV7PP$ z#w~`r1Z{t~f>{)>k-hh2BV({Bf{8l2iCH!)63>Z`VyJ;EQ#m}EdDA|IS@Qd4+}SP` zPwBFSF{&Jo?|2=LpE|n}m&Wa4Mzg!|x(nra*rGj5TWT*88?uifWc!(5mqW~blSJmy z*F@$_!D0MjS~7k*@hCGr>KGokE(Nc$QGqWCJ&sQcK7o%8I?2>&cM9+1b{gN;>I{<> zl*)X(n#u%JILmmvIE&A^dk!CWARSXYO~-=i3_RsV2Hth`d3waj^H@qqCUgCCCf;n) z1#Diz1uVLok~z9XiP!9zg$)nS!sfbUGg0%i@jJb9@NEB!(r50Mq_>N%#&I?$(I^je=PlQ?uqnC(o^Y;_-E4d8=gy#EiRDmp2kbrQ7;tf zLtZM9yT4NG^m?s`Z1zU+r`=lxUE`f%yiTEF@T)@Hd1DpaYDrbbXPyb;IuU0ahgM@9 zdQ@i&ylb%f!uhW3;~Hk{bscjyz8Y`p@4o(_#s2E zJWWkc)Y?>f8vjU$57ItY7JWvsEKU!E@3qgFg;!A}QI{8^hcwTd?FQ}UCcr&tLwZ9o z&Ij&zSnK3|av!0O&c-HJV}`O&-jJNa87Ws?H70v2swgKPuF6eHF+z`Mt1yoEmE<^ zR<=31HurK8A)7zD4tKF z(Bcr#)INs(r^^=lvu-@L>2*AI@a#^^C2kkppWTg_E|g=_7VV)W)Lwc`$UeHdY(L${bJ(B*>HMCj>3nZG1KV>W1M^yap6Y$_JTDK)q|cwu z#Ox*dinfpET?x4cFO;v#UDl2!RvB_j^skgwQ#Q$9E5mVDxh+wx&^IC-y-J96K_cja!~?#Z1!@5`-R z9>|UAK9sbyek5@+%9B`r%##>C$(MY*_E_@t+!M*oq^FY1_-B%o4bLU=#RZb+X}n~` zs2B31Lte^vb$=y~@_H?2n!SR<5eMMy|D^ryre4Ka-Iq8G!dsQ zhgM@OdQ_)BdX?HQut)D%Fl>$`v;3qLel*z{-<4p4M@7`anQ&Wt_Kezi$QS}2(ytEQ zBd{*+<6(!pHmrv`+Sub3#tw{^t|Qa@jU!|Kz=<)tcJ1D>Lu>#Vd^?m7ACW9ibbhcYCyUC&FuRI`*P=U5V_URX(n##<9xvuq?C7T1#Z-DWFw z9aUT2CXA3;bgUz<9b8xX!P!n;!LOe5hJn4rwyA^kSiXY^ll~{WZhgI?A}7^^|6J#qh(8} z{q>gehVR{^dPm%q^{=+#&Mj{(^F86gC5&$)bB<|Cp6%04W;91i?r7Cs_H2+Rxzx%_ zcA>pDIqrkEY)_pIWY=pQl;;ioxUnbwl)E4Mb6qxfR4zXkz%`v4h-isY3H?cB3u-j@ zG8nA=3lzg=2(&(RR^W-Y{v@6mpndMZ1mMvT;8muY=Rv^WV1VvWR_xBs5rvM)5&B6z z(nANNrib-Elo2Y8JFh>D%?z!(@IsiB($Tl8QYoyiOgF6ETiviq61}iGm-WIPniz!X z95e_^D=^e2qKxz(UVK73)}k0ENpZgi?Fa%i?B`=tindcS%o#ZV;vT_&?c#rczCAC|SQLD-t? zhG9-i8ij@KZLIGzu}N5;6_T(){hNk)gt&xxwP_Y++pT$+eXSN@n2T$e-e*_+TGno1 z`8VA3zkYBJOHXd4f9G0j{k$z6`X`gx=%1V4R)5QecKQj!q+!SBw%1?g;~BPjh*wyA zWACu}UOxKWbUTENu=Ca5{?1o_!y`YWXQB3Fy2NY(!jw*R)fx!2t-_D!gQd@0d?y#= z0qJy4XTu*zqR&lSGmkLpyGvXD4Bt`qphsQ>J@OXF#T|eaBVdn!5wIs1VAPNI1{oOv zfWvjf*3J>=yc=v^k96v{)O5Pnp$y7B?mRYu&7`asUJ%c>QJpLExWHa@u1v-SM{K!) zGq!8DvuJzjM?DLv2IZ9yd3YD3pN0Mje;|qeLWI#fXwGv5L;Xer%mA1L^_{P-Zy%`Z zSb+bSTrQl=b7sb9lXvMdEJ$hd>Mi(~+p^x4+4LzZ38P@FIHbb4_ z0OSCNppHiXSBHBgiJc?nxg*|iZ_i&ZurG{rcI1y#c@DAc-{Jwo>?vus#G-BV3j)3*S)}DhPf1e&EF+03P5K@J45p zz?&h!m(c*-q1Ydlt)DsG(@~Gi&{>W2?9|fFYK)j#bXFs_YD(E>HEQV8+A>a$-z%Ke z*nPzh#e#@uHU7vN5!G3Z8vCkC(<3EyZRmO}^=6K~3oYfP8z*`uE89 zsWSG1C~F+Ot(I>k$i!uU`lBH>U^IsN07mByk>RpGP|xuFb85cG0fpeX6?Kv zX1qZf9`GoGG2eb3_ln8Ho3FTl+s{$rW+7ROv~xByB(}s{Hu9_E-v7M$HuRow8tmWr zC(MnZ{sSe15opi3K^`>|YzH*w)*I-$66hNPI0){c8*YuH-X}%TRTr?-^$pSVm#}o+ zU{E$X+n)Cq&bH?p2xr^#RfMzc`GSS2v+XJ4@v5`!spoJeFq~~qDdB8;$EAAIUfclN zywiYM#jDP?=jFoL_WTOrY1dn$Ui>TG-dsBpGDA0?b^&(9Xlw&#ZkXWR2W!rAuJVBu_g%3CD}+4j^@;cRFUUv-ajRW`mH?$K} z&mW-$`VFFoIRAriY4m{nqPfwgK!?6SkKusPxF(6R#NicNw%#5>A%Yb5z3DT=}t zu;lp-(G(w+&V3}a`JloNT3~T&=XvyiMX4?rYpv{>xf$NG`0vb5kmkUnm{w zGg*n`WV+OCX=U<+M31susz=7+2K=g>2IKajryt98z&e+|IH*z*7o$Ffg&-5)xql#9P;Y%y>*&S=@X_gIn z0d(@rJ+|bY=-NCsnIKoruEXE$S(n>A%8ozPq8_)rqdmX1rUN&jz9V(=izC<5(3#qD z%b9EWxIVS;SOc<0PD5&BWFyjbUt=m@W)sq4rGy_bqAB?y#D(|wZARYc)|_wP*n&Lf z;>uUiYsp=+cH;{kx^c-L-TACDt+>eRt*Pg`JvjPE8%p_STW;{icGTW+QgRlo$ywFK zlN>bEi<;cToAmPb;kUi=;RZJH{nhP5w--_2K@C+fWD8G-6Naj#31*HxV-u1!RFz0`T=tW&YP zzUn;gRB;}u&J)`{x_6j5Ph7i&@O4{ZMR{}8dE$Hq$_rEHC4j690AVRjUY5dd7yx9$?}Xp&0+0iYfgg_r7+=PHYvG8C1ew|bd4nM1X=CG!{VreHXqMQVzEKeA~nHy__Lki{&Bm) z*JthyZ?I4vZo6lXu^+Y9xZ8?-#`R_U!{<*pU~DWoXneTGA>-#JiQ%Er!^X;j!{OsC zj)XtWJz~7&eR6na;?eNjYsbRn>r%q|A60~}2t6L29(ST&{~IT$i9si+Q?pJ{z1&Xo z@5nQJNS##KUhn^J^gYCrA05x&cY;Hrv`~oe<$>N|49{7G21GSRZBnlOj4=8vwo~!C zG~E$?s?r_fL7q&0$8hK0G0qYddcFO{Umbsf+6kJgS+!4C8;|rUE66MMPiy;Y1b;QM zi8Yhj=P7C}^UOMZC-?_Q20LgOoS4vFAS;sm_O@EZ#Vx zz1GnAqh-a3^U3|2@@rxIjcn75p90>#{B=0mit>Q* z*K4Z>Weel4{erd>2IH^Z@S-)b{1@;eQj6i-I#EaJo>_M5nD>~Z@(I3&HWc)aC$Npfn51dnh##ZA-@CTCEKO>Cz zB=*e+qt9YY-*n(b3h+b;xFy_2*P%CZ`7;hHcb_@T4S9K1whcdrY(hRT{yb+9lSz$S zd4Y_qaa(41=r%dvsR8-g!U)@S-Uy32YE1WxtwQ$?SH)f7pGM*Q^r6-G_-@t7IUQ8{ z>iv`A1JS#pkP8)sHFudR|5`Pd<6(xVT(Yf;W95(N$sEw!dK`w=A191Y2cdnP1wfn8 zTnD%b@C2Y9JcnyhQN@Q6wt0B8V4Ls$_r|b^eTX0LF#yRg#0`}0Ki8g7fZw9A*sTWq zfu!Asl;+dW>_^%GtvUdV1{epln+Dhe%K1A!4Q$Q9Ec#ebHr^#Vo3S2}!`KC=;>MUq zBQ9YRwq3&aJ731F8eYNI800d?D_+Gz^RNC>d>tbF3kSuFL-a>mEPXqFA@mzR*n6n< zg+_CnVQ7GZq|F!f8Oikb`uJtQi*$esz!whiFer!i_g+WYm+o(p6lO;8TS%5VGBcX5 z-Z+L2oVJ;t-6EE<8?c3MVZW8%=orUWsINM+kZS&XJ3sJIJTJSlgKwXjz{j24$=k*4 zqPnoVdEJF_e)OU}Y#_Cl-5auxZ7kbQ^zlEy;*x{xWS2wiOOr(Q-q%F-V!>fz$>k*C zMeY&eZdx*tlX#R}6m^U^ur7tL-l!nfh8`!vf=>`rgHEzd+MOc$x}7GDw>raK4oYPW zuB8%|9ZTp-%z)pE{A0Luxk`rq>Gr=UJ6p%(k43VB(s1CFIR1PqN8kTces`(;3t=wY zO06>?SrZeIF>Sf~p1i#V8S6uVPC-FG02uY@`q}bB&j_xEbqGxUpdhZb0a9u1oLHep6> zZ0HyQ>)Edk)*-Mi*3!ccb81)*v$V0t42>P=7Q%k8-@Hu zyX4ER_oy3l?{oIe9`JW2J|qvq`6}5x@|Y7Z^8P97J;Zipv+wyRpTEzaZ%0hvH5xDP zqX0Qbf2Dmq0X|8_!+rweF}wp{RKKI3PuvASW2SM`=*XYaUREZj$^Mv9LO&sy&PrvR zV@>G|3p3eueRGA$2XkfB#}-nr>z2xu8CE=-Y|SrEu;J%K)Z!hLWC>+((>cD!Z7dZKR61$wF45AE>Akv4zuWBVyX`@wd$X@-S$YcBGqFzsM3G+vgr zQ-F&2dio{*i7U}W417WJgZkF+2a+~lLe=f-H8QLqX}2?N{k$~22kxQV;Os=y_JV+a zeF4@1Yy^HL0Cs_L$#C0^%43%{QonhX7@LabZt!~9`249k%uefz_|5^BaPIac=B)1( z{6xx?f0{niyuf%o>ff5dyOr64ecM7bKdIVEh7qE8NuGRfEXe?Reg)78fqg+kgtih6 z?IZ+$=FTorie(^YHbveG@oTZO^zlahQ+XH(>Jq;onwiQ z?Y0o4{Z`_PV;s@2{x-Jo$u>3zizjMciYNH|9mJT_1S0$FPNH+%E_N!rn~*G&v&t3U z*I$CFA6DrvSiYdY{B~W?U%u@5R)6_CP0(LryOz*j&>C5`j_oBpvh!uaso@o3S>xh$ z5l^28>moAKZ?NxA-DDr{7uH2&tm0U|kUPZ0(RbPU-R`kWkNd2#%L8I(n}>w6^&_^2 zX&zzpF^?GkIiGlT?J?2)<`d#V(o^=szGuXq4bRyTvkQnnqIlMSkZN57F}$O&E}}{u zVO>N4CajCd;)Hb(`xL5m5$ulXpQt0LpNTV+4iV&BiP$F7C0ZF&CKgNd2%CI8VhnCT zd`UAPI`f9C)m|e)qBLedEw4gUmse$PjW=N%ug6(M*J><2wK^Nqv=(w=%XLPi%?x)jiVck!YL8^5>Oh89r-A|+X!nz+5 zLub{xpBMSUTHBnn!dlw{+l95ZYZsMRYkR{m>$epkQ{ZpWR*rt+XLMHEU;QWex9WWm ze9tBtSnS_WyFv+l7V}E$yWl59z8^biPYwWy07syG-2prSe!%W@*huL9ceg3V!R#E< zd+j;KHY=TJJtc#|_MFFq$V}!gb3wEXaF>r+#FvrTtn-i@f)m;x^Vw6?4-*NUFS9yd zF8{2ysFLktugq1l{cl{;CXTI@K(Er`NhPIvX@8$ub zyO>bjet`a}@p72CKqhS+MWl{gK2k3GWFp8JPfhMN_`U8<@_`L4T z5(e1_NI&6*42zM?nZB8%JI5;bx7)%w+HY0Pa*QLLoZ^+A@5FP9-tUk#J()m0pOvOO z{xyw!)A6i~&OAr%N>4}Uj&o1OXUPmkXOr$RIkJjg7r82dmz2|;FLMPAt|lezTp)bkG!Ecmqwcm0{ET-Hyx&jwLS5&SJ z&>;_xtR&mpT$ft;du4i?yB;>_qaM4}(tvAq-9V|w8WXrdz&J2-F zSb!_mji`?74#hNIm3^q_=cuv|6>aq_WUCfgDpuXFROXzqk=5Mz!*(I^TT=!PoTv{M zovA1Pe&027R<{Fw+s+q%_}mviuH%oVW%}cr?{&oEcLgvh8G+2rKRYqe37zrZfA7M~ z4VN*Cf9uK&8`BLx=GL9@4eY^mHt)$qw(Z48-u1#e)GRuqJQwus*&q*P&o30W`%u_fIGu;wC&^a z;;g6&AC%<0)mgHgi?cb0>)AikcA^}09g%z?yGh(DlzzOw0ewBTA)T?R5q)%CV|v%b zCUn$L36|c!DYmuPZo>Yo)dCv@@jK%`yV46Fey96QH#!*NcUl~6MR$bwovvFw=!Ou# z(`-Rox+=u))Eq9w8bJKcJ0DN13dHYRwfDvfynN^*x*f1AJ6|mKxi7X)#~(||^v71; z>xf0{3ZVC71Y$Fnb)p&s_7KMszrKQR6ZL6bRPv+Iqk(Qy>h2*ws`9|*Z=k}I>4z>) zCN$%|_W{2vPJ%NKCc!>{fE}RRp>dY+q-E>@W#jYT*u~Vg^O--BuN<+|;d{2Q_I@wo z_<-uDql-+Z(x|9OL}AaU2pBg}(jGg@qm%aBr{);q0<`K2G#d^W@jMO2jsUnoq4u@b z!r2aE12)pBUp7+DA|j}{XE#wHvm*I}@ljNdfh_fSNi=n}eGE13_szVqT`V8dWeZiH z8_zF$9bcMnn5s+drNTn?QI%x-sX&)QRGLX5b@*!{6<=_eKa`ftZ%aH%4U9U*FJ70z z^BWZWn9$>V|KJmRXP7tFZFh>7z`XgIR%fV$pj7Ji)l{lUg|ig#;w(S-?m52Ofpl*3 z({wI?&fsHiWbn;bpC7* zsk!sB`BS}f_yhi`xd-Bevue#c5o;jWW()GKqP6PmyuGTm>g@0ps{M&j*`7M8wdz>?9mf9+`zauq(dZpCeFCLkBi&LHe(2tEH$+k^r!bp>#+f1S1Um{Y zi;~!WP`eSYwe?U@--4Tp^sQOYM&;qvw6dx(fhcfMi`A{rgm=DD_=xs;yq1f+_;;ES29hgj*4@LV2q4`j>e-N4v zMf(S#G4Genhe|w4`kdwC{_EyLk$j@LYPGwpNFK@%EzR#W6{R1$hG!u;JEi-Lh^an^ z;{f^~UTf=5kY6+=xPeSXO@XsN0C$CZDE?Ih_3qdv{&Z3#U!RSl&Mjl90kfl3dJ&pC zFJ;dB8@=e=HbLJ>aWB?)I@L+#m%T|PZ@oz;53I>h=`|1sL^j%dfy`a1Bu(aKQR~TU z^2OjB?pXVaTnF2$eB#5a-1#c{)QZ>oZ$eoK z`yu|5){uy{$Hc_q*f=B~-GIKDjMuy_>ZQu@O%)rm;+0^JhJX68K1Y-Z(Jv#eW7m|4 z3m^-1LNU%U6vNv9?gjPcx3*OEH+=f(2tN71ChE(gNa|{2QS1fPvR@446u6mhF{WgD zRm-w~Lml^uWWfU93A87WTJ9YIvm2LBp+j{sTwg1y6E^Pg0 zUish)xn<5*e(!0FTsXJ_)hD7NHN{hhpFF=3H@|@{)y%3gRnJh5GBekwnqSjrOy3#M zRZbW(Z!a6s1<}S#?!hW_*6gZG(i#(b-yoccm|Trs-M%{B*QW-yxBh>8e?L)HhUOfl ze*2DmXv)gpxK{b-BC5axAR!qLF}nVqEc68aCjjgQSvUjO3vP6aSKFo3fN$(lwAPEP zX!z6SYeioJio--P4*x`7gUCOpa|e5Q18v}RCRLYTS+B%DvB8#yE2DjJa#ex6C3%&m z&M(hq*7Pmp0^e+=VqER17~T{xiqq*LBbW1`z8k5AS2j}1lOuRPg{n=XJ|D$X@y2wS z@l=#U&=1E`X^sti6aNF$!zKqy*v{nTB>qh9k-us~qj)O5ulYHy2iVUeccyE{iSREL z73mR}yD)bAx5QPg@<|�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 DQh2QI diff --git a/deps/icu-small/source/data/in/icudt58l.dat b/deps/icu-small/source/data/in/icudt58l.dat new file mode 100644 index 0000000000000000000000000000000000000000..458da3e69df37fc755a0a74cbed8bf20c0363629 GIT binary patch literal 2680800 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
Q5b#b)g)HfvY0S-XnO+LNUA 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%0A(ul{o4b3txU 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�KuFr#8-{>T(@+&L$RUcAo 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

WgapblQ_I7?IqKi)6bZmxtw|6Hl~9ZjP)t$J>y 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 xfR6n`cDw|G2} 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%0A1{pcz5!v7SsT2DJB7FQi&1W*Uv? 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

!s@7{0}E-=ar3zWgJJ> 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

o1)wq|cH^{+Aq-&yw#M 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 z%0D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 literal 0 HcmV?d00001 diff --git a/deps/icu-small/source/i18n/affixpatternparser.cpp b/deps/icu-small/source/i18n/affixpatternparser.cpp index fc98f7bf45684d..05e45dbb12bfc5 100644 --- a/deps/icu-small/source/i18n/affixpatternparser.cpp +++ b/deps/icu-small/source/i18n/affixpatternparser.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -44,7 +46,8 @@ nextToken(const UChar *buffer, int32_t idx, int32_t len, UChar *token) { *token = buffer[idx + 1]; if (buffer[idx + 1] == 0xA4) { int32_t i = 2; - for (; idx + i < len && i < 4 && buffer[idx + i] == buffer[idx + 1]; ++i); + for (; idx + i < len && i < 4 && buffer[idx + i] == buffer[idx + 1]; ++i) + ; return i; } return 2; @@ -66,7 +69,8 @@ nextUserToken(const UChar *buffer, int32_t idx, int32_t len, UChar *token) { break; } int32_t i = 1; - for (; idx + i < len && i < max && buffer[idx + i] == buffer[idx]; ++i); + for (; idx + i < len && i < max && buffer[idx + i] == buffer[idx]; ++i) + ; return i; } diff --git a/deps/icu-small/source/i18n/affixpatternparser.h b/deps/icu-small/source/i18n/affixpatternparser.h index 2105540a1aa7ba..07f84c53145d1d 100644 --- a/deps/icu-small/source/i18n/affixpatternparser.h +++ b/deps/icu-small/source/i18n/affixpatternparser.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/alphaindex.cpp b/deps/icu-small/source/i18n/alphaindex.cpp index 9159014f800596..8a2f0a3cb5c820 100644 --- a/deps/icu-small/source/i18n/alphaindex.cpp +++ b/deps/icu-small/source/i18n/alphaindex.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/anytrans.cpp b/deps/icu-small/source/i18n/anytrans.cpp index 695a9390b681c0..8ec6f837cfdffa 100644 --- a/deps/icu-small/source/i18n/anytrans.cpp +++ b/deps/icu-small/source/i18n/anytrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************** * Copyright (c) 2002-2014, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/anytrans.h b/deps/icu-small/source/i18n/anytrans.h index 228ccbe03affcc..d06d2baa57e202 100644 --- a/deps/icu-small/source/i18n/anytrans.h +++ b/deps/icu-small/source/i18n/anytrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *********************************************************************** * Copyright (c) 2002-2007, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/astro.cpp b/deps/icu-small/source/i18n/astro.cpp index 1b3bf58964b548..d657aaa20d751a 100644 --- a/deps/icu-small/source/i18n/astro.cpp +++ b/deps/icu-small/source/i18n/astro.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************ * Copyright (C) 1996-2012, International Business Machines Corporation * and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/astro.h b/deps/icu-small/source/i18n/astro.h index cd20b6cf2578b0..e8546617634e36 100644 --- a/deps/icu-small/source/i18n/astro.h +++ b/deps/icu-small/source/i18n/astro.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************ * Copyright (C) 1996-2008, International Business Machines Corporation * * and others. All Rights Reserved. * diff --git a/deps/icu-small/source/i18n/basictz.cpp b/deps/icu-small/source/i18n/basictz.cpp index 7fea290f169d06..b464f5cc5fbe64 100644 --- a/deps/icu-small/source/i18n/basictz.cpp +++ b/deps/icu-small/source/i18n/basictz.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/bocsu.cpp b/deps/icu-small/source/i18n/bocsu.cpp index cfc9816693bc9e..a2f94f239efcf7 100644 --- a/deps/icu-small/source/i18n/bocsu.cpp +++ b/deps/icu-small/source/i18n/bocsu.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/bocsu.h b/deps/icu-small/source/i18n/bocsu.h index 0f89a0fbeb06da..56b03500b143d2 100644 --- a/deps/icu-small/source/i18n/bocsu.h +++ b/deps/icu-small/source/i18n/bocsu.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/brktrans.cpp b/deps/icu-small/source/i18n/brktrans.cpp index dafac399f855e3..714a0a8720ad3f 100644 --- a/deps/icu-small/source/i18n/brktrans.cpp +++ b/deps/icu-small/source/i18n/brktrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2008-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/brktrans.h b/deps/icu-small/source/i18n/brktrans.h index 5a4c4b6d6b249a..27228321e67399 100644 --- a/deps/icu-small/source/i18n/brktrans.h +++ b/deps/icu-small/source/i18n/brktrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2008-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/buddhcal.cpp b/deps/icu-small/source/i18n/buddhcal.cpp index 5c9f80ed0ca092..c8a3a91a2cbd0d 100644 --- a/deps/icu-small/source/i18n/buddhcal.cpp +++ b/deps/icu-small/source/i18n/buddhcal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/buddhcal.h b/deps/icu-small/source/i18n/buddhcal.h index 441156d3d8fd52..95db980600d20f 100644 --- a/deps/icu-small/source/i18n/buddhcal.h +++ b/deps/icu-small/source/i18n/buddhcal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/calendar.cpp b/deps/icu-small/source/i18n/calendar.cpp index 5a1bef805f656f..9b0f5a0ad3e9e4 100644 --- a/deps/icu-small/source/i18n/calendar.cpp +++ b/deps/icu-small/source/i18n/calendar.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2016, International Business Machines Corporation and * @@ -634,7 +636,9 @@ static const int32_t kCalendarLimits[UCAL_FIELD_COUNT][4] = { }; // Resource bundle tags read by this class +static const char gCalendar[] = "calendar"; static const char gMonthNames[] = "monthNames"; +static const char gGregorian[] = "gregorian"; // Data flow in Calendar // --------------------- @@ -3791,12 +3795,30 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode& from the calendar data. The code used to use the dateTimeElements resource to get first day of week data, but this was moved to supplemental data under ticket 7755. (JCE) */ - CalendarData calData(useLocale,type,status); - UResourceBundle *monthNames = calData.getByKey(gMonthNames,status); + // Get the monthNames resource bundle for the calendar 'type'. Fallback to gregorian if the resource is not + // found. + LocalUResourceBundlePointer calData(ures_open(NULL, useLocale.getBaseName(), &status)); + ures_getByKey(calData.getAlias(), gCalendar, calData.getAlias(), &status); + + LocalUResourceBundlePointer monthNames; + if (type != NULL && *type != '\0' && uprv_strcmp(type, gGregorian) != 0) { + monthNames.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), type, NULL, &status)); + ures_getByKeyWithFallback(monthNames.getAlias(), gMonthNames, + monthNames.getAlias(), &status); + } + + if (monthNames.isNull() || status == U_MISSING_RESOURCE_ERROR) { + status = U_ZERO_ERROR; + monthNames.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), gGregorian, + monthNames.orphan(), &status)); + ures_getByKeyWithFallback(monthNames.getAlias(), gMonthNames, + monthNames.getAlias(), &status); + } + if (U_SUCCESS(status)) { U_LOCALE_BASED(locBased,*this); - locBased.setLocaleIDs(ures_getLocaleByType(monthNames, ULOC_VALID_LOCALE, &status), - ures_getLocaleByType(monthNames, ULOC_ACTUAL_LOCALE, &status)); + locBased.setLocaleIDs(ures_getLocaleByType(monthNames.getAlias(), ULOC_VALID_LOCALE, &status), + ures_getLocaleByType(monthNames.getAlias(), ULOC_ACTUAL_LOCALE, &status)); } else { status = U_USING_FALLBACK_WARNING; return; @@ -3815,9 +3837,6 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode& } if (U_FAILURE(status)) { -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, " Failure loading weekData from supplemental = %s\n", u_errorName(status)); -#endif status = U_USING_FALLBACK_WARNING; } else { int32_t arrLen; diff --git a/deps/icu-small/source/i18n/casetrn.cpp b/deps/icu-small/source/i18n/casetrn.cpp index 602c22914f913f..7f71362c334dce 100644 --- a/deps/icu-small/source/i18n/casetrn.cpp +++ b/deps/icu-small/source/i18n/casetrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/casetrn.h b/deps/icu-small/source/i18n/casetrn.h index b20cb8e9692c19..1067e0fc7b5638 100644 --- a/deps/icu-small/source/i18n/casetrn.h +++ b/deps/icu-small/source/i18n/casetrn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/cecal.cpp b/deps/icu-small/source/i18n/cecal.cpp index 9c2759ba757566..38c89799be7c4a 100644 --- a/deps/icu-small/source/i18n/cecal.cpp +++ b/deps/icu-small/source/i18n/cecal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003 - 2009, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/cecal.h b/deps/icu-small/source/i18n/cecal.h index 471d88933e83f8..ce6f4209ca5c74 100644 --- a/deps/icu-small/source/i18n/cecal.h +++ b/deps/icu-small/source/i18n/cecal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003 - 2008, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/chnsecal.cpp b/deps/icu-small/source/i18n/chnsecal.cpp index d2c9e9ea0bec33..0cf88205cb6357 100644 --- a/deps/icu-small/source/i18n/chnsecal.cpp +++ b/deps/icu-small/source/i18n/chnsecal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2007-2014, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/chnsecal.h b/deps/icu-small/source/i18n/chnsecal.h index ba3f943066584c..e000df7158d51c 100644 --- a/deps/icu-small/source/i18n/chnsecal.h +++ b/deps/icu-small/source/i18n/chnsecal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 2007-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/choicfmt.cpp b/deps/icu-small/source/i18n/choicfmt.cpp index e739adde0ce628..3630157852514c 100644 --- a/deps/icu-small/source/i18n/choicfmt.cpp +++ b/deps/icu-small/source/i18n/choicfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/coleitr.cpp b/deps/icu-small/source/i18n/coleitr.cpp index c842663ba183cf..4825baebcd8c51 100644 --- a/deps/icu-small/source/i18n/coleitr.cpp +++ b/deps/icu-small/source/i18n/coleitr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/coll.cpp b/deps/icu-small/source/i18n/coll.cpp index 6a8dc1c0d06b3f..46e5324ffdfe81 100644 --- a/deps/icu-small/source/i18n/coll.cpp +++ b/deps/icu-small/source/i18n/coll.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1996-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/collation.cpp b/deps/icu-small/source/i18n/collation.cpp index c01457e7386289..bac7498dfc35f7 100644 --- a/deps/icu-small/source/i18n/collation.cpp +++ b/deps/icu-small/source/i18n/collation.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collation.h b/deps/icu-small/source/i18n/collation.h index 53cffa983c1fae..c82d9a4778aa5f 100644 --- a/deps/icu-small/source/i18n/collation.h +++ b/deps/icu-small/source/i18n/collation.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationbuilder.cpp b/deps/icu-small/source/i18n/collationbuilder.cpp index 3465832d5a240b..0025cfc34fb39c 100644 --- a/deps/icu-small/source/i18n/collationbuilder.cpp +++ b/deps/icu-small/source/i18n/collationbuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationbuilder.h b/deps/icu-small/source/i18n/collationbuilder.h index cd499a4e927c02..7dda928a51a785 100644 --- a/deps/icu-small/source/i18n/collationbuilder.h +++ b/deps/icu-small/source/i18n/collationbuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationcompare.cpp b/deps/icu-small/source/i18n/collationcompare.cpp index 3b72d05d718a0f..5d8bd90d6c4781 100644 --- a/deps/icu-small/source/i18n/collationcompare.cpp +++ b/deps/icu-small/source/i18n/collationcompare.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationcompare.h b/deps/icu-small/source/i18n/collationcompare.h index 0185226d62fb4f..630b90b5564a7a 100644 --- a/deps/icu-small/source/i18n/collationcompare.h +++ b/deps/icu-small/source/i18n/collationcompare.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdata.cpp b/deps/icu-small/source/i18n/collationdata.cpp index 7f781f50f19737..d3a62e4fd0384f 100644 --- a/deps/icu-small/source/i18n/collationdata.cpp +++ b/deps/icu-small/source/i18n/collationdata.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdata.h b/deps/icu-small/source/i18n/collationdata.h index dd7fcebea46138..ab40bbd89e5a8f 100644 --- a/deps/icu-small/source/i18n/collationdata.h +++ b/deps/icu-small/source/i18n/collationdata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatabuilder.cpp b/deps/icu-small/source/i18n/collationdatabuilder.cpp index 7bdf184cc01375..4a9a67c7b0a189 100644 --- a/deps/icu-small/source/i18n/collationdatabuilder.cpp +++ b/deps/icu-small/source/i18n/collationdatabuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatabuilder.h b/deps/icu-small/source/i18n/collationdatabuilder.h index cfa46fd5506a0c..f2c9a820ad1ac8 100644 --- a/deps/icu-small/source/i18n/collationdatabuilder.h +++ b/deps/icu-small/source/i18n/collationdatabuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatareader.cpp b/deps/icu-small/source/i18n/collationdatareader.cpp index f7098f984199dd..df0b2a36809272 100644 --- a/deps/icu-small/source/i18n/collationdatareader.cpp +++ b/deps/icu-small/source/i18n/collationdatareader.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatareader.h b/deps/icu-small/source/i18n/collationdatareader.h index 4a9fa5eecadada..ff8ec3d406a8c0 100644 --- a/deps/icu-small/source/i18n/collationdatareader.h +++ b/deps/icu-small/source/i18n/collationdatareader.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatawriter.cpp b/deps/icu-small/source/i18n/collationdatawriter.cpp index 6943ed2c61f0b5..596236bc61b005 100644 --- a/deps/icu-small/source/i18n/collationdatawriter.cpp +++ b/deps/icu-small/source/i18n/collationdatawriter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationdatawriter.h b/deps/icu-small/source/i18n/collationdatawriter.h index 50e26524cec866..6169e0fd2640ed 100644 --- a/deps/icu-small/source/i18n/collationdatawriter.h +++ b/deps/icu-small/source/i18n/collationdatawriter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationfastlatin.cpp b/deps/icu-small/source/i18n/collationfastlatin.cpp index 70e393c4dfeaec..c3e8c98b3adb1a 100644 --- a/deps/icu-small/source/i18n/collationfastlatin.cpp +++ b/deps/icu-small/source/i18n/collationfastlatin.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationfastlatin.h b/deps/icu-small/source/i18n/collationfastlatin.h index 6a25c6692c901d..00a2d1b5105faf 100644 --- a/deps/icu-small/source/i18n/collationfastlatin.h +++ b/deps/icu-small/source/i18n/collationfastlatin.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp b/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp index d5acda15b01755..032e5e82aaef15 100644 --- a/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp +++ b/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines @@ -147,7 +149,7 @@ CollationFastLatinBuilder::loadGroups(const CollationData &data, UErrorCode &err // missing data return FALSE; } - result.append(0); // reserve a slot for this group + result.append((UChar)0); // reserve a slot for this group } firstDigitPrimary = data.getFirstPrimaryForGroup(UCOL_REORDER_CODE_DIGIT); @@ -564,7 +566,7 @@ CollationFastLatinBuilder::encodeCharCEs(UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return FALSE; } int32_t miniCEsStart = result.length(); for(int32_t i = 0; i < CollationFastLatin::NUM_FAST_CHARS; ++i) { - result.append(0); // initialize to completely ignorable + result.append((UChar)0); // initialize to completely ignorable } int32_t indexBase = result.length(); for(int32_t i = 0; i < CollationFastLatin::NUM_FAST_CHARS; ++i) { diff --git a/deps/icu-small/source/i18n/collationfastlatinbuilder.h b/deps/icu-small/source/i18n/collationfastlatinbuilder.h index b9eedf985af515..9d380380b4e58c 100644 --- a/deps/icu-small/source/i18n/collationfastlatinbuilder.h +++ b/deps/icu-small/source/i18n/collationfastlatinbuilder.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/collationfcd.cpp b/deps/icu-small/source/i18n/collationfcd.cpp index 153953cfc8671b..de1d9a2d1d8c5b 100644 --- a/deps/icu-small/source/i18n/collationfcd.cpp +++ b/deps/icu-small/source/i18n/collationfcd.cpp @@ -1,5 +1,7 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* - * Copyright (C) 1999-2015, International Business Machines + * Copyright (C) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. * * file name: collationfcd.cpp @@ -20,27 +22,27 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,1,1,2,3,0,0,0,0, 0,0,0,0,4,0,0,0,0,0,0,0,5,6,7,0, 8,0,9,0xa,0,0,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0x10, -0x11,0x12,0x13,0,0,0,0,0x14,0,0x15,0x16,0,0,0x15,0x17,0, -0,0x15,0x17,0,0,0x15,0x17,0,0,0x15,0x17,0,0,0,0x17,0, -0,0,0x18,0,0,0x15,0x17,0,0,0,0x17,0,0,0,0x19,0, -0,0x1a,0x1b,0,0,0x1c,0x1b,0,0x1c,0x1d,0,0x1e,0x1f,0,0x20,0, -0,0x21,0,0,0x17,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x22,0,0,0,0,0, +0x11,0x12,0x13,0,0,0,0x14,0x15,0,0x16,0x17,0,0,0x16,0x18,0, +0,0x16,0x18,0,0,0x16,0x18,0,0,0x16,0x18,0,0,0,0x18,0, +0,0,0x19,0,0,0x16,0x18,0,0,0,0x18,0,0,0,0x1a,0, +0,0x1b,0x1c,0,0,0x1d,0x1c,0,0x1d,0x1e,0,0x1f,0x20,0,0x21,0, +0,0x22,0,0,0x18,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x23,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x23,0x23,0,0,0,0,0x24,0, -0,0,0,0,0,0x25,0,0,0,0x13,0,0,0,0,0,0, -0x26,0,0,0x27,0,0x28,0,0,0,0x23,0x29,0x10,0,0x2a,0,0x2b, -0,0x2c,0,0,0,0,0x2d,0x2e,0,0,0,0,0,0,1,0x2f, +0,0,0,0,0,0,0,0,0x24,0x24,0,0,0,0,0x25,0, +0,0,0,0,0,0x26,0,0,0,0x13,0,0,0,0,0,0, +0x27,0,0,0x28,0,0x29,0,0,0,0x24,0x2a,0x10,0,0x2b,0,0x2c, +0,0x2d,0,0,0,0,0x2e,0x2f,0,0,0,0,0,0,1,0x30, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x30,0x31,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x31,0x32,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x32,0,0,0,0x33,0,0,0,1, +0,0,0,0,0,0,0,0x33,0,0,0,0x34,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x34,0,0,0x35,0,0,0,0,0,0,0,0,0,0,0, +0,0x35,0,0,0x36,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -99,9 +101,9 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x36,0x37,0,0,0x38,0,0,0,0,0,0,0,0, -0x20,0,0,0,0,0,0x29,0x39,0,0x3a,0x3b,0,0,0x3b,0x3c,0, -0,0,0,0,0,0x3d,0x3e,0x3f,0,0,0,0,0,0,0,0x17, +0,0,0,0x37,0x38,0,0,0x39,0,0,0,0,0,0,0,0, +0x21,0,0,0,0,0,0x2a,0x3a,0,0x3b,0x3c,0,0,0x3c,0x3d,0, +0,0,0,0,0,0x3e,0x3f,0x40,0,0,0,0,0,0,0,0x18, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -124,7 +126,7 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x40,0x41,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x41,0x42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -141,17 +143,17 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x42,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x43,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -const uint32_t CollationFCD::lcccBits[67]={ +const uint32_t CollationFCD::lcccBits[68]={ 0,0xffffffff,0xffff7fff,0xffff,0xf8,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0xfffff800,0x10000,0x9fc00000,0x3d9f,0x20000,0xffff0000,0x7ff, -0xff800,0xfbc00000,0x3eef,0xe000000,0xfffffff8,0x10000000,0x1e2000,0x2000,0x602000,0x400,0x7000000,0xf00,0x3000000,0x2a00000,0x3c3e0000,0xdf, -0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xf03fffff, -0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000, -0x4000035,0x4108000,0x40000000 +0xff800,0xfbc00000,0x3eef,0xe000000,0xfff00000,0xfffffffb,0x10000000,0x1e2000,0x2000,0x602000,0x400,0x7000000,0xf00,0x3000000,0x2a00000,0x3c3e0000, +0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd, +0xf83fffff,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,2, +0x400000,0x40000b5,0x5108000,0x40000000 }; const uint8_t CollationFCD::tcccIndex[2048]={ @@ -159,27 +161,27 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0xb,0xc,0,0,0,0,0,0,1,1,0xd,0xe,0xf,0x10,0x11,0, 0x12,0x13,0x14,0x15,0x16,0,0x17,0x18,0,0,0,0,0x19,0x1a,0x1b,0, 0x1c,0x1d,0x1e,0x1f,0,0,0x20,0x21,0x22,0x23,0x24,0,0,0,0,0x25, -0x26,0x27,0x28,0,0,0,0,0x29,0,0x2a,0x2b,0,0,0x2c,0x2d,0, -0,0x2e,0x2f,0,0,0x2c,0x30,0,0,0x2c,0x31,0,0,0,0x30,0, -0,0,0x32,0,0,0x2c,0x30,0,0,0,0x30,0,0,0,0x33,0, -0,0x34,0x35,0,0,0x36,0x35,0,0x36,0x37,0,0x38,0x39,0,0x3a,0, -0,0x3b,0,0,0x30,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x3c,0,0,0,0,0, +0x26,0x27,0x28,0,0,0,0x29,0x2a,0,0x2b,0x2c,0,0,0x2d,0x2e,0, +0,0x2f,0x30,0,0,0x2d,0x31,0,0,0x2d,0x32,0,0,0,0x31,0, +0,0,0x33,0,0,0x2d,0x31,0,0,0,0x31,0,0,0,0x34,0, +0,0x35,0x36,0,0,0x37,0x36,0,0x37,0x38,0,0x39,0x3a,0,0x3b,0, +0,0x3c,0,0,0x31,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x3d,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x3d,0x3d,0,0,0,0,0x3e,0, -0,0,0,0,0,0x3f,0,0,0,0x28,0,0,0,0,0,0, -0x40,0,0,0x41,0,0x42,0,0,0,0x3d,0x43,0x25,0,0x44,0,0x45, -0,0x46,0,0,0,0,0x47,0x48,0,0,0,0,0,0,1,0x49, -1,1,1,1,0x4a,1,1,0x4b,0x4c,1,0x4d,0x4e,1,0x4f,0x50,0x51, -0,0,0,0,0,0,0x52,0x53,0,0x54,0,0,0x55,0x56,0x57,0, -0x58,0x59,0x5a,0x5b,0x5c,0x5d,0,0x5e,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x3e,0x3e,0,0,0,0,0x3f,0, +0,0,0,0,0,0x40,0,0,0,0x28,0,0,0,0,0,0, +0x41,0,0,0x42,0,0x43,0,0,0,0x3e,0x44,0x25,0,0x45,0,0x46, +0,0x47,0,0,0,0,0x48,0x49,0,0,0,0,0,0,1,0x4a, +1,1,1,1,0x4b,1,1,0x4c,0x4d,1,0x4e,0x4f,1,0x50,0x51,0x52, +0,0,0,0,0,0,0x53,0x54,0,0x55,0,0,0x56,0x57,0x58,0, +0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0,0x5f,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x2c,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x5f,0,0,0,0x60,0,0,0,1, +0,0,0,0,0,0,0x2d,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x60,0,0,0,0x61,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x61,0x62,0x63,0x64,0x62,0x63,0x65,0,0,0,0,0,0,0,0, +0,0x62,0x63,0x64,0x65,0x63,0x64,0x66,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -238,9 +240,9 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x66,0x67,0,0,0x68,0,0,0,0,0,0,0,0, -0x3a,0,0,0,0,0,0x43,0x69,0,0x6a,0x6b,0,0,0x6b,0x6c,0, -0,0,0,0,0,0x6d,0x6e,0x6f,0,0,0,0,0,0,0,0x30, +0,0,0,0x67,0x68,0,0,0x69,0,0,0,0,0,0,0,0, +0x3b,0,0,0,0,0,0x44,0x6a,0,0x6b,0x6c,0,0,0x6c,0x6d,0, +0,0,0,0,0,0x6e,0x6f,0x70,0,0,0,0,0,0,0,0x31, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -263,7 +265,7 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x70,0x71,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x71,0x72,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -280,20 +282,20 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x3c,0x72,0x73,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x3d,0x73,0x74,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xe,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -const uint32_t CollationFCD::tcccBits[116]={ +const uint32_t CollationFCD::tcccBits[117]={ 0,0xffffffff,0x3e7effbf,0xbe7effbf,0xfffcffff,0x7ef1ff3f,0xfff3f1f8,0x7fffff3f,0x18003,0xdfffe000,0xff31ffcf,0xcfffffff,0xfffc0,0xffff7fff,0xffff,0x1d760, 0x1fc00,0x187c00,0x200708b,0x2000000,0x708b0000,0xc00000,0xf8,0xfccf0006,0x33ffcfc,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0x7c,0xfffff800,0x10000, -0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0xff800,0xfbc00000,0x3eef,0xe000000,0xfffffff8,0x10120200,0xff1e2000,0x10000000,0xb0002000,0x10480000,0x4e002000, -0x2000,0x30002000,0x602100,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200, -0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xf03fffff,0xbffffff,0x3ffffff,0x3f3fffff,0xaaff3f3f,0x3fffffff,0x1fdfffff, -0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50,0x292,0x333e005,0x333,0xf000,0x3c0f,0x38000, -0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000, -0x4000035,0x4108000,0x5f7ffc00,0x7fdb +0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0xff800,0xfbc00000,0x3eef,0xe000000,0xfff00000,0xfffffffb,0x10120200,0xff1e2000,0x10000000,0xb0002000,0x10480000, +0x4e002000,0x2000,0x30002000,0x602100,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000, +0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xf83fffff,0xbffffff,0x3ffffff,0x3f3fffff,0xaaff3f3f,0x3fffffff, +0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50,0x292,0x333e005,0x333,0xf000,0x3c0f, +0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,2, +0x400000,0x40000b5,0x5108000,0x5f7ffc00,0x7fdb }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/collationfcd.h b/deps/icu-small/source/i18n/collationfcd.h index f4cc8a170e8ed5..150f4880c90046 100644 --- a/deps/icu-small/source/i18n/collationfcd.h +++ b/deps/icu-small/source/i18n/collationfcd.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationiterator.cpp b/deps/icu-small/source/i18n/collationiterator.cpp index 86199bcd177216..e6e8f27e2f6b9d 100644 --- a/deps/icu-small/source/i18n/collationiterator.cpp +++ b/deps/icu-small/source/i18n/collationiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationiterator.h b/deps/icu-small/source/i18n/collationiterator.h index a7b2cbfbce76e0..0161f5a7b16e9a 100644 --- a/deps/icu-small/source/i18n/collationiterator.h +++ b/deps/icu-small/source/i18n/collationiterator.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationkeys.cpp b/deps/icu-small/source/i18n/collationkeys.cpp index 3fb1af1b36768d..91302285d6b78f 100644 --- a/deps/icu-small/source/i18n/collationkeys.cpp +++ b/deps/icu-small/source/i18n/collationkeys.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationkeys.h b/deps/icu-small/source/i18n/collationkeys.h index d1cc76f0283ac0..74b370e710991e 100644 --- a/deps/icu-small/source/i18n/collationkeys.h +++ b/deps/icu-small/source/i18n/collationkeys.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationroot.cpp b/deps/icu-small/source/i18n/collationroot.cpp index 749f05c51c3a2f..f862e410b81cd5 100644 --- a/deps/icu-small/source/i18n/collationroot.cpp +++ b/deps/icu-small/source/i18n/collationroot.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines @@ -45,7 +47,7 @@ static UBool U_CALLCONV uprv_collation_root_cleanup() { U_CDECL_END -void +void U_CALLCONV CollationRoot::load(UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return; } LocalPointer t(new CollationTailoring(NULL)); diff --git a/deps/icu-small/source/i18n/collationroot.h b/deps/icu-small/source/i18n/collationroot.h index 345fbe77eb4128..26e5071fff8b7a 100644 --- a/deps/icu-small/source/i18n/collationroot.h +++ b/deps/icu-small/source/i18n/collationroot.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines @@ -34,7 +36,7 @@ class U_I18N_API CollationRoot { // purely static static const CollationSettings *getSettings(UErrorCode &errorCode); private: - static void load(UErrorCode &errorCode); + static void U_CALLCONV load(UErrorCode &errorCode); }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/collationrootelements.cpp b/deps/icu-small/source/i18n/collationrootelements.cpp index c8fd0a09ffd37e..638a2456c82958 100644 --- a/deps/icu-small/source/i18n/collationrootelements.cpp +++ b/deps/icu-small/source/i18n/collationrootelements.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationrootelements.h b/deps/icu-small/source/i18n/collationrootelements.h index df2a13df243cef..518a24fe4e0e5f 100644 --- a/deps/icu-small/source/i18n/collationrootelements.h +++ b/deps/icu-small/source/i18n/collationrootelements.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationruleparser.cpp b/deps/icu-small/source/i18n/collationruleparser.cpp index 2d2e25fcb0e1d4..ea3ea66bc08cf5 100644 --- a/deps/icu-small/source/i18n/collationruleparser.cpp +++ b/deps/icu-small/source/i18n/collationruleparser.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines @@ -788,7 +790,7 @@ CollationRuleParser::readWords(int32_t i, UnicodeString &raw) const { return i; } if(PatternProps::isWhiteSpace(c)) { - raw.append(0x20); + raw.append(sp); i = skipWhiteSpace(i + 1); } else { raw.append(c); diff --git a/deps/icu-small/source/i18n/collationruleparser.h b/deps/icu-small/source/i18n/collationruleparser.h index 3c2b22c9dc455d..bd393c2b6ad143 100644 --- a/deps/icu-small/source/i18n/collationruleparser.h +++ b/deps/icu-small/source/i18n/collationruleparser.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationsets.cpp b/deps/icu-small/source/i18n/collationsets.cpp index ab282d89c6a95c..1188f310620e84 100644 --- a/deps/icu-small/source/i18n/collationsets.cpp +++ b/deps/icu-small/source/i18n/collationsets.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationsets.h b/deps/icu-small/source/i18n/collationsets.h index 4f0a2b6dceac13..070d507ebdc318 100644 --- a/deps/icu-small/source/i18n/collationsets.h +++ b/deps/icu-small/source/i18n/collationsets.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationsettings.cpp b/deps/icu-small/source/i18n/collationsettings.cpp index e3e76a476588b9..bc1d4e63f8a2a7 100644 --- a/deps/icu-small/source/i18n/collationsettings.cpp +++ b/deps/icu-small/source/i18n/collationsettings.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationsettings.h b/deps/icu-small/source/i18n/collationsettings.h index d839de7e541e3f..1522dd58be6603 100644 --- a/deps/icu-small/source/i18n/collationsettings.h +++ b/deps/icu-small/source/i18n/collationsettings.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationtailoring.cpp b/deps/icu-small/source/i18n/collationtailoring.cpp index ba20cc871ac57e..d1ffa306f1290d 100644 --- a/deps/icu-small/source/i18n/collationtailoring.cpp +++ b/deps/icu-small/source/i18n/collationtailoring.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationtailoring.h b/deps/icu-small/source/i18n/collationtailoring.h index 2a9b3d566f687a..e463005e08f54a 100644 --- a/deps/icu-small/source/i18n/collationtailoring.h +++ b/deps/icu-small/source/i18n/collationtailoring.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collationweights.cpp b/deps/icu-small/source/i18n/collationweights.cpp index dba362255e4850..9a7b9a9973c127 100644 --- a/deps/icu-small/source/i18n/collationweights.cpp +++ b/deps/icu-small/source/i18n/collationweights.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/collationweights.h b/deps/icu-small/source/i18n/collationweights.h index a32274b876b7b8..8f3f328547a1af 100644 --- a/deps/icu-small/source/i18n/collationweights.h +++ b/deps/icu-small/source/i18n/collationweights.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/collunsafe.h b/deps/icu-small/source/i18n/collunsafe.h index 97a766db26f729..4819ad195a6921 100644 --- a/deps/icu-small/source/i18n/collunsafe.h +++ b/deps/icu-small/source/i18n/collunsafe.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // collunsafe.h // Copyright (C) 2015-2016, International Business Machines Corporation and others. // All Rights Reserved. diff --git a/deps/icu-small/source/i18n/compactdecimalformat.cpp b/deps/icu-small/source/i18n/compactdecimalformat.cpp index 2004356e700b8a..31a5123cb10317 100644 --- a/deps/icu-small/source/i18n/compactdecimalformat.cpp +++ b/deps/icu-small/source/i18n/compactdecimalformat.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and * @@ -39,7 +41,7 @@ static const char gNumberElementsTag[] = "NumberElements"; static const char gDecimalFormatTag[] = "decimalFormat"; static const char gPatternsShort[] = "patternsShort"; static const char gPatternsLong[] = "patternsLong"; -static const char gRoot[] = "root"; +static const char gLatnPath[] = "NumberElements/latn"; static const UChar u_0 = 0x30; static const UChar u_apos = 0x27; @@ -94,7 +96,13 @@ class CDFLocaleStyleData : public UMemory { // Compute cdfUnits = unitsByVariant[pluralVariant]. // Prefix and suffix to use at cdfUnits[log10(x)] UHashtable* unitsByVariant; - inline CDFLocaleStyleData() : unitsByVariant(NULL) {} + // A flag for whether or not this CDFLocaleStyleData was loaded from the + // Latin numbering system as a fallback from the locale numbering system. + // This value is meaningless if the object is bogus or empty. + UBool fromFallback; + inline CDFLocaleStyleData() : unitsByVariant(NULL), fromFallback(FALSE) { + uprv_memset(divisors, 0, sizeof(divisors)); + } ~CDFLocaleStyleData(); // Init initializes this object. void Init(UErrorCode& status); @@ -102,6 +110,9 @@ class CDFLocaleStyleData : public UMemory { return unitsByVariant == NULL; } void setToBogus(); + UBool isEmpty() { + return unitsByVariant == NULL || unitsByVariant->count == 0; + } private: CDFLocaleStyleData(const CDFLocaleStyleData&); CDFLocaleStyleData& operator=(const CDFLocaleStyleData&); @@ -146,15 +157,12 @@ static const CDFLocaleStyleData* getCDFLocaleStyleData(const Locale& inLocale, U static const CDFLocaleStyleData* extractDataByStyleEnum(const CDFLocaleData& data, UNumberCompactStyle style, UErrorCode& status); static CDFLocaleData* loadCDFLocaleData(const Locale& inLocale, UErrorCode& status); -static void initCDFLocaleData(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status); -static UResourceBundle* tryGetDecimalFallback(const UResourceBundle* numberSystemResource, const char* style, UResourceBundle** fillIn, FallbackFlags flags, UErrorCode& status); -static UResourceBundle* tryGetByKeyWithFallback(const UResourceBundle* rb, const char* path, UResourceBundle** fillIn, FallbackFlags flags, UErrorCode& status); -static UBool isRoot(const UResourceBundle* rb, UErrorCode& status); -static void initCDFLocaleStyleData(const UResourceBundle* decimalFormatBundle, CDFLocaleStyleData* result, UErrorCode& status); -static void populatePower10(const UResourceBundle* power10Bundle, CDFLocaleStyleData* result, UErrorCode& status); -static int32_t populatePrefixSuffix(const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UErrorCode& status); +static void load(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status); +static int32_t populatePrefixSuffix(const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UBool overwrite, UErrorCode& status); +static double calculateDivisor(double power10, int32_t numZeros); static UBool onlySpaces(UnicodeString u); static void fixQuotes(UnicodeString& s); +static void checkForOtherVariants(CDFLocaleStyleData* result, UErrorCode& status); static void fillInMissing(CDFLocaleStyleData* result); static int32_t computeLog10(double x, UBool inRange); static CDFUnit* createCDFUnit(const char* variant, int32_t log10Value, UHashtable* table, UErrorCode& status); @@ -345,7 +353,7 @@ CompactDecimalFormat::format( UnicodeString& CompactDecimalFormat::format( - const StringPiece& /* number */, + StringPiece /* number */, UnicodeString& appendTo, FieldPositionIterator* /* posIter */, UErrorCode& status) const { @@ -518,7 +526,8 @@ static CDFLocaleData* loadCDFLocaleData(const Locale& inLocale, UErrorCode& stat return NULL; } - initCDFLocaleData(inLocale, result, status); + load(inLocale, result, status); + if (U_FAILURE(status)) { delete result; return NULL; @@ -526,278 +535,226 @@ static CDFLocaleData* loadCDFLocaleData(const Locale& inLocale, UErrorCode& stat return result; } -// initCDFLocaleData initializes result with data from CLDR. -// inLocale is the locale, the CLDR data is stored in result. -// We load the UNUM_SHORT and UNUM_LONG data looking first in local numbering -// system and not including root locale in fallback. Next we try in the latn -// numbering system where we fallback all the way to root. If we don't find -// UNUM_SHORT data in these three places, we report an error. If we find -// UNUM_SHORT data before finding UNUM_LONG data we make UNUM_LONG data fall -// back to UNUM_SHORT data. -static void initCDFLocaleData(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status) { - LocalPointer ns(NumberingSystem::createInstance(inLocale, status)); - if (U_FAILURE(status)) { - return; - } - const char* numberingSystemName = ns->getName(); - UResourceBundle* rb = ures_open(NULL, inLocale.getName(), &status); - rb = ures_getByKeyWithFallback(rb, gNumberElementsTag, rb, &status); - if (U_FAILURE(status)) { - ures_close(rb); - return; - } - UResourceBundle* shortDataFillIn = NULL; - UResourceBundle* longDataFillIn = NULL; - UResourceBundle* shortData = NULL; - UResourceBundle* longData = NULL; +namespace { - if (uprv_strcmp(numberingSystemName, gLatnTag) != 0) { - LocalUResourceBundlePointer localResource( - tryGetByKeyWithFallback(rb, numberingSystemName, NULL, NOT_ROOT, status)); - shortData = tryGetDecimalFallback( - localResource.getAlias(), gPatternsShort, &shortDataFillIn, NOT_ROOT, status); - longData = tryGetDecimalFallback( - localResource.getAlias(), gPatternsLong, &longDataFillIn, NOT_ROOT, status); - } - if (U_FAILURE(status)) { - ures_close(shortDataFillIn); - ures_close(longDataFillIn); - ures_close(rb); - return; - } +struct CmptDecDataSink : public ResourceSink { + + CDFLocaleData& dataBundle; // Where to save values when they are read + UBool isLatin; // Whether or not we are traversing the Latin tree + UBool isFallback; // Whether or not we are traversing the Latin tree as fallback + + enum EPatternsTableKey { PATTERNS_SHORT, PATTERNS_LONG }; + enum EFormatsTableKey { DECIMAL_FORMAT, CURRENCY_FORMAT }; - // If we haven't found UNUM_SHORT look in latn numbering system. We must - // succeed at finding UNUM_SHORT here. - if (shortData == NULL) { - LocalUResourceBundlePointer latnResource(tryGetByKeyWithFallback(rb, gLatnTag, NULL, MUST, status)); - shortData = tryGetDecimalFallback(latnResource.getAlias(), gPatternsShort, &shortDataFillIn, MUST, status); - if (longData == NULL) { - longData = tryGetDecimalFallback(latnResource.getAlias(), gPatternsLong, &longDataFillIn, ANY, status); - if (longData != NULL && isRoot(longData, status) && !isRoot(shortData, status)) { - longData = NULL; + /* + * NumberElements{ <-- top (numbering system table) + * latn{ <-- patternsTable (one per numbering system) + * patternsLong{ <-- formatsTable (one per pattern) + * decimalFormat{ <-- powersOfTenTable (one per format) + * 1000{ <-- pluralVariantsTable (one per power of ten) + * one{"0 thousand"} <-- plural variant and template + */ + + CmptDecDataSink(CDFLocaleData& _dataBundle) + : dataBundle(_dataBundle), isLatin(FALSE), isFallback(FALSE) {} + virtual ~CmptDecDataSink(); + + virtual void put(const char *key, ResourceValue &value, UBool isRoot, UErrorCode &errorCode) { + // SPECIAL CASE: Don't consume root in the non-Latin numbering system + if (isRoot && !isLatin) { return; } + + ResourceTable patternsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i1 = 0; patternsTable.getKeyAndValue(i1, key, value); ++i1) { + + // Check for patternsShort or patternsLong + EPatternsTableKey patternsTableKey; + if (uprv_strcmp(key, gPatternsShort) == 0) { + patternsTableKey = PATTERNS_SHORT; + } else if (uprv_strcmp(key, gPatternsLong) == 0) { + patternsTableKey = PATTERNS_LONG; + } else { + continue; } - } - } - initCDFLocaleStyleData(shortData, &result->shortData, status); - ures_close(shortDataFillIn); - if (U_FAILURE(status)) { - ures_close(longDataFillIn); - ures_close(rb); - } - if (longData == NULL) { - result->longData.setToBogus(); - } else { - initCDFLocaleStyleData(longData, &result->longData, status); - } - ures_close(longDataFillIn); - ures_close(rb); -} - -/** - * tryGetDecimalFallback attempts to fetch the "decimalFormat" resource bundle - * with a particular style. style is either "patternsShort" or "patternsLong." - * FillIn, flags, and status work in the same way as in tryGetByKeyWithFallback. - */ -static UResourceBundle* tryGetDecimalFallback(const UResourceBundle* numberSystemResource, const char* style, UResourceBundle** fillIn, FallbackFlags flags, UErrorCode& status) { - UResourceBundle* first = tryGetByKeyWithFallback(numberSystemResource, style, fillIn, flags, status); - UResourceBundle* second = tryGetByKeyWithFallback(first, gDecimalFormatTag, fillIn, flags, status); - if (fillIn == NULL) { - ures_close(first); - } - return second; -} - -// tryGetByKeyWithFallback returns a sub-resource bundle that matches given -// criteria or NULL if none found. rb is the resource bundle that we are -// searching. If rb == NULL then this function behaves as if no sub-resource -// is found; path is the key of the sub-resource, -// (i.e "foo" but not "foo/bar"); If fillIn is NULL, caller must always call -// ures_close() on returned resource. See below for example when fillIn is -// not NULL. flags is ANY or NOT_ROOT. Optionally, these values -// can be ored with MUST. MUST by itself is the same as ANY | MUST. -// The locale of the returned sub-resource will either match the -// flags or the returned sub-resouce will be NULL. If MUST is included in -// flags, and not suitable sub-resource is found then in addition to returning -// NULL, this function also sets status to U_MISSING_RESOURCE_ERROR. If MUST -// is not included in flags, then this function just returns NULL if no -// such sub-resource is found and will never set status to -// U_MISSING_RESOURCE_ERROR. -// -// Example: This code first searches for "foo/bar" sub-resource without falling -// back to ROOT. Then searches for "baz" sub-resource as last resort. -// -// UResourcebundle* fillIn = NULL; -// UResourceBundle* data = tryGetByKeyWithFallback(rb, "foo", &fillIn, NON_ROOT, status); -// data = tryGetByKeyWithFallback(data, "bar", &fillIn, NON_ROOT, status); -// if (!data) { -// data = tryGetbyKeyWithFallback(rb, "baz", &fillIn, MUST, status); -// } -// if (U_FAILURE(status)) { -// ures_close(fillIn); -// return; -// } -// doStuffWithNonNullSubresource(data); -// -// /* Wrong! don't do the following as it can leak memory if fillIn gets set -// to NULL. */ -// fillIn = tryGetByKeyWithFallback(rb, "wrong", &fillIn, ANY, status); -// -// ures_close(fillIn); -// -static UResourceBundle* tryGetByKeyWithFallback(const UResourceBundle* rb, const char* path, UResourceBundle** fillIn, FallbackFlags flags, UErrorCode& status) { - if (U_FAILURE(status)) { - return NULL; - } - UBool must = (flags & MUST); - if (rb == NULL) { - if (must) { - status = U_MISSING_RESOURCE_ERROR; - } - return NULL; - } - UResourceBundle* result = NULL; - UResourceBundle* ownedByUs = NULL; - if (fillIn == NULL) { - ownedByUs = ures_getByKeyWithFallback(rb, path, NULL, &status); - result = ownedByUs; - } else { - *fillIn = ures_getByKeyWithFallback(rb, path, *fillIn, &status); - result = *fillIn; - } - if (U_FAILURE(status)) { - ures_close(ownedByUs); - if (status == U_MISSING_RESOURCE_ERROR && !must) { - status = U_ZERO_ERROR; - } - return NULL; - } - flags = (FallbackFlags) (flags & ~MUST); - switch (flags) { - case NOT_ROOT: - { - UBool bRoot = isRoot(result, status); - if (bRoot || U_FAILURE(status)) { - ures_close(ownedByUs); - if (must && (status == U_ZERO_ERROR)) { - status = U_MISSING_RESOURCE_ERROR; + // Traverse into the formats table + ResourceTable formatsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i2 = 0; formatsTable.getKeyAndValue(i2, key, value); ++i2) { + + // Check for decimalFormat or currencyFormat + EFormatsTableKey formatsTableKey; + if (uprv_strcmp(key, gDecimalFormatTag) == 0) { + formatsTableKey = DECIMAL_FORMAT; + // TODO: Enable this statement when currency support is added + // } else if (uprv_strcmp(key, gCurrencyFormat) == 0) { + // formatsTableKey = CURRENCY_FORMAT; + } else { + continue; + } + + // Set the current style and destination based on the two keys + UNumberCompactStyle style; + CDFLocaleStyleData* destination = NULL; + if (patternsTableKey == PATTERNS_LONG + && formatsTableKey == DECIMAL_FORMAT) { + style = UNUM_LONG; + destination = &dataBundle.longData; + } else if (patternsTableKey == PATTERNS_SHORT + && formatsTableKey == DECIMAL_FORMAT) { + style = UNUM_SHORT; + destination = &dataBundle.shortData; + // TODO: Enable the following statements when currency support is added + // } else if (patternsTableKey == PATTERNS_SHORT + // && formatsTableKey == CURRENCY_FORMAT) { + // style = UNUM_SHORT_CURRENCY; // or whatever the enum gets named + // destination = &dataBundle.shortCurrencyData; + // } else { + // // Silently ignore this case + // continue; + } + + // SPECIAL CASE: RULES FOR WHETHER OR NOT TO CONSUME THIS TABLE: + // 1) Don't consume longData if shortData was consumed from the non-Latin + // locale numbering system + // 2) Don't consume longData for the first time if this is the root bundle and + // shortData is already populated from a more specific locale. Note that if + // both longData and shortData are both only in root, longData will be + // consumed since it is alphabetically before shortData in the bundle. + if (isFallback + && style == UNUM_LONG + && !dataBundle.shortData.isEmpty() + && !dataBundle.shortData.fromFallback) { + continue; + } + if (isRoot + && style == UNUM_LONG + && dataBundle.longData.isEmpty() + && !dataBundle.shortData.isEmpty()) { + continue; + } + + // Set the "fromFallback" flag on the data object + destination->fromFallback = isFallback; + + // Traverse into the powers of ten table + ResourceTable powersOfTenTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i3 = 0; powersOfTenTable.getKeyAndValue(i3, key, value); ++i3) { + + // The key will always be some even power of 10. e.g 10000. + char* endPtr = NULL; + double power10 = uprv_strtod(key, &endPtr); + if (*endPtr != 0) { + errorCode = U_INTERNAL_PROGRAM_ERROR; + return; + } + int32_t log10Value = computeLog10(power10, FALSE); + + // Silently ignore divisors that are too big. + if (log10Value >= MAX_DIGITS) continue; + + // Iterate over the plural variants ("one", "other", etc) + ResourceTable pluralVariantsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i4 = 0; pluralVariantsTable.getKeyAndValue(i4, key, value); ++i4) { + const char* pluralVariant = key; + const UnicodeString formatStr = value.getUnicodeString(errorCode); + + // Copy the data into the in-memory data bundle (do not overwrite + // existing values) + int32_t numZeros = populatePrefixSuffix( + pluralVariant, log10Value, formatStr, + destination->unitsByVariant, FALSE, errorCode); + + // If populatePrefixSuffix returns -1, it means that this key has been + // encountered already. + if (numZeros < 0) { + continue; + } + + // Set the divisor, which is based on the number of zeros in the template + // string. If the divisor from here is different from the one previously + // stored, it means that the number of zeros in different plural variants + // differs; throw an exception. + // TODO: How should I check for floating-point errors here? + // Is there a good reason why "divisor" is double and not long like Java? + double divisor = calculateDivisor(power10, numZeros); + if (destination->divisors[log10Value] != 0.0 + && destination->divisors[log10Value] != divisor) { + errorCode = U_INTERNAL_PROGRAM_ERROR; + return; + } + destination->divisors[log10Value] = divisor; } - return NULL; } - return result; } - case ANY: - return result; - default: - ures_close(ownedByUs); - status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; + } } -} +}; -static UBool isRoot(const UResourceBundle* rb, UErrorCode& status) { - const char* actualLocale = ures_getLocaleByType( - rb, ULOC_ACTUAL_LOCALE, &status); - if (U_FAILURE(status)) { - return FALSE; - } - return uprv_strcmp(actualLocale, gRoot) == 0; -} +// Virtual destructors must be defined out of line. +CmptDecDataSink::~CmptDecDataSink() {} +} // namespace -// initCDFLocaleStyleData loads formatting data for a particular style. -// decimalFormatBundle is the "decimalFormat" resource bundle in CLDR. -// Loaded data stored in result. -static void initCDFLocaleStyleData(const UResourceBundle* decimalFormatBundle, CDFLocaleStyleData* result, UErrorCode& status) { +static void load(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status) { + LocalPointer ns(NumberingSystem::createInstance(inLocale, status)); if (U_FAILURE(status)) { return; } - // Iterate through all the powers of 10. - int32_t size = ures_getSize(decimalFormatBundle); - UResourceBundle* power10 = NULL; - for (int32_t i = 0; i < size; ++i) { - power10 = ures_getByIndex(decimalFormatBundle, i, power10, &status); - if (U_FAILURE(status)) { - ures_close(power10); - return; - } - populatePower10(power10, result, status); - if (U_FAILURE(status)) { - ures_close(power10); - return; - } - } - ures_close(power10); - fillInMissing(result); -} + const char* nsName = ns->getName(); -// populatePower10 grabs data for a particular power of 10 from CLDR. -// The loaded data is stored in result. -static void populatePower10(const UResourceBundle* power10Bundle, CDFLocaleStyleData* result, UErrorCode& status) { + LocalUResourceBundlePointer resource(ures_open(NULL, inLocale.getName(), &status)); if (U_FAILURE(status)) { return; } - char* endPtr = NULL; - double power10 = uprv_strtod(ures_getKey(power10Bundle), &endPtr); - if (*endPtr != 0) { - status = U_INTERNAL_PROGRAM_ERROR; - return; - } - int32_t log10Value = computeLog10(power10, FALSE); - // Silently ignore divisors that are too big. - if (log10Value == MAX_DIGITS) { - return; - } - int32_t size = ures_getSize(power10Bundle); - int32_t numZeros = 0; - UBool otherVariantDefined = FALSE; - UResourceBundle* variantBundle = NULL; - // Iterate over all the plural variants for the power of 10 - for (int32_t i = 0; i < size; ++i) { - variantBundle = ures_getByIndex(power10Bundle, i, variantBundle, &status); - if (U_FAILURE(status)) { - ures_close(variantBundle); - return; - } - const char* variant = ures_getKey(variantBundle); - int32_t resLen; - const UChar* formatStrP = ures_getString(variantBundle, &resLen, &status); - if (U_FAILURE(status)) { - ures_close(variantBundle); - return; - } - UnicodeString formatStr(false, formatStrP, resLen); - if (uprv_strcmp(variant, gOther) == 0) { - otherVariantDefined = TRUE; - } - int32_t nz = populatePrefixSuffix( - variant, log10Value, formatStr, result->unitsByVariant, status); - if (U_FAILURE(status)) { - ures_close(variantBundle); + CmptDecDataSink sink(*result); + sink.isFallback = FALSE; + + // First load the number elements data if nsName is not Latin. + if (uprv_strcmp(nsName, gLatnTag) != 0) { + sink.isLatin = FALSE; + CharString path; + path.append(gNumberElementsTag, status) + .append('/', status) + .append(nsName, status); + ures_getAllItemsWithFallback(resource.getAlias(), path.data(), sink, status); + if (status == U_MISSING_RESOURCE_ERROR) { + // Silently ignore and use Latin + status = U_ZERO_ERROR; + } else if (U_FAILURE(status)) { return; } - if (nz != numZeros) { - // We expect all format strings to have the same number of 0's - // left of the decimal point. - if (numZeros != 0) { - status = U_INTERNAL_PROGRAM_ERROR; - ures_close(variantBundle); - return; - } - numZeros = nz; - } + sink.isFallback = TRUE; } - ures_close(variantBundle); - // We expect to find an OTHER variant for each power of 10. - if (!otherVariantDefined) { - status = U_INTERNAL_PROGRAM_ERROR; - return; + + // Now load Latin. + sink.isLatin = TRUE; + ures_getAllItemsWithFallback(resource.getAlias(), gLatnPath, sink, status); + if (U_FAILURE(status)) return; + + // If longData is empty, default it to be equal to shortData + if (result->longData.isEmpty()) { + result->longData.setToBogus(); } - double divisor = power10; - for (int32_t i = 1; i < numZeros; ++i) { - divisor /= 10.0; + + // Check for "other" variants in each of the three data classes, and resolve missing elements. + + if (!result->longData.isBogus()) { + checkForOtherVariants(&result->longData, status); + if (U_FAILURE(status)) return; + fillInMissing(&result->longData); } - result->divisors[log10Value] = divisor; + + checkForOtherVariants(&result->shortData, status); + if (U_FAILURE(status)) return; + fillInMissing(&result->shortData); + + // TODO: Enable this statement when currency support is added + // checkForOtherVariants(&result->shortCurrencyData, status); + // if (U_FAILURE(status)) return; + // fillInMissing(&result->shortCurrencyData); } // populatePrefixSuffix Adds a specific prefix-suffix pair to result for a @@ -810,7 +767,7 @@ static void populatePower10(const UResourceBundle* power10Bundle, CDFLocaleStyle // In the special case that formatStr contains only spaces for prefix // and suffix, populatePrefixSuffix returns log10Value + 1. static int32_t populatePrefixSuffix( - const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UErrorCode& status) { + const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UBool overwrite, UErrorCode& status) { if (U_FAILURE(status)) { return 0; } @@ -825,6 +782,13 @@ static int32_t populatePrefixSuffix( if (U_FAILURE(status)) { return 0; } + + // Return -1 if we are not overwriting an existing value + if (unit->isSet() && !overwrite) { + return -1; + } + unit->markAsSet(); + // Everything up to first 0 is the prefix unit->prefix = formatStr.tempSubString(0, firstIdx); fixQuotes(unit->prefix); @@ -846,6 +810,16 @@ static int32_t populatePrefixSuffix( return (idx - firstIdx); } +// Calculate a divisor based on the magnitude and number of zeros in the +// template string. +static double calculateDivisor(double power10, int32_t numZeros) { + double divisor = power10; + for (int32_t i = 1; i < numZeros; ++i) { + divisor /= 10.0; + } + return divisor; +} + static UBool onlySpaces(UnicodeString u) { return u.trim().length() == 0; } @@ -884,6 +858,38 @@ static void fixQuotes(UnicodeString& s) { s.truncate(dest); } +// Checks to make sure that an "other" variant is present in all +// powers of 10. +static void checkForOtherVariants(CDFLocaleStyleData* result, + UErrorCode& status) { + if (result == NULL || result->unitsByVariant == NULL) { + return; + } + + const CDFUnit* otherByBase = + (const CDFUnit*) uhash_get(result->unitsByVariant, gOther); + if (otherByBase == NULL) { + status = U_INTERNAL_PROGRAM_ERROR; + return; + } + + // Check all other plural variants, and make sure that if + // any of them are populated, then other is also populated + int32_t pos = UHASH_FIRST; + const UHashElement* element; + while ((element = uhash_nextElement(result->unitsByVariant, &pos)) != NULL) { + CDFUnit* variantsByBase = (CDFUnit*) element->value.pointer; + if (variantsByBase == otherByBase) continue; + for (int32_t log10Value = 0; log10Value < MAX_DIGITS; ++log10Value) { + if (variantsByBase[log10Value].isSet() + && !otherByBase[log10Value].isSet()) { + status = U_INTERNAL_PROGRAM_ERROR; + return; + } + } + } +} + // fillInMissing ensures that the data in result is complete. // result data is complete if for each variant in result, there exists // a prefix-suffix pair for each log10 value and there also exists @@ -973,7 +979,6 @@ static CDFUnit* createCDFUnit(const char* variant, int32_t log10Value, UHashtabl } } CDFUnit* result = &cdfUnit[log10Value]; - result->markAsSet(); return result; } diff --git a/deps/icu-small/source/i18n/coptccal.cpp b/deps/icu-small/source/i18n/coptccal.cpp index 1996327a6f21a8..ce531ca0e851bd 100644 --- a/deps/icu-small/source/i18n/coptccal.cpp +++ b/deps/icu-small/source/i18n/coptccal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003 - 2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/coptccal.h b/deps/icu-small/source/i18n/coptccal.h index 47c952868b10ae..523769fabe57f0 100644 --- a/deps/icu-small/source/i18n/coptccal.h +++ b/deps/icu-small/source/i18n/coptccal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003 - 2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/cpdtrans.cpp b/deps/icu-small/source/i18n/cpdtrans.cpp index 3798a6de021df9..b6e328f92c223c 100644 --- a/deps/icu-small/source/i18n/cpdtrans.cpp +++ b/deps/icu-small/source/i18n/cpdtrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/cpdtrans.h b/deps/icu-small/source/i18n/cpdtrans.h index 004f04fd63c305..6f832df883cb85 100644 --- a/deps/icu-small/source/i18n/cpdtrans.h +++ b/deps/icu-small/source/i18n/cpdtrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/csdetect.cpp b/deps/icu-small/source/i18n/csdetect.cpp index 94d440090cd14a..8ddbe8129b68d7 100644 --- a/deps/icu-small/source/i18n/csdetect.cpp +++ b/deps/icu-small/source/i18n/csdetect.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/csdetect.h b/deps/icu-small/source/i18n/csdetect.h index bbe81c801669b5..d0dc0d20777d44 100644 --- a/deps/icu-small/source/i18n/csdetect.h +++ b/deps/icu-small/source/i18n/csdetect.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/csmatch.cpp b/deps/icu-small/source/i18n/csmatch.cpp index b2c8544fc559ac..ea8d37cd202703 100644 --- a/deps/icu-small/source/i18n/csmatch.cpp +++ b/deps/icu-small/source/i18n/csmatch.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/csmatch.h b/deps/icu-small/source/i18n/csmatch.h index 19a285262d399d..a94b86ae7c0ca4 100644 --- a/deps/icu-small/source/i18n/csmatch.h +++ b/deps/icu-small/source/i18n/csmatch.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/csr2022.cpp b/deps/icu-small/source/i18n/csr2022.cpp index 5ba30d53c44994..9566ee479612be 100644 --- a/deps/icu-small/source/i18n/csr2022.cpp +++ b/deps/icu-small/source/i18n/csr2022.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/csr2022.h b/deps/icu-small/source/i18n/csr2022.h index ba5e5e011e59e0..9ff2648505f141 100644 --- a/deps/icu-small/source/i18n/csr2022.h +++ b/deps/icu-small/source/i18n/csr2022.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/csrecog.cpp b/deps/icu-small/source/i18n/csrecog.cpp index 7535e9aa66016e..7ae7765399f20a 100644 --- a/deps/icu-small/source/i18n/csrecog.cpp +++ b/deps/icu-small/source/i18n/csrecog.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2006, International Business Machines diff --git a/deps/icu-small/source/i18n/csrecog.h b/deps/icu-small/source/i18n/csrecog.h index 97d3af7ad1a528..1759ca561b363a 100644 --- a/deps/icu-small/source/i18n/csrecog.h +++ b/deps/icu-small/source/i18n/csrecog.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/csrmbcs.cpp b/deps/icu-small/source/i18n/csrmbcs.cpp index 1963bf85abe649..d61269f5e33770 100644 --- a/deps/icu-small/source/i18n/csrmbcs.cpp +++ b/deps/icu-small/source/i18n/csrmbcs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/csrmbcs.h b/deps/icu-small/source/i18n/csrmbcs.h index 9ea9d8f8ee0338..6a49a859724be8 100644 --- a/deps/icu-small/source/i18n/csrmbcs.h +++ b/deps/icu-small/source/i18n/csrmbcs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/csrsbcs.cpp b/deps/icu-small/source/i18n/csrsbcs.cpp index 803105c24a7da0..48e7dc51233c53 100644 --- a/deps/icu-small/source/i18n/csrsbcs.cpp +++ b/deps/icu-small/source/i18n/csrsbcs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/csrsbcs.h b/deps/icu-small/source/i18n/csrsbcs.h index b4897b1ceec91a..2f967dd9c2888d 100644 --- a/deps/icu-small/source/i18n/csrsbcs.h +++ b/deps/icu-small/source/i18n/csrsbcs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/csrucode.cpp b/deps/icu-small/source/i18n/csrucode.cpp index 3780c3b3e684e6..201b2996c78cab 100644 --- a/deps/icu-small/source/i18n/csrucode.cpp +++ b/deps/icu-small/source/i18n/csrucode.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/csrucode.h b/deps/icu-small/source/i18n/csrucode.h index 458b2c96ad9d53..10e5fafe66febd 100644 --- a/deps/icu-small/source/i18n/csrucode.h +++ b/deps/icu-small/source/i18n/csrucode.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/csrutf8.cpp b/deps/icu-small/source/i18n/csrutf8.cpp index 6dd874e0ba6bf0..4f29fa2af7fe28 100644 --- a/deps/icu-small/source/i18n/csrutf8.cpp +++ b/deps/icu-small/source/i18n/csrutf8.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/csrutf8.h b/deps/icu-small/source/i18n/csrutf8.h index 79a424b7c0cda7..71309eade75657 100644 --- a/deps/icu-small/source/i18n/csrutf8.h +++ b/deps/icu-small/source/i18n/csrutf8.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/curramt.cpp b/deps/icu-small/source/i18n/curramt.cpp index 195d5f30f4808f..4475ff611eeec0 100644 --- a/deps/icu-small/source/i18n/curramt.cpp +++ b/deps/icu-small/source/i18n/curramt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004, International Business Machines diff --git a/deps/icu-small/source/i18n/currfmt.cpp b/deps/icu-small/source/i18n/currfmt.cpp index 23a7d52acac157..b92aa00e5cb8b5 100644 --- a/deps/icu-small/source/i18n/currfmt.cpp +++ b/deps/icu-small/source/i18n/currfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014 International Business Machines diff --git a/deps/icu-small/source/i18n/currfmt.h b/deps/icu-small/source/i18n/currfmt.h index b3f23e56f9676b..83e027246562eb 100644 --- a/deps/icu-small/source/i18n/currfmt.h +++ b/deps/icu-small/source/i18n/currfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/currpinf.cpp b/deps/icu-small/source/i18n/currpinf.cpp index 9d8d524a0fb5a4..7c16fff961dc40 100644 --- a/deps/icu-small/source/i18n/currpinf.cpp +++ b/deps/icu-small/source/i18n/currpinf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/currunit.cpp b/deps/icu-small/source/i18n/currunit.cpp index 64233aee7cf55a..f538d65ada657d 100644 --- a/deps/icu-small/source/i18n/currunit.cpp +++ b/deps/icu-small/source/i18n/currunit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/dangical.cpp b/deps/icu-small/source/i18n/dangical.cpp index bfe15b59edbf26..3a7b2ebb8fca2d 100644 --- a/deps/icu-small/source/i18n/dangical.cpp +++ b/deps/icu-small/source/i18n/dangical.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/dangical.h b/deps/icu-small/source/i18n/dangical.h index cc35ca3f07b3f4..17a5004bdc6d32 100644 --- a/deps/icu-small/source/i18n/dangical.h +++ b/deps/icu-small/source/i18n/dangical.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/datefmt.cpp b/deps/icu-small/source/i18n/datefmt.cpp index 048a4723ef6c91..00f46cfdfdf2c0 100644 --- a/deps/icu-small/source/i18n/datefmt.cpp +++ b/deps/icu-small/source/i18n/datefmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and * @@ -317,7 +319,7 @@ DateFormat::format(UDate date, UnicodeString& appendTo) const { // Note that any error information is just lost. That's okay // for this convenience method. - FieldPosition fpos(0); + FieldPosition fpos(FieldPosition::DONT_CARE); return format(date, appendTo, fpos); } diff --git a/deps/icu-small/source/i18n/dayperiodrules.cpp b/deps/icu-small/source/i18n/dayperiodrules.cpp index fb8ae8147f8d56..30414823efdfe3 100644 --- a/deps/icu-small/source/i18n/dayperiodrules.cpp +++ b/deps/icu-small/source/i18n/dayperiodrules.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2016, International Business Machines @@ -42,129 +44,90 @@ enum CutoffType { } // namespace -struct DayPeriodRulesDataSink : public ResourceTableSink { - // Initialize sub-sinks. - DayPeriodRulesDataSink() : - rulesSink(*this), ruleSetSink(*this), periodSink(*this), cutoffSink(*this) { +struct DayPeriodRulesDataSink : public ResourceSink { + DayPeriodRulesDataSink() { for (int32_t i = 0; i < UPRV_LENGTHOF(cutoffs); ++i) { cutoffs[i] = 0; } } virtual ~DayPeriodRulesDataSink(); - // Entry point. - virtual ResourceTableSink *getOrCreateTableSink(const char *key, int32_t, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - - if (uprv_strcmp(key, "locales") == 0) { - return &localesSink; - } else if (uprv_strcmp(key, "rules") == 0) { - // Allocate one more than needed to skip [0]. See comment in parseSetNum(). - data->rules = new DayPeriodRules[data->maxRuleSetNum + 1]; - if (data->rules == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } else { - return &rulesSink; + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + ResourceTable dayPeriodData = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t i = 0; dayPeriodData.getKeyAndValue(i, key, value); ++i) { + if (uprv_strcmp(key, "locales") == 0) { + ResourceTable locales = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t j = 0; locales.getKeyAndValue(j, key, value); ++j) { + UnicodeString setNum_str = value.getUnicodeString(errorCode); + int32_t setNum = parseSetNum(setNum_str, errorCode); + uhash_puti(data->localeToRuleSetNumMap, const_cast(key), setNum, &errorCode); + } + } else if (uprv_strcmp(key, "rules") == 0) { + // Allocate one more than needed to skip [0]. See comment in parseSetNum(). + data->rules = new DayPeriodRules[data->maxRuleSetNum + 1]; + if (data->rules == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + return; + } + ResourceTable rules = value.getTable(errorCode); + processRules(rules, key, value, errorCode); + if (U_FAILURE(errorCode)) { return; } } } - return NULL; } - // Data root -> locales. - struct LocalesSink : public ResourceTableSink { - virtual ~LocalesSink(); + void processRules(const ResourceTable &rules, const char *key, + ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { + for (int32_t i = 0; rules.getKeyAndValue(i, key, value); ++i) { + ruleSetNum = parseSetNum(key, errorCode); + ResourceTable ruleSet = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } - UnicodeString setNum_str = value.getUnicodeString(errorCode); - int32_t setNum = parseSetNum(setNum_str, errorCode); - uhash_puti(data->localeToRuleSetNumMap, const_cast(key), setNum, &errorCode); - } - } localesSink; - - // Data root -> rules. - struct RulesSink : public ResourceTableSink { - DayPeriodRulesDataSink &outer; - RulesSink(DayPeriodRulesDataSink &outer) : outer(outer) {} - virtual ~RulesSink(); - - virtual ResourceTableSink *getOrCreateTableSink(const char *key, int32_t, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - - outer.ruleSetNum = parseSetNum(key, errorCode); - return &outer.ruleSetSink; - } - } rulesSink; - - // Data root -> rules -> a rule set. - struct RuleSetSink : public ResourceTableSink { - DayPeriodRulesDataSink &outer; - RuleSetSink(DayPeriodRulesDataSink &outer) : outer(outer) {} - virtual ~RuleSetSink(); - - virtual ResourceTableSink *getOrCreateTableSink(const char *key, int32_t, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - - outer.period = DayPeriodRules::getDayPeriodFromString(key); - if (outer.period == DayPeriodRules::DAYPERIOD_UNKNOWN) { - errorCode = U_INVALID_FORMAT_ERROR; - return NULL; + for (int32_t j = 0; ruleSet.getKeyAndValue(j, key, value); ++j) { + period = DayPeriodRules::getDayPeriodFromString(key); + if (period == DayPeriodRules::DAYPERIOD_UNKNOWN) { + errorCode = U_INVALID_FORMAT_ERROR; + return; + } + ResourceTable periodDefinition = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t k = 0; periodDefinition.getKeyAndValue(k, key, value); ++k) { + if (value.getType() == URES_STRING) { + // Key-value pairs (e.g. before{6:00}). + CutoffType type = getCutoffTypeFromString(key); + addCutoff(type, value.getUnicodeString(errorCode), errorCode); + if (U_FAILURE(errorCode)) { return; } + } else { + // Arrays (e.g. before{6:00, 24:00}). + cutoffType = getCutoffTypeFromString(key); + ResourceArray cutoffArray = value.getArray(errorCode); + if (U_FAILURE(errorCode)) { return; } + + int32_t length = cutoffArray.getSize(); + for (int32_t l = 0; l < length; ++l) { + cutoffArray.getValue(l, value); + addCutoff(cutoffType, value.getUnicodeString(errorCode), errorCode); + if (U_FAILURE(errorCode)) { return; } + } + } + } + setDayPeriodForHoursFromCutoffs(errorCode); + for (int32_t k = 0; k < UPRV_LENGTHOF(cutoffs); ++k) { + cutoffs[k] = 0; + } } - return &outer.periodSink; - } - - virtual void leave(UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - - if (!data->rules[outer.ruleSetNum].allHoursAreSet()) { + if (!data->rules[ruleSetNum].allHoursAreSet()) { errorCode = U_INVALID_FORMAT_ERROR; + return; } } - } ruleSetSink; - - // Data root -> rules -> a rule set -> a period (e.g. "morning1"). - // Key-value pairs (e.g. before{6:00}) will be captured here. - // Arrays (e.g. before{6:00, 24:00}) will be redirected to the next sink. - struct PeriodSink : public ResourceTableSink { - DayPeriodRulesDataSink &outer; - PeriodSink(DayPeriodRulesDataSink &outer) : outer(outer) {} - virtual ~PeriodSink(); - - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - - CutoffType type = getCutoffTypeFromString(key); - outer.addCutoff(type, value.getUnicodeString(errorCode), errorCode); - } - - virtual ResourceArraySink *getOrCreateArraySink(const char *key, int32_t, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - outer.cutoffType = getCutoffTypeFromString(key); - return &outer.cutoffSink; - } - - virtual void leave(UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - - outer.setDayPeriodForHoursFromCutoffs(errorCode); - for (int32_t i = 0; i < UPRV_LENGTHOF(outer.cutoffs); ++i) { - outer.cutoffs[i] = 0; - } - } - } periodSink; - - // Data root -> rules -> a rule set -> a period -> a cutoff type. - // Will enter this sink if 2+ times appear in a single cutoff type (e.g. before{6:00, 24:00}). - struct CutoffSink : public ResourceArraySink { - DayPeriodRulesDataSink &outer; - CutoffSink(DayPeriodRulesDataSink &outer) : outer(outer) {} - virtual ~CutoffSink(); - - virtual void put(int32_t, const ResourceValue &value, UErrorCode &errorCode) { - outer.addCutoff(outer.cutoffType, value.getUnicodeString(errorCode), errorCode); - } - } cutoffSink; + } // Members. int32_t cutoffs[25]; // [0] thru [24]: 24 is allowed in "before 24". @@ -316,35 +279,31 @@ struct DayPeriodRulesDataSink : public ResourceTableSink { } }; // struct DayPeriodRulesDataSink -struct DayPeriodRulesCountSink : public ResourceTableSink { +struct DayPeriodRulesCountSink : public ResourceSink { virtual ~DayPeriodRulesCountSink(); - virtual ResourceTableSink *getOrCreateTableSink(const char *key, int32_t, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - int32_t setNum = DayPeriodRulesDataSink::parseSetNum(key, errorCode); - if (setNum > data->maxRuleSetNum) { - data->maxRuleSetNum = setNum; - } + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + ResourceTable rules = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } - return NULL; + for (int32_t i = 0; rules.getKeyAndValue(i, key, value); ++i) { + int32_t setNum = DayPeriodRulesDataSink::parseSetNum(key, errorCode); + if (setNum > data->maxRuleSetNum) { + data->maxRuleSetNum = setNum; + } + } } }; // Out-of-line virtual destructors. -DayPeriodRulesDataSink::LocalesSink::~LocalesSink() {} -DayPeriodRulesDataSink::CutoffSink::~CutoffSink() {} -DayPeriodRulesDataSink::PeriodSink::~PeriodSink() {} -DayPeriodRulesDataSink::RuleSetSink::~RuleSetSink() {} -DayPeriodRulesDataSink::RulesSink::~RulesSink() {} DayPeriodRulesDataSink::~DayPeriodRulesDataSink() {} - DayPeriodRulesCountSink::~DayPeriodRulesCountSink() {} namespace { UInitOnce initOnce = U_INITONCE_INITIALIZER; -UBool dayPeriodRulesCleanup() { +U_CFUNC UBool U_CALLCONV dayPeriodRulesCleanup() { delete[] data->rules; uhash_close(data->localeToRuleSetNumMap); delete data; @@ -354,7 +313,7 @@ UBool dayPeriodRulesCleanup() { } // namespace -void DayPeriodRules::load(UErrorCode &errorCode) { +void U_CALLCONV DayPeriodRules::load(UErrorCode &errorCode) { if (U_FAILURE(errorCode)) { return; } @@ -365,11 +324,11 @@ void DayPeriodRules::load(UErrorCode &errorCode) { // Get the largest rule set number (so we allocate enough objects). DayPeriodRulesCountSink countSink; - ures_getAllTableItemsWithFallback(rb_dayPeriods.getAlias(), "rules", countSink, errorCode); + ures_getAllItemsWithFallback(rb_dayPeriods.getAlias(), "rules", countSink, errorCode); // Populate rules. DayPeriodRulesDataSink sink; - ures_getAllTableItemsWithFallback(rb_dayPeriods.getAlias(), "", sink, errorCode); + ures_getAllItemsWithFallback(rb_dayPeriods.getAlias(), "", sink, errorCode); ucln_i18n_registerCleanup(UCLN_I18N_DAYPERIODRULES, dayPeriodRulesCleanup); } diff --git a/deps/icu-small/source/i18n/dayperiodrules.h b/deps/icu-small/source/i18n/dayperiodrules.h index 5491f7c1ff013f..3c006cdc2f59dd 100644 --- a/deps/icu-small/source/i18n/dayperiodrules.h +++ b/deps/icu-small/source/i18n/dayperiodrules.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2016, International Business Machines @@ -59,7 +61,7 @@ class DayPeriodRules : public UMemory { // Translates "morning1" to DAYPERIOD_MORNING1, for example. static DayPeriod getDayPeriodFromString(const char *type_str); - static void load(UErrorCode &errorCode); + static void U_CALLCONV load(UErrorCode &errorCode); // Sets period type for all hours in [startHour, limitHour). void add(int32_t startHour, int32_t limitHour, DayPeriod period); diff --git a/deps/icu-small/source/i18n/dcfmtimp.h b/deps/icu-small/source/i18n/dcfmtimp.h index a8279479608ddc..58858728419641 100644 --- a/deps/icu-small/source/i18n/dcfmtimp.h +++ b/deps/icu-small/source/i18n/dcfmtimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/dcfmtsym.cpp b/deps/icu-small/source/i18n/dcfmtsym.cpp index fee9b319ba0bcf..b8b9c32a42fa25 100644 --- a/deps/icu-small/source/i18n/dcfmtsym.cpp +++ b/deps/icu-small/source/i18n/dcfmtsym.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 1997-2015, International Business Machines Corporation and +* Copyright (C) 1997-2016, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* * @@ -35,6 +37,7 @@ #include "locbased.h" #include "uresimp.h" #include "ureslocs.h" +#include "charstr.h" // ***************************************************************************** // class DecimalFormatSymbols @@ -51,10 +54,45 @@ static const char gAfterCurrencyTag[] = "afterCurrency"; static const char gCurrencyMatchTag[] = "currencyMatch"; static const char gCurrencySudMatchTag[] = "surroundingMatch"; static const char gCurrencyInsertBtnTag[] = "insertBetween"; - +static const char gLatn[] = "latn"; +static const char gSymbols[] = "symbols"; +static const char gNumberElementsLatnSymbols[] = "NumberElements/latn/symbols"; static const UChar INTL_CURRENCY_SYMBOL_STR[] = {0xa4, 0xa4, 0}; +// List of field names to be loaded from the data files. +// These are parallel with the enum ENumberFormatSymbol in unicode/dcfmtsym.h. +static const char *gNumberElementKeys[DecimalFormatSymbols::kFormatSymbolCount] = { + "decimal", + "group", + "list", + "percentSign", + NULL, /* Native zero digit is deprecated from CLDR - get it from the numbering system */ + NULL, /* Pattern digit character is deprecated from CLDR - use # by default always */ + "minusSign", + "plusSign", + NULL, /* currency symbol - Wait until we know the currency before loading from CLDR */ + NULL, /* intl currency symbol - Wait until we know the currency before loading from CLDR */ + "currencyDecimal", + "exponential", + "perMille", + NULL, /* Escape padding character - not in CLDR */ + "infinity", + "nan", + NULL, /* Significant digit symbol - not in CLDR */ + "currencyGroup", + NULL, /* one digit - get it from the numbering system */ + NULL, /* two digit - get it from the numbering system */ + NULL, /* three digit - get it from the numbering system */ + NULL, /* four digit - get it from the numbering system */ + NULL, /* five digit - get it from the numbering system */ + NULL, /* six digit - get it from the numbering system */ + NULL, /* seven digit - get it from the numbering system */ + NULL, /* eight digit - get it from the numbering system */ + NULL, /* nine digit - get it from the numbering system */ + "superscriptingExponent", /* Multiplication (x) symbol for exponents */ +}; + // ------------------------------------- // Initializes this with the decimal format symbols in the default locale. @@ -166,63 +204,149 @@ DecimalFormatSymbols::operator==(const DecimalFormatSymbols& that) const // ------------------------------------- -void -DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status, UBool useLastResortData) -{ - static const char *gNumberElementKeys[kFormatSymbolCount] = { - "decimal", - "group", - "list", - "percentSign", - NULL, /* Native zero digit is deprecated from CLDR - get it from the numbering system */ - NULL, /* Pattern digit character is deprecated from CLDR - use # by default always */ - "minusSign", - "plusSign", - NULL, /* currency symbol - We don't really try to load this directly from CLDR until we know the currency */ - NULL, /* intl currency symbol - We don't really try to load this directly from CLDR until we know the currency */ - "currencyDecimal", - "exponential", - "perMille", - NULL, /* Escape padding character - not in CLDR */ - "infinity", - "nan", - NULL, /* Significant digit symbol - not in CLDR */ - "currencyGroup", - NULL, /* one digit - get it from the numbering system */ - NULL, /* two digit - get it from the numbering system */ - NULL, /* three digit - get it from the numbering system */ - NULL, /* four digit - get it from the numbering system */ - NULL, /* five digit - get it from the numbering system */ - NULL, /* six digit - get it from the numbering system */ - NULL, /* seven digit - get it from the numbering system */ - NULL, /* eight digit - get it from the numbering system */ - NULL, /* nine digit - get it from the numbering system */ - "superscriptingExponent", /* Multiplication (x) symbol for exponents */ - }; - - static const char *gLatn = "latn"; - static const char *gSymbols = "symbols"; - const char *nsName; - const UChar *sym = NULL; - int32_t len = 0; +namespace { + +/** + * Sink for enumerating all of the decimal format symbols (more specifically, anything + * under the "NumberElements.symbols" tree). + * + * More specific bundles (en_GB) are enumerated before their parents (en_001, en, root): + * Only store a value if it is still missing, that is, it has not been overridden. + */ +struct DecFmtSymDataSink : public ResourceSink { + + // Destination for data, modified via setters. + DecimalFormatSymbols& dfs; + // Boolean array of whether or not we have seen a particular symbol yet. + // Can't simpy check fSymbols because it is pre-populated with defaults. + UBool seenSymbol[DecimalFormatSymbols::kFormatSymbolCount]; + + // Constructor/Destructor + DecFmtSymDataSink(DecimalFormatSymbols& _dfs) : dfs(_dfs) { + uprv_memset(seenSymbol, FALSE, sizeof(seenSymbol)); + } + virtual ~DecFmtSymDataSink(); + + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, + UErrorCode &errorCode) { + ResourceTable symbolsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t j = 0; symbolsTable.getKeyAndValue(j, key, value); ++j) { + for (int32_t i=0; i ns(NumberingSystem::createInstance(loc, status)); + const char *nsName; if (U_SUCCESS(status) && ns->getRadix() == 10 && !ns->isAlgorithmic()) { nsName = ns->getName(); UnicodeString digitString(ns->getDescription()); @@ -248,61 +372,61 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status, UBool us nsName = gLatn; } - UBool isLatn = !uprv_strcmp(nsName,gLatn); + // Open resource bundles + const char* locStr = loc.getName(); + LocalUResourceBundlePointer resource(ures_open(NULL, locStr, &status)); + LocalUResourceBundlePointer numberElementsRes( + ures_getByKeyWithFallback(resource.getAlias(), gNumberElements, NULL, &status)); - UErrorCode nlStatus = U_ZERO_ERROR; - LocalUResourceBundlePointer nonLatnSymbols; - if ( !isLatn ) { - nonLatnSymbols.adoptInstead( - ures_getByKeyWithFallback(numberElementsRes.getAlias(), nsName, NULL, &nlStatus)); - ures_getByKeyWithFallback(nonLatnSymbols.getAlias(), gSymbols, nonLatnSymbols.getAlias(), &nlStatus); + if (U_FAILURE(status)) { + if ( useLastResortData ) { + status = U_USING_DEFAULT_WARNING; + initialize(); + } + return; } - LocalUResourceBundlePointer latnSymbols( - ures_getByKeyWithFallback(numberElementsRes.getAlias(), gLatn, NULL, &status)); - ures_getByKeyWithFallback(latnSymbols.getAlias(), gSymbols, latnSymbols.getAlias(), &status); - - UBool kMonetaryDecimalSet = FALSE; - UBool kMonetaryGroupingSet = FALSE; - for(int32_t i = 0; iindexOf(kCurrencySign) != -1) { // initialize for currency, not only for plural format, // but also for mix parsing - if (fCurrencyPluralInfo == NULL) { - fCurrencyPluralInfo = new CurrencyPluralInfo(fImpl->fSymbols->getLocale(), status); - if (U_FAILURE(status)) { - return; - } - } - // need it for mix parsing + handleCurrencySignInPattern(status); + } +} + +void +DecimalFormat::handleCurrencySignInPattern(UErrorCode& status) { + // initialize for currency, not only for plural format, + // but also for mix parsing + if (U_FAILURE(status)) { + return; + } + if (fCurrencyPluralInfo == NULL) { + fCurrencyPluralInfo = new CurrencyPluralInfo(fImpl->fSymbols->getLocale(), status); + if (U_FAILURE(status)) { + return; + } + } + // need it for mix parsing + if (fAffixPatternsForCurrency == NULL) { setupCurrencyAffixPatterns(status); } } @@ -828,7 +842,7 @@ DecimalFormat::format( double number, UnicodeString& -DecimalFormat::format(const StringPiece &number, +DecimalFormat::format(StringPiece number, UnicodeString &toAppendTo, FieldPositionIterator *posIter, UErrorCode &status) const @@ -1643,7 +1657,7 @@ UBool DecimalFormat::subparse(const UnicodeString& text, // if we didn't see a decimal and it is required, check to see if the pattern had one if(!sawDecimal && isDecimalPatternMatchRequired()) { - if(formatPattern.indexOf(DecimalFormatSymbols::kDecimalSeparatorSymbol) != 0) + if(formatPattern.indexOf(kPatternDecimalSeparator) != -1) { parsePosition.setIndex(oldStart); parsePosition.setErrorIndex(position); @@ -1769,7 +1783,7 @@ printf("PP -> %d, SLOW = [%s]! pp=%d, os=%d, err=%s\n", position, parsedNum.d // check if we missed a required decimal point if(fastParseOk && isDecimalPatternMatchRequired()) { - if(formatPattern.indexOf(DecimalFormatSymbols::kDecimalSeparatorSymbol) != 0) + if(formatPattern.indexOf(kPatternDecimalSeparator) != -1) { parsePosition.setIndex(oldStart); parsePosition.setErrorIndex(position); @@ -2815,6 +2829,9 @@ DecimalFormat::toLocalizedPattern(UnicodeString& result) const void DecimalFormat::applyPattern(const UnicodeString& pattern, UErrorCode& status) { + if (pattern.indexOf(kCurrencySign) != -1) { + handleCurrencySignInPattern(status); + } fImpl->applyPattern(pattern, status); } @@ -2825,6 +2842,9 @@ DecimalFormat::applyPattern(const UnicodeString& pattern, UParseError& parseError, UErrorCode& status) { + if (pattern.indexOf(kCurrencySign) != -1) { + handleCurrencySignInPattern(status); + } fImpl->applyPattern(pattern, parseError, status); } //------------------------------------------------------------------------------ @@ -2832,6 +2852,9 @@ DecimalFormat::applyPattern(const UnicodeString& pattern, void DecimalFormat::applyLocalizedPattern(const UnicodeString& pattern, UErrorCode& status) { + if (pattern.indexOf(kCurrencySign) != -1) { + handleCurrencySignInPattern(status); + } fImpl->applyLocalizedPattern(pattern, status); } @@ -2842,6 +2865,9 @@ DecimalFormat::applyLocalizedPattern(const UnicodeString& pattern, UParseError& parseError, UErrorCode& status) { + if (pattern.indexOf(kCurrencySign) != -1) { + handleCurrencySignInPattern(status); + } fImpl->applyLocalizedPattern(pattern, parseError, status); } diff --git a/deps/icu-small/source/i18n/decimfmtimpl.cpp b/deps/icu-small/source/i18n/decimfmtimpl.cpp index d0c96493a902be..342ce5b5e4ed1f 100644 --- a/deps/icu-small/source/i18n/decimfmtimpl.cpp +++ b/deps/icu-small/source/i18n/decimfmtimpl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -241,9 +243,9 @@ DecimalFormatImpl::setMultiplierScale(int32_t scale) { if (scale == 0) { // Needed to preserve equality. fMultiplier == 0 means // multiplier is 1. - fMultiplier.set(0); + fMultiplier.set((int32_t)0); } else { - fMultiplier.set(1); + fMultiplier.set((int32_t)1); fMultiplier.shiftDecimalRight(scale); } } @@ -425,7 +427,7 @@ DecimalFormatImpl::format( UnicodeString & DecimalFormatImpl::format( - const StringPiece &number, + StringPiece number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const { @@ -706,7 +708,7 @@ DecimalFormatImpl::getMultiplier() const { void DecimalFormatImpl::setMultiplier(int32_t m) { if (m == 0 || m == 1) { - fMultiplier.set(0); + fMultiplier.set((int32_t)0); } else { fMultiplier.set(m); } @@ -1481,7 +1483,7 @@ DecimalFormatImpl::toNumberPattern( } } else { if (i < roundingIncrementUpperExp && i >= roundingIncrementLowerExp) { - result.append(fEffPrecision.fMantissa.fRoundingIncrement.getDigitByExponent(i) + kPatternZeroDigit); + result.append((UChar)(fEffPrecision.fMantissa.fRoundingIncrement.getDigitByExponent(i) + kPatternZeroDigit)); } else if (minInterval.contains(i)) { result.append(kPatternZeroDigit); } else { diff --git a/deps/icu-small/source/i18n/decimfmtimpl.h b/deps/icu-small/source/i18n/decimfmtimpl.h index d55a4eca2f2f33..537107c6f74de4 100644 --- a/deps/icu-small/source/i18n/decimfmtimpl.h +++ b/deps/icu-small/source/i18n/decimfmtimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2015, International Business Machines @@ -217,7 +219,7 @@ UnicodeString &format( FieldPositionIterator *posIter, UErrorCode &status) const; UnicodeString &format( - const StringPiece &number, + StringPiece number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const; diff --git a/deps/icu-small/source/i18n/digitaffix.cpp b/deps/icu-small/source/i18n/digitaffix.cpp index d73d40121a843f..262bc49427062a 100644 --- a/deps/icu-small/source/i18n/digitaffix.cpp +++ b/deps/icu-small/source/i18n/digitaffix.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/digitaffix.h b/deps/icu-small/source/i18n/digitaffix.h index d5b545a3d7509f..a1a100654f4e84 100644 --- a/deps/icu-small/source/i18n/digitaffix.h +++ b/deps/icu-small/source/i18n/digitaffix.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/digitaffixesandpadding.cpp b/deps/icu-small/source/i18n/digitaffixesandpadding.cpp index d941a573de8ff4..716ab4a32ebfb3 100644 --- a/deps/icu-small/source/i18n/digitaffixesandpadding.cpp +++ b/deps/icu-small/source/i18n/digitaffixesandpadding.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/digitaffixesandpadding.h b/deps/icu-small/source/i18n/digitaffixesandpadding.h index 3586371094b97a..e837e07c8fbe0e 100644 --- a/deps/icu-small/source/i18n/digitaffixesandpadding.h +++ b/deps/icu-small/source/i18n/digitaffixesandpadding.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/digitformatter.cpp b/deps/icu-small/source/i18n/digitformatter.cpp index 837dcb4d9edb7b..d1a88f95eee80f 100644 --- a/deps/icu-small/source/i18n/digitformatter.cpp +++ b/deps/icu-small/source/i18n/digitformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/digitformatter.h b/deps/icu-small/source/i18n/digitformatter.h index cf339f598d627e..d92d4251513f38 100644 --- a/deps/icu-small/source/i18n/digitformatter.h +++ b/deps/icu-small/source/i18n/digitformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/digitgrouping.cpp b/deps/icu-small/source/i18n/digitgrouping.cpp index 0a340cdc4a1300..0d96b407c5039f 100644 --- a/deps/icu-small/source/i18n/digitgrouping.cpp +++ b/deps/icu-small/source/i18n/digitgrouping.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/digitgrouping.h b/deps/icu-small/source/i18n/digitgrouping.h index e075ae204bd71f..33835ff665cfb1 100644 --- a/deps/icu-small/source/i18n/digitgrouping.h +++ b/deps/icu-small/source/i18n/digitgrouping.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/digitinterval.cpp b/deps/icu-small/source/i18n/digitinterval.cpp index bf78c19aab2a9d..b1ba811606b371 100644 --- a/deps/icu-small/source/i18n/digitinterval.cpp +++ b/deps/icu-small/source/i18n/digitinterval.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/digitinterval.h b/deps/icu-small/source/i18n/digitinterval.h index 174f797fa4209c..5dbf3f9a296f8b 100644 --- a/deps/icu-small/source/i18n/digitinterval.h +++ b/deps/icu-small/source/i18n/digitinterval.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/digitlst.cpp b/deps/icu-small/source/i18n/digitlst.cpp index 54aebbb6323ebd..8bb470c8f08535 100644 --- a/deps/icu-small/source/i18n/digitlst.cpp +++ b/deps/icu-small/source/i18n/digitlst.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1997-2015, International Business Machines @@ -24,9 +26,14 @@ ****************************************************************************** */ +#if defined(__CYGWIN__) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + #include "digitlst.h" #if !UCONFIG_NO_FORMATTING + #include "unicode/putil.h" #include "charstr.h" #include "cmemory.h" @@ -35,12 +42,32 @@ #include "putilimp.h" #include "uassert.h" #include "digitinterval.h" +#include "ucln_in.h" +#include "umutex.h" #include #include #include #include #include +#if !defined(U_USE_STRTOD_L) +# if U_PLATFORM_USES_ONLY_WIN32_API +# define U_USE_STRTOD_L 1 +# elif defined(U_HAVE_STRTOD_L) +# define U_USE_STRTOD_L U_HAVE_STRTOD_L +# else +# define U_USE_STRTOD_L 0 +# endif +#endif + +#if U_USE_STRTOD_L && !U_PLATFORM_USES_ONLY_WIN32_API +# if U_PLATFORM == U_PF_CYGWIN +# include +# else +# include +# endif +#endif + // *************************************************************************** // class DigitList // A wrapper onto decNumber. @@ -395,27 +422,6 @@ DigitList::append(char digit) internalClear(); } -char DigitList::getStrtodDecimalSeparator() { - // TODO: maybe use andy's pthread once. - static char gDecimal = 0; - char result; - { - Mutex mutex; - result = gDecimal;; - if (result == 0) { - // We need to know the decimal separator character that will be used with strtod(). - // Depends on the C runtime global locale. - // Most commonly is '.' - // TODO: caching could fail if the global locale is changed on the fly. - char rep[MAX_DIGITS]; - sprintf(rep, "%+1.1f", 1.0); - result = rep[2]; - gDecimal = result;; - } - } - return result; -} - // ------------------------------------- /** @@ -428,24 +434,11 @@ char DigitList::getStrtodDecimalSeparator() { double DigitList::getDouble() const { - static char gDecimal = 0; - char decimalSeparator; { Mutex mutex; if (fHave == kDouble) { return fUnion.fDouble; } - decimalSeparator = gDecimal; - } - - if (decimalSeparator == 0) { - // We need to know the decimal separator character that will be used with strtod(). - // Depends on the C runtime global locale. - // Most commonly is '.' - // TODO: caching could fail if the global locale is changed on the fly. - char rep[MAX_DIGITS]; - sprintf(rep, "%+1.1f", 1.0); - decimalSeparator = rep[2]; } double tDouble = 0.0; @@ -483,24 +476,71 @@ DigitList::getDouble() const } U_ASSERT(uprv_strlen(&s[0]) < MAX_DBL_DIGITS+18); - if (decimalSeparator != '.') { - char *decimalPt = strchr(s.getAlias(), '.'); - if (decimalPt != NULL) { - *decimalPt = decimalSeparator; - } - } char *end = NULL; - tDouble = uprv_strtod(s.getAlias(), &end); + tDouble = decimalStrToDouble(s.getAlias(), &end); } { Mutex mutex; DigitList *nonConstThis = const_cast(this); nonConstThis->internalSetDouble(tDouble); - gDecimal = decimalSeparator; } return tDouble; } +#if U_USE_STRTOD_L && U_PLATFORM_USES_ONLY_WIN32_API +# define locale_t _locale_t +# define freelocale _free_locale +# define strtod_l _strtod_l +#endif + +#if U_USE_STRTOD_L +static locale_t gCLocale = (locale_t)0; +#endif +static icu::UInitOnce gCLocaleInitOnce = U_INITONCE_INITIALIZER; + +U_CDECL_BEGIN +// Cleanup callback func +static UBool U_CALLCONV digitList_cleanup(void) +{ +#if U_USE_STRTOD_L + if (gCLocale != (locale_t)0) { + freelocale(gCLocale); + } +#endif + return TRUE; +} +// C Locale initialization func +static void U_CALLCONV initCLocale(void) { + ucln_i18n_registerCleanup(UCLN_I18N_DIGITLIST, digitList_cleanup); +#if U_USE_STRTOD_L +# if U_PLATFORM_USES_ONLY_WIN32_API + gCLocale = _create_locale(LC_ALL, "C"); +# else + gCLocale = newlocale(LC_ALL_MASK, "C", (locale_t)0); +# endif +#endif +} +U_CDECL_END + +double +DigitList::decimalStrToDouble(char *decstr, char **end) { + umtx_initOnce(gCLocaleInitOnce, &initCLocale); +#if U_USE_STRTOD_L + return strtod_l(decstr, end, gCLocale); +#else + char *decimalPt = strchr(decstr, '.'); + if (decimalPt) { + // We need to know the decimal separator character that will be used with strtod(). + // Depends on the C runtime global locale. + // Most commonly is '.' + char rep[MAX_DIGITS]; + sprintf(rep, "%+1.1f", 1.0); + *decimalPt = rep[2]; + } + return uprv_strtod(decstr, end); +#endif +} + // ------------------------------------- /** @@ -734,7 +774,7 @@ DigitList::set(int64_t source) * be acceptable for a public API. */ void -DigitList::set(const StringPiece &source, UErrorCode &status, uint32_t /*fastpathBits*/) { +DigitList::set(StringPiece source, UErrorCode &status, uint32_t /*fastpathBits*/) { if (U_FAILURE(status)) { return; } diff --git a/deps/icu-small/source/i18n/digitlst.h b/deps/icu-small/source/i18n/digitlst.h index 6cea007cb88306..27e6e8c410b4ad 100644 --- a/deps/icu-small/source/i18n/digitlst.h +++ b/deps/icu-small/source/i18n/digitlst.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -267,7 +269,7 @@ class U_I18N_API DigitList : public UMemory { // Declare external to make compil * @param source The value to be set. The string must be nul-terminated. * @param fastpathBits special flags for fast parsing */ - void set(const StringPiece &source, UErrorCode &status, uint32_t fastpathBits = 0); + void set(StringPiece source, UErrorCode &status, uint32_t fastpathBits = 0); /** * Multiply this = this * arg @@ -493,7 +495,8 @@ class U_I18N_API DigitList : public UMemory { // Declare external to make compil static inline void * U_EXPORT2 operator new(size_t size) U_NO_THROW { return ::operator new(size); }; static inline void U_EXPORT2 operator delete(void *ptr ) U_NO_THROW { ::operator delete(ptr); }; #endif - static char U_EXPORT2 getStrtodDecimalSeparator(); + + static double U_EXPORT2 decimalStrToDouble(char *decstr, char **end); /** * Placement new for stack usage diff --git a/deps/icu-small/source/i18n/dt_impl.h b/deps/icu-small/source/i18n/dt_impl.h new file mode 100644 index 00000000000000..9b01bad79edd9b --- /dev/null +++ b/deps/icu-small/source/i18n/dt_impl.h @@ -0,0 +1,92 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +/* +******************************************************************************* +* Copyright (C) 2007-2016, International Business Machines Corporation and +* others. All Rights Reserved. +******************************************************************************* +* +* File dt_impl.h +* +******************************************************************************* +*/ + + +#ifndef DT_IMPL_H__ +#define DT_IMPL_H__ + +/** + * \file + * \brief C++ API: Defines macros for interval format implementation + */ + +#if !UCONFIG_NO_FORMATTING + +#include "unicode/unistr.h" + + +#define QUOTE ((UChar)0x0027) +#define LOW_LINE ((UChar)0x005F) +#define COLON ((UChar)0x003A) +#define LEFT_CURLY_BRACKET ((UChar)0x007B) +#define RIGHT_CURLY_BRACKET ((UChar)0x007D) +#define SPACE ((UChar)0x0020) +#define EN_DASH ((UChar)0x2013) +#define SOLIDUS ((UChar)0x002F) +#define PERCENT ((UChar)0x0025) + +#define DIGIT_ZERO ((UChar)0x0030) +#define DIGIT_ONE ((UChar)0x0031) + +#define LOW_A ((UChar)0x0061) +#define LOW_B ((UChar)0x0062) +#define LOW_C ((UChar)0x0063) +#define LOW_D ((UChar)0x0064) +#define LOW_E ((UChar)0x0065) +#define LOW_F ((UChar)0x0066) +#define LOW_G ((UChar)0x0067) +#define LOW_H ((UChar)0x0068) +#define LOW_I ((UChar)0x0069) +#define LOW_J ((UChar)0x006a) +#define LOW_K ((UChar)0x006B) +#define LOW_L ((UChar)0x006C) +#define LOW_M ((UChar)0x006D) +#define LOW_N ((UChar)0x006E) +#define LOW_O ((UChar)0x006F) +#define LOW_P ((UChar)0x0070) +#define LOW_Q ((UChar)0x0071) +#define LOW_R ((UChar)0x0072) +#define LOW_S ((UChar)0x0073) +#define LOW_T ((UChar)0x0074) +#define LOW_U ((UChar)0x0075) +#define LOW_V ((UChar)0x0076) +#define LOW_W ((UChar)0x0077) +#define LOW_Y ((UChar)0x0079) +#define LOW_Z ((UChar)0x007A) + +#define CAP_A ((UChar)0x0041) +#define CAP_C ((UChar)0x0043) +#define CAP_D ((UChar)0x0044) +#define CAP_E ((UChar)0x0045) +#define CAP_F ((UChar)0x0046) +#define CAP_G ((UChar)0x0047) +#define CAP_H ((UChar)0x0048) +#define CAP_K ((UChar)0x004B) +#define CAP_L ((UChar)0x004C) +#define CAP_M ((UChar)0x004D) +#define CAP_N ((UChar)0x004E) +#define CAP_O ((UChar)0x004F) +#define CAP_P ((UChar)0x0050) +#define CAP_Q ((UChar)0x0051) +#define CAP_S ((UChar)0x0053) +#define CAP_T ((UChar)0x0054) +#define CAP_U ((UChar)0x0055) +#define CAP_V ((UChar)0x0056) +#define CAP_W ((UChar)0x0057) +#define CAP_Y ((UChar)0x0059) +#define CAP_Z ((UChar)0x005A) + +#endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif +//eof diff --git a/deps/icu-small/source/i18n/dtfmtsym.cpp b/deps/icu-small/source/i18n/dtfmtsym.cpp index 206d7a26a9ee6f..c412c5be05242b 100644 --- a/deps/icu-small/source/i18n/dtfmtsym.cpp +++ b/deps/icu-small/source/i18n/dtfmtsym.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2016, International Business Machines Corporation and * @@ -33,11 +35,15 @@ #include "umutex.h" #include "cmemory.h" #include "cstring.h" +#include "charstr.h" +#include "dt_impl.h" #include "locbased.h" #include "gregoimp.h" #include "hash.h" +#include "uassert.h" #include "uresimp.h" #include "ureslocs.h" +#include "uvector.h" #include "shareddateformatsymbols.h" #include "unicode/calendar.h" #include "unifiedcache.h" @@ -194,6 +200,8 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DateFormatSymbols) * These are the tags we expect to see in normal resource bundle files associated * with a locale and calendar */ +static const char gCalendarTag[]="calendar"; +static const char gGregorianTag[]="gregorian"; static const char gErasTag[]="eras"; static const char gCyclicNameSetsTag[]="cyclicNameSets"; static const char gNameSetYearsTag[]="years"; @@ -206,11 +214,11 @@ static const char gNamesAbbrTag[]="abbreviated"; static const char gNamesShortTag[]="short"; static const char gNamesNarrowTag[]="narrow"; static const char gNamesAllTag[]="all"; -static const char gNamesLeapTag[]="leap"; static const char gNamesFormatTag[]="format"; static const char gNamesStandaloneTag[]="stand-alone"; static const char gNamesNumericTag[]="numeric"; static const char gAmPmMarkersTag[]="AmPmMarkers"; +static const char gAmPmMarkersAbbrTag[]="AmPmMarkersAbbr"; static const char gAmPmMarkersNarrowTag[]="AmPmMarkersNarrow"; static const char gQuartersTag[]="quarters"; static const char gNumberElementsTag[]="NumberElements"; @@ -293,8 +301,8 @@ DateFormatSymbols::assignArray(UnicodeString*& dstArray, const UnicodeString* srcArray, int32_t srcCount) { - // assignArray() is only called by copyData(), which in turn implements the - // copy constructor and the assignment operator. + // assignArray() is only called by copyData() and initializeData(), which in turn + // implements the copy constructor and the assignment operator. // All strings in a DateFormatSymbols object are created in one of the following // three ways that all allow to safely use UnicodeString::fastCopyFrom(): // - readonly-aliases from resource bundles @@ -1271,6 +1279,12 @@ DateFormatSymbols::initZoneStringsArray(void) { TimeZoneNames *tzNames = NULL; int32_t rows = 0; + static const UTimeZoneNameType TYPES[] = { + UTZNM_LONG_STANDARD, UTZNM_SHORT_STANDARD, + UTZNM_LONG_DAYLIGHT, UTZNM_SHORT_DAYLIGHT + }; + static const int32_t NUM_TYPES = 4; + do { // dummy do-while tzids = TimeZone::createTimeZoneIDEnumeration(ZONE_SET, NULL, NULL, status); @@ -1289,6 +1303,8 @@ DateFormatSymbols::initZoneStringsArray(void) { uprv_memset(zarray, 0, size); tzNames = TimeZoneNames::createInstance(fZSFLocale, status); + tzNames->loadAllDisplayNames(status); + if (U_FAILURE(status)) { break; } const UnicodeString *tzid; int32_t i = 0; @@ -1307,10 +1323,7 @@ DateFormatSymbols::initZoneStringsArray(void) { } zarray[i][0].setTo(*tzid); - zarray[i][1].setTo(tzNames->getDisplayName(*tzid, UTZNM_LONG_STANDARD, now, tzDispName)); - zarray[i][2].setTo(tzNames->getDisplayName(*tzid, UTZNM_SHORT_STANDARD, now, tzDispName)); - zarray[i][3].setTo(tzNames->getDisplayName(*tzid, UTZNM_LONG_DAYLIGHT, now, tzDispName)); - zarray[i][4].setTo(tzNames->getDisplayName(*tzid, UTZNM_SHORT_DAYLIGHT, now, tzDispName)); + tzNames->getDisplayNames(*tzid, TYPES, NUM_TYPES, now, zarray[i]+1, status); i++; } @@ -1324,6 +1337,7 @@ DateFormatSymbols::initZoneStringsArray(void) { } } uprv_free(zarray); + zarray = NULL; } } @@ -1336,7 +1350,7 @@ DateFormatSymbols::initZoneStringsArray(void) { fLocaleZoneStrings = zarray; fZoneStringsRowCount = rows; - fZoneStringsColCount = 5; + fZoneStringsColCount = 1 + NUM_TYPES; } void @@ -1431,25 +1445,409 @@ DateFormatSymbols::setLocalPatternChars(const UnicodeString& newLocalPatternChar //------------------------------------------------------ -static void -initField(UnicodeString **field, int32_t& length, const UResourceBundle *data, UErrorCode &status) { - if (U_SUCCESS(status)) { - int32_t strLen = 0; - length = ures_getSize(data); - *field = newUnicodeStringArray(length); - if (*field) { - for(int32_t i = 0; isetTo(TRUE, resStr, strLen); +namespace { + +// Constants declarations +static const UChar kCalendarAliasPrefixUChar[] = { + SOLIDUS, CAP_L, CAP_O, CAP_C, CAP_A, CAP_L, CAP_E, SOLIDUS, + LOW_C, LOW_A, LOW_L, LOW_E, LOW_N, LOW_D, LOW_A, LOW_R, SOLIDUS +}; +static const UChar kGregorianTagUChar[] = { + LOW_G, LOW_R, LOW_E, LOW_G, LOW_O, LOW_R, LOW_I, LOW_A, LOW_N +}; +static const UChar kVariantTagUChar[] = { + PERCENT, LOW_V, LOW_A, LOW_R, LOW_I, LOW_A, LOW_N, LOW_T +}; +static const UChar kLeapTagUChar[] = { + LOW_L, LOW_E, LOW_A, LOW_P +}; +static const UChar kCyclicNameSetsTagUChar[] = { + LOW_C, LOW_Y, LOW_C, LOW_L, LOW_I, LOW_C, CAP_N, LOW_A, LOW_M, LOW_E, CAP_S, LOW_E, LOW_T, LOW_S +}; +static const UChar kYearsTagUChar[] = { + SOLIDUS, LOW_Y, LOW_E, LOW_A, LOW_R, LOW_S +}; +static const UChar kZodiacsUChar[] = { + SOLIDUS, LOW_Z, LOW_O, LOW_D, LOW_I, LOW_A, LOW_C, LOW_S +}; +static const UChar kDayPartsTagUChar[] = { + SOLIDUS, LOW_D, LOW_A, LOW_Y, CAP_P, LOW_A, LOW_R, LOW_T, LOW_S +}; +static const UChar kFormatTagUChar[] = { + SOLIDUS, LOW_F, LOW_O, LOW_R, LOW_M, LOW_A, LOW_T +}; +static const UChar kAbbrTagUChar[] = { + SOLIDUS, LOW_A, LOW_B, LOW_B, LOW_R, LOW_E, LOW_V, LOW_I, LOW_A, LOW_T, LOW_E, LOW_D +}; + +// ResourceSink to enumerate all calendar resources +struct CalendarDataSink : public ResourceSink { + + // Enum which specifies the type of alias received, or no alias + enum AliasType { + SAME_CALENDAR, + DIFFERENT_CALENDAR, + GREGORIAN, + NONE + }; + + // Data structures to store resources from the current resource bundle + Hashtable arrays; + Hashtable arraySizes; + Hashtable maps; + /** + * Whenever there are aliases, the same object will be added twice to 'map'. + * To avoid double deletion, 'maps' won't take ownership of the objects. Instead, + * 'mapRefs' will own them and will delete them when CalendarDataSink is deleted. + */ + UVector mapRefs; + + // Paths and the aliases they point to + UVector aliasPathPairs; + + // Current and next calendar resource table which should be loaded + UnicodeString currentCalendarType; + UnicodeString nextCalendarType; + + // Resources to visit when enumerating fallback calendars + LocalPointer resourcesToVisit; + + // Alias' relative path populated whenever an alias is read + UnicodeString aliasRelativePath; + + // Initializes CalendarDataSink with default values + CalendarDataSink(UErrorCode& status) + : arrays(FALSE, status), arraySizes(FALSE, status), maps(FALSE, status), + mapRefs(deleteHashtable, NULL, 10, status), + aliasPathPairs(uprv_deleteUObject, uhash_compareUnicodeString, status), + currentCalendarType(), nextCalendarType(), + resourcesToVisit(NULL), aliasRelativePath() { + if (U_FAILURE(status)) { return; } + } + virtual ~CalendarDataSink(); + + // Configure the CalendarSink to visit all the resources + void visitAllResources() { + resourcesToVisit.adoptInstead(NULL); + } + + // Actions to be done before enumerating + void preEnumerate(const UnicodeString &calendarType) { + currentCalendarType = calendarType; + nextCalendarType.setToBogus(); + aliasPathPairs.removeAllElements(); + } + + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + U_ASSERT(!currentCalendarType.isEmpty()); + + // Stores the resources to visit on the next calendar. + LocalPointer resourcesToVisitNext(NULL); + ResourceTable calendarData = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + // Enumerate all resources for this calendar + for (int i = 0; calendarData.getKeyAndValue(i, key, value); i++) { + UnicodeString keyUString(key, -1, US_INV); + + // == Handle aliases == + AliasType aliasType = processAliasFromValue(keyUString, value, errorCode); + if (U_FAILURE(errorCode)) { return; } + if (aliasType == GREGORIAN) { + // Ignore aliases to the gregorian calendar, all of its resources will be loaded anyway. + continue; + + } else if (aliasType == DIFFERENT_CALENDAR) { + // Whenever an alias to the next calendar (except gregorian) is encountered, register the + // calendar type it's pointing to + if (resourcesToVisitNext.isNull()) { + resourcesToVisitNext + .adoptInsteadAndCheckErrorCode(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, errorCode), + errorCode); + if (U_FAILURE(errorCode)) { return; } + } + LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); + resourcesToVisitNext->addElement(aliasRelativePathCopy.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after resourcesToVisitNext takes it (no error happened): + aliasRelativePathCopy.orphan(); + continue; + + } else if (aliasType == SAME_CALENDAR) { + // Register same-calendar alias + if (arrays.get(aliasRelativePath) == NULL && maps.get(aliasRelativePath) == NULL) { + LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); + aliasPathPairs.addElement(aliasRelativePathCopy.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after aliasPathPairs takes it (no error happened): + aliasRelativePathCopy.orphan(); + LocalPointer keyUStringCopy(new UnicodeString(keyUString), errorCode); + aliasPathPairs.addElement(keyUStringCopy.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after aliasPathPairs takes it (no error happened): + keyUStringCopy.orphan(); + } + continue; + } + + // Only visit the resources that were referenced by an alias on the previous calendar + // (AmPmMarkersAbbr is an exception). + if (!resourcesToVisit.isNull() && !resourcesToVisit->isEmpty() && !resourcesToVisit->contains(&keyUString) + && uprv_strcmp(key, gAmPmMarkersAbbrTag) != 0) { continue; } + + // == Handle data == + if (uprv_strcmp(key, gAmPmMarkersTag) == 0 + || uprv_strcmp(key, gAmPmMarkersAbbrTag) == 0 + || uprv_strcmp(key, gAmPmMarkersNarrowTag) == 0) { + if (arrays.get(keyUString) == NULL) { + ResourceArray resourceArray = value.getArray(errorCode); + int32_t arraySize = resourceArray.getSize(); + LocalArray stringArray(new UnicodeString[arraySize], errorCode); + value.getStringArray(stringArray.getAlias(), arraySize, errorCode); + arrays.put(keyUString, stringArray.orphan(), errorCode); + arraySizes.puti(keyUString, arraySize, errorCode); + if (U_FAILURE(errorCode)) { return; } + } + } else if (uprv_strcmp(key, gErasTag) == 0 + || uprv_strcmp(key, gDayNamesTag) == 0 + || uprv_strcmp(key, gMonthNamesTag) == 0 + || uprv_strcmp(key, gQuartersTag) == 0 + || uprv_strcmp(key, gDayPeriodTag) == 0 + || uprv_strcmp(key, gMonthPatternsTag) == 0 + || uprv_strcmp(key, gCyclicNameSetsTag) == 0) { + processResource(keyUString, key, value, errorCode); } } - else { - length = 0; - status = U_MEMORY_ALLOCATION_ERROR; + + // Apply same-calendar aliases + UBool modified; + do { + modified = false; + for (int32_t i = 0; i < aliasPathPairs.size();) { + UBool mod = false; + UnicodeString *alias = (UnicodeString*)aliasPathPairs[i]; + UnicodeString *aliasArray; + Hashtable *aliasMap; + if ((aliasArray = (UnicodeString*)arrays.get(*alias)) != NULL) { + // Clone the array + int32_t aliasArraySize = arraySizes.geti(*alias); + LocalArray aliasArrayCopy(new UnicodeString[aliasArraySize], errorCode); + if (U_FAILURE(errorCode)) { return; } + uprv_arrayCopy(aliasArray, aliasArrayCopy.getAlias(), aliasArraySize); + // Put the array on the 'arrays' map + UnicodeString *path = (UnicodeString*)aliasPathPairs[i + 1]; + arrays.put(*path, aliasArrayCopy.orphan(), errorCode); + arraySizes.puti(*path, aliasArraySize, errorCode); + if (U_FAILURE(errorCode)) { return; } + mod = true; + } else if ((aliasMap = (Hashtable*)maps.get(*alias)) != NULL) { + UnicodeString *path = (UnicodeString*)aliasPathPairs[i + 1]; + maps.put(*path, aliasMap, errorCode); + if (U_FAILURE(errorCode)) { return; } + mod = true; + } + if (mod) { + aliasPathPairs.removeElementAt(i + 1); + aliasPathPairs.removeElementAt(i); + modified = true; + } else { + i += 2; + } + } + } while (modified && !aliasPathPairs.isEmpty()); + + // Set the resources to visit on the next calendar + if (!resourcesToVisitNext.isNull()) { + resourcesToVisit.moveFrom(resourcesToVisitNext); + } + } + + // Process the nested resource bundle tables + void processResource(UnicodeString &path, const char *key, ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) return; + + ResourceTable table = value.getTable(errorCode); + if (U_FAILURE(errorCode)) return; + Hashtable* stringMap = NULL; + + // Iterate over all the elements of the table and add them to the map + for (int i = 0; table.getKeyAndValue(i, key, value); i++) { + UnicodeString keyUString(key, -1, US_INV); + + // Ignore '%variant' keys + if (keyUString.endsWith(kVariantTagUChar, UPRV_LENGTHOF(kVariantTagUChar))) { + continue; + } + + // == Handle String elements == + if (value.getType() == URES_STRING) { + // We are on a leaf, store the map elements into the stringMap + if (i == 0) { + LocalPointer stringMapPtr(new Hashtable(FALSE, errorCode), errorCode); + stringMap = stringMapPtr.getAlias(); + maps.put(path, stringMap, errorCode); + // mapRefs will take ownership of 'stringMap': + mapRefs.addElement(stringMap, errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after mapRefs takes it (no error happened): + stringMapPtr.orphan(); + stringMap->setValueDeleter(uprv_deleteUObject); + } + U_ASSERT(stringMap != NULL); + int32_t valueStringSize; + const UChar *valueString = value.getString(valueStringSize, errorCode); + if (U_FAILURE(errorCode)) { return; } + LocalPointer valueUString(new UnicodeString(TRUE, valueString, valueStringSize), errorCode); + stringMap->put(keyUString, valueUString.orphan(), errorCode); + if (U_FAILURE(errorCode)) { return; } + continue; + } + U_ASSERT(stringMap == NULL); + + // Store the current path's length and append the current key to the path. + int32_t pathLength = path.length(); + path.append(SOLIDUS).append(keyUString); + + // In cyclicNameSets ignore everything but years/format/abbreviated + // and zodiacs/format/abbreviated + if (path.startsWith(kCyclicNameSetsTagUChar, UPRV_LENGTHOF(kCyclicNameSetsTagUChar))) { + UBool skip = TRUE; + int32_t startIndex = UPRV_LENGTHOF(kCyclicNameSetsTagUChar); + int32_t length = 0; + if (startIndex == path.length() + || path.compare(startIndex, (length = UPRV_LENGTHOF(kZodiacsUChar)), kZodiacsUChar, 0, UPRV_LENGTHOF(kZodiacsUChar)) == 0 + || path.compare(startIndex, (length = UPRV_LENGTHOF(kYearsTagUChar)), kYearsTagUChar, 0, UPRV_LENGTHOF(kYearsTagUChar)) == 0 + || path.compare(startIndex, (length = UPRV_LENGTHOF(kDayPartsTagUChar)), kDayPartsTagUChar, 0, UPRV_LENGTHOF(kDayPartsTagUChar)) == 0) { + startIndex += length; + length = 0; + if (startIndex == path.length() + || path.compare(startIndex, (length = UPRV_LENGTHOF(kFormatTagUChar)), kFormatTagUChar, 0, UPRV_LENGTHOF(kFormatTagUChar)) == 0) { + startIndex += length; + length = 0; + if (startIndex == path.length() + || path.compare(startIndex, (length = UPRV_LENGTHOF(kAbbrTagUChar)), kAbbrTagUChar, 0, UPRV_LENGTHOF(kAbbrTagUChar)) == 0) { + skip = FALSE; + } + } + } + if (skip) { + // Drop the latest key on the path and continue + path.retainBetween(0, pathLength); + continue; + } + } + + // == Handle aliases == + if (arrays.get(path) != NULL || maps.get(path) != NULL) { + // Drop the latest key on the path and continue + path.retainBetween(0, pathLength); + continue; + } + + AliasType aliasType = processAliasFromValue(path, value, errorCode); + if (U_FAILURE(errorCode)) { return; } + if (aliasType == SAME_CALENDAR) { + // Store the alias path and the current path on aliasPathPairs + LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); + aliasPathPairs.addElement(aliasRelativePathCopy.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after aliasPathPairs takes it (no error happened): + aliasRelativePathCopy.orphan(); + LocalPointer pathCopy(new UnicodeString(path), errorCode); + aliasPathPairs.addElement(pathCopy.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { return; } + // Only release ownership after aliasPathPairs takes it (no error happened): + pathCopy.orphan(); + + // Drop the latest key on the path and continue + path.retainBetween(0, pathLength); + continue; + } + U_ASSERT(aliasType == NONE); + + // == Handle data == + if (value.getType() == URES_ARRAY) { + // We are on a leaf, store the array + ResourceArray rDataArray = value.getArray(errorCode); + int32_t dataArraySize = rDataArray.getSize(); + LocalArray dataArray(new UnicodeString[dataArraySize], errorCode); + value.getStringArray(dataArray.getAlias(), dataArraySize, errorCode); + arrays.put(path, dataArray.orphan(), errorCode); + arraySizes.puti(path, dataArraySize, errorCode); + if (U_FAILURE(errorCode)) { return; } + } else if (value.getType() == URES_TABLE) { + // We are not on a leaf, recursively process the subtable. + processResource(path, key, value, errorCode); + if (U_FAILURE(errorCode)) { return; } + } + + // Drop the latest key on the path + path.retainBetween(0, pathLength); } } + + // Populates an AliasIdentifier with the alias information contained on the UResource.Value. + AliasType processAliasFromValue(UnicodeString ¤tRelativePath, ResourceValue &value, + UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return NONE; } + + if (value.getType() == URES_ALIAS) { + int32_t aliasPathSize; + const UChar* aliasPathUChar = value.getAliasString(aliasPathSize, errorCode); + if (U_FAILURE(errorCode)) { return NONE; } + UnicodeString aliasPath(aliasPathUChar, aliasPathSize); + const int32_t aliasPrefixLength = UPRV_LENGTHOF(kCalendarAliasPrefixUChar); + if (aliasPath.startsWith(kCalendarAliasPrefixUChar, aliasPrefixLength) + && aliasPath.length() > aliasPrefixLength) { + int32_t typeLimit = aliasPath.indexOf(SOLIDUS, aliasPrefixLength); + if (typeLimit > aliasPrefixLength) { + const UnicodeString aliasCalendarType = + aliasPath.tempSubStringBetween(aliasPrefixLength, typeLimit); + aliasRelativePath.setTo(aliasPath, typeLimit + 1, aliasPath.length()); + + if (currentCalendarType == aliasCalendarType + && currentRelativePath != aliasRelativePath) { + // If we have an alias to the same calendar, the path to the resource must be different + return SAME_CALENDAR; + + } else if (currentCalendarType != aliasCalendarType + && currentRelativePath == aliasRelativePath) { + // If we have an alias to a different calendar, the path to the resource must be the same + if (aliasCalendarType.compare(kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)) == 0) { + return GREGORIAN; + } else if (nextCalendarType.isBogus()) { + nextCalendarType = aliasCalendarType; + return DIFFERENT_CALENDAR; + } else if (nextCalendarType == aliasCalendarType) { + return DIFFERENT_CALENDAR; + } + } + } + } + errorCode = U_INTERNAL_PROGRAM_ERROR; + return NONE; + } + return NONE; + } + + // Deleter function to be used by 'arrays' + static void U_CALLCONV deleteUnicodeStringArray(void *uArray) { + delete[] static_cast(uArray); + } + + // Deleter function to be used by 'maps' + static void U_CALLCONV deleteHashtable(void *table) { + delete static_cast(table); + } +}; +// Virtual destructors have to be defined out of line +CalendarDataSink::~CalendarDataSink() { + arrays.setValueDeleter(deleteUnicodeStringArray); } +} + +//------------------------------------------------------ static void initField(UnicodeString **field, int32_t& length, const UChar *data, LastResortSize numStr, LastResortSize strLen, UErrorCode &status) { @@ -1471,16 +1869,89 @@ initField(UnicodeString **field, int32_t& length, const UChar *data, LastResortS } static void -initLeapMonthPattern(UnicodeString *field, int32_t index, const UResourceBundle *data, UErrorCode &status) { +initField(UnicodeString **field, int32_t& length, CalendarDataSink &sink, CharString &key, UErrorCode &status) { + if (U_SUCCESS(status)) { + UnicodeString keyUString(key.data(), -1, US_INV); + UnicodeString* array = static_cast(sink.arrays.get(keyUString)); + + if (array != NULL) { + length = sink.arraySizes.geti(keyUString); + *field = array; + // DateFormatSymbols takes ownership of the array: + sink.arrays.remove(keyUString); + } else { + length = 0; + status = U_MISSING_RESOURCE_ERROR; + } + } +} + +static void +initField(UnicodeString **field, int32_t& length, CalendarDataSink &sink, CharString &key, int32_t arrayOffset, UErrorCode &status) { + if (U_SUCCESS(status)) { + UnicodeString keyUString(key.data(), -1, US_INV); + UnicodeString* array = static_cast(sink.arrays.get(keyUString)); + + if (array != NULL) { + int32_t arrayLength = sink.arraySizes.geti(keyUString); + length = arrayLength + arrayOffset; + *field = new UnicodeString[length]; + if (*field == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + uprv_arrayCopy(array, 0, *field, arrayOffset, arrayLength); + } else { + length = 0; + status = U_MISSING_RESOURCE_ERROR; + } + } +} + +static void +initLeapMonthPattern(UnicodeString *field, int32_t index, CalendarDataSink &sink, CharString &path, UErrorCode &status) { field[index].remove(); if (U_SUCCESS(status)) { - int32_t strLen = 0; - const UChar *resStr = ures_getStringByKey(data, gNamesLeapTag, &strLen, &status); - if (U_SUCCESS(status)) { - field[index].setTo(TRUE, resStr, strLen); + UnicodeString pathUString(path.data(), -1, US_INV); + Hashtable *leapMonthTable = static_cast(sink.maps.get(pathUString)); + if (leapMonthTable != NULL) { + UnicodeString leapLabel(FALSE, kLeapTagUChar, UPRV_LENGTHOF(kLeapTagUChar)); + UnicodeString *leapMonthPattern = static_cast(leapMonthTable->get(leapLabel)); + if (leapMonthPattern != NULL) { + field[index].fastCopyFrom(*leapMonthPattern); + } else { + field[index].setToBogus(); + } + return; } + status = U_MISSING_RESOURCE_ERROR; } - status = U_ZERO_ERROR; +} + +static CharString +&buildResourcePath(CharString &path, const char* segment1, UErrorCode &errorCode) { + return path.clear().append(segment1, -1, errorCode); +} + +static CharString +&buildResourcePath(CharString &path, const char* segment1, const char* segment2, + UErrorCode &errorCode) { + return buildResourcePath(path, segment1, errorCode).append('/', errorCode) + .append(segment2, -1, errorCode); +} + +static CharString +&buildResourcePath(CharString &path, const char* segment1, const char* segment2, + const char* segment3, UErrorCode &errorCode) { + return buildResourcePath(path, segment1, segment2, errorCode).append('/', errorCode) + .append(segment3, -1, errorCode); +} + +static CharString +&buildResourcePath(CharString &path, const char* segment1, const char* segment2, + const char* segment3, const char* segment4, UErrorCode &errorCode) { + return buildResourcePath(path, segment1, segment2, segment3, errorCode).append('/', errorCode) + .append(segment4, -1, errorCode); } typedef struct { @@ -1513,41 +1984,43 @@ static const char *dayPeriodKeys[] = {"midnight", "noon", "morning1", "afternoon1", "evening1", "night1", "morning2", "afternoon2", "evening2", "night2"}; -UnicodeString* loadDayPeriodStrings(CalendarData &calData, const char *tag, UBool standalone, +UnicodeString* loadDayPeriodStrings(CalendarDataSink &sink, CharString &path, int32_t &stringCount, UErrorCode &status) { - if (U_FAILURE(status)) { - return NULL; - } - - UResourceBundle *dayPeriodData; + if (U_FAILURE(status)) { return NULL; } - if (standalone) { - dayPeriodData = calData.getByKey3(gDayPeriodTag, gNamesStandaloneTag, tag, status); - } else { - dayPeriodData = calData.getByKey2(gDayPeriodTag, tag, status); - } + UnicodeString pathUString(path.data(), -1, US_INV); + Hashtable* map = static_cast(sink.maps.get(pathUString)); stringCount = UPRV_LENGTHOF(dayPeriodKeys); UnicodeString *strings = new UnicodeString[stringCount]; - for (int32_t i = 0; i < stringCount; ++i) { - //TODO: Check if there are fallbacks/aliases defined in the data; e.g., if there - //is no wide string, then use the narrow one? - strings[i].fastCopyFrom(ures_getUnicodeStringByKey(dayPeriodData, dayPeriodKeys[i], &status)); - if (U_FAILURE(status)) { - // string[i] will be bogus if ures_getUnicodeString() returns with an error, - // which is just the behavior we want. Simply reset the error code. - status = U_ZERO_ERROR; + if (strings == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + + if (map != NULL) { + for (int32_t i = 0; i < stringCount; ++i) { + UnicodeString dayPeriodKey(dayPeriodKeys[i], -1, US_INV); + UnicodeString *dayPeriod = static_cast(map->get(dayPeriodKey)); + if (dayPeriod != NULL) { + strings[i].fastCopyFrom(*dayPeriod); + } else { + strings[i].setToBogus(); + } + } + } else { + for (int32_t i = 0; i < stringCount; i++) { + strings[i].setToBogus(); } } return strings; } + void DateFormatSymbols::initializeData(const Locale& locale, const char *type, UErrorCode& status, UBool useLastResortData) { - int32_t i; int32_t len = 0; - const UChar *resStr; /* In case something goes wrong, initialize all of the data to NULL. */ fEras = NULL; fErasCount = 0; @@ -1628,97 +2101,107 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError if (U_FAILURE(status)) return; - /** - * Retrieve the string arrays we need from the resource bundle file. - * We cast away const here, but that's okay; we won't delete any of - * these. - */ - CalendarData calData(locale, type, status); + // Create a CalendarDataSink to process this data and the resouce bundles + CalendarDataSink calendarSink(status); + UResourceBundle *rb = ures_open(NULL, locale.getBaseName(), &status); + UResourceBundle *cb = ures_getByKey(rb, gCalendarTag, NULL, &status); - // load the first data item - UResourceBundle *erasMain = calData.getByKey(gErasTag, status); - UResourceBundle *eras = ures_getByKeyWithFallback(erasMain, gNamesAbbrTag, NULL, &status); - UErrorCode oldStatus = status; - UResourceBundle *eraNames = ures_getByKeyWithFallback(erasMain, gNamesWideTag, NULL, &status); - if ( status == U_MISSING_RESOURCE_ERROR ) { // Workaround because eras/wide was omitted from CLDR 1.3 - status = oldStatus; - eraNames = ures_getByKeyWithFallback(erasMain, gNamesAbbrTag, NULL, &status); - } - // current ICU4J falls back to abbreviated if narrow eras are missing, so we will too - oldStatus = status; - UResourceBundle *narrowEras = ures_getByKeyWithFallback(erasMain, gNamesNarrowTag, NULL, &status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = oldStatus; - narrowEras = ures_getByKeyWithFallback(erasMain, gNamesAbbrTag, NULL, &status); - } - - UErrorCode tempStatus = U_ZERO_ERROR; - UResourceBundle *monthPatterns = calData.getByKey(gMonthPatternsTag, tempStatus); - if (U_SUCCESS(tempStatus) && monthPatterns != NULL) { - fLeapMonthPatterns = newUnicodeStringArray(kMonthPatternsCount); - if (fLeapMonthPatterns) { - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatWide, calData.getByKey2(gMonthPatternsTag, gNamesWideTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatAbbrev, calData.getByKey2(gMonthPatternsTag, gNamesAbbrTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatNarrow, calData.getByKey2(gMonthPatternsTag, gNamesNarrowTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneWide, calData.getByKey3(gMonthPatternsTag, gNamesStandaloneTag, gNamesWideTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneAbbrev, calData.getByKey3(gMonthPatternsTag, gNamesStandaloneTag, gNamesAbbrTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneNarrow, calData.getByKey3(gMonthPatternsTag, gNamesStandaloneTag, gNamesNarrowTag, tempStatus), tempStatus); - initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternNumeric, calData.getByKey3(gMonthPatternsTag, gNamesNumericTag, gNamesAllTag, tempStatus), tempStatus); - if (U_SUCCESS(tempStatus)) { - // Hack to fix bad C inheritance for dangi monthPatterns (OK in J); this should be handled by aliases in root, but isn't. - // The ordering of the following statements is important. - if (fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev].isEmpty()) { - fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatWide]); - }; - if (fLeapMonthPatterns[kLeapMonthPatternFormatNarrow].isEmpty()) { - fLeapMonthPatterns[kLeapMonthPatternFormatNarrow].setTo(fLeapMonthPatterns[kLeapMonthPatternStandaloneNarrow]); - }; - if (fLeapMonthPatterns[kLeapMonthPatternStandaloneWide].isEmpty()) { - fLeapMonthPatterns[kLeapMonthPatternStandaloneWide].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatWide]); - }; - if (fLeapMonthPatterns[kLeapMonthPatternStandaloneAbbrev].isEmpty()) { - fLeapMonthPatterns[kLeapMonthPatternStandaloneAbbrev].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev]); - }; - // end of hack - fLeapMonthPatternsCount = kMonthPatternsCount; - } else { - delete[] fLeapMonthPatterns; - fLeapMonthPatterns = NULL; + if (U_FAILURE(status)) return; + + // Iterate over the resource bundle data following the fallbacks through different calendar types + UnicodeString calendarType((type != NULL && *type != '\0')? type : gGregorianTag, -1, US_INV); + while (!calendarType.isBogus()) { + CharString calendarTypeBuffer; + calendarTypeBuffer.appendInvariantChars(calendarType, status); + if (U_FAILURE(status)) { return; } + const char *calendarTypeCArray = calendarTypeBuffer.data(); + + // Enumerate this calendar type. If the calendar is not found fallback to gregorian + UErrorCode oldStatus = status; + UResourceBundle *ctb = ures_getByKeyWithFallback(cb, calendarTypeCArray, NULL, &status); + if (status == U_MISSING_RESOURCE_ERROR) { + ures_close(ctb); + if (uprv_strcmp(calendarTypeCArray, gGregorianTag) != 0) { + calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); + calendarSink.visitAllResources(); + status = oldStatus; + continue; } + return; } - } - tempStatus = U_ZERO_ERROR; - UResourceBundle *cyclicNameSets= calData.getByKey(gCyclicNameSetsTag, tempStatus); - if (U_SUCCESS(tempStatus) && cyclicNameSets != NULL) { - UResourceBundle *nameSetYears = ures_getByKeyWithFallback(cyclicNameSets, gNameSetYearsTag, NULL, &tempStatus); - if (U_SUCCESS(tempStatus)) { - UResourceBundle *nameSetYearsFmt = ures_getByKeyWithFallback(nameSetYears, gNamesFormatTag, NULL, &tempStatus); - if (U_SUCCESS(tempStatus)) { - UResourceBundle *nameSetYearsFmtAbbrev = ures_getByKeyWithFallback(nameSetYearsFmt, gNamesAbbrTag, NULL, &tempStatus); - if (U_SUCCESS(tempStatus)) { - initField(&fShortYearNames, fShortYearNamesCount, nameSetYearsFmtAbbrev, tempStatus); - ures_close(nameSetYearsFmtAbbrev); - } - ures_close(nameSetYearsFmt); - } - ures_close(nameSetYears); + calendarSink.preEnumerate(calendarType); + ures_getAllItemsWithFallback(ctb, "", calendarSink, status); + ures_close(ctb); + if (U_FAILURE(status)) break; + + // Stop loading when gregorian was loaded + if (uprv_strcmp(calendarTypeCArray, gGregorianTag) == 0) { + break; } - UResourceBundle *nameSetZodiacs = ures_getByKeyWithFallback(cyclicNameSets, gNameSetZodiacsTag, NULL, &tempStatus); + + // Get the next calendar type to process from the sink + calendarType = calendarSink.nextCalendarType; + + // Gregorian is always the last fallback + if (calendarType.isBogus()) { + calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); + calendarSink.visitAllResources(); + } + } + + // CharString object to build paths + CharString path; + + // Load Leap Month Patterns + UErrorCode tempStatus = status; + fLeapMonthPatterns = newUnicodeStringArray(kMonthPatternsCount); + if (fLeapMonthPatterns) { + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatWide, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesFormatTag, gNamesWideTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatAbbrev, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesFormatTag, gNamesAbbrTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternFormatNarrow, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesFormatTag, gNamesNarrowTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneWide, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesStandaloneTag, gNamesWideTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneAbbrev, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesStandaloneTag, gNamesAbbrTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternStandaloneNarrow, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesStandaloneTag, gNamesNarrowTag, tempStatus), tempStatus); + initLeapMonthPattern(fLeapMonthPatterns, kLeapMonthPatternNumeric, calendarSink, + buildResourcePath(path, gMonthPatternsTag, gNamesNumericTag, gNamesAllTag, tempStatus), tempStatus); if (U_SUCCESS(tempStatus)) { - UResourceBundle *nameSetZodiacsFmt = ures_getByKeyWithFallback(nameSetZodiacs, gNamesFormatTag, NULL, &tempStatus); - if (U_SUCCESS(tempStatus)) { - UResourceBundle *nameSetZodiacsFmtAbbrev = ures_getByKeyWithFallback(nameSetZodiacsFmt, gNamesAbbrTag, NULL, &tempStatus); - if (U_SUCCESS(tempStatus)) { - initField(&fShortZodiacNames, fShortZodiacNamesCount, nameSetZodiacsFmtAbbrev, tempStatus); - ures_close(nameSetZodiacsFmtAbbrev); - } - ures_close(nameSetZodiacsFmt); - } - ures_close(nameSetZodiacs); + // Hack to fix bad C inheritance for dangi monthPatterns (OK in J); this should be handled by aliases in root, but isn't. + // The ordering of the following statements is important. + if (fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev].isEmpty()) { + fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatWide]); + }; + if (fLeapMonthPatterns[kLeapMonthPatternFormatNarrow].isEmpty()) { + fLeapMonthPatterns[kLeapMonthPatternFormatNarrow].setTo(fLeapMonthPatterns[kLeapMonthPatternStandaloneNarrow]); + }; + if (fLeapMonthPatterns[kLeapMonthPatternStandaloneWide].isEmpty()) { + fLeapMonthPatterns[kLeapMonthPatternStandaloneWide].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatWide]); + }; + if (fLeapMonthPatterns[kLeapMonthPatternStandaloneAbbrev].isEmpty()) { + fLeapMonthPatterns[kLeapMonthPatternStandaloneAbbrev].setTo(fLeapMonthPatterns[kLeapMonthPatternFormatAbbrev]); + }; + // end of hack + fLeapMonthPatternsCount = kMonthPatternsCount; + } else { + delete[] fLeapMonthPatterns; + fLeapMonthPatterns = NULL; } } + // Load cyclic names sets + tempStatus = status; + initField(&fShortYearNames, fShortYearNamesCount, calendarSink, + buildResourcePath(path, gCyclicNameSetsTag, gNameSetYearsTag, gNamesFormatTag, gNamesAbbrTag, tempStatus), tempStatus); + initField(&fShortZodiacNames, fShortZodiacNamesCount, calendarSink, + buildResourcePath(path, gCyclicNameSetsTag, gNameSetZodiacsTag, gNamesFormatTag, gNamesAbbrTag, tempStatus), tempStatus); + + // Load context transforms and capitalization tempStatus = U_ZERO_ERROR; UResourceBundle *localeBundle = ures_open(NULL, locale.getName(), &tempStatus); if (U_SUCCESS(tempStatus)) { @@ -1775,126 +2258,108 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError fTimeSeparator.setTo(DateFormatSymbols::DEFAULT_TIME_SEPARATOR); } - fWideDayPeriods = loadDayPeriodStrings(calData, gNamesWideTag, FALSE, - fWideDayPeriodsCount, status); - fNarrowDayPeriods = loadDayPeriodStrings(calData, gNamesNarrowTag, FALSE, - fNarrowDayPeriodsCount, status); - fAbbreviatedDayPeriods = loadDayPeriodStrings(calData, gNamesAbbrTag, FALSE, - fAbbreviatedDayPeriodsCount, status); - fStandaloneWideDayPeriods = loadDayPeriodStrings(calData, gNamesWideTag, TRUE, - fStandaloneWideDayPeriodsCount, status); - fStandaloneNarrowDayPeriods = loadDayPeriodStrings(calData, gNamesNarrowTag, TRUE, - fStandaloneNarrowDayPeriodsCount, status); - fStandaloneAbbreviatedDayPeriods = loadDayPeriodStrings(calData, gNamesAbbrTag, TRUE, - fStandaloneAbbreviatedDayPeriodsCount, status); - - UResourceBundle *weekdaysData = NULL; // Data closed by calData - UResourceBundle *abbrWeekdaysData = NULL; // Data closed by calData - UResourceBundle *shorterWeekdaysData = NULL; // Data closed by calData - UResourceBundle *narrowWeekdaysData = NULL; // Data closed by calData - UResourceBundle *standaloneWeekdaysData = NULL; // Data closed by calData - UResourceBundle *standaloneAbbrWeekdaysData = NULL; // Data closed by calData - UResourceBundle *standaloneShorterWeekdaysData = NULL; // Data closed by calData - UResourceBundle *standaloneNarrowWeekdaysData = NULL; // Data closed by calData + // Load day periods + fWideDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesFormatTag, gNamesWideTag, status), + fWideDayPeriodsCount, status); + fNarrowDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesFormatTag, gNamesNarrowTag, status), + fNarrowDayPeriodsCount, status); + fAbbreviatedDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesFormatTag, gNamesAbbrTag, status), + fAbbreviatedDayPeriodsCount, status); + fStandaloneWideDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesStandaloneTag, gNamesWideTag, status), + fStandaloneWideDayPeriodsCount, status); + fStandaloneNarrowDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesStandaloneTag, gNamesNarrowTag, status), + fStandaloneNarrowDayPeriodsCount, status); + fStandaloneAbbreviatedDayPeriods = loadDayPeriodStrings(calendarSink, + buildResourcePath(path, gDayPeriodTag, gNamesStandaloneTag, gNamesAbbrTag, status), + fStandaloneAbbreviatedDayPeriodsCount, status); U_LOCALE_BASED(locBased, *this); - if (U_FAILURE(status)) - { - if (useLastResortData) - { - // Handle the case in which there is no resource data present. - // We don't have to generate usable patterns in this situation; - // we just need to produce something that will be semi-intelligible - // in most locales. - - status = U_USING_FALLBACK_WARNING; - - initField(&fEras, fErasCount, (const UChar *)gLastResortEras, kEraNum, kEraLen, status); - initField(&fEraNames, fEraNamesCount, (const UChar *)gLastResortEras, kEraNum, kEraLen, status); - initField(&fNarrowEras, fNarrowErasCount, (const UChar *)gLastResortEras, kEraNum, kEraLen, status); - initField(&fMonths, fMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fShortMonths, fShortMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fNarrowMonths, fNarrowMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fStandaloneMonths, fStandaloneMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fStandaloneShortMonths, fStandaloneShortMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, (const UChar *)gLastResortMonthNames, kMonthNum, kMonthLen, status); - initField(&fWeekdays, fWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fShortWeekdays, fShortWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fShorterWeekdays, fShorterWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fNarrowWeekdays, fNarrowWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fStandaloneWeekdays, fStandaloneWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fStandaloneShorterWeekdays, fStandaloneShorterWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fStandaloneNarrowWeekdays, fStandaloneNarrowWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status); - initField(&fAmPms, fAmPmsCount, (const UChar *)gLastResortAmPmMarkers, kAmPmNum, kAmPmLen, status); - initField(&fNarrowAmPms, fNarrowAmPmsCount, (const UChar *)gLastResortAmPmMarkers, kAmPmNum, kAmPmLen, status); - initField(&fQuarters, fQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - initField(&fShortQuarters, fShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - initField(&fStandaloneQuarters, fStandaloneQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - fLocalPatternChars.setTo(TRUE, gPatternChars, PATTERN_CHARS_LEN); - } - goto cleanup; - } - // if we make it to here, the resource data is cool, and we can get everything out // of it that we need except for the time-zone and localized-pattern data, which // are stored in a separate file - locBased.setLocaleIDs(ures_getLocaleByType(eras, ULOC_VALID_LOCALE, &status), - ures_getLocaleByType(eras, ULOC_ACTUAL_LOCALE, &status)); + locBased.setLocaleIDs(ures_getLocaleByType(cb, ULOC_VALID_LOCALE, &status), + ures_getLocaleByType(cb, ULOC_ACTUAL_LOCALE, &status)); - initField(&fEras, fErasCount, eras, status); - initField(&fEraNames, fEraNamesCount, eraNames, status); - initField(&fNarrowEras, fNarrowErasCount, narrowEras, status); - - initField(&fMonths, fMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesWideTag, status), status); - initField(&fShortMonths, fShortMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status); - - initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesNarrowTag, status), status); - if(status == U_MISSING_RESOURCE_ERROR) { - status = U_ZERO_ERROR; - initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status), status); - } - if ( status == U_MISSING_RESOURCE_ERROR ) { /* If format/narrow not available, use format/abbreviated */ - status = U_ZERO_ERROR; - initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status); - } - - initField(&fStandaloneMonths, fStandaloneMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesWideTag, status), status); - if ( status == U_MISSING_RESOURCE_ERROR ) { /* If standalone/wide not available, use format/wide */ - status = U_ZERO_ERROR; - initField(&fStandaloneMonths, fStandaloneMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesWideTag, status), status); - } - initField(&fStandaloneShortMonths, fStandaloneShortMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesAbbrTag, status), status); - if ( status == U_MISSING_RESOURCE_ERROR ) { /* If standalone/abbreviated not available, use format/abbreviated */ - status = U_ZERO_ERROR; - initField(&fStandaloneShortMonths, fStandaloneShortMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status); + // Load eras + initField(&fEras, fErasCount, calendarSink, buildResourcePath(path, gErasTag, gNamesAbbrTag, status), status); + UErrorCode oldStatus = status; + initField(&fEraNames, fEraNamesCount, calendarSink, buildResourcePath(path, gErasTag, gNamesWideTag, status), status); + if (status == U_MISSING_RESOURCE_ERROR) { // Workaround because eras/wide was omitted from CLDR 1.3 + status = oldStatus; + assignArray(fEraNames, fEraNamesCount, fEras, fErasCount); } - initField(&fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status), status); - if ( status == U_MISSING_RESOURCE_ERROR ) { /* if standalone/narrow not availabe, try format/narrow */ - status = U_ZERO_ERROR; - initField(&fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesNarrowTag, status), status); - if ( status == U_MISSING_RESOURCE_ERROR ) { /* if still not there, use format/abbreviated */ - status = U_ZERO_ERROR; - initField(&fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status); - } + // current ICU4J falls back to abbreviated if narrow eras are missing, so we will too + oldStatus = status; + initField(&fNarrowEras, fNarrowErasCount, calendarSink, buildResourcePath(path, gErasTag, gNamesNarrowTag, status), status); + if (status == U_MISSING_RESOURCE_ERROR) { // Workaround because eras/wide was omitted from CLDR 1.3 + status = oldStatus; + assignArray(fNarrowEras, fNarrowErasCount, fEras, fErasCount); + } + + // Load month names + initField(&fMonths, fMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesFormatTag, gNamesWideTag, status), status); + initField(&fShortMonths, fShortMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesFormatTag, gNamesAbbrTag, status), status); + initField(&fStandaloneMonths, fStandaloneMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesStandaloneTag, gNamesWideTag, status), status); + if (status == U_MISSING_RESOURCE_ERROR) { /* If standalone/wide not available, use format/wide */ + status = U_ZERO_ERROR; + assignArray(fStandaloneMonths, fStandaloneMonthsCount, fMonths, fMonthsCount); } - initField(&fAmPms, fAmPmsCount, calData.getByKey(gAmPmMarkersTag, status), status); - initField(&fNarrowAmPms, fNarrowAmPmsCount, calData.getByKey(gAmPmMarkersNarrowTag, status), status); - - initField(&fQuarters, fQuartersCount, calData.getByKey2(gQuartersTag, gNamesWideTag, status), status); - initField(&fShortQuarters, fShortQuartersCount, calData.getByKey2(gQuartersTag, gNamesAbbrTag, status), status); - - initField(&fStandaloneQuarters, fStandaloneQuartersCount, calData.getByKey3(gQuartersTag, gNamesStandaloneTag, gNamesWideTag, status), status); + initField(&fStandaloneShortMonths, fStandaloneShortMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesStandaloneTag, gNamesAbbrTag, status), status); + if (status == U_MISSING_RESOURCE_ERROR) { /* If standalone/abbreviated not available, use format/abbreviated */ + status = U_ZERO_ERROR; + assignArray(fStandaloneShortMonths, fStandaloneShortMonthsCount, fShortMonths, fShortMonthsCount); + } + + UErrorCode narrowMonthsEC = status; + UErrorCode standaloneNarrowMonthsEC = status; + initField(&fNarrowMonths, fNarrowMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesFormatTag, gNamesNarrowTag, narrowMonthsEC), narrowMonthsEC); + initField(&fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, calendarSink, + buildResourcePath(path, gMonthNamesTag, gNamesStandaloneTag, gNamesNarrowTag, narrowMonthsEC), standaloneNarrowMonthsEC); + if (narrowMonthsEC == U_MISSING_RESOURCE_ERROR && standaloneNarrowMonthsEC != U_MISSING_RESOURCE_ERROR) { + // If format/narrow not available, use standalone/narrow + assignArray(fNarrowMonths, fNarrowMonthsCount, fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount); + } else if (narrowMonthsEC != U_MISSING_RESOURCE_ERROR && standaloneNarrowMonthsEC == U_MISSING_RESOURCE_ERROR) { + // If standalone/narrow not availabe, use format/narrow + assignArray(fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, fNarrowMonths, fNarrowMonthsCount); + } else if (narrowMonthsEC == U_MISSING_RESOURCE_ERROR && standaloneNarrowMonthsEC == U_MISSING_RESOURCE_ERROR) { + // If neither is available, use format/abbreviated + assignArray(fNarrowMonths, fNarrowMonthsCount, fShortMonths, fShortMonthsCount); + assignArray(fStandaloneNarrowMonths, fStandaloneNarrowMonthsCount, fShortMonths, fShortMonthsCount); + } + + // Load AM/PM markers + initField(&fAmPms, fAmPmsCount, calendarSink, + buildResourcePath(path, gAmPmMarkersTag, status), status); + initField(&fNarrowAmPms, fNarrowAmPmsCount, calendarSink, + buildResourcePath(path, gAmPmMarkersNarrowTag, status), status); + + // Load quarters + initField(&fQuarters, fQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesFormatTag, gNamesWideTag, status), status); + initField(&fShortQuarters, fShortQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesFormatTag, gNamesAbbrTag, status), status); + + initField(&fStandaloneQuarters, fStandaloneQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesStandaloneTag, gNamesWideTag, status), status); if(status == U_MISSING_RESOURCE_ERROR) { status = U_ZERO_ERROR; - initField(&fStandaloneQuarters, fStandaloneQuartersCount, calData.getByKey2(gQuartersTag, gNamesWideTag, status), status); + assignArray(fStandaloneQuarters, fStandaloneQuartersCount, fQuarters, fQuartersCount); } - - initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, calData.getByKey3(gQuartersTag, gNamesStandaloneTag, gNamesAbbrTag, status), status); + initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesStandaloneTag, gNamesAbbrTag, status), status); if(status == U_MISSING_RESOURCE_ERROR) { status = U_ZERO_ERROR; - initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, calData.getByKey2(gQuartersTag, gNamesAbbrTag, status), status); + assignArray(fStandaloneShortQuarters, fStandaloneShortQuartersCount, fShortQuarters, fShortQuartersCount); } // ICU 3.8 or later version no longer uses localized date-time pattern characters by default (ticket#5597) @@ -1912,177 +2377,108 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError // Format wide weekdays -> fWeekdays // {sfb} fixed to handle 1-based weekdays - weekdaysData = calData.getByKey2(gDayNamesTag, gNamesWideTag, status); - fWeekdaysCount = ures_getSize(weekdaysData); - fWeekdays = new UnicodeString[fWeekdaysCount+1]; - /* pin the blame on system. If we cannot get a chunk of memory .. the system is dying!*/ - if (fWeekdays == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fWeekdays[0] empty - for(i = 0; i fShortWeekdays - abbrWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); - fShortWeekdaysCount = ures_getSize(abbrWeekdaysData); - fShortWeekdays = new UnicodeString[fShortWeekdaysCount+1]; - /* test for NULL */ - if (fShortWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fShortWeekdays[0] empty - for(i = 0; i fShorterWeekdays (fall back to abbreviated) - shorterWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesShortTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - shorterWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); - } - fShorterWeekdaysCount = ures_getSize(shorterWeekdaysData); - fShorterWeekdays = new UnicodeString[fShorterWeekdaysCount+1]; - /* test for NULL */ - if (fShorterWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fShorterWeekdays[0] empty - for(i = 0; i fNarrowWeekdays - narrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesNarrowTag, status); - if(status == U_MISSING_RESOURCE_ERROR) { + // Format short weekdays -> fShorterWeekdays (fall back to abbreviated) + initField(&fShorterWeekdays, fShorterWeekdaysCount, calendarSink, + buildResourcePath(path, gDayNamesTag, gNamesFormatTag, gNamesShortTag, status), 1, status); + if (status == U_MISSING_RESOURCE_ERROR) { status = U_ZERO_ERROR; - narrowWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status); - } - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - narrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); + assignArray(fShorterWeekdays, fShorterWeekdaysCount, fShortWeekdays, fShortWeekdaysCount); } - fNarrowWeekdaysCount = ures_getSize(narrowWeekdaysData); - fNarrowWeekdays = new UnicodeString[fNarrowWeekdaysCount+1]; - /* test for NULL */ - if (fNarrowWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fNarrowWeekdays[0] empty - for(i = 0; i fStandaloneWeekdays - standaloneWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesWideTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - standaloneWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesWideTag, status); - } - fStandaloneWeekdaysCount = ures_getSize(standaloneWeekdaysData); - fStandaloneWeekdays = new UnicodeString[fStandaloneWeekdaysCount+1]; - /* test for NULL */ - if (fStandaloneWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fStandaloneWeekdays[0] empty - for(i = 0; i fStandaloneShortWeekdays - standaloneAbbrWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesAbbrTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - standaloneAbbrWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); - } - fStandaloneShortWeekdaysCount = ures_getSize(standaloneAbbrWeekdaysData); - fStandaloneShortWeekdays = new UnicodeString[fStandaloneShortWeekdaysCount+1]; - /* test for NULL */ - if (fStandaloneShortWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; + + // Stand-alone wide weekdays -> fStandaloneWeekdays + initField(&fStandaloneWeekdays, fStandaloneWeekdaysCount, calendarSink, + buildResourcePath(path, gDayNamesTag, gNamesStandaloneTag, gNamesWideTag, status), 1, status); + if (status == U_MISSING_RESOURCE_ERROR) { /* If standalone/wide is not available, use format/wide */ + status = U_ZERO_ERROR; + assignArray(fStandaloneWeekdays, fStandaloneWeekdaysCount, fWeekdays, fWeekdaysCount); } - // leave fStandaloneShortWeekdays[0] empty - for(i = 0; i fStandaloneShortWeekdays + initField(&fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount, calendarSink, + buildResourcePath(path, gDayNamesTag, gNamesStandaloneTag, gNamesAbbrTag, status), 1, status); + if (status == U_MISSING_RESOURCE_ERROR) { /* If standalone/abbreviated is not available, use format/abbreviated */ + status = U_ZERO_ERROR; + assignArray(fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount, fShortWeekdays, fShortWeekdaysCount); } - fStandaloneShortWeekdaysCount++; // Stand-alone short weekdays -> fStandaloneShorterWeekdays (fall back to format abbreviated) - standaloneShorterWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesShortTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - standaloneShorterWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); - } - fStandaloneShorterWeekdaysCount = ures_getSize(standaloneShorterWeekdaysData); - fStandaloneShorterWeekdays = new UnicodeString[fStandaloneShorterWeekdaysCount+1]; - /* test for NULL */ - if (fStandaloneShorterWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fStandaloneShorterWeekdays[0] empty - for(i = 0; i fNarrowWeekdays + UErrorCode narrowWeeksEC = status; + initField(&fNarrowWeekdays, fNarrowWeekdaysCount, calendarSink, + buildResourcePath(path, gDayNamesTag, gNamesFormatTag, gNamesNarrowTag, status), 1, narrowWeeksEC); // Stand-alone narrow weekdays -> fStandaloneNarrowWeekdays - standaloneNarrowWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - standaloneNarrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesNarrowTag, status); - if ( status == U_MISSING_RESOURCE_ERROR ) { - status = U_ZERO_ERROR; - standaloneNarrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status); - } - } - fStandaloneNarrowWeekdaysCount = ures_getSize(standaloneNarrowWeekdaysData); - fStandaloneNarrowWeekdays = new UnicodeString[fStandaloneNarrowWeekdaysCount+1]; - /* test for NULL */ - if (fStandaloneNarrowWeekdays == 0) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - // leave fStandaloneNarrowWeekdays[0] empty - for(i = 0; i @@ -51,7 +53,9 @@ static const UChar gDateFormatSkeleton[][11] = { {LOW_Y, CAP_M, LOW_D, 0} }; -static const char gDateTimePatternsTag[]="DateTimePatterns"; +static const char gCalendarTag[] = "calendar"; +static const char gGregorianTag[] = "gregorian"; +static const char gDateTimePatternsTag[] = "DateTimePatterns"; // latestFirst: @@ -217,15 +221,9 @@ DateIntervalFormat::operator==(const Format& other) const { Mutex lock(&gFormatterMutex); if (fDateFormat != fmt->fDateFormat && (fDateFormat == NULL || fmt->fDateFormat == NULL)) {return FALSE;} if (fDateFormat && fmt->fDateFormat && (*fDateFormat != *fmt->fDateFormat)) {return FALSE;} - - // TODO: should operator == ignore the From and ToCalendar? They hold transient values during - // formatting of a DateInterval. - if (fFromCalendar != fmt->fFromCalendar && (fFromCalendar == NULL || fmt->fFromCalendar == NULL)) {return FALSE;} - if (fFromCalendar && fmt->fFromCalendar && !fFromCalendar->isEquivalentTo(*fmt->fFromCalendar)) {return FALSE;} - - if (fToCalendar != fmt->fToCalendar && (fToCalendar == NULL || fmt->fToCalendar == NULL)) {return FALSE;} - if (fToCalendar && fmt->fToCalendar && !fToCalendar->isEquivalentTo(*fmt->fToCalendar)) {return FALSE;} } + // note: fFromCalendar and fToCalendar hold no persistent state, and therefore do not participate in operator ==. + // fDateFormat has the master calendar for the DateIntervalFormat. if (fSkeleton != fmt->fSkeleton) {return FALSE;} if (fDatePattern != fmt->fDatePattern && (fDatePattern == NULL || fmt->fDatePattern == NULL)) {return FALSE;} if (fDatePattern && fmt->fDatePattern && (*fDatePattern != *fmt->fDatePattern)) {return FALSE;} @@ -657,27 +655,22 @@ DateIntervalFormat::initializePattern(UErrorCode& status) { // with the time interval. // The date/time pattern ( such as {0} {1} ) is saved in // calendar, that is why need to get the CalendarData here. - CalendarData* calData = new CalendarData(locale, NULL, status); - if ( U_FAILURE(status) ) { - delete calData; - return; - } - if ( calData == NULL ) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } + LocalUResourceBundlePointer dateTimePatternsRes(ures_open(NULL, locale.getBaseName(), &status)); + ures_getByKey(dateTimePatternsRes.getAlias(), gCalendarTag, + dateTimePatternsRes.getAlias(), &status); + ures_getByKeyWithFallback(dateTimePatternsRes.getAlias(), gGregorianTag, + dateTimePatternsRes.getAlias(), &status); + ures_getByKeyWithFallback(dateTimePatternsRes.getAlias(), gDateTimePatternsTag, + dateTimePatternsRes.getAlias(), &status); - const UResourceBundle* dateTimePatternsRes = calData->getByKey( - gDateTimePatternsTag, status); int32_t dateTimeFormatLength; const UChar* dateTimeFormat = ures_getStringByIndex( - dateTimePatternsRes, + dateTimePatternsRes.getAlias(), (int32_t)DateFormat::kDateTime, &dateTimeFormatLength, &status); if ( U_SUCCESS(status) && dateTimeFormatLength >= 3 ) { fDateTimeFormat = new UnicodeString(dateTimeFormat, dateTimeFormatLength); } - delete calData; } UBool found = setSeparateDateTimePtn(normalizedDateSkeleton, @@ -1274,11 +1267,11 @@ DateIntervalFormat::splitPatternInto2Part(const UnicodeString& intervalPattern) } count = 0; } - if (ch == '\'') { + if (ch == 0x0027 /*'*/) { // Consecutive single quotes are a single quote literal, // either outside of quotes or between quotes if ((i+1) < intervalPattern.length() && - intervalPattern.charAt(i+1) == '\'') { + intervalPattern.charAt(i+1) == 0x0027 /*'*/) { ++i; } else { inQuote = ! inQuote; @@ -1478,10 +1471,10 @@ DateIntervalFormat::adjustFieldWidth(const UnicodeString& inputSkeleton, } count = 0; } - if (ch == '\'') { + if (ch == 0x0027 /*'*/) { // Consecutive single quotes are a single quote literal, // either outside of quotes or between quotes - if ((i+1) < adjustedPtn.length() && adjustedPtn.charAt(i+1) == '\'') { + if ((i+1) < adjustedPtn.length() && adjustedPtn.charAt(i+1) == 0x0027 /* ' */) { ++i; } else { inQuote = ! inQuote; diff --git a/deps/icu-small/source/i18n/dtitvinf.cpp b/deps/icu-small/source/i18n/dtitvinf.cpp index 4553159e6c5d81..07129db928b31a 100644 --- a/deps/icu-small/source/i18n/dtitvinf.cpp +++ b/deps/icu-small/source/i18n/dtitvinf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************************* * Copyright (C) 2008-2016, International Business Machines Corporation and * others. All Rights Reserved. @@ -222,131 +224,83 @@ static const UChar PATH_SUFFIX[] = {SOLIDUS, LOW_I, LOW_N, LOW_T, LOW_E, LOW_R, /** * Sink for enumerating all of the date interval skeletons. - * Contains inner sink structs, each one corresponding to a type of resource table. - * The outer struct finds the dateInterval table or an alias. */ -struct DateIntervalSink : public ResourceTableSink { +struct DateIntervalInfo::DateIntervalSink : public ResourceSink { - /** - * Sink to handle each skeleton table. - */ - struct SkeletonSink : public ResourceTableSink { - SkeletonSink(DateIntervalSink &sink) : outer(sink) {} - virtual ~SkeletonSink(); - - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t, UErrorCode &errorCode) { - if (U_SUCCESS(errorCode)) { - outer.currentSkeleton = key; - return &outer.patternSink; - } - return NULL; - } - - DateIntervalSink &outer; - } skeletonSink; - - /** - * Sink to store the date interval pattern for each skeleton pattern character. - */ - struct PatternSink : public ResourceTableSink { - PatternSink(DateIntervalSink &sink) : outer(sink) {} - virtual ~PatternSink(); - - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - - // Process the key - UCalendarDateFields calendarField = validateAndProcessPatternLetter(key); - - // If the calendar field has a valid value - if (calendarField < UCAL_FIELD_COUNT) { - // Set the interval pattern - setIntervalPatternIfAbsent(calendarField, value, errorCode); - } else { - errorCode = U_INVALID_FORMAT_ERROR; - } - } - - UCalendarDateFields validateAndProcessPatternLetter(const char *patternLetter) { - // Check that patternLetter is just one letter - char c0; - if ((c0 = patternLetter[0]) != 0 && patternLetter[1] == 0) { - // Check that the pattern letter is accepted - if (c0 == 'y') { - return UCAL_YEAR; - } else if (c0 == 'M') { - return UCAL_MONTH; - } else if (c0 == 'd') { - return UCAL_DATE; - } else if (c0 == 'a') { - return UCAL_AM_PM; - } else if (c0 == 'h' || c0 == 'H') { - return UCAL_HOUR; - } else if (c0 == 'm') { - return UCAL_MINUTE; - }// TODO(ticket:12190): Why icu4c doesn't accept the calendar field "s" but icu4j does? - } - return UCAL_FIELD_COUNT; - } - - /** - * Stores the interval pattern for the current skeleton in the internal data structure - * if it's not present. - */ - void setIntervalPatternIfAbsent(UCalendarDateFields lrgDiffCalUnit, - const ResourceValue &value, UErrorCode &errorCode) { - // Check if the pattern has already been stored on the data structure - DateIntervalInfo::IntervalPatternIndex index = - outer.dateIntervalInfo.calendarFieldToIntervalIndex(lrgDiffCalUnit, errorCode); - if (U_FAILURE(errorCode)) { return; } - - UnicodeString skeleton(outer.currentSkeleton, -1, US_INV); - UnicodeString* patternsOfOneSkeleton = - (UnicodeString*)(outer.dateIntervalInfo.fIntervalPatterns->get(skeleton)); - - if (patternsOfOneSkeleton == NULL || patternsOfOneSkeleton[index].isEmpty()) { - UnicodeString pattern = value.getUnicodeString(errorCode); - outer.dateIntervalInfo.setIntervalPatternInternally(skeleton, lrgDiffCalUnit, - pattern, errorCode); - } - } - - DateIntervalSink &outer; - } patternSink; + // Output data + DateIntervalInfo &dateIntervalInfo; + // Next calendar type + UnicodeString nextCalendarType; DateIntervalSink(DateIntervalInfo &diInfo, const char *currentCalendarType) - : skeletonSink(*this), patternSink(*this), dateIntervalInfo(diInfo), - nextCalendarType(currentCalendarType, -1, US_INV), currentSkeleton(NULL) { } + : dateIntervalInfo(diInfo), nextCalendarType(currentCalendarType, -1, US_INV) { } virtual ~DateIntervalSink(); - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - // Check if it's an alias of intervalFormats - if (U_FAILURE(errorCode) || value.getType() != URES_ALIAS - || uprv_strcmp(key, gIntervalDateTimePatternTag) != 0) { - return; - } + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } - // Get the calendar type for the alias path. - const UnicodeString &aliasPath = value.getAliasUnicodeString(errorCode); + // Iterate over all the calendar entries and only pick the 'intervalFormats' table. + ResourceTable dateIntervalData = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } + for (int32_t i = 0; dateIntervalData.getKeyAndValue(i, key, value); i++) { + if (uprv_strcmp(key, gIntervalDateTimePatternTag) != 0) { + continue; + } - nextCalendarType.remove(); - getCalendarTypeFromPath(aliasPath, nextCalendarType, errorCode); + // Handle aliases and tables. Ignore the rest. + if (value.getType() == URES_ALIAS) { + // Get the calendar type for the alias path. + const UnicodeString &aliasPath = value.getAliasUnicodeString(errorCode); + if (U_FAILURE(errorCode)) { return; } - if (U_FAILURE(errorCode)) { - resetNextCalendarType(); + nextCalendarType.remove(); + getCalendarTypeFromPath(aliasPath, nextCalendarType, errorCode); + + if (U_FAILURE(errorCode)) { + resetNextCalendarType(); + } + break; + + } else if (value.getType() == URES_TABLE) { + // Iterate over all the skeletons in the 'intervalFormat' table. + ResourceTable skeletonData = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t j = 0; skeletonData.getKeyAndValue(j, key, value); j++) { + if (value.getType() == URES_TABLE) { + // Process the skeleton + processSkeletonTable(key, value, errorCode); + if (U_FAILURE(errorCode)) { return; } + } + } + break; + } } } - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t, UErrorCode &errorCode) { - // Check if it's the intervalFormat table - if (U_SUCCESS(errorCode) && uprv_strcmp(key, gIntervalDateTimePatternTag) == 0) { - return &skeletonSink; + /** + * Processes the patterns for a skeleton table + */ + void processSkeletonTable(const char *key, ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + + // Iterate over all the patterns in the current skeleton table + const char *currentSkeleton = key; + ResourceTable patternData = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t k = 0; patternData.getKeyAndValue(k, key, value); k++) { + if (value.getType() == URES_STRING) { + // Process the key + UCalendarDateFields calendarField = validateAndProcessPatternLetter(key); + + // If the calendar field has a valid value + if (calendarField < UCAL_FIELD_COUNT) { + // Set the interval pattern + setIntervalPatternIfAbsent(currentSkeleton, calendarField, value, errorCode); + if (U_FAILURE(errorCode)) { return; } + } + } } - return NULL; } /** @@ -364,6 +318,53 @@ struct DateIntervalSink : public ResourceTableSink { path.extractBetween(PATH_PREFIX_LENGTH, path.length() - PATH_SUFFIX_LENGTH, calendarType); } + /** + * Validates and processes the pattern letter + */ + UCalendarDateFields validateAndProcessPatternLetter(const char *patternLetter) { + // Check that patternLetter is just one letter + char c0; + if ((c0 = patternLetter[0]) != 0 && patternLetter[1] == 0) { + // Check that the pattern letter is accepted + if (c0 == 'y') { + return UCAL_YEAR; + } else if (c0 == 'M') { + return UCAL_MONTH; + } else if (c0 == 'd') { + return UCAL_DATE; + } else if (c0 == 'a') { + return UCAL_AM_PM; + } else if (c0 == 'h' || c0 == 'H') { + return UCAL_HOUR; + } else if (c0 == 'm') { + return UCAL_MINUTE; + }// TODO(ticket:12190): Why icu4c doesn't accept the calendar field "s" but icu4j does? + } + return UCAL_FIELD_COUNT; + } + + /** + * Stores the interval pattern for the current skeleton in the internal data structure + * if it's not present. + */ + void setIntervalPatternIfAbsent(const char *currentSkeleton, UCalendarDateFields lrgDiffCalUnit, + const ResourceValue &value, UErrorCode &errorCode) { + // Check if the pattern has already been stored on the data structure + IntervalPatternIndex index = + dateIntervalInfo.calendarFieldToIntervalIndex(lrgDiffCalUnit, errorCode); + if (U_FAILURE(errorCode)) { return; } + + UnicodeString skeleton(currentSkeleton, -1, US_INV); + UnicodeString* patternsOfOneSkeleton = + (UnicodeString*)(dateIntervalInfo.fIntervalPatterns->get(skeleton)); + + if (patternsOfOneSkeleton == NULL || patternsOfOneSkeleton[index].isEmpty()) { + UnicodeString pattern = value.getUnicodeString(errorCode); + dateIntervalInfo.setIntervalPatternInternally(skeleton, lrgDiffCalUnit, + pattern, errorCode); + } + } + const UnicodeString &getNextCalendarType() { return nextCalendarType; } @@ -371,22 +372,10 @@ struct DateIntervalSink : public ResourceTableSink { void resetNextCalendarType() { nextCalendarType.setToBogus(); } - - - // Output data - DateIntervalInfo &dateIntervalInfo; - - // Next calendar type - UnicodeString nextCalendarType; - - // Current skeleton table being enumerated - const char *currentSkeleton; }; // Virtual destructors must be defined out of line. -DateIntervalSink::SkeletonSink::~SkeletonSink() {} -DateIntervalSink::PatternSink::~PatternSink() {} -DateIntervalSink::~DateIntervalSink() {} +DateIntervalInfo::DateIntervalSink::~DateIntervalSink() {} @@ -472,7 +461,7 @@ DateIntervalInfo::initializeData(const Locale& locale, UErrorCode& status) sink.resetNextCalendarType(); // Get all resources for this calendar type - ures_getAllTableItemsWithFallback(calBundle, calType, sink, status); + ures_getAllItemsWithFallback(calBundle, calType, sink, status); } } } diff --git a/deps/icu-small/source/i18n/dtptngen.cpp b/deps/icu-small/source/i18n/dtptngen.cpp index 2a6b35b51182cc..17e7ec7cde8a21 100644 --- a/deps/icu-small/source/i18n/dtptngen.cpp +++ b/deps/icu-small/source/i18n/dtptngen.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and @@ -31,13 +33,13 @@ #include "cmemory.h" #include "cstring.h" #include "locbased.h" -#include "gregoimp.h" #include "hash.h" #include "uhash.h" #include "uresimp.h" #include "dtptngen_impl.h" #include "ucln_in.h" #include "charstr.h" +#include "uassert.h" #if U_CHARSET_FAMILY==U_EBCDIC_FAMILY /** @@ -221,10 +223,6 @@ static const char* const CLDR_FIELD_NAME[] = { "hour", "minute", "second", "*", "zone" }; -static const char* const Resource_Fields[] = { - "day", "dayperiod", "era", "hour", "minute", "month", "second", "week", - "weekday", "year", "zone", "quarter" }; - // For appendItems static const UChar UDATPG_ItemFormat[]= {0x7B, 0x30, 0x7D, 0x20, 0x251C, 0x7B, 0x32, 0x7D, 0x3A, 0x20, 0x7B, 0x31, 0x7D, 0x2524, 0}; // {0} \u251C{2}: {1}\u2524 @@ -392,12 +390,12 @@ UInitOnce initOnce = U_INITONCE_INITIALIZER; UHashtable *localeToAllowedHourFormatsMap = NULL; // Value deleter for hashmap. -void deleteAllowedHourFormats(void *ptr) { +U_CFUNC void U_CALLCONV deleteAllowedHourFormats(void *ptr) { uprv_free(ptr); } // Close hashmap at cleanup. -UBool allowedHourFormatsCleanup() { +U_CFUNC UBool U_CALLCONV allowedHourFormatsCleanup() { uhash_close(localeToAllowedHourFormatsMap); return TRUE; } @@ -420,11 +418,8 @@ DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) { skipMatcher = NULL; fAvailableFormatKeyHash=NULL; - addCanonicalItems(); + addCanonicalItems(status); addICUPatterns(locale, status); - if (U_FAILURE(status)) { - return; - } addCLDRData(locale, status); setDateTimeFromCalendar(locale, status); setDecimalSymbols(locale, status); @@ -434,80 +429,51 @@ DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) { namespace { -struct AllowedHourFormatsSink : public ResourceTableSink { +struct AllowedHourFormatsSink : public ResourceSink { // Initialize sub-sinks. - AllowedHourFormatsSink() : localeSink(*this), allowedListSink(*this) {} + AllowedHourFormatsSink() {} virtual ~AllowedHourFormatsSink(); - // Entry point. - virtual ResourceTableSink *getOrCreateTableSink(const char *key, int32_t, UErrorCode &status) { - if (U_FAILURE(status)) { return NULL; } - - locale = key; - return &localeSink; - } - - struct LocaleSink : public ResourceTableSink { - AllowedHourFormatsSink &outer; - LocaleSink(AllowedHourFormatsSink &outer) : outer(outer) {} - virtual ~LocaleSink(); - - virtual void put(const char *key, const ResourceValue &value, UErrorCode &status) { - if (U_FAILURE(status)) { return; } - - if (uprv_strcmp(key, "allowed") == 0) { - outer.allowedFormats = static_cast(uprv_malloc(2 * sizeof(int32_t))); - outer.allowedFormatsLength = 1; - if (outer.allowedFormats == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } - outer.allowedFormats[0] = outer.getHourFormatFromUnicodeString( - value.getUnicodeString(status)); - } - } - - virtual ResourceArraySink *getOrCreateArraySink(const char *key, int32_t size, UErrorCode &status) { - if (U_FAILURE(status)) { return NULL; } - - if (uprv_strcmp(key, "allowed") == 0) { - outer.allowedFormats = static_cast(uprv_malloc((size + 1) * sizeof(int32_t))); - outer.allowedFormatsLength = size; - if (outer.allowedFormats == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } else { - return &outer.allowedListSink; + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, + UErrorCode &errorCode) { + ResourceTable timeData = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t i = 0; timeData.getKeyAndValue(i, key, value); ++i) { + const char *regionOrLocale = key; + ResourceTable formatList = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t j = 0; formatList.getKeyAndValue(j, key, value); ++j) { + if (uprv_strcmp(key, "allowed") == 0) { // Ignore "preferred" list. + LocalMemory list; + int32_t length; + if (value.getType() == URES_STRING) { + if (list.allocateInsteadAndReset(2) == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + return; + } + list[0] = getHourFormatFromUnicodeString(value.getUnicodeString(errorCode)); + length = 1; + } + else { + ResourceArray allowedFormats = value.getArray(errorCode); + length = allowedFormats.getSize(); + if (list.allocateInsteadAndReset(length + 1) == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + return; + } + for (int32_t k = 0; k < length; ++k) { + allowedFormats.getValue(k, value); + list[k] = getHourFormatFromUnicodeString(value.getUnicodeString(errorCode)); + } + } + list[length] = ALLOWED_HOUR_FORMAT_UNKNOWN; + uhash_put(localeToAllowedHourFormatsMap, + const_cast(regionOrLocale), list.orphan(), &errorCode); + if (U_FAILURE(errorCode)) { return; } } } - return NULL; - } - - virtual void leave(UErrorCode &status) { - if (U_FAILURE(status) || outer.allowedFormats == NULL) { return; } - - outer.allowedFormats[outer.allowedFormatsLength] = ALLOWED_HOUR_FORMAT_UNKNOWN; - uhash_put(localeToAllowedHourFormatsMap, const_cast(outer.locale), outer.allowedFormats, &status); - outer.allowedFormats = NULL; } - } localeSink; - - struct AllowedListSink : public ResourceArraySink { - AllowedHourFormatsSink &outer; - AllowedListSink(AllowedHourFormatsSink &outer) : outer(outer) {} - virtual ~AllowedListSink(); - - virtual void put(int32_t index, const ResourceValue &value, UErrorCode &status) { - if (U_FAILURE(status)) { return; } - - outer.allowedFormats[index] = outer.getHourFormatFromUnicodeString( - value.getUnicodeString(status)); - } - } allowedListSink; - - const char *locale; - int32_t *allowedFormats; - int32_t allowedFormatsLength; + } AllowedHourFormat getHourFormatFromUnicodeString(UnicodeString s) { if (s.length() == 1) { @@ -527,10 +493,8 @@ struct AllowedHourFormatsSink : public ResourceTableSink { } // namespace AllowedHourFormatsSink::~AllowedHourFormatsSink() {} -AllowedHourFormatsSink::LocaleSink::~LocaleSink() {} -AllowedHourFormatsSink::AllowedListSink::~AllowedListSink() {} -void DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) { +U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) { if (U_FAILURE(status)) { return; } localeToAllowedHourFormatsMap = uhash_open( uhash_hashChars, uhash_compareChars, NULL, &status); @@ -544,14 +508,13 @@ void DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) { // into the hashmap, store 6 single-value sub-arrays right at the beginning of the // vector (at index enum*2) for easy data sharing, copy sub-arrays into runtime // object. Remember to clean up the vector, too. - ures_getAllTableItemsWithFallback(rb.getAlias(), "timeData", sink, status); + ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status); ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup); } void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErrorCode &status) { if (U_FAILURE(status)) { return; } - const char *localeID = locale.getName(); char maxLocaleID[ULOC_FULLNAME_CAPACITY]; int32_t length = uloc_addLikelySubtags(localeID, maxLocaleID, ULOC_FULLNAME_CAPACITY, &status); @@ -632,41 +595,38 @@ DateTimePatternGenerator::staticGetBaseSkeleton( void DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& status) { + if (U_FAILURE(status)) { return; } UnicodeString dfPattern; UnicodeString conflictingString; DateFormat* df; - if (U_FAILURE(status)) { - return; - } - // Load with ICU patterns for (int32_t i=DateFormat::kFull; i<=DateFormat::kShort; i++) { DateFormat::EStyle style = (DateFormat::EStyle)i; df = DateFormat::createDateInstance(style, locale); SimpleDateFormat* sdf; if (df != NULL && (sdf = dynamic_cast(df)) != NULL) { - addPattern(sdf->toPattern(dfPattern), FALSE, conflictingString, status); + sdf->toPattern(dfPattern); + addPattern(dfPattern, FALSE, conflictingString, status); } // TODO Maybe we should return an error when the date format isn't simple. delete df; - if (U_FAILURE(status)) { - return; - } + if (U_FAILURE(status)) { return; } df = DateFormat::createTimeInstance(style, locale); if (df != NULL && (sdf = dynamic_cast(df)) != NULL) { - addPattern(sdf->toPattern(dfPattern), FALSE, conflictingString, status); - // HACK for hh:ss - if ( i==DateFormat::kMedium ) { - hackPattern = dfPattern; + sdf->toPattern(dfPattern); + addPattern(dfPattern, FALSE, conflictingString, status); + + // TODO: C++ and Java are inconsistent (see #12568). + // C++ uses MEDIUM, but Java uses SHORT. + if ( i==DateFormat::kShort && !dfPattern.isEmpty() ) { + consumeShortTimePattern(dfPattern, status); } } // TODO Maybe we should return an error when the date format isn't simple. delete df; - if (U_FAILURE(status)) { - return; - } + if (U_FAILURE(status)) { return; } } } @@ -721,221 +681,223 @@ DateTimePatternGenerator::hackTimes(const UnicodeString& hackPattern, UErrorCode static const UChar hourFormatChars[] = { CAP_H, LOW_H, CAP_K, LOW_K, 0 }; // HhKk, the hour format characters void -DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& err) { - UResourceBundle *rb, *calTypeBundle, *calBundle; - UResourceBundle *patBundle, *fieldBundle, *fBundle; - UnicodeString rbPattern, value, field; - UnicodeString conflictingPattern; - const char *key=NULL; - int32_t i; - - UnicodeString defaultItemFormat(TRUE, UDATPG_ItemFormat, UPRV_LENGTHOF(UDATPG_ItemFormat)-1); // Read-only alias. - - err = U_ZERO_ERROR; - - fDefaultHourFormatChar = 0; - for (i=0; i0) { - hackTimes(hackPattern, err); - } +// Virtual destructors must be defined out of line. +DateTimePatternGenerator::AppendItemFormatsSink::~AppendItemFormatsSink() {} +DateTimePatternGenerator::AppendItemNamesSink::~AppendItemNamesSink() {} +DateTimePatternGenerator::AvailableFormatsSink::~AvailableFormatsSink() {} + +void +DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCode) { + if (U_FAILURE(errorCode)) { return; } + UnicodeString rbPattern, value, field; + CharString path; + + LocalUResourceBundlePointer rb(ures_open(NULL, locale.getName(), &errorCode)); + if (U_FAILURE(errorCode)) { return; } + + CharString calendarTypeToUse; // to be filled in with the type to use, if all goes well + getCalendarTypeToUse(locale, calendarTypeToUse, errorCode); + if (U_FAILURE(errorCode)) { return; } + + // Local err to ignore resource not found exceptions + UErrorCode err = U_ZERO_ERROR; + + // Load append item formats. + AppendItemFormatsSink appendItemFormatsSink(*this); + path.clear() + .append(DT_DateTimeCalendarTag, errorCode) + .append('/', errorCode) + .append(calendarTypeToUse, errorCode) + .append('/', errorCode) + .append(DT_DateTimeAppendItemsTag, errorCode); // i.e., calendar/xxx/appendItems + if (U_FAILURE(errorCode)) { return; } + ures_getAllItemsWithFallback(rb.getAlias(), path.data(), appendItemFormatsSink, err); + appendItemFormatsSink.fillInMissing(); + + // Load CLDR item names. + err = U_ZERO_ERROR; + AppendItemNamesSink appendItemNamesSink(*this); + ures_getAllItemsWithFallback(rb.getAlias(), DT_DateTimeFieldsTag, appendItemNamesSink, err); + appendItemNamesSink.fillInMissing(); + + // Load the available formats from CLDR. + err = U_ZERO_ERROR; + initHashtable(errorCode); + if (U_FAILURE(errorCode)) { return; } + AvailableFormatsSink availableFormatsSink(*this); + path.clear() + .append(DT_DateTimeCalendarTag, errorCode) + .append('/', errorCode) + .append(calendarTypeToUse, errorCode) + .append('/', errorCode) + .append(DT_DateTimeAvailableFormatsTag, errorCode); // i.e., calendar/xxx/availableFormats + if (U_FAILURE(errorCode)) { return; } + ures_getAllItemsWithFallback(rb.getAlias(), path.data(), availableFormatsSink, err); } void @@ -949,7 +911,6 @@ DateTimePatternGenerator::initHashtable(UErrorCode& err) { } } - void DateTimePatternGenerator::setAppendItemFormat(UDateTimePatternField field, const UnicodeString& value) { appendItemFormats[field] = value; @@ -970,7 +931,12 @@ DateTimePatternGenerator::setAppendItemName(UDateTimePatternField field, const U } const UnicodeString& -DateTimePatternGenerator:: getAppendItemName(UDateTimePatternField field) const { +DateTimePatternGenerator::getAppendItemName(UDateTimePatternField field) const { + return appendItemNames[field]; +} + +UnicodeString& +DateTimePatternGenerator::getMutableAppendItemName(UDateTimePatternField field) { return appendItemNames[field]; } @@ -1096,12 +1062,15 @@ DateTimePatternGenerator::getDecimal() const { } void -DateTimePatternGenerator::addCanonicalItems() { +DateTimePatternGenerator::addCanonicalItems(UErrorCode& status) { + if (U_FAILURE(status)) { return; } UnicodeString conflictingPattern; - UErrorCode status = U_ZERO_ERROR; for (int32_t i=0; i 0) { + addPattern(UnicodeString(Canonical_Items[i]), FALSE, conflictingPattern, status); + } + if (U_FAILURE(status)) { return; } } } @@ -1123,16 +1092,35 @@ DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCo int32_t resStrLen = 0; Calendar* fCalendar = Calendar::createInstance(locale, status); - CalendarData calData(locale, fCalendar?fCalendar->getType():NULL, status); - UResourceBundle *dateTimePatterns = calData.getByKey(DT_DateTimePatternsTag, status); - if (U_FAILURE(status)) return; + if (U_FAILURE(status)) { return; } + + LocalUResourceBundlePointer calData(ures_open(NULL, locale.getBaseName(), &status)); + ures_getByKey(calData.getAlias(), DT_DateTimeCalendarTag, calData.getAlias(), &status); - if (ures_getSize(dateTimePatterns) <= DateFormat::kDateTime) + LocalUResourceBundlePointer dateTimePatterns; + if (fCalendar != NULL && fCalendar->getType() != NULL && *fCalendar->getType() != '\0' + && uprv_strcmp(fCalendar->getType(), DT_DateTimeGregorianTag) != 0) { + dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), fCalendar->getType(), + NULL, &status)); + ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag, + dateTimePatterns.getAlias(), &status); + } + + if (dateTimePatterns.isNull() || status == U_MISSING_RESOURCE_ERROR) { + status = U_ZERO_ERROR; + dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), DT_DateTimeGregorianTag, + dateTimePatterns.orphan(), &status)); + ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag, + dateTimePatterns.getAlias(), &status); + } + if (U_FAILURE(status)) { return; } + + if (ures_getSize(dateTimePatterns.getAlias()) <= DateFormat::kDateTime) { status = U_INVALID_FORMAT_ERROR; return; } - resStr = ures_getStringByIndex(dateTimePatterns, (int32_t)DateFormat::kDateTime, &resStrLen, &status); + resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), (int32_t)DateFormat::kDateTime, &resStrLen, &status); setDateTimeFormat(UnicodeString(TRUE, resStr, resStrLen)); delete fCalendar; @@ -1324,8 +1312,8 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern, } if ((flags & kDTPGFixFractionalSeconds) != 0 && typeValue == UDATPG_SECOND_FIELD) { - UnicodeString newField=dtMatcher->skeleton.original[UDATPG_FRACTIONAL_SECOND_FIELD]; - field = field + decimal + newField; + field += decimal; + dtMatcher->skeleton.original.appendFieldTo(UDATPG_FRACTIONAL_SECOND_FIELD, field); } else if (dtMatcher->skeleton.type[typeValue]!=0) { // Here: // - "reqField" is the field from the originally requested skeleton, with length @@ -1349,9 +1337,9 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern, // a) The length of the field in the skeleton (skelFieldLen) is equal to reqFieldLen. // b) The pattern field is numeric and the skeleton field is not, or vice versa. - UnicodeString reqField = dtMatcher->skeleton.original[typeValue]; - int32_t reqFieldLen = reqField.length(); - if (reqField.charAt(0) == CAP_E && reqFieldLen < 3) + UChar reqFieldChar = dtMatcher->skeleton.original.getFieldChar(typeValue); + int32_t reqFieldLen = dtMatcher->skeleton.original.getFieldLength(typeValue); + if (reqFieldChar == CAP_E && reqFieldLen < 3) reqFieldLen = 3; // 1-3 for E are equivalent to 3 for c,e int32_t adjFieldLen = reqFieldLen; if ( (typeValue==UDATPG_HOUR_FIELD && (options & UDATPG_MATCH_HOUR_FIELD_LENGTH)==0) || @@ -1359,8 +1347,7 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern, (typeValue==UDATPG_SECOND_FIELD && (options & UDATPG_MATCH_SECOND_FIELD_LENGTH)==0) ) { adjFieldLen = field.length(); } else if (specifiedSkeleton) { - UnicodeString skelField = specifiedSkeleton->original[typeValue]; - int32_t skelFieldLen = skelField.length(); + int32_t skelFieldLen = specifiedSkeleton->original.getFieldLength(typeValue); UBool patFieldIsNumeric = (row->type > 0); UBool skelFieldIsNumeric = (specifiedSkeleton->type[typeValue] > 0); if (skelFieldLen == reqFieldLen || (patFieldIsNumeric && !skelFieldIsNumeric) || (skelFieldIsNumeric && !patFieldIsNumeric)) { @@ -1368,9 +1355,12 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern, adjFieldLen = field.length(); } } - UChar c = (typeValue!= UDATPG_HOUR_FIELD && typeValue!= UDATPG_MONTH_FIELD && - typeValue!= UDATPG_WEEKDAY_FIELD && (typeValue!= UDATPG_YEAR_FIELD || reqField.charAt(0)==CAP_Y))? - reqField.charAt(0): field.charAt(0); + UChar c = (typeValue!= UDATPG_HOUR_FIELD + && typeValue!= UDATPG_MONTH_FIELD + && typeValue!= UDATPG_WEEKDAY_FIELD + && (typeValue!= UDATPG_YEAR_FIELD || reqFieldChar==CAP_Y)) + ? reqFieldChar + : field.charAt(0); if (typeValue == UDATPG_HOUR_FIELD && (flags & kDTPGSkeletonUsesCapJ) != 0) { c = fDefaultHourFormatChar; } @@ -1733,36 +1723,19 @@ PatternMap::getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** sp } // find boot entry - UChar baseChar='\0'; - for (int32_t i=0; iskeleton->original[i].compare(skeleton.original[i]) != 0 ) - { - break; - } - } + equal = curElem->skeleton->original == skeleton.original; } else { // called from DateTimePatternGenerator::getRedundants, use baseOriginal - for (i=0; iskeleton->baseOriginal[i].compare(skeleton.baseOriginal[i]) != 0 ) - { - break; - } - } + equal = curElem->skeleton->baseOriginal == skeleton.baseOriginal; } - if (i == UDATPG_FIELD_COUNT) { + if (equal) { if (specifiedSkeletonPtr && curElem->skeletonWasSpecified) { *specifiedSkeletonPtr = curElem->skeleton; } @@ -1866,37 +1839,35 @@ void DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton& skeletonResult) { int32_t i; for (i=0; iset(pattern); for (i=0; i < fp->itemNumber; i++) { - UnicodeString field = fp->items[i]; - if ( field.charAt(0) == LOW_A ) { + const UnicodeString& value = fp->items[i]; + if ( value.charAt(0) == LOW_A ) { continue; // skip 'a' } - if ( fp->isQuoteLiteral(field) ) { + if ( fp->isQuoteLiteral(value) ) { UnicodeString quoteLiteral; fp->getQuoteLiteral(quoteLiteral, &i); continue; } - int32_t canonicalIndex = fp->getCanonicalIndex(field); + int32_t canonicalIndex = fp->getCanonicalIndex(value); if (canonicalIndex < 0 ) { continue; } const dtTypeElem *row = &dtTypes[canonicalIndex]; - int32_t typeValue = row->field; - skeletonResult.original[typeValue]=field; + int32_t field = row->field; + skeletonResult.original.populate(field, value); UChar repeatChar = row->patternChar; int32_t repeatCount = row->minLen; // #7930 removes cap at 3 - while (repeatCount-- > 0) { - skeletonResult.baseOriginal[typeValue] += repeatChar; - } - int16_t subTypeValue = row->type; + skeletonResult.baseOriginal.populate(field, repeatChar, repeatCount); + int16_t subField = row->type; if ( row->type > 0) { - subTypeValue += field.length(); + subField += value.length(); } - skeletonResult.type[typeValue] = subTypeValue; + skeletonResult.type[field] = subField; } copyFrom(skeletonResult); } @@ -1904,23 +1875,13 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton void DateTimeMatcher::getBasePattern(UnicodeString &result ) { result.remove(); // Reset the result first. - for (int32_t i=0; iskeleton.type[i]=newSkeleton.type[i]; - this->skeleton.original[i]=newSkeleton.original[i]; - this->skeleton.baseOriginal[i]=newSkeleton.baseOriginal[i]; - } + skeleton.copyFrom(newSkeleton); } void DateTimeMatcher::copyFrom() { // same as clear - for (int32_t i=0; iskeleton.type[i]=0; - this->skeleton.original[i].remove(); - this->skeleton.baseOriginal[i].remove(); - } + skeleton.clear(); } UBool DateTimeMatcher::equals(const DateTimeMatcher* other) const { - if (other==NULL) { - return FALSE; - } - for (int32_t i=0; iskeleton.original[i]!=other->skeleton.original[i] ) { - return FALSE; - } - } - return TRUE; + if (other==NULL) { return FALSE; } + return skeleton.original == other->skeleton.original; } int32_t @@ -2074,7 +2020,7 @@ FormatParser::getCanonicalIndex(const UnicodeString& s, UBool strict) { } int32_t i = 0; int32_t bestRow = -1; - while (dtTypes[i].patternChar != '\0') { + while (dtTypes[i].patternChar != 0x0000) { if ( dtTypes[i].patternChar != ch ) { ++i; continue; @@ -2246,52 +2192,116 @@ PatternMapIterator::next() { return *matcher; } -PtnSkeleton::PtnSkeleton() { + +SkeletonFields::SkeletonFields() { + // Set initial values to zero + clear(); } +void SkeletonFields::clear() { + uprv_memset(chars, 0, sizeof(chars)); + uprv_memset(lengths, 0, sizeof(lengths)); +} -PtnSkeleton::PtnSkeleton(const PtnSkeleton& other) { - for (int32_t i=0; itype[i]=other.type[i]; - this->original[i]=other.original[i]; - this->baseOriginal[i]=other.baseOriginal[i]; +void SkeletonFields::copyFrom(const SkeletonFields& other) { + uprv_memcpy(chars, other.chars, sizeof(chars)); + uprv_memcpy(lengths, other.lengths, sizeof(lengths)); +} + +void SkeletonFields::clearField(int32_t field) { + chars[field] = 0; + lengths[field] = 0; +} + +UChar SkeletonFields::getFieldChar(int32_t field) const { + return chars[field]; +} + +int32_t SkeletonFields::getFieldLength(int32_t field) const { + return lengths[field]; +} + +void SkeletonFields::populate(int32_t field, const UnicodeString& value) { + populate(field, value.charAt(0), value.length()); +} + +void SkeletonFields::populate(int32_t field, UChar ch, int32_t length) { + chars[field] = (int8_t) ch; + lengths[field] = (int8_t) length; +} + +UBool SkeletonFields::isFieldEmpty(int32_t field) const { + return lengths[field] == 0; +} + +UnicodeString& SkeletonFields::appendTo(UnicodeString& string) const { + for (int32_t i = 0; i < UDATPG_FIELD_COUNT; ++i) { + appendFieldTo(i, string); } + return string; } -UBool -PtnSkeleton::equals(const PtnSkeleton& other) { - for (int32_t i=0; isize() % 3) != 0) { + if (adopt->size() == 0) { + delete adopt; + adopt = NULL; + } else if ((adopt->size() % 3) != 0) { status = U_ILLEGAL_ARGUMENT_ERROR; } else { for (int i = 1; i < adopt->size(); i += 3) { diff --git a/deps/icu-small/source/i18n/funcrepl.cpp b/deps/icu-small/source/i18n/funcrepl.cpp index 7ad5fc20bf5172..683e00a2c8db51 100644 --- a/deps/icu-small/source/i18n/funcrepl.cpp +++ b/deps/icu-small/source/i18n/funcrepl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2012, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/funcrepl.h b/deps/icu-small/source/i18n/funcrepl.h index ff00b55abfbb52..954150cf002c40 100644 --- a/deps/icu-small/source/i18n/funcrepl.h +++ b/deps/icu-small/source/i18n/funcrepl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2011, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/gender.cpp b/deps/icu-small/source/i18n/gender.cpp index 0c2fca576f2982..4847ce95848e1d 100644 --- a/deps/icu-small/source/i18n/gender.cpp +++ b/deps/icu-small/source/i18n/gender.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/gregocal.cpp b/deps/icu-small/source/i18n/gregocal.cpp index b8bd8e293de9ce..959228ab49b31b 100644 --- a/deps/icu-small/source/i18n/gregocal.cpp +++ b/deps/icu-small/source/i18n/gregocal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/gregoimp.cpp b/deps/icu-small/source/i18n/gregoimp.cpp index 6b3277107f5217..fa886f5a6fa037 100644 --- a/deps/icu-small/source/i18n/gregoimp.cpp +++ b/deps/icu-small/source/i18n/gregoimp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2008, International Business Machines @@ -18,10 +20,6 @@ #include "cstring.h" #include "uassert.h" -#if defined(U_DEBUG_CALDATA) -#include -#endif - U_NAMESPACE_BEGIN int32_t ClockMath::floorDivide(int32_t numerator, int32_t denominator) { @@ -157,171 +155,6 @@ int32_t Grego::dayOfWeekInMonth(int32_t year, int32_t month, int32_t dom) { return weekInMonth; } -/* ---- CalendarData ------ */ - -#define U_CALENDAR_KEY "calendar" -#define U_GREGORIAN_KEY "gregorian" -#define U_FORMAT_KEY "format" -#define U_DEFAULT_KEY "default" -#define U_CALENDAR_DATA ((char*)0) - - -// CalendarData::CalendarData(const Locale& loc, UErrorCode& status) -// : fFillin(NULL), fBundle(NULL), fFallback(NULL) { -// initData(loc.getBaseName(), (char*) "???", status); -// } - -CalendarData::CalendarData(const Locale& loc, const char *type, UErrorCode& status) - : fFillin(NULL), fOtherFillin(NULL), fBundle(NULL), fFallback(NULL) { - initData(loc.getBaseName(), type, status); -} - -void CalendarData::initData(const char *locale, const char *type, UErrorCode& status) { - fOtherFillin = ures_open(U_CALENDAR_DATA, locale, &status); - fFillin = ures_getByKey(fOtherFillin, U_CALENDAR_KEY, fFillin, &status); - - if((type != NULL) && - (*type != '\0') && - (uprv_strcmp(type, U_GREGORIAN_KEY))) - { - fBundle = ures_getByKeyWithFallback(fFillin, type, NULL, &status); - fFallback = ures_getByKeyWithFallback(fFillin, U_GREGORIAN_KEY, NULL, &status); - -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: CalendarData(%s, %s, %s) -> main(%p, %s)=%s, fallback(%p, %s)=%s\n", - this, locale, type, u_errorName(status), fBundle, type, fBundle?ures_getLocale(fBundle, &status):"", - fFallback, U_GREGORIAN_KEY, fFallback?ures_getLocale(fFallback, &status):""); -#endif - - } else { - fBundle = ures_getByKeyWithFallback(fFillin, U_GREGORIAN_KEY, NULL, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: CalendarData(%s, %s, %s) -> main(%p, %s)=%s, fallback = NULL\n", - this, locale, type, u_errorName(status), fBundle, U_GREGORIAN_KEY, fBundle?ures_getLocale(fBundle, &status):"" ); -#endif - } -} - -CalendarData::~CalendarData() { - ures_close(fFillin); - ures_close(fBundle); - ures_close(fFallback); - ures_close(fOtherFillin); -} - -UResourceBundle* -CalendarData::getByKey(const char *key, UErrorCode& status) { - if(U_FAILURE(status)) { - return NULL; - } - - if(fBundle) { - fFillin = ures_getByKeyWithFallback(fBundle, key, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s -> %s - from MAIN %s\n",this, key, u_errorName(status), ures_getLocale(fFillin, &status)); -#endif - } - if(fFallback && (status == U_MISSING_RESOURCE_ERROR)) { - status = U_ZERO_ERROR; // retry with fallback (gregorian) - fFillin = ures_getByKeyWithFallback(fFallback, key, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s -> %s - from FALLBACK %s\n",this, key, u_errorName(status), ures_getLocale(fFillin, &status)); -#endif - } - return fFillin; -} - -UResourceBundle* CalendarData::getByKey2(const char *key, const char *subKey, UErrorCode& status) { - if(U_FAILURE(status)) { - return NULL; - } - - if(fBundle) { -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: //\n"); -#endif - fFillin = ures_getByKeyWithFallback(fBundle, key, fFillin, &status); - fOtherFillin = ures_getByKeyWithFallback(fFillin, U_FORMAT_KEY, fOtherFillin, &status); - fFillin = ures_getByKeyWithFallback(fOtherFillin, subKey, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s/format/%s -> %s - from MAIN %s\n", this, key, subKey, u_errorName(status), ures_getLocale(fFillin, &status)); -#endif - } - if(fFallback && (status == U_MISSING_RESOURCE_ERROR)) { - status = U_ZERO_ERROR; // retry with fallback (gregorian) - fFillin = ures_getByKeyWithFallback(fFallback, key, fFillin, &status); - fOtherFillin = ures_getByKeyWithFallback(fFillin, U_FORMAT_KEY, fOtherFillin, &status); - fFillin = ures_getByKeyWithFallback(fOtherFillin, subKey, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s/format/%s -> %s - from FALLBACK %s\n",this, key, subKey, u_errorName(status), ures_getLocale(fFillin,&status)); -#endif - } - -//// handling of 'default' keyword on failure: Commented out for 3.0. -// if((status == U_MISSING_RESOURCE_ERROR) && -// uprv_strcmp(subKey,U_DEFAULT_KEY)) { // avoid recursion -// #if defined (U_DEBUG_CALDATA) -// fprintf(stderr, "%p: - attempting fallback -\n", this); -// fflush(stderr); -// #endif -// UErrorCode subStatus = U_ZERO_ERROR; -// int32_t len; -// char kwBuf[128] = ""; -// const UChar *kw; -// /* fFillin = */ getByKey2(key, U_DEFAULT_KEY, subStatus); -// kw = ures_getString(fFillin, &len, &subStatus); -// if(len>126) { // too big -// len = 0; -// } -// if(U_SUCCESS(subStatus) && (len>0)) { -// u_UCharsToChars(kw, kwBuf, len+1); -// if(*kwBuf && uprv_strcmp(kwBuf,subKey)) { -// #if defined (U_DEBUG_CALDATA) -// fprintf(stderr, "%p: trying %s/format/default -> \"%s\"\n",this, key, kwBuf); -// #endif -// // now try again with the default -// status = U_ZERO_ERROR; -// /* fFillin = */ getByKey2(key, kwBuf, status); -// } -// #if defined (U_DEBUG_CALDATA) -// } else { -// fprintf(stderr, "%p: could not load %s/format/default - fail out (%s)\n",this, key, kwBuf, u_errorName(status)); -// #endif -// } -// } - - return fFillin; -} - -UResourceBundle* CalendarData::getByKey3(const char *key, const char *contextKey, const char *subKey, UErrorCode& status) { - if(U_FAILURE(status)) { - return NULL; - } - - if(fBundle) { -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: //\n"); -#endif - fFillin = ures_getByKeyWithFallback(fBundle, key, fFillin, &status); - fOtherFillin = ures_getByKeyWithFallback(fFillin, contextKey, fOtherFillin, &status); - fFillin = ures_getByKeyWithFallback(fOtherFillin, subKey, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s/%s/%s -> %s - from MAIN %s\n", this, key, contextKey, subKey, u_errorName(status), ures_getLocale(fFillin, &status)); -#endif - } - if(fFallback && (status == U_MISSING_RESOURCE_ERROR)) { - status = U_ZERO_ERROR; // retry with fallback (gregorian) - fFillin = ures_getByKeyWithFallback(fFallback, key, fFillin, &status); - fOtherFillin = ures_getByKeyWithFallback(fFillin, contextKey, fOtherFillin, &status); - fFillin = ures_getByKeyWithFallback(fOtherFillin, subKey, fFillin, &status); -#if defined (U_DEBUG_CALDATA) - fprintf(stderr, "%p: get %s/%s/%s -> %s - from FALLBACK %s\n",this, key, contextKey, subKey, u_errorName(status), ures_getLocale(fFillin,&status)); -#endif - } - - return fFillin; -} - U_NAMESPACE_END #endif diff --git a/deps/icu-small/source/i18n/gregoimp.h b/deps/icu-small/source/i18n/gregoimp.h index b3048946c705db..19e44c7a5a01d2 100644 --- a/deps/icu-small/source/i18n/gregoimp.h +++ b/deps/icu-small/source/i18n/gregoimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2008, International Business Machines @@ -291,71 +293,6 @@ inline int32_t Grego::gregorianShift(int32_t eyear) { return gregShift; } -/** - * This utility class provides convenient access to the data needed for a calendar. - * @internal ICU 3.0 - */ -class CalendarData : public UMemory { -public: - /** - * Construct a CalendarData from the given locale. - * @param loc locale to use. The 'calendar' keyword will be ignored. - * @param type calendar type. NULL indicates the gregorian calendar. - * No default lookup is done. - * @param status error code - */ - CalendarData(const Locale& loc, const char *type, UErrorCode& status); - - /** - * Load data for calendar. Note, this object owns the resources, do NOT call ures_close()! - * The ResourceBundle C++ API should NOT be used because it is too slow for a low level API. - * - * @param key Resource key to data - * @param status Error Status - * @internal - */ - UResourceBundle* getByKey(const char *key, UErrorCode& status); - - /** - * Load data for calendar. Note, this object owns the resources, do NOT call ures_close()! - * There is an implicit key of 'format' - * data is located in: "calendar/key/format/subKey" - * for example, calendar/dayNames/format/abbreviated - * The ResourceBundle C++ API should NOT be used because it is too slow for a low level API. - * - * @param key Resource key to data - * @param subKey Resource key to data - * @param status Error Status - * @internal - */ - UResourceBundle* getByKey2(const char *key, const char *subKey, UErrorCode& status); - - /** - * Load data for calendar. Note, this object owns the resources, do NOT call ures_close()! - * data is located in: "calendar/key/contextKey/subKey" - * for example, calendar/dayNames/standalone/narrow - * The ResourceBundle C++ API should NOT be used because it is too slow for a low level API. - * - * @param key Resource key to data - * @param contextKey Resource key to data - * @param subKey Resource key to data - * @param status Error Status - * @internal - */ - UResourceBundle* getByKey3(const char *key, const char *contextKey, const char *subKey, UErrorCode& status); - - ~CalendarData(); - -private: - void initData(const char *locale, const char *type, UErrorCode& status); - - UResourceBundle *fFillin; - UResourceBundle *fOtherFillin; - UResourceBundle *fBundle; - UResourceBundle *fFallback; - CalendarData(); // Not implemented. -}; - U_NAMESPACE_END #endif // !UCONFIG_NO_FORMATTING diff --git a/deps/icu-small/source/i18n/hebrwcal.cpp b/deps/icu-small/source/i18n/hebrwcal.cpp index 96673e5788d85b..0b329a87158733 100644 --- a/deps/icu-small/source/i18n/hebrwcal.cpp +++ b/deps/icu-small/source/i18n/hebrwcal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2016, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/hebrwcal.h b/deps/icu-small/source/i18n/hebrwcal.h index 4cb2d3ebbfe9d9..0824fb7c784e9e 100644 --- a/deps/icu-small/source/i18n/hebrwcal.h +++ b/deps/icu-small/source/i18n/hebrwcal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/i18n.rc b/deps/icu-small/source/i18n/i18n.rc index cc516ee0a0589e..62fcbc738dd6f3 100644 --- a/deps/icu-small/source/i18n/i18n.rc +++ b/deps/icu-small/source/i18n/i18n.rc @@ -1,6 +1,8 @@ // Do not edit with Microsoft Developer Studio Resource Editor. // It will permanently substitute version numbers that are intended to be // picked up by the pre-processor during each build. +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (c) 2001-2010 International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/i18n/identifier_info.cpp b/deps/icu-small/source/i18n/identifier_info.cpp deleted file mode 100644 index 05882830a5baae..00000000000000 --- a/deps/icu-small/source/i18n/identifier_info.cpp +++ /dev/null @@ -1,310 +0,0 @@ -/* -********************************************************************** -* Copyright (C) 2012-2014, International Business Machines -* Corporation and others. All Rights Reserved. -********************************************************************** -*/ - -#include "unicode/utypes.h" - -#include "unicode/uchar.h" -#include "unicode/utf16.h" - -#include "identifier_info.h" -#include "mutex.h" -#include "scriptset.h" -#include "ucln_in.h" -#include "uvector.h" - -U_NAMESPACE_BEGIN - -static UnicodeSet *ASCII; -static ScriptSet *JAPANESE; -static ScriptSet *CHINESE; -static ScriptSet *KOREAN; -static ScriptSet *CONFUSABLE_WITH_LATIN; -static UInitOnce gIdentifierInfoInitOnce = U_INITONCE_INITIALIZER; - - -U_CDECL_BEGIN -static UBool U_CALLCONV -IdentifierInfo_cleanup(void) { - delete ASCII; - ASCII = NULL; - delete JAPANESE; - JAPANESE = NULL; - delete CHINESE; - CHINESE = NULL; - delete KOREAN; - KOREAN = NULL; - delete CONFUSABLE_WITH_LATIN; - CONFUSABLE_WITH_LATIN = NULL; - gIdentifierInfoInitOnce.reset(); - return TRUE; -} - -static void U_CALLCONV -IdentifierInfo_init(UErrorCode &status) { - ASCII = new UnicodeSet(0, 0x7f); - JAPANESE = new ScriptSet(); - CHINESE = new ScriptSet(); - KOREAN = new ScriptSet(); - CONFUSABLE_WITH_LATIN = new ScriptSet(); - if (ASCII == NULL || JAPANESE == NULL || CHINESE == NULL || KOREAN == NULL - || CONFUSABLE_WITH_LATIN == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } - ASCII->freeze(); - JAPANESE->set(USCRIPT_LATIN, status).set(USCRIPT_HAN, status).set(USCRIPT_HIRAGANA, status) - .set(USCRIPT_KATAKANA, status); - CHINESE->set(USCRIPT_LATIN, status).set(USCRIPT_HAN, status).set(USCRIPT_BOPOMOFO, status); - KOREAN->set(USCRIPT_LATIN, status).set(USCRIPT_HAN, status).set(USCRIPT_HANGUL, status); - CONFUSABLE_WITH_LATIN->set(USCRIPT_CYRILLIC, status).set(USCRIPT_GREEK, status) - .set(USCRIPT_CHEROKEE, status); - ucln_i18n_registerCleanup(UCLN_I18N_IDENTIFIER_INFO, IdentifierInfo_cleanup); -} -U_CDECL_END - - -IdentifierInfo::IdentifierInfo(UErrorCode &status): - fIdentifier(NULL), fRequiredScripts(NULL), fScriptSetSet(NULL), - fCommonAmongAlternates(NULL), fNumerics(NULL), fIdentifierProfile(NULL) { - umtx_initOnce(gIdentifierInfoInitOnce, &IdentifierInfo_init, status); - if (U_FAILURE(status)) { - return; - } - - fIdentifier = new UnicodeString(); - fRequiredScripts = new ScriptSet(); - fScriptSetSet = uhash_open(uhash_hashScriptSet, uhash_compareScriptSet, NULL, &status); - uhash_setKeyDeleter(fScriptSetSet, uhash_deleteScriptSet); - fCommonAmongAlternates = new ScriptSet(); - fNumerics = new UnicodeSet(); - fIdentifierProfile = new UnicodeSet(0, 0x10FFFF); - - if (U_SUCCESS(status) && (fIdentifier == NULL || fRequiredScripts == NULL || fScriptSetSet == NULL || - fCommonAmongAlternates == NULL || fNumerics == NULL || fIdentifierProfile == NULL)) { - status = U_MEMORY_ALLOCATION_ERROR; - } -} - -IdentifierInfo::~IdentifierInfo() { - delete fIdentifier; - delete fRequiredScripts; - uhash_close(fScriptSetSet); - delete fCommonAmongAlternates; - delete fNumerics; - delete fIdentifierProfile; -} - - -IdentifierInfo &IdentifierInfo::clear() { - fRequiredScripts->resetAll(); - uhash_removeAll(fScriptSetSet); - fNumerics->clear(); - fCommonAmongAlternates->resetAll(); - return *this; -} - - -IdentifierInfo &IdentifierInfo::setIdentifierProfile(const UnicodeSet &identifierProfile) { - *fIdentifierProfile = identifierProfile; - return *this; -} - - -const UnicodeSet &IdentifierInfo::getIdentifierProfile() const { - return *fIdentifierProfile; -} - - -IdentifierInfo &IdentifierInfo::setIdentifier(const UnicodeString &identifier, UErrorCode &status) { - if (U_FAILURE(status)) { - return *this; - } - *fIdentifier = identifier; - clear(); - ScriptSet scriptsForCP; - UChar32 cp; - for (int32_t i = 0; i < identifier.length(); i += U16_LENGTH(cp)) { - cp = identifier.char32At(i); - // Store a representative character for each kind of decimal digit - if (u_charType(cp) == U_DECIMAL_DIGIT_NUMBER) { - // Just store the zero character as a representative for comparison. Unicode guarantees it is cp - value - fNumerics->add(cp - (UChar32)u_getNumericValue(cp)); - } - UScriptCode extensions[500]; - int32_t extensionsCount = uscript_getScriptExtensions(cp, extensions, UPRV_LENGTHOF(extensions), &status); - if (U_FAILURE(status)) { - return *this; - } - scriptsForCP.resetAll(); - for (int32_t j=0; jUnion(scriptsForCP); - break; - default: - if (!fRequiredScripts->intersects(scriptsForCP) - && !uhash_geti(fScriptSetSet, &scriptsForCP)) { - // If the set hasn't been added already, add it - // (Add a copy, fScriptSetSet takes ownership of the copy.) - uhash_puti(fScriptSetSet, new ScriptSet(scriptsForCP), 1, &status); - } - break; - } - } - // Now make a final pass through ScriptSetSet to remove alternates that came before singles. - // [Kana], [Kana Hira] => [Kana] - // This is relatively infrequent, so doesn't have to be optimized. - // We also compute any commonalities among the alternates. - if (uhash_count(fScriptSetSet) > 0) { - fCommonAmongAlternates->setAll(); - for (int32_t it = UHASH_FIRST;;) { - const UHashElement *nextHashEl = uhash_nextElement(fScriptSetSet, &it); - if (nextHashEl == NULL) { - break; - } - ScriptSet *next = static_cast(nextHashEl->key.pointer); - // [Kana], [Kana Hira] => [Kana] - if (fRequiredScripts->intersects(*next)) { - uhash_removeElement(fScriptSetSet, nextHashEl); - } else { - fCommonAmongAlternates->intersect(*next); - // [[Arab Syrc Thaa]; [Arab Syrc]] => [[Arab Syrc]] - for (int32_t otherIt = UHASH_FIRST;;) { - const UHashElement *otherHashEl = uhash_nextElement(fScriptSetSet, &otherIt); - if (otherHashEl == NULL) { - break; - } - ScriptSet *other = static_cast(otherHashEl->key.pointer); - if (next != other && next->contains(*other)) { - uhash_removeElement(fScriptSetSet, nextHashEl); - break; - } - } - } - } - } - if (uhash_count(fScriptSetSet) == 0) { - fCommonAmongAlternates->resetAll(); - } - return *this; -} - - -const UnicodeString *IdentifierInfo::getIdentifier() const { - return fIdentifier; -} - -const ScriptSet *IdentifierInfo::getScripts() const { - return fRequiredScripts; -} - -const UHashtable *IdentifierInfo::getAlternates() const { - return fScriptSetSet; -} - - -const UnicodeSet *IdentifierInfo::getNumerics() const { - return fNumerics; -} - -const ScriptSet *IdentifierInfo::getCommonAmongAlternates() const { - return fCommonAmongAlternates; -} - -#if !UCONFIG_NO_NORMALIZATION - -URestrictionLevel IdentifierInfo::getRestrictionLevel(UErrorCode &status) const { - if (!fIdentifierProfile->containsAll(*fIdentifier) || getNumerics()->size() > 1) { - return USPOOF_UNRESTRICTIVE; - } - if (ASCII->containsAll(*fIdentifier)) { - return USPOOF_ASCII; - } - // This is a bit tricky. We look at a number of factors. - // The number of scripts in the text. - // Plus 1 if there is some commonality among the alternates (eg [Arab Thaa]; [Arab Syrc]) - // Plus number of alternates otherwise (this only works because we only test cardinality up to 2.) - - // Note: the requiredScripts set omits COMMON and INHERITED; they are taken out at the - // time it is created, in setIdentifier(). - int32_t cardinalityPlus = fRequiredScripts->countMembers() + - (fCommonAmongAlternates->countMembers() == 0 ? uhash_count(fScriptSetSet) : 1); - if (cardinalityPlus < 2) { - return USPOOF_SINGLE_SCRIPT_RESTRICTIVE; - } - if (containsWithAlternates(*JAPANESE, *fRequiredScripts) || containsWithAlternates(*CHINESE, *fRequiredScripts) - || containsWithAlternates(*KOREAN, *fRequiredScripts)) { - return USPOOF_HIGHLY_RESTRICTIVE; - } - if (cardinalityPlus == 2 && - fRequiredScripts->test(USCRIPT_LATIN, status) && - !fRequiredScripts->intersects(*CONFUSABLE_WITH_LATIN)) { - return USPOOF_MODERATELY_RESTRICTIVE; - } - return USPOOF_MINIMALLY_RESTRICTIVE; -} - -#endif /* !UCONFIG_NO_NORMALIZATION */ - -int32_t IdentifierInfo::getScriptCount() const { - // Note: Common and Inherited scripts were removed by setIdentifier(), and do not appear in fRequiredScripts. - int32_t count = fRequiredScripts->countMembers() + - (fCommonAmongAlternates->countMembers() == 0 ? uhash_count(fScriptSetSet) : 1); - return count; -} - - - -UBool IdentifierInfo::containsWithAlternates(const ScriptSet &container, const ScriptSet &containee) const { - if (!container.contains(containee)) { - return FALSE; - } - for (int32_t iter = UHASH_FIRST; ;) { - const UHashElement *hashEl = uhash_nextElement(fScriptSetSet, &iter); - if (hashEl == NULL) { - break; - } - ScriptSet *alternatives = static_cast(hashEl->key.pointer); - if (!container.intersects(*alternatives)) { - return false; - } - } - return true; -} - -UnicodeString &IdentifierInfo::displayAlternates(UnicodeString &dest, const UHashtable *alternates, UErrorCode &status) { - UVector sorted(status); - if (U_FAILURE(status)) { - return dest; - } - for (int32_t pos = UHASH_FIRST; ;) { - const UHashElement *el = uhash_nextElement(alternates, &pos); - if (el == NULL) { - break; - } - ScriptSet *ss = static_cast(el->key.pointer); - sorted.addElement(ss, status); - } - sorted.sort(uhash_compareScriptSet, status); - UnicodeString separator = UNICODE_STRING_SIMPLE("; "); - for (int32_t i=0; i0) { - dest.append(separator); - } - ScriptSet *ss = static_cast(sorted.elementAt(i)); - ss->displayScripts(dest); - } - return dest; -} - -U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/identifier_info.h b/deps/icu-small/source/i18n/identifier_info.h deleted file mode 100644 index 1dee627e1c57bf..00000000000000 --- a/deps/icu-small/source/i18n/identifier_info.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -********************************************************************** -* Copyright (C) 2014, International Business Machines -* Corporation and others. All Rights Reserved. -********************************************************************** -* -* indentifier_info.h -* -* created on: 2013 Jan 7 -* created by: Andy Heninger -*/ - -#ifndef __IDENTIFIER_INFO_H__ -#define __IDENTIFIER_INFO_H__ - -#include "unicode/utypes.h" - -#include "unicode/uniset.h" -#include "unicode/uspoof.h" -#include "uhash.h" - -U_NAMESPACE_BEGIN - -class ScriptSet; - -// TODO(andy): review consistency of reference vs pointer arguments to the funcions. - -/** - * This class analyzes a possible identifier for script and identifier status. Use it by calling setIdentifierProfile - * then setIdentifier. Available methods include: - *
    - *
  1. call getScripts for the specific scripts in the identifier. The identifier contains at least one character in - * each of these. - *
  2. call getAlternates to get cases where a character is not limited to a single script. For example, it could be - * either Katakana or Hiragana. - *
  3. call getCommonAmongAlternates to find out if any scripts are common to all the alternates. - *
  4. call getNumerics to get a representative character (with value zero) for each of the decimal number systems in - * the identifier. - *
  5. call getRestrictionLevel to see what the UTS36 restriction level is. - *
- * - * This is a port from ICU4J of class com.ibm.icu.text.IdentifierInfo - */ -class U_I18N_API IdentifierInfo : public UMemory { - - public: - /** - * Create an identifier info object. Subsequently, call setIdentifier(), etc. - * @internal - */ - IdentifierInfo(UErrorCode &status); - - /** - * Destructor - */ - virtual ~IdentifierInfo(); - - private: - /* Disallow copying for now. Can be added if there's a need. */ - IdentifierInfo(const IdentifierInfo &other); - - public: - - /** - * Set the identifier profile: the characters that are to be allowed in the identifier. - * - * @param identifierProfile the characters that are to be allowed in the identifier - * @return this - * @internal - */ - IdentifierInfo &setIdentifierProfile(const UnicodeSet &identifierProfile); - - /** - * Get the identifier profile: the characters that are to be allowed in the identifier. - * - * @return The characters that are to be allowed in the identifier. - * @internal - */ - const UnicodeSet &getIdentifierProfile() const; - - - /** - * Set an identifier to analyze. Afterwards, call methods like getScripts() - * - * @param identifier the identifier to analyze - * @param status Errorcode, set if errors occur. - * @return this - * @internal - */ - IdentifierInfo &setIdentifier(const UnicodeString &identifier, UErrorCode &status); - - - /** - * Get the identifier that was analyzed. The returned string is owned by the ICU library, - * and must not be deleted by the caller. - * - * @return the identifier that was analyzed. - * @internal - */ - const UnicodeString *getIdentifier() const; - - - /** - * Get the scripts found in the identifiers. - * - * @return the set of explicit scripts. - * @internal - */ - const ScriptSet *getScripts() const; - - /** - * Get the set of alternate scripts found in the identifiers. That is, when a character can be in two scripts, then - * the set consisting of those scripts will be returned. - * - * @return a uhash, with each key being of type (ScriptSet *). - * This is a set, not a map, so the value stored in the uhash is not relevant. - * (It is, in fact, 1). - * Ownership of the uhash and its contents remains with the IndetifierInfo object, - * and remains valid until a new identifer is set or until the object is deleted. - * @internal - */ - const UHashtable *getAlternates() const; - - /** - * Get the representative characters (zeros) for the numerics found in the identifier. - * - * @return the set of explicit scripts. - * @internal - */ - const UnicodeSet *getNumerics() const; - - /** - * Find out which scripts are in common among the alternates. - * - * @return the set of scripts that are in common among the alternates. - * @internal - */ - const ScriptSet *getCommonAmongAlternates() const; - - /** - * Get the number of scripts appearing in the identifier. - * Note: Common and Inherited scripts are omitted from the count. - * Note: Result may be high when the identifier contains characters - * with alternate scripts. The distinction between - * 0, 1 and > 1 will remain valid, however. - * @return the number of scripts. - */ - int32_t getScriptCount() const; - -#if !UCONFIG_NO_NORMALIZATION - - /** - * Find the "tightest" restriction level that the identifier satisfies. - * - * @return the restriction level. - * @internal - */ - URestrictionLevel getRestrictionLevel(UErrorCode &status) const; - -#endif /*!UCONFIG_NO_NORMALIZATION */ - - UnicodeString toString() const; - - /** - * Produce a readable string of alternates. - * - * @param alternates a UHashtable of UScriptSets. - * Keys only, no meaningful values in the UHash. - * @return display form - * @internal - */ - static UnicodeString &displayAlternates(UnicodeString &dest, const UHashtable *alternates, UErrorCode &status); - - private: - - IdentifierInfo & clear(); - UBool containsWithAlternates(const ScriptSet &container, const ScriptSet &containee) const; - - UnicodeString *fIdentifier; - ScriptSet *fRequiredScripts; - UHashtable *fScriptSetSet; - ScriptSet *fCommonAmongAlternates; - UnicodeSet *fNumerics; - UnicodeSet *fIdentifierProfile; -}; - -U_NAMESPACE_END - -#endif // __IDENTIFIER_INFO_H__ diff --git a/deps/icu-small/source/i18n/indiancal.cpp b/deps/icu-small/source/i18n/indiancal.cpp index 722d3adcdc0acf..7964d45312ea4d 100644 --- a/deps/icu-small/source/i18n/indiancal.cpp +++ b/deps/icu-small/source/i18n/indiancal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2003-2014, International Business Machines Corporation * and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/indiancal.h b/deps/icu-small/source/i18n/indiancal.h index 62ff1c78e744b9..fcc21d729bf0aa 100644 --- a/deps/icu-small/source/i18n/indiancal.h +++ b/deps/icu-small/source/i18n/indiancal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 2003-2008, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/inputext.cpp b/deps/icu-small/source/i18n/inputext.cpp index 5c75d5d42cbf8a..4e053aef2ea1ee 100644 --- a/deps/icu-small/source/i18n/inputext.cpp +++ b/deps/icu-small/source/i18n/inputext.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/inputext.h b/deps/icu-small/source/i18n/inputext.h index 12b915a0bdecfa..6a5d253e0568c2 100644 --- a/deps/icu-small/source/i18n/inputext.h +++ b/deps/icu-small/source/i18n/inputext.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2008, International Business Machines diff --git a/deps/icu-small/source/i18n/islamcal.cpp b/deps/icu-small/source/i18n/islamcal.cpp index f343ebd88b69c7..7c2d1b6b98e74c 100644 --- a/deps/icu-small/source/i18n/islamcal.cpp +++ b/deps/icu-small/source/i18n/islamcal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2015, International Business Machines Corporation @@ -734,7 +736,7 @@ int32_t IslamicCalendar::defaultCenturyStartYear() const } -void U_CALLCONV +U_CFUNC void U_CALLCONV IslamicCalendar::initializeSystemDefaultCentury() { // initialize systemDefaultCentury and systemDefaultCenturyYear based diff --git a/deps/icu-small/source/i18n/islamcal.h b/deps/icu-small/source/i18n/islamcal.h index 8597ace92930b6..4e2a1e3d52fe1b 100644 --- a/deps/icu-small/source/i18n/islamcal.h +++ b/deps/icu-small/source/i18n/islamcal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation @@ -417,7 +419,7 @@ class U_I18N_API IslamicCalendar : public Calendar { * are considered to fall within so that its start date is 80 years * before the current time. */ - static void initializeSystemDefaultCentury(void); + static void U_CALLCONV initializeSystemDefaultCentury(void); }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/japancal.cpp b/deps/icu-small/source/i18n/japancal.cpp index e9b5483620ea7d..0c8396f6f8c620 100644 --- a/deps/icu-small/source/i18n/japancal.cpp +++ b/deps/icu-small/source/i18n/japancal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2009,2012,2016 International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/japancal.h b/deps/icu-small/source/i18n/japancal.h index f4c405eba9805a..ab267f81f17271 100644 --- a/deps/icu-small/source/i18n/japancal.h +++ b/deps/icu-small/source/i18n/japancal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2003-2008, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/measfmt.cpp b/deps/icu-small/source/i18n/measfmt.cpp index f8f46a9a95d654..4ac2f7d5ebe768 100644 --- a/deps/icu-small/source/i18n/measfmt.cpp +++ b/deps/icu-small/source/i18n/measfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2016, International Business Machines @@ -39,7 +41,7 @@ #include "standardplural.h" #include "unifiedcache.h" -#define MEAS_UNIT_COUNT 134 +#define MEAS_UNIT_COUNT 138 #define WIDTH_INDEX_COUNT (UMEASFMT_WIDTH_NARROW + 1) U_NAMESPACE_BEGIN @@ -108,6 +110,7 @@ class MeasureFormatCacheData : public SharedObject { UMeasureFormatWidth widthFallback[WIDTH_INDEX_COUNT]; /** Measure unit -> format width -> array of patterns ("{0} meters") (plurals + PER_UNIT_INDEX) */ SimpleFormatter *patterns[MEAS_UNIT_COUNT][WIDTH_INDEX_COUNT][PATTERN_COUNT]; + const UChar* dnams[MEAS_UNIT_COUNT][WIDTH_INDEX_COUNT]; SimpleFormatter perFormatters[WIDTH_INDEX_COUNT]; MeasureFormatCacheData(); @@ -157,6 +160,7 @@ MeasureFormatCacheData::MeasureFormatCacheData() { currencyFormats[i] = NULL; } uprv_memset(patterns, 0, sizeof(patterns)); + uprv_memset(dnams, 0, sizeof(dnams)); integerFormat = NULL; numericDateFormatters = NULL; } @@ -172,6 +176,7 @@ MeasureFormatCacheData::~MeasureFormatCacheData() { } } } + // Note: the contents of 'dnams' are pointers into the resource bundle delete integerFormat; delete numericDateFormatters; } @@ -213,117 +218,135 @@ static const UChar gNarrow[] = { 0x4E, 0x61, 0x72, 0x72, 0x6F, 0x77 }; * C++: Each inner sink class has a reference to the main outer sink. * Java: Use non-static inner classes instead. */ -struct UnitDataSink : public ResourceTableSink { - /** - * Sink for a table of display patterns. For example, - * unitsShort/duration/hour contains other{"{0} hrs"}. - */ - struct UnitPatternSink : public ResourceTableSink { - UnitPatternSink(UnitDataSink &sink) : outer(sink) {} - ~UnitPatternSink(); - - void setFormatterIfAbsent(int32_t index, const ResourceValue &value, - int32_t minPlaceholders, UErrorCode &errorCode) { - SimpleFormatter **patterns = - &outer.cacheData.patterns[outer.unitIndex][outer.width][0]; - if (U_SUCCESS(errorCode) && patterns[index] == NULL) { +struct UnitDataSink : public ResourceSink { + + // Output data. + MeasureFormatCacheData &cacheData; + + // Path to current data. + UMeasureFormatWidth width; + const char *type; + int32_t unitIndex; + + UnitDataSink(MeasureFormatCacheData &outputData) + : cacheData(outputData), + width(UMEASFMT_WIDTH_COUNT), type(NULL), unitIndex(0) {} + ~UnitDataSink(); + + void setFormatterIfAbsent(int32_t index, const ResourceValue &value, + int32_t minPlaceholders, UErrorCode &errorCode) { + SimpleFormatter **patterns = &cacheData.patterns[unitIndex][width][0]; + if (U_SUCCESS(errorCode) && patterns[index] == NULL) { + if (minPlaceholders >= 0) { patterns[index] = new SimpleFormatter( - value.getUnicodeString(errorCode), minPlaceholders, 1, errorCode); - if (U_SUCCESS(errorCode) && patterns[index] == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; - } + value.getUnicodeString(errorCode), minPlaceholders, 1, errorCode); + } + if (U_SUCCESS(errorCode) && patterns[index] == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; } } + } - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - if (uprv_strcmp(key, "dnam") == 0) { - // Skip the unit display name for now. - } else if (uprv_strcmp(key, "per") == 0) { - // For example, "{0}/h". - setFormatterIfAbsent(MeasureFormatCacheData::PER_UNIT_INDEX, value, 1, errorCode); - } else { - // The key must be one of the plural form strings. For example: - // one{"{0} hr"} - // other{"{0} hrs"} - setFormatterIfAbsent(StandardPlural::indexFromString(key, errorCode), value, 0, - errorCode); - } + void setDnamIfAbsent(const ResourceValue &value, UErrorCode& errorCode) { + if (cacheData.dnams[unitIndex][width] == NULL) { + int32_t length; + cacheData.dnams[unitIndex][width] = value.getString(length, errorCode); } - UnitDataSink &outer; - } patternSink; + } /** - * Sink for a table of per-unit tables. For example, + * Consume a display pattern. For example, + * unitsShort/duration/hour contains other{"{0} hrs"}. + */ + void consumePattern(const char *key, const ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + if (uprv_strcmp(key, "dnam") == 0) { + // The display name for the unit in the current width. + setDnamIfAbsent(value, errorCode); + } else if (uprv_strcmp(key, "per") == 0) { + // For example, "{0}/h". + setFormatterIfAbsent(MeasureFormatCacheData::PER_UNIT_INDEX, value, 1, errorCode); + } else { + // The key must be one of the plural form strings. For example: + // one{"{0} hr"} + // other{"{0} hrs"} + setFormatterIfAbsent(StandardPlural::indexFromString(key, errorCode), value, 0, + errorCode); + } + } + + /** + * Consume a table of per-unit tables. For example, * unitsShort/duration contains tables for duration-unit subtypes day & hour. */ - struct UnitSubtypeSink : public ResourceTableSink { - UnitSubtypeSink(UnitDataSink &sink) : outer(sink) {} - ~UnitSubtypeSink(); - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - outer.unitIndex = MeasureUnit::internalGetIndexForTypeAndSubtype(outer.type, key); - if (outer.unitIndex >= 0) { - return &outer.patternSink; + void consumeSubtypeTable(const char *key, ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + unitIndex = MeasureUnit::internalGetIndexForTypeAndSubtype(type, key); + if (unitIndex < 0) { + // TODO: How to handle unexpected data? + // See http://bugs.icu-project.org/trac/ticket/12597 + return; + } + + if (value.getType() == URES_STRING) { + // Units like "coordinate" that don't have plural variants + setFormatterIfAbsent(StandardPlural::OTHER, value, 0, errorCode); + } else if (value.getType() == URES_TABLE) { + // Units that have plural variants + ResourceTable patternTableTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; patternTableTable.getKeyAndValue(i, key, value); ++i) { + consumePattern(key, value, errorCode); } - return NULL; + } else { + // TODO: How to handle unexpected data? + // See http://bugs.icu-project.org/trac/ticket/12597 + return; } - UnitDataSink &outer; - } subtypeSink; + } /** - * Sink for compound x-per-y display pattern. For example, + * Consume compound x-per-y display pattern. For example, * unitsShort/compound/per may be "{0}/{1}". */ - struct UnitCompoundSink : public ResourceTableSink { - UnitCompoundSink(UnitDataSink &sink) : outer(sink) {} - ~UnitCompoundSink(); - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_SUCCESS(errorCode) && uprv_strcmp(key, "per") == 0) { - outer.cacheData.perFormatters[outer.width]. - applyPatternMinMaxArguments(value.getUnicodeString(errorCode), 2, 2, errorCode); - } + void consumeCompoundPattern(const char *key, const ResourceValue &value, UErrorCode &errorCode) { + if (U_SUCCESS(errorCode) && uprv_strcmp(key, "per") == 0) { + cacheData.perFormatters[width]. + applyPatternMinMaxArguments(value.getUnicodeString(errorCode), 2, 2, errorCode); } - UnitDataSink &outer; - } compoundSink; + } /** - * Sink for a table of unit type tables. For example, + * Consume a table of unit type tables. For example, * unitsShort contains tables for area & duration. * It also contains a table for the compound/per pattern. */ - struct UnitTypeSink : public ResourceTableSink { - UnitTypeSink(UnitDataSink &sink) : outer(sink) {} - ~UnitTypeSink(); - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - if (uprv_strcmp(key, "currency") == 0) { - // Skip. - } else if (uprv_strcmp(key, "compound") == 0) { - if (!outer.cacheData.hasPerFormatter(outer.width)) { - return &outer.compoundSink; + void consumeUnitTypesTable(const char *key, ResourceValue &value, UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + if (uprv_strcmp(key, "currency") == 0) { + // Skip. + } else if (uprv_strcmp(key, "compound") == 0) { + if (!cacheData.hasPerFormatter(width)) { + ResourceTable compoundTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; compoundTable.getKeyAndValue(i, key, value); ++i) { + consumeCompoundPattern(key, value, errorCode); } - } else { - outer.type = key; - return &outer.subtypeSink; } - return NULL; + } else { + type = key; + ResourceTable subtypeTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; subtypeTable.getKeyAndValue(i, key, value); ++i) { + consumeSubtypeTable(key, value, errorCode); + } } - UnitDataSink &outer; - } typeSink; + } - UnitDataSink(MeasureFormatCacheData &outputData) - : patternSink(*this), subtypeSink(*this), compoundSink(*this), typeSink(*this), - cacheData(outputData), - width(UMEASFMT_WIDTH_COUNT), type(NULL), unitIndex(0) {} - ~UnitDataSink(); - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { + void consumeAlias(const char *key, const ResourceValue &value, UErrorCode &errorCode) { // Handle aliases like // units:alias{"/LOCALE/unitsShort"} // which should only occur in the root bundle. - if (U_FAILURE(errorCode) || value.getType() != URES_ALIAS) { return; } UMeasureFormatWidth sourceWidth = widthFromKey(key); if (sourceWidth == UMEASFMT_WIDTH_COUNT) { // Alias from something we don't care about. @@ -342,12 +365,15 @@ struct UnitDataSink : public ResourceTableSink { } cacheData.widthFallback[sourceWidth] = targetWidth; } - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode &errorCode) { + + void consumeTable(const char *key, ResourceValue &value, UErrorCode &errorCode) { if (U_SUCCESS(errorCode) && (width = widthFromKey(key)) != UMEASFMT_WIDTH_COUNT) { - return &typeSink; + ResourceTable unitTypesTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; unitTypesTable.getKeyAndValue(i, key, value); ++i) { + consumeUnitTypesTable(key, value, errorCode); + } } - return NULL; } static UMeasureFormatWidth widthFromKey(const char *key) { @@ -382,20 +408,22 @@ struct UnitDataSink : public ResourceTableSink { return UMEASFMT_WIDTH_COUNT; } - // Output data. - MeasureFormatCacheData &cacheData; - - // Path to current data. - UMeasureFormatWidth width; - const char *type; - int32_t unitIndex; + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, + UErrorCode &errorCode) { + // Main entry point to sink + ResourceTable widthsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int i = 0; widthsTable.getKeyAndValue(i, key, value); ++i) { + if (value.getType() == URES_ALIAS) { + consumeAlias(key, value, errorCode); + } else { + consumeTable(key, value, errorCode); + } + } + } }; // Virtual destructors must be defined out of line. -UnitDataSink::UnitPatternSink::~UnitPatternSink() {} -UnitDataSink::UnitSubtypeSink::~UnitSubtypeSink() {} -UnitDataSink::UnitCompoundSink::~UnitCompoundSink() {} -UnitDataSink::UnitTypeSink::~UnitTypeSink() {} UnitDataSink::~UnitDataSink() {} } // namespace @@ -405,7 +433,7 @@ static UBool loadMeasureUnitData( MeasureFormatCacheData &cacheData, UErrorCode &status) { UnitDataSink sink(cacheData); - ures_getAllTableItemsWithFallback(resource, "", sink, status); + ures_getAllItemsWithFallback(resource, "", sink, status); return U_SUCCESS(status); } @@ -484,8 +512,14 @@ const MeasureFormatCacheData *LocaleCacheKey::createObje } for (int32_t i = 0; i < WIDTH_INDEX_COUNT; ++i) { + // NumberFormat::createInstance can erase warning codes from status, so pass it + // a separate status instance + UErrorCode localStatus = U_ZERO_ERROR; result->adoptCurrencyFormat(i, NumberFormat::createInstance( - localeId, currencyStyles[i], status)); + localeId, currencyStyles[i], localStatus)); + if (localStatus != U_ZERO_ERROR) { + status = localStatus; + } if (U_FAILURE(status)) { return NULL; } @@ -795,6 +829,24 @@ UnicodeString &MeasureFormat::formatMeasures( return appendTo; } +UnicodeString MeasureFormat::getUnitDisplayName(const MeasureUnit& unit, UErrorCode& /*status*/) const { + UMeasureFormatWidth width = getRegularWidth(this->width); + const UChar* const* styleToDnam = cache->dnams[unit.getIndex()]; + const UChar* dnam = styleToDnam[width]; + if (dnam == NULL) { + int32_t fallbackWidth = cache->widthFallback[width]; + dnam = styleToDnam[fallbackWidth]; + } + + UnicodeString result; + if (dnam == NULL) { + result.setToBogus(); + } else { + result.setTo(dnam, -1); + } + return result; +} + void MeasureFormat::initMeasureFormat( const Locale &locale, UMeasureFormatWidth w, diff --git a/deps/icu-small/source/i18n/measunit.cpp b/deps/icu-small/source/i18n/measunit.cpp index ad540b5085e36e..a3021b740521fd 100644 --- a/deps/icu-small/source/i18n/measunit.cpp +++ b/deps/icu-small/source/i18n/measunit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2016, International Business Machines @@ -38,20 +40,21 @@ static const int32_t gOffsets[] = { 16, 20, 24, - 284, - 294, - 305, + 28, + 288, + 298, 309, - 315, + 313, 319, - 338, - 339, - 350, - 356, - 361, + 323, + 342, + 343, + 354, + 360, 365, 369, - 394 + 373, + 398 }; static const int32_t gIndexes[] = { @@ -61,20 +64,21 @@ static const int32_t gIndexes[] = { 16, 20, 24, - 24, - 34, - 45, + 28, + 28, + 38, 49, - 55, + 53, 59, - 78, - 79, - 90, - 96, - 101, + 63, + 82, + 83, + 94, + 100, 105, 109, - 134 + 113, + 138 }; // Must be sorted alphabetically. @@ -84,6 +88,7 @@ static const char * const gTypes[] = { "area", "concentr", "consumption", + "coordinate", "currency", "digital", "duration", @@ -126,6 +131,10 @@ static const char * const gSubTypes[] = { "liter-per-kilometer", "mile-per-gallon", "mile-per-gallon-imperial", + "east", + "north", + "south", + "west", "ADP", "AED", "AFA", @@ -500,14 +509,14 @@ static const char * const gSubTypes[] = { // Must be sorted by first value and then second value. static int32_t unitPerUnitToSingleUnit[][4] = { - {326, 296, 16, 0}, - {328, 302, 16, 2}, - {330, 296, 16, 3}, - {330, 383, 4, 2}, - {330, 384, 4, 3}, - {344, 381, 3, 1}, - {347, 11, 15, 4}, - {386, 326, 4, 1} + {330, 300, 17, 0}, + {332, 306, 17, 2}, + {334, 300, 17, 3}, + {334, 387, 4, 2}, + {334, 388, 4, 3}, + {348, 385, 3, 1}, + {351, 11, 16, 4}, + {390, 330, 4, 1} }; MeasureUnit *MeasureUnit::createGForce(UErrorCode &status) { @@ -606,444 +615,460 @@ MeasureUnit *MeasureUnit::createMilePerGallonImperial(UErrorCode &status) { return MeasureUnit::create(4, 3, status); } +MeasureUnit *MeasureUnit::createEast(UErrorCode &status) { + return MeasureUnit::create(5, 0, status); +} + +MeasureUnit *MeasureUnit::createNorth(UErrorCode &status) { + return MeasureUnit::create(5, 1, status); +} + +MeasureUnit *MeasureUnit::createSouth(UErrorCode &status) { + return MeasureUnit::create(5, 2, status); +} + +MeasureUnit *MeasureUnit::createWest(UErrorCode &status) { + return MeasureUnit::create(5, 3, status); +} + MeasureUnit *MeasureUnit::createBit(UErrorCode &status) { - return MeasureUnit::create(6, 0, status); + return MeasureUnit::create(7, 0, status); } MeasureUnit *MeasureUnit::createByte(UErrorCode &status) { - return MeasureUnit::create(6, 1, status); + return MeasureUnit::create(7, 1, status); } MeasureUnit *MeasureUnit::createGigabit(UErrorCode &status) { - return MeasureUnit::create(6, 2, status); + return MeasureUnit::create(7, 2, status); } MeasureUnit *MeasureUnit::createGigabyte(UErrorCode &status) { - return MeasureUnit::create(6, 3, status); + return MeasureUnit::create(7, 3, status); } MeasureUnit *MeasureUnit::createKilobit(UErrorCode &status) { - return MeasureUnit::create(6, 4, status); + return MeasureUnit::create(7, 4, status); } MeasureUnit *MeasureUnit::createKilobyte(UErrorCode &status) { - return MeasureUnit::create(6, 5, status); + return MeasureUnit::create(7, 5, status); } MeasureUnit *MeasureUnit::createMegabit(UErrorCode &status) { - return MeasureUnit::create(6, 6, status); + return MeasureUnit::create(7, 6, status); } MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) { - return MeasureUnit::create(6, 7, status); + return MeasureUnit::create(7, 7, status); } MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) { - return MeasureUnit::create(6, 8, status); + return MeasureUnit::create(7, 8, status); } MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) { - return MeasureUnit::create(6, 9, status); + return MeasureUnit::create(7, 9, status); } MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) { - return MeasureUnit::create(7, 0, status); + return MeasureUnit::create(8, 0, status); } MeasureUnit *MeasureUnit::createDay(UErrorCode &status) { - return MeasureUnit::create(7, 1, status); + return MeasureUnit::create(8, 1, status); } MeasureUnit *MeasureUnit::createHour(UErrorCode &status) { - return MeasureUnit::create(7, 2, status); + return MeasureUnit::create(8, 2, status); } MeasureUnit *MeasureUnit::createMicrosecond(UErrorCode &status) { - return MeasureUnit::create(7, 3, status); + return MeasureUnit::create(8, 3, status); } MeasureUnit *MeasureUnit::createMillisecond(UErrorCode &status) { - return MeasureUnit::create(7, 4, status); + return MeasureUnit::create(8, 4, status); } MeasureUnit *MeasureUnit::createMinute(UErrorCode &status) { - return MeasureUnit::create(7, 5, status); + return MeasureUnit::create(8, 5, status); } MeasureUnit *MeasureUnit::createMonth(UErrorCode &status) { - return MeasureUnit::create(7, 6, status); + return MeasureUnit::create(8, 6, status); } MeasureUnit *MeasureUnit::createNanosecond(UErrorCode &status) { - return MeasureUnit::create(7, 7, status); + return MeasureUnit::create(8, 7, status); } MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) { - return MeasureUnit::create(7, 8, status); + return MeasureUnit::create(8, 8, status); } MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) { - return MeasureUnit::create(7, 9, status); + return MeasureUnit::create(8, 9, status); } MeasureUnit *MeasureUnit::createYear(UErrorCode &status) { - return MeasureUnit::create(7, 10, status); + return MeasureUnit::create(8, 10, status); } MeasureUnit *MeasureUnit::createAmpere(UErrorCode &status) { - return MeasureUnit::create(8, 0, status); + return MeasureUnit::create(9, 0, status); } MeasureUnit *MeasureUnit::createMilliampere(UErrorCode &status) { - return MeasureUnit::create(8, 1, status); + return MeasureUnit::create(9, 1, status); } MeasureUnit *MeasureUnit::createOhm(UErrorCode &status) { - return MeasureUnit::create(8, 2, status); + return MeasureUnit::create(9, 2, status); } MeasureUnit *MeasureUnit::createVolt(UErrorCode &status) { - return MeasureUnit::create(8, 3, status); + return MeasureUnit::create(9, 3, status); } MeasureUnit *MeasureUnit::createCalorie(UErrorCode &status) { - return MeasureUnit::create(9, 0, status); + return MeasureUnit::create(10, 0, status); } MeasureUnit *MeasureUnit::createFoodcalorie(UErrorCode &status) { - return MeasureUnit::create(9, 1, status); + return MeasureUnit::create(10, 1, status); } MeasureUnit *MeasureUnit::createJoule(UErrorCode &status) { - return MeasureUnit::create(9, 2, status); + return MeasureUnit::create(10, 2, status); } MeasureUnit *MeasureUnit::createKilocalorie(UErrorCode &status) { - return MeasureUnit::create(9, 3, status); + return MeasureUnit::create(10, 3, status); } MeasureUnit *MeasureUnit::createKilojoule(UErrorCode &status) { - return MeasureUnit::create(9, 4, status); + return MeasureUnit::create(10, 4, status); } MeasureUnit *MeasureUnit::createKilowattHour(UErrorCode &status) { - return MeasureUnit::create(9, 5, status); + return MeasureUnit::create(10, 5, status); } MeasureUnit *MeasureUnit::createGigahertz(UErrorCode &status) { - return MeasureUnit::create(10, 0, status); + return MeasureUnit::create(11, 0, status); } MeasureUnit *MeasureUnit::createHertz(UErrorCode &status) { - return MeasureUnit::create(10, 1, status); + return MeasureUnit::create(11, 1, status); } MeasureUnit *MeasureUnit::createKilohertz(UErrorCode &status) { - return MeasureUnit::create(10, 2, status); + return MeasureUnit::create(11, 2, status); } MeasureUnit *MeasureUnit::createMegahertz(UErrorCode &status) { - return MeasureUnit::create(10, 3, status); + return MeasureUnit::create(11, 3, status); } MeasureUnit *MeasureUnit::createAstronomicalUnit(UErrorCode &status) { - return MeasureUnit::create(11, 0, status); + return MeasureUnit::create(12, 0, status); } MeasureUnit *MeasureUnit::createCentimeter(UErrorCode &status) { - return MeasureUnit::create(11, 1, status); + return MeasureUnit::create(12, 1, status); } MeasureUnit *MeasureUnit::createDecimeter(UErrorCode &status) { - return MeasureUnit::create(11, 2, status); + return MeasureUnit::create(12, 2, status); } MeasureUnit *MeasureUnit::createFathom(UErrorCode &status) { - return MeasureUnit::create(11, 3, status); + return MeasureUnit::create(12, 3, status); } MeasureUnit *MeasureUnit::createFoot(UErrorCode &status) { - return MeasureUnit::create(11, 4, status); + return MeasureUnit::create(12, 4, status); } MeasureUnit *MeasureUnit::createFurlong(UErrorCode &status) { - return MeasureUnit::create(11, 5, status); + return MeasureUnit::create(12, 5, status); } MeasureUnit *MeasureUnit::createInch(UErrorCode &status) { - return MeasureUnit::create(11, 6, status); + return MeasureUnit::create(12, 6, status); } MeasureUnit *MeasureUnit::createKilometer(UErrorCode &status) { - return MeasureUnit::create(11, 7, status); + return MeasureUnit::create(12, 7, status); } MeasureUnit *MeasureUnit::createLightYear(UErrorCode &status) { - return MeasureUnit::create(11, 8, status); + return MeasureUnit::create(12, 8, status); } MeasureUnit *MeasureUnit::createMeter(UErrorCode &status) { - return MeasureUnit::create(11, 9, status); + return MeasureUnit::create(12, 9, status); } MeasureUnit *MeasureUnit::createMicrometer(UErrorCode &status) { - return MeasureUnit::create(11, 10, status); + return MeasureUnit::create(12, 10, status); } MeasureUnit *MeasureUnit::createMile(UErrorCode &status) { - return MeasureUnit::create(11, 11, status); + return MeasureUnit::create(12, 11, status); } MeasureUnit *MeasureUnit::createMileScandinavian(UErrorCode &status) { - return MeasureUnit::create(11, 12, status); + return MeasureUnit::create(12, 12, status); } MeasureUnit *MeasureUnit::createMillimeter(UErrorCode &status) { - return MeasureUnit::create(11, 13, status); + return MeasureUnit::create(12, 13, status); } MeasureUnit *MeasureUnit::createNanometer(UErrorCode &status) { - return MeasureUnit::create(11, 14, status); + return MeasureUnit::create(12, 14, status); } MeasureUnit *MeasureUnit::createNauticalMile(UErrorCode &status) { - return MeasureUnit::create(11, 15, status); + return MeasureUnit::create(12, 15, status); } MeasureUnit *MeasureUnit::createParsec(UErrorCode &status) { - return MeasureUnit::create(11, 16, status); + return MeasureUnit::create(12, 16, status); } MeasureUnit *MeasureUnit::createPicometer(UErrorCode &status) { - return MeasureUnit::create(11, 17, status); + return MeasureUnit::create(12, 17, status); } MeasureUnit *MeasureUnit::createYard(UErrorCode &status) { - return MeasureUnit::create(11, 18, status); + return MeasureUnit::create(12, 18, status); } MeasureUnit *MeasureUnit::createLux(UErrorCode &status) { - return MeasureUnit::create(12, 0, status); + return MeasureUnit::create(13, 0, status); } MeasureUnit *MeasureUnit::createCarat(UErrorCode &status) { - return MeasureUnit::create(13, 0, status); + return MeasureUnit::create(14, 0, status); } MeasureUnit *MeasureUnit::createGram(UErrorCode &status) { - return MeasureUnit::create(13, 1, status); + return MeasureUnit::create(14, 1, status); } MeasureUnit *MeasureUnit::createKilogram(UErrorCode &status) { - return MeasureUnit::create(13, 2, status); + return MeasureUnit::create(14, 2, status); } MeasureUnit *MeasureUnit::createMetricTon(UErrorCode &status) { - return MeasureUnit::create(13, 3, status); + return MeasureUnit::create(14, 3, status); } MeasureUnit *MeasureUnit::createMicrogram(UErrorCode &status) { - return MeasureUnit::create(13, 4, status); + return MeasureUnit::create(14, 4, status); } MeasureUnit *MeasureUnit::createMilligram(UErrorCode &status) { - return MeasureUnit::create(13, 5, status); + return MeasureUnit::create(14, 5, status); } MeasureUnit *MeasureUnit::createOunce(UErrorCode &status) { - return MeasureUnit::create(13, 6, status); + return MeasureUnit::create(14, 6, status); } MeasureUnit *MeasureUnit::createOunceTroy(UErrorCode &status) { - return MeasureUnit::create(13, 7, status); + return MeasureUnit::create(14, 7, status); } MeasureUnit *MeasureUnit::createPound(UErrorCode &status) { - return MeasureUnit::create(13, 8, status); + return MeasureUnit::create(14, 8, status); } MeasureUnit *MeasureUnit::createStone(UErrorCode &status) { - return MeasureUnit::create(13, 9, status); + return MeasureUnit::create(14, 9, status); } MeasureUnit *MeasureUnit::createTon(UErrorCode &status) { - return MeasureUnit::create(13, 10, status); + return MeasureUnit::create(14, 10, status); } MeasureUnit *MeasureUnit::createGigawatt(UErrorCode &status) { - return MeasureUnit::create(14, 0, status); + return MeasureUnit::create(15, 0, status); } MeasureUnit *MeasureUnit::createHorsepower(UErrorCode &status) { - return MeasureUnit::create(14, 1, status); + return MeasureUnit::create(15, 1, status); } MeasureUnit *MeasureUnit::createKilowatt(UErrorCode &status) { - return MeasureUnit::create(14, 2, status); + return MeasureUnit::create(15, 2, status); } MeasureUnit *MeasureUnit::createMegawatt(UErrorCode &status) { - return MeasureUnit::create(14, 3, status); + return MeasureUnit::create(15, 3, status); } MeasureUnit *MeasureUnit::createMilliwatt(UErrorCode &status) { - return MeasureUnit::create(14, 4, status); + return MeasureUnit::create(15, 4, status); } MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) { - return MeasureUnit::create(14, 5, status); + return MeasureUnit::create(15, 5, status); } MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) { - return MeasureUnit::create(15, 0, status); + return MeasureUnit::create(16, 0, status); } MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) { - return MeasureUnit::create(15, 1, status); + return MeasureUnit::create(16, 1, status); } MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) { - return MeasureUnit::create(15, 2, status); + return MeasureUnit::create(16, 2, status); } MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) { - return MeasureUnit::create(15, 3, status); + return MeasureUnit::create(16, 3, status); } MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) { - return MeasureUnit::create(15, 4, status); + return MeasureUnit::create(16, 4, status); } MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) { - return MeasureUnit::create(16, 0, status); + return MeasureUnit::create(17, 0, status); } MeasureUnit *MeasureUnit::createKnot(UErrorCode &status) { - return MeasureUnit::create(16, 1, status); + return MeasureUnit::create(17, 1, status); } MeasureUnit *MeasureUnit::createMeterPerSecond(UErrorCode &status) { - return MeasureUnit::create(16, 2, status); + return MeasureUnit::create(17, 2, status); } MeasureUnit *MeasureUnit::createMilePerHour(UErrorCode &status) { - return MeasureUnit::create(16, 3, status); + return MeasureUnit::create(17, 3, status); } MeasureUnit *MeasureUnit::createCelsius(UErrorCode &status) { - return MeasureUnit::create(17, 0, status); + return MeasureUnit::create(18, 0, status); } MeasureUnit *MeasureUnit::createFahrenheit(UErrorCode &status) { - return MeasureUnit::create(17, 1, status); + return MeasureUnit::create(18, 1, status); } MeasureUnit *MeasureUnit::createGenericTemperature(UErrorCode &status) { - return MeasureUnit::create(17, 2, status); + return MeasureUnit::create(18, 2, status); } MeasureUnit *MeasureUnit::createKelvin(UErrorCode &status) { - return MeasureUnit::create(17, 3, status); + return MeasureUnit::create(18, 3, status); } MeasureUnit *MeasureUnit::createAcreFoot(UErrorCode &status) { - return MeasureUnit::create(18, 0, status); + return MeasureUnit::create(19, 0, status); } MeasureUnit *MeasureUnit::createBushel(UErrorCode &status) { - return MeasureUnit::create(18, 1, status); + return MeasureUnit::create(19, 1, status); } MeasureUnit *MeasureUnit::createCentiliter(UErrorCode &status) { - return MeasureUnit::create(18, 2, status); + return MeasureUnit::create(19, 2, status); } MeasureUnit *MeasureUnit::createCubicCentimeter(UErrorCode &status) { - return MeasureUnit::create(18, 3, status); + return MeasureUnit::create(19, 3, status); } MeasureUnit *MeasureUnit::createCubicFoot(UErrorCode &status) { - return MeasureUnit::create(18, 4, status); + return MeasureUnit::create(19, 4, status); } MeasureUnit *MeasureUnit::createCubicInch(UErrorCode &status) { - return MeasureUnit::create(18, 5, status); + return MeasureUnit::create(19, 5, status); } MeasureUnit *MeasureUnit::createCubicKilometer(UErrorCode &status) { - return MeasureUnit::create(18, 6, status); + return MeasureUnit::create(19, 6, status); } MeasureUnit *MeasureUnit::createCubicMeter(UErrorCode &status) { - return MeasureUnit::create(18, 7, status); + return MeasureUnit::create(19, 7, status); } MeasureUnit *MeasureUnit::createCubicMile(UErrorCode &status) { - return MeasureUnit::create(18, 8, status); + return MeasureUnit::create(19, 8, status); } MeasureUnit *MeasureUnit::createCubicYard(UErrorCode &status) { - return MeasureUnit::create(18, 9, status); + return MeasureUnit::create(19, 9, status); } MeasureUnit *MeasureUnit::createCup(UErrorCode &status) { - return MeasureUnit::create(18, 10, status); + return MeasureUnit::create(19, 10, status); } MeasureUnit *MeasureUnit::createCupMetric(UErrorCode &status) { - return MeasureUnit::create(18, 11, status); + return MeasureUnit::create(19, 11, status); } MeasureUnit *MeasureUnit::createDeciliter(UErrorCode &status) { - return MeasureUnit::create(18, 12, status); + return MeasureUnit::create(19, 12, status); } MeasureUnit *MeasureUnit::createFluidOunce(UErrorCode &status) { - return MeasureUnit::create(18, 13, status); + return MeasureUnit::create(19, 13, status); } MeasureUnit *MeasureUnit::createGallon(UErrorCode &status) { - return MeasureUnit::create(18, 14, status); + return MeasureUnit::create(19, 14, status); } MeasureUnit *MeasureUnit::createGallonImperial(UErrorCode &status) { - return MeasureUnit::create(18, 15, status); + return MeasureUnit::create(19, 15, status); } MeasureUnit *MeasureUnit::createHectoliter(UErrorCode &status) { - return MeasureUnit::create(18, 16, status); + return MeasureUnit::create(19, 16, status); } MeasureUnit *MeasureUnit::createLiter(UErrorCode &status) { - return MeasureUnit::create(18, 17, status); + return MeasureUnit::create(19, 17, status); } MeasureUnit *MeasureUnit::createMegaliter(UErrorCode &status) { - return MeasureUnit::create(18, 18, status); + return MeasureUnit::create(19, 18, status); } MeasureUnit *MeasureUnit::createMilliliter(UErrorCode &status) { - return MeasureUnit::create(18, 19, status); + return MeasureUnit::create(19, 19, status); } MeasureUnit *MeasureUnit::createPint(UErrorCode &status) { - return MeasureUnit::create(18, 20, status); + return MeasureUnit::create(19, 20, status); } MeasureUnit *MeasureUnit::createPintMetric(UErrorCode &status) { - return MeasureUnit::create(18, 21, status); + return MeasureUnit::create(19, 21, status); } MeasureUnit *MeasureUnit::createQuart(UErrorCode &status) { - return MeasureUnit::create(18, 22, status); + return MeasureUnit::create(19, 22, status); } MeasureUnit *MeasureUnit::createTablespoon(UErrorCode &status) { - return MeasureUnit::create(18, 23, status); + return MeasureUnit::create(19, 23, status); } MeasureUnit *MeasureUnit::createTeaspoon(UErrorCode &status) { - return MeasureUnit::create(18, 24, status); + return MeasureUnit::create(19, 24, status); } // End generated code diff --git a/deps/icu-small/source/i18n/measure.cpp b/deps/icu-small/source/i18n/measure.cpp index eb610e6f8fde46..3459e71b8077ca 100644 --- a/deps/icu-small/source/i18n/measure.cpp +++ b/deps/icu-small/source/i18n/measure.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/msgfmt.cpp b/deps/icu-small/source/i18n/msgfmt.cpp index 1fe2c8d622e04b..4658528050cfe1 100644 --- a/deps/icu-small/source/i18n/msgfmt.cpp +++ b/deps/icu-small/source/i18n/msgfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/msgfmt_impl.h b/deps/icu-small/source/i18n/msgfmt_impl.h index 0f56dee885ad53..80a07dc1ea28f6 100644 --- a/deps/icu-small/source/i18n/msgfmt_impl.h +++ b/deps/icu-small/source/i18n/msgfmt_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2008, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/name2uni.cpp b/deps/icu-small/source/i18n/name2uni.cpp index 45705e676a4014..acd9c0af997ada 100644 --- a/deps/icu-small/source/i18n/name2uni.cpp +++ b/deps/icu-small/source/i18n/name2uni.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/name2uni.h b/deps/icu-small/source/i18n/name2uni.h index 1324ec3e8d273d..2ba4c8f792b357 100644 --- a/deps/icu-small/source/i18n/name2uni.h +++ b/deps/icu-small/source/i18n/name2uni.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/nfrlist.h b/deps/icu-small/source/i18n/nfrlist.h index 95e837883851ca..65b21c6b1dbaac 100644 --- a/deps/icu-small/source/i18n/nfrlist.h +++ b/deps/icu-small/source/i18n/nfrlist.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/nfrs.cpp b/deps/icu-small/source/i18n/nfrs.cpp index 88f903cf201b76..5cbd33d0e2ef8b 100644 --- a/deps/icu-small/source/i18n/nfrs.cpp +++ b/deps/icu-small/source/i18n/nfrs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nfrs.h b/deps/icu-small/source/i18n/nfrs.h index 47c17e6fb5f502..b06c2b2215ad54 100644 --- a/deps/icu-small/source/i18n/nfrs.h +++ b/deps/icu-small/source/i18n/nfrs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nfrule.cpp b/deps/icu-small/source/i18n/nfrule.cpp index b162b197abe866..100a46490daca0 100644 --- a/deps/icu-small/source/i18n/nfrule.cpp +++ b/deps/icu-small/source/i18n/nfrule.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nfrule.h b/deps/icu-small/source/i18n/nfrule.h index b4bc2cf28fbb7c..5424b968a1fd90 100644 --- a/deps/icu-small/source/i18n/nfrule.h +++ b/deps/icu-small/source/i18n/nfrule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nfsubs.cpp b/deps/icu-small/source/i18n/nfsubs.cpp index ea570dc453c8f2..58039c8bacd570 100644 --- a/deps/icu-small/source/i18n/nfsubs.cpp +++ b/deps/icu-small/source/i18n/nfsubs.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nfsubs.h b/deps/icu-small/source/i18n/nfsubs.h index e7a950a2dd0127..4fb0c06caf600e 100644 --- a/deps/icu-small/source/i18n/nfsubs.h +++ b/deps/icu-small/source/i18n/nfsubs.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/nortrans.cpp b/deps/icu-small/source/i18n/nortrans.cpp index 038a6836c3bca2..da0206776ced93 100644 --- a/deps/icu-small/source/i18n/nortrans.cpp +++ b/deps/icu-small/source/i18n/nortrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/nortrans.h b/deps/icu-small/source/i18n/nortrans.h index 634f534f7d410e..79d1be3b072179 100644 --- a/deps/icu-small/source/i18n/nortrans.h +++ b/deps/icu-small/source/i18n/nortrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2010, International Business Machines diff --git a/deps/icu-small/source/i18n/nultrans.cpp b/deps/icu-small/source/i18n/nultrans.cpp index 820c43d07e9fe4..600873e3735f41 100644 --- a/deps/icu-small/source/i18n/nultrans.cpp +++ b/deps/icu-small/source/i18n/nultrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2000-2005, International Business Machines diff --git a/deps/icu-small/source/i18n/nultrans.h b/deps/icu-small/source/i18n/nultrans.h index 699c323f8c6e06..a9856bde5b2b2e 100644 --- a/deps/icu-small/source/i18n/nultrans.h +++ b/deps/icu-small/source/i18n/nultrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2000-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/numfmt.cpp b/deps/icu-small/source/i18n/numfmt.cpp index 3f10bbf1b44e40..c00955a781a22e 100644 --- a/deps/icu-small/source/i18n/numfmt.cpp +++ b/deps/icu-small/source/i18n/numfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and @@ -450,7 +452,7 @@ NumberFormat::format(int64_t number, // XXXFormat::format(double UnicodeString& -NumberFormat::format(const StringPiece &decimalNum, +NumberFormat::format(StringPiece decimalNum, UnicodeString& toAppendTo, FieldPositionIterator* fpi, UErrorCode& status) const @@ -683,7 +685,7 @@ NumberFormat::parseObject(const UnicodeString& source, UnicodeString& NumberFormat::format(double number, UnicodeString& appendTo) const { - FieldPosition pos(0); + FieldPosition pos(FieldPosition::DONT_CARE); return format(number, appendTo, pos); } @@ -693,7 +695,7 @@ NumberFormat::format(double number, UnicodeString& appendTo) const UnicodeString& NumberFormat::format(int32_t number, UnicodeString& appendTo) const { - FieldPosition pos(0); + FieldPosition pos(FieldPosition::DONT_CARE); return format(number, appendTo, pos); } @@ -703,7 +705,7 @@ NumberFormat::format(int32_t number, UnicodeString& appendTo) const UnicodeString& NumberFormat::format(int64_t number, UnicodeString& appendTo) const { - FieldPosition pos(0); + FieldPosition pos(FieldPosition::DONT_CARE); return format(number, appendTo, pos); } diff --git a/deps/icu-small/source/i18n/numsys.cpp b/deps/icu-small/source/i18n/numsys.cpp index 498a8b38914393..442ad7f255abe3 100644 --- a/deps/icu-small/source/i18n/numsys.cpp +++ b/deps/icu-small/source/i18n/numsys.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/numsys_impl.h b/deps/icu-small/source/i18n/numsys_impl.h index 5b7f4f3f3a25b8..d39faba5afa3a9 100644 --- a/deps/icu-small/source/i18n/numsys_impl.h +++ b/deps/icu-small/source/i18n/numsys_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/olsontz.cpp b/deps/icu-small/source/i18n/olsontz.cpp index 56b36c36662aef..f4c3dd24c9273f 100644 --- a/deps/icu-small/source/i18n/olsontz.cpp +++ b/deps/icu-small/source/i18n/olsontz.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/olsontz.h b/deps/icu-small/source/i18n/olsontz.h index 115a0773c5b3c3..7dbc303a05fa68 100644 --- a/deps/icu-small/source/i18n/olsontz.h +++ b/deps/icu-small/source/i18n/olsontz.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2003-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/persncal.cpp b/deps/icu-small/source/i18n/persncal.cpp index e1b30b8aee6959..210646ca8c22ca 100644 --- a/deps/icu-small/source/i18n/persncal.cpp +++ b/deps/icu-small/source/i18n/persncal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/persncal.h b/deps/icu-small/source/i18n/persncal.h index ff18f6158cd68f..3fe5a614643416 100644 --- a/deps/icu-small/source/i18n/persncal.h +++ b/deps/icu-small/source/i18n/persncal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/pluralaffix.cpp b/deps/icu-small/source/i18n/pluralaffix.cpp index b541f120df51b6..f6a51a79ef9ab7 100644 --- a/deps/icu-small/source/i18n/pluralaffix.cpp +++ b/deps/icu-small/source/i18n/pluralaffix.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/pluralaffix.h b/deps/icu-small/source/i18n/pluralaffix.h index 5212fc714bcccf..a08f2131d96ee6 100644 --- a/deps/icu-small/source/i18n/pluralaffix.h +++ b/deps/icu-small/source/i18n/pluralaffix.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/plurfmt.cpp b/deps/icu-small/source/i18n/plurfmt.cpp index 9ff2bffc9d99ca..8a000ce6e97bd9 100644 --- a/deps/icu-small/source/i18n/plurfmt.cpp +++ b/deps/icu-small/source/i18n/plurfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2015, International Business Machines Corporation and @@ -216,14 +218,14 @@ PluralFormat::format(const Formattable& obj, UnicodeString PluralFormat::format(int32_t number, UErrorCode& status) const { - FieldPosition fpos(0); + FieldPosition fpos(FieldPosition::DONT_CARE); UnicodeString result; return format(Formattable(number), number, result, fpos, status); } UnicodeString PluralFormat::format(double number, UErrorCode& status) const { - FieldPosition fpos(0); + FieldPosition fpos(FieldPosition::DONT_CARE); UnicodeString result; return format(Formattable(number), number, result, fpos, status); } diff --git a/deps/icu-small/source/i18n/plurrule.cpp b/deps/icu-small/source/i18n/plurrule.cpp index 9d5fa5bee29248..7b5063455169ce 100644 --- a/deps/icu-small/source/i18n/plurrule.cpp +++ b/deps/icu-small/source/i18n/plurrule.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/plurrule_impl.h b/deps/icu-small/source/i18n/plurrule_impl.h index d829110cd03a9e..c6e4767a096a72 100644 --- a/deps/icu-small/source/i18n/plurrule_impl.h +++ b/deps/icu-small/source/i18n/plurrule_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/precision.cpp b/deps/icu-small/source/i18n/precision.cpp index c7765748adab84..5d07e0f9ee3d78 100644 --- a/deps/icu-small/source/i18n/precision.cpp +++ b/deps/icu-small/source/i18n/precision.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/precision.h b/deps/icu-small/source/i18n/precision.h index 4543108cef7596..f002fd228bf77d 100644 --- a/deps/icu-small/source/i18n/precision.h +++ b/deps/icu-small/source/i18n/precision.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/quant.cpp b/deps/icu-small/source/i18n/quant.cpp index 4bfdf2a1813d63..6e08e628fc2e10 100644 --- a/deps/icu-small/source/i18n/quant.cpp +++ b/deps/icu-small/source/i18n/quant.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/quant.h b/deps/icu-small/source/i18n/quant.h index f84c43133254ec..21adf19e70d87a 100644 --- a/deps/icu-small/source/i18n/quant.h +++ b/deps/icu-small/source/i18n/quant.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/quantityformatter.cpp b/deps/icu-small/source/i18n/quantityformatter.cpp index 3b04c86d46f196..c44357a53b6908 100644 --- a/deps/icu-small/source/i18n/quantityformatter.cpp +++ b/deps/icu-small/source/i18n/quantityformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/quantityformatter.h b/deps/icu-small/source/i18n/quantityformatter.h index 7f61c0dc039a70..0f61022666531b 100644 --- a/deps/icu-small/source/i18n/quantityformatter.h +++ b/deps/icu-small/source/i18n/quantityformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/rbnf.cpp b/deps/icu-small/source/i18n/rbnf.cpp index 5f78f73b86f614..5e32d804441dbf 100644 --- a/deps/icu-small/source/i18n/rbnf.cpp +++ b/deps/icu-small/source/i18n/rbnf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/rbt.cpp b/deps/icu-small/source/i18n/rbt.cpp index e38aabc832d1ec..62aae52f18eb4d 100644 --- a/deps/icu-small/source/i18n/rbt.cpp +++ b/deps/icu-small/source/i18n/rbt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/rbt.h b/deps/icu-small/source/i18n/rbt.h index f8a6f3cbc41116..9add715acabcb9 100644 --- a/deps/icu-small/source/i18n/rbt.h +++ b/deps/icu-small/source/i18n/rbt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/rbt_data.cpp b/deps/icu-small/source/i18n/rbt_data.cpp index 579c681de0e35c..1b6163956c61fe 100644 --- a/deps/icu-small/source/i18n/rbt_data.cpp +++ b/deps/icu-small/source/i18n/rbt_data.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/rbt_data.h b/deps/icu-small/source/i18n/rbt_data.h index ce833dc26dd509..29e39a59ef076c 100644 --- a/deps/icu-small/source/i18n/rbt_data.h +++ b/deps/icu-small/source/i18n/rbt_data.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2007, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/rbt_pars.cpp b/deps/icu-small/source/i18n/rbt_pars.cpp index c6840456ddef1a..5e7c0ff5f9c5dc 100644 --- a/deps/icu-small/source/i18n/rbt_pars.cpp +++ b/deps/icu-small/source/i18n/rbt_pars.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/rbt_pars.h b/deps/icu-small/source/i18n/rbt_pars.h index 497c1e31820938..48067905b9c819 100644 --- a/deps/icu-small/source/i18n/rbt_pars.h +++ b/deps/icu-small/source/i18n/rbt_pars.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/rbt_rule.cpp b/deps/icu-small/source/i18n/rbt_rule.cpp index e88df7e5aec65a..a04a535f0e9508 100644 --- a/deps/icu-small/source/i18n/rbt_rule.cpp +++ b/deps/icu-small/source/i18n/rbt_rule.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines @@ -174,7 +176,7 @@ TransliterationRule::TransliterationRule(TransliterationRule& other) : segmentsCount = 0; if (other.segmentsCount > 0) { segments = (UnicodeFunctor **)uprv_malloc(other.segmentsCount * sizeof(UnicodeFunctor *)); - uprv_memcpy(segments, other.segments, other.segmentsCount*sizeof(segments[0])); + uprv_memcpy(segments, other.segments, (size_t)other.segmentsCount*sizeof(segments[0])); } if (other.anteContext != NULL) { diff --git a/deps/icu-small/source/i18n/rbt_rule.h b/deps/icu-small/source/i18n/rbt_rule.h index ffbd25c6a8c55a..b25afd6ef07651 100644 --- a/deps/icu-small/source/i18n/rbt_rule.h +++ b/deps/icu-small/source/i18n/rbt_rule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) {1999-2001}, International Business Machines Corporation and others. All Rights Reserved. ********************************************************************** diff --git a/deps/icu-small/source/i18n/rbt_set.cpp b/deps/icu-small/source/i18n/rbt_set.cpp index 425e3e72581233..f2c78ca9c8d46b 100644 --- a/deps/icu-small/source/i18n/rbt_set.cpp +++ b/deps/icu-small/source/i18n/rbt_set.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/rbt_set.h b/deps/icu-small/source/i18n/rbt_set.h index cbf3419a970558..ed76e6ddf7d71e 100644 --- a/deps/icu-small/source/i18n/rbt_set.h +++ b/deps/icu-small/source/i18n/rbt_set.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2007, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/rbtz.cpp b/deps/icu-small/source/i18n/rbtz.cpp index 73fc480e1d3ebd..fb458dd5020b73 100644 --- a/deps/icu-small/source/i18n/rbtz.cpp +++ b/deps/icu-small/source/i18n/rbtz.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/regexcmp.cpp b/deps/icu-small/source/i18n/regexcmp.cpp index 8262cfaed45c13..d0e166cfa446d9 100644 --- a/deps/icu-small/source/i18n/regexcmp.cpp +++ b/deps/icu-small/source/i18n/regexcmp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // file: regexcmp.cpp // @@ -2603,7 +2605,11 @@ void RegexCompile::findCaseInsensitiveStarters(UChar32 c, UnicodeSet *starterCh // End of machine generated data. - if (u_hasBinaryProperty(c, UCHAR_CASE_SENSITIVE)) { + if (c < UCHAR_MIN_VALUE || c > UCHAR_MAX_VALUE) { + // This function should never be called with an invalid input character. + U_ASSERT(FALSE); + starterChars->clear(); + } else if (u_hasBinaryProperty(c, UCHAR_CASE_SENSITIVE)) { UChar32 caseFoldedC = u_foldCase(c, U_FOLD_CASE_DEFAULT); starterChars->set(caseFoldedC, caseFoldedC); diff --git a/deps/icu-small/source/i18n/regexcmp.h b/deps/icu-small/source/i18n/regexcmp.h index 896de17f58ead0..931f2387b5169b 100644 --- a/deps/icu-small/source/i18n/regexcmp.h +++ b/deps/icu-small/source/i18n/regexcmp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // regexcmp.h // diff --git a/deps/icu-small/source/i18n/regexcst.h b/deps/icu-small/source/i18n/regexcst.h index 8e572e21207591..259b44f5dd734e 100644 --- a/deps/icu-small/source/i18n/regexcst.h +++ b/deps/icu-small/source/i18n/regexcst.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html //--------------------------------------------------------------------------------- // // Generated Header File. Do not edit by hand. diff --git a/deps/icu-small/source/i18n/regexcst.pl b/deps/icu-small/source/i18n/regexcst.pl old mode 100644 new mode 100755 index c15d2868b28530..6c06b4eb5fc56a --- a/deps/icu-small/source/i18n/regexcst.pl +++ b/deps/icu-small/source/i18n/regexcst.pl @@ -1,4 +1,6 @@ #!/usr/bin/perl +# Copyright (C) 2016 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html # ******************************************************************** # * COPYRIGHT: # * Copyright (c) 2002-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/regeximp.cpp b/deps/icu-small/source/i18n/regeximp.cpp index d923deb9e835e1..c1360ebf6cd943 100644 --- a/deps/icu-small/source/i18n/regeximp.cpp +++ b/deps/icu-small/source/i18n/regeximp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // Copyright (C) 2012 International Business Machines Corporation // and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/regeximp.h b/deps/icu-small/source/i18n/regeximp.h index c6c3b0d6ca312b..0261c58c637a25 100644 --- a/deps/icu-small/source/i18n/regeximp.h +++ b/deps/icu-small/source/i18n/regeximp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // Copyright (C) 2002-2015 International Business Machines Corporation // and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/regexst.cpp b/deps/icu-small/source/i18n/regexst.cpp index 1ef879e39913e9..a8feffa1bd2009 100644 --- a/deps/icu-small/source/i18n/regexst.cpp +++ b/deps/icu-small/source/i18n/regexst.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // regexst.h // diff --git a/deps/icu-small/source/i18n/regexst.h b/deps/icu-small/source/i18n/regexst.h index 59faa4846b2d09..21f7ec945c748a 100644 --- a/deps/icu-small/source/i18n/regexst.h +++ b/deps/icu-small/source/i18n/regexst.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // regexst.h // diff --git a/deps/icu-small/source/i18n/regextxt.cpp b/deps/icu-small/source/i18n/regextxt.cpp index 2156756a491411..d6157f5ed6d02e 100644 --- a/deps/icu-small/source/i18n/regextxt.cpp +++ b/deps/icu-small/source/i18n/regextxt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2008-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/regextxt.h b/deps/icu-small/source/i18n/regextxt.h index 5b59838a92bf3c..c5651aefd4f74c 100644 --- a/deps/icu-small/source/i18n/regextxt.h +++ b/deps/icu-small/source/i18n/regextxt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2008-2010, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/region.cpp b/deps/icu-small/source/i18n/region.cpp index 551960bfe839ad..fdd467fc98a411 100644 --- a/deps/icu-small/source/i18n/region.cpp +++ b/deps/icu-small/source/i18n/region.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2014-2015, International Business Machines Corporation and +* Copyright (C) 2014-2016, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* * @@ -67,8 +69,7 @@ static UVector *allRegions = NULL; static const UChar UNKNOWN_REGION_ID [] = { 0x5A, 0x5A, 0 }; /* "ZZ" */ static const UChar OUTLYING_OCEANIA_REGION_ID [] = { 0x51, 0x4F, 0 }; /* "QO" */ static const UChar WORLD_ID [] = { 0x30, 0x30, 0x31, 0 }; /* "001" */ -static const UChar RANGE_MARKER [] = { 0x7e, 0 }; /* "~" */ -static const UnicodeString RANGE_MARKER_STRING(RANGE_MARKER); +static const UChar RANGE_MARKER = 0x7E; /* '~' */ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RegionNameEnumeration) @@ -80,7 +81,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RegionNameEnumeration) * If the region data has already loaded, then this method simply returns without doing * anything meaningful. */ -void Region::loadRegionData(UErrorCode &status) { +void U_CALLCONV Region::loadRegionData(UErrorCode &status) { // Construct service objs first LocalUHashtablePointer newRegionIDMap(uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, &status)); @@ -121,7 +122,7 @@ void Region::loadRegionData(UErrorCode &status) { while ( ures_hasNext(regionRegular.getAlias()) ) { UnicodeString regionName = ures_getNextUnicodeString(regionRegular.getAlias(),NULL,&status); - int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER_STRING); + int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER); UChar buf[6]; regionName.extract(buf,6,status); if ( rangeMarkerLocation > 0 ) { @@ -140,7 +141,7 @@ void Region::loadRegionData(UErrorCode &status) { while ( ures_hasNext(regionMacro.getAlias()) ) { UnicodeString regionName = ures_getNextUnicodeString(regionMacro.getAlias(),NULL,&status); - int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER_STRING); + int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER); UChar buf[6]; regionName.extract(buf,6,status); if ( rangeMarkerLocation > 0 ) { diff --git a/deps/icu-small/source/i18n/region_impl.h b/deps/icu-small/source/i18n/region_impl.h index 2bd97f61052e2b..852209603b116a 100644 --- a/deps/icu-small/source/i18n/region_impl.h +++ b/deps/icu-small/source/i18n/region_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/reldatefmt.cpp b/deps/icu-small/source/i18n/reldatefmt.cpp index 29f760e0e8dd19..7009b190a25cb9 100644 --- a/deps/icu-small/source/i18n/reldatefmt.cpp +++ b/deps/icu-small/source/i18n/reldatefmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014-2016, International Business Machines Corporation and @@ -178,14 +180,11 @@ namespace { /** * Sink for enumerating all of the measurement unit display names. - * Contains inner sink classes, each one corresponding to a level of the resource table. * * More specific bundles (en_GB) are enumerated before their parents (en_001, en, root): * Only store a value if it is still missing, that is, it has not been overridden. - * - * C++: Each inner sink class has a reference to the main outer sink. */ -struct RelDateTimeFmtDataSink : public ResourceTableSink { +struct RelDateTimeFmtDataSink : public ResourceSink { /** * Sink for patterns for relative dates and times. For example, @@ -291,188 +290,16 @@ struct RelDateTimeFmtDataSink : public ResourceTableSink { return -1; } - // Sinks for additional levels under /fields/*/relative/ and /fields/*/relativeTime/ - - /** - * Make list of simplePatternFmtList, for past and for future. - * Set a SimpleFormatter for the - * - * Fill in values for the particular plural given, e.g., ONE, FEW, OTHER, etc. - */ - struct RelDateTimeDetailSink : public ResourceTableSink { - RelDateTimeDetailSink(RelDateTimeFmtDataSink &sink) : outer(sink) {} - ~RelDateTimeDetailSink(); - - virtual void put(const char *key, const ResourceValue &value, - UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - - outer.relUnitIndex = relUnitFromGeneric(outer.genericUnit); - if (outer.relUnitIndex < 0) { - return; - } - - /* Make two lists of simplePatternFmtList, one for past and one for future. - * Set a SimpleFormatter pattern for the - * - * Fill in values for the particular plural given, e.g., ONE, FEW, OTHER, etc. - */ - int32_t pluralIndex = StandardPlural::indexOrNegativeFromString(key); - if (pluralIndex >= 0) { - SimpleFormatter **patterns = - outer.outputData.relativeUnitsFormatters[outer.style][outer.relUnitIndex] - [outer.pastFutureIndex]; - // Only set if not already established. - if (patterns[pluralIndex] == NULL) { - patterns[pluralIndex] = new SimpleFormatter( - value.getUnicodeString(errorCode), 0, 1, errorCode); - if (patterns[pluralIndex] == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; - } - } - } - } - - RelDateTimeFmtDataSink &outer; - } relDateTimeDetailSink; - - /* - * Handles "relativeTime" entries, e.g., under "day", "hour", "minute", - * "minute-short", etc. - */ - struct RelativeTimeSink : public ResourceTableSink { - RelativeTimeSink(RelDateTimeFmtDataSink &sink) : outer(sink) {} - ~RelativeTimeSink(); - - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode& errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - outer.relUnitIndex = relUnitFromGeneric(outer.genericUnit); - if (outer.relUnitIndex < 0) { - return NULL; - } - - if (uprv_strcmp(key, "past") == 0) { - outer.pastFutureIndex = 0; - } else if (uprv_strcmp(key, "future") == 0) { - outer.pastFutureIndex = 1; - } else { - // Unknown key. - return NULL; - } - return &outer.relDateTimeDetailSink; - } - - RelDateTimeFmtDataSink &outer; - } relativeTimeSink; - - /* - * Handles "relative" entries, e.g., under "day", "day-short", "fri", - * "fri-narrow", "fri-short", etc. - */ - struct RelativeSink : public ResourceTableSink { - RelativeSink(RelDateTimeFmtDataSink &sink) : outer(sink) {} - ~RelativeSink(); - - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - int32_t direction = keyToDirection(key); - if (direction < 0) { - return; - } - - int32_t relUnitIndex = relUnitFromGeneric(outer.genericUnit); - if (relUnitIndex == UDAT_RELATIVE_SECONDS && - direction == UDAT_DIRECTION_THIS && - outer.outputData.absoluteUnits[outer.style][UDAT_ABSOLUTE_NOW] - [UDAT_DIRECTION_PLAIN].isEmpty()) { - // Handle "NOW" - outer.outputData.absoluteUnits[outer.style][UDAT_ABSOLUTE_NOW] - [UDAT_DIRECTION_PLAIN].fastCopyFrom(value.getUnicodeString(errorCode)); - } - - int32_t absUnitIndex = absUnitFromGeneric(outer.genericUnit); - if (absUnitIndex < 0) { - return; - } - // Only reset if slot is empty. - if (outer.outputData.absoluteUnits[outer.style][absUnitIndex][direction].isEmpty()) { - outer.outputData.absoluteUnits[outer.style][absUnitIndex] - [direction].fastCopyFrom(value.getUnicodeString(errorCode)); - } - } - - RelDateTimeFmtDataSink &outer; - } relativeSink; - - /* - * Handles entries under "fields", recognizing "relative" and "relativeTime" entries. - */ - struct UnitSink : public ResourceTableSink { - UnitSink(RelDateTimeFmtDataSink &sink) : outer(sink) {} - ~UnitSink(); - - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return; } - if (uprv_strcmp(key, "dn") != 0) { - return; - } - - // Handle Display Name for PLAIN direction for some units. - int32_t absUnit = absUnitFromGeneric(outer.genericUnit); - if (absUnit < 0) { - return; // Not interesting. - } - - // TODO(Travis Keep): This is a hack to get around CLDR bug 6818. - UnicodeString displayName = value.getUnicodeString(errorCode); - if (U_SUCCESS(errorCode)) { - if (uprv_strcmp("en", outer.sinkLocaleId) == 0) { - displayName.toLower(); - } - } - // end hack - - // Store displayname if not set. - if (outer.outputData.absoluteUnits[outer.style] - [absUnit][UDAT_DIRECTION_PLAIN].isEmpty()) { - outer.outputData.absoluteUnits[outer.style] - [absUnit][UDAT_DIRECTION_PLAIN].fastCopyFrom(displayName); - return; - } - } - - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return NULL; } - if (uprv_strcmp(key, "relative") == 0) { - return &outer.relativeSink; - } else if (uprv_strcmp(key, "relativeTime") == 0) { - return &outer.relativeTimeSink; - } - return NULL; - } - - RelDateTimeFmtDataSink &outer; - } unitSink; - - // For hack for locale "en". - // TODO(Travis Keep): This is a hack to get around CLDR bug 6818. - const char* sinkLocaleId; - // Values kept between levels of parsing the CLDR data. int32_t pastFutureIndex; // 0 == past or 1 == future UDateRelativeDateTimeFormatterStyle style; // {LONG, SHORT, NARROW} RelAbsUnit genericUnit; - int32_t relUnitIndex; - int32_t absUnitIndex; RelativeDateTimeCacheData &outputData; // Constructor - RelDateTimeFmtDataSink(RelativeDateTimeCacheData& cacheData, const char* localeId) - : relDateTimeDetailSink(*this), relativeTimeSink(*this), relativeSink(*this), - unitSink(*this), sinkLocaleId(localeId), outputData(cacheData) { + RelDateTimeFmtDataSink(RelativeDateTimeCacheData& cacheData) + : outputData(cacheData) { // Clear cacheData.fallBackCache cacheData.fallBackCache[UDAT_STYLE_LONG] = -1; cacheData.fallBackCache[UDAT_STYLE_SHORT] = -1; @@ -571,55 +398,165 @@ struct RelDateTimeFmtDataSink : public ResourceTableSink { return INVALID_UNIT; } - // Member functions of top level sink. - virtual void put(const char *key, const ResourceValue &value, UErrorCode &errorCode) { - // Only handle aliases, storing information about alias fallback. + void handlePlainDirection(ResourceValue &value, UErrorCode &errorCode) { + // Handle Display Name for PLAIN direction for some units. + if (U_FAILURE(errorCode)) { return; } + + int32_t absUnit = absUnitFromGeneric(genericUnit); + if (absUnit < 0) { + return; // Not interesting. + } + + // Store displayname if not set. + if (outputData.absoluteUnits[style] + [absUnit][UDAT_DIRECTION_PLAIN].isEmpty()) { + outputData.absoluteUnits[style] + [absUnit][UDAT_DIRECTION_PLAIN].fastCopyFrom(value.getUnicodeString(errorCode)); + return; + } + } + + void consumeTableRelative(const char *key, ResourceValue &value, UErrorCode &errorCode) { + ResourceTable unitTypesTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t i = 0; unitTypesTable.getKeyAndValue(i, key, value); ++i) { + if (value.getType() == URES_STRING) { + int32_t direction = keyToDirection(key); + if (direction < 0) { + continue; + } - if (U_SUCCESS(errorCode)) { - if (value.getType() != URES_ALIAS) { - return; + int32_t relUnitIndex = relUnitFromGeneric(genericUnit); + if (relUnitIndex == UDAT_RELATIVE_SECONDS && uprv_strcmp(key, "0") == 0 && + outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW][UDAT_DIRECTION_PLAIN].isEmpty()) { + // Handle "NOW" + outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW] + [UDAT_DIRECTION_PLAIN].fastCopyFrom(value.getUnicodeString(errorCode)); + } + + int32_t absUnitIndex = absUnitFromGeneric(genericUnit); + if (absUnitIndex < 0) { + continue; + } + // Only reset if slot is empty. + if (outputData.absoluteUnits[style][absUnitIndex][direction].isEmpty()) { + outputData.absoluteUnits[style][absUnitIndex] + [direction].fastCopyFrom(value.getUnicodeString(errorCode)); + } } - const UnicodeString valueStr = value.getAliasUnicodeString(errorCode); - if (U_SUCCESS(errorCode)) { - UDateRelativeDateTimeFormatterStyle sourceStyle= styleFromString(key); - UDateRelativeDateTimeFormatterStyle targetStyle = - styleFromAliasUnicodeString(valueStr); - - if (sourceStyle == targetStyle) { - errorCode = U_INVALID_FORMAT_ERROR; - return; + } + } + + void consumeTimeDetail(int32_t relUnitIndex, + const char *key, ResourceValue &value, UErrorCode &errorCode) { + ResourceTable unitTypesTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t i = 0; unitTypesTable.getKeyAndValue(i, key, value); ++i) { + if (value.getType() == URES_STRING) { + int32_t pluralIndex = StandardPlural::indexOrNegativeFromString(key); + if (pluralIndex >= 0) { + SimpleFormatter **patterns = + outputData.relativeUnitsFormatters[style][relUnitIndex] + [pastFutureIndex]; + // Only set if not already established. + if (patterns[pluralIndex] == NULL) { + patterns[pluralIndex] = new SimpleFormatter( + value.getUnicodeString(errorCode), 0, 1, errorCode); + if (patterns[pluralIndex] == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + } + } } - if (outputData.fallBackCache[sourceStyle] != -1 && - outputData.fallBackCache[sourceStyle] != targetStyle) { - errorCode = U_INVALID_FORMAT_ERROR; - return; + } + } + } + + void consumeTableRelativeTime(const char *key, ResourceValue &value, UErrorCode &errorCode) { + ResourceTable relativeTimeTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + int32_t relUnitIndex = relUnitFromGeneric(genericUnit); + if (relUnitIndex < 0) { + return; + } + for (int32_t i = 0; relativeTimeTable.getKeyAndValue(i, key, value); ++i) { + if (uprv_strcmp(key, "past") == 0) { + pastFutureIndex = 0; + } else if (uprv_strcmp(key, "future") == 0) { + pastFutureIndex = 1; + } else { + // Unknown key. + continue; + } + consumeTimeDetail(relUnitIndex, key, value, errorCode); + } + } + + void consumeAlias(const char *key, const ResourceValue &value, UErrorCode &errorCode) { + + UDateRelativeDateTimeFormatterStyle sourceStyle = styleFromString(key); + const UnicodeString valueStr = value.getAliasUnicodeString(errorCode); + if (U_FAILURE(errorCode)) { return; } + + UDateRelativeDateTimeFormatterStyle targetStyle = + styleFromAliasUnicodeString(valueStr); + + if (sourceStyle == targetStyle) { + errorCode = U_INVALID_FORMAT_ERROR; + return; + } + if (outputData.fallBackCache[sourceStyle] != -1 && + outputData.fallBackCache[sourceStyle] != targetStyle) { + errorCode = U_INVALID_FORMAT_ERROR; + return; + } + outputData.fallBackCache[sourceStyle] = targetStyle; + } + + void consumeTimeUnit(const char *key, ResourceValue &value, UErrorCode &errorCode) { + ResourceTable unitTypesTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t i = 0; unitTypesTable.getKeyAndValue(i, key, value); ++i) { + // Handle display name. + if (uprv_strcmp(key, "dn") == 0 && value.getType() == URES_STRING) { + handlePlainDirection(value, errorCode); + } + if (value.getType() == URES_TABLE) { + if (uprv_strcmp(key, "relative") == 0) { + consumeTableRelative(key, value, errorCode); + } else if (uprv_strcmp(key, "relativeTime") == 0) { + consumeTableRelativeTime(key, value, errorCode); } - outputData.fallBackCache[sourceStyle] = targetStyle; } } - return; } - // Top level sink - virtual ResourceTableSink *getOrCreateTableSink( - const char *key, int32_t /* initialSize */, UErrorCode& /* errorCode */) { - style= styleFromString(key); - int32_t unitSize = uprv_strlen(key) - styleSuffixLength(style); - genericUnit = unitOrNegativeFromString(key, unitSize); - if (style < 0 || genericUnit == INVALID_UNIT) { - return NULL; - } - return &unitSink; + virtual void put(const char *key, ResourceValue &value, + UBool /*noFallback*/, UErrorCode &errorCode) { + // Main entry point to sink + ResourceTable table = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t i = 0; table.getKeyAndValue(i, key, value); ++i) { + if (value.getType() == URES_ALIAS) { + consumeAlias(key, value, errorCode); + } else { + style = styleFromString(key); + int32_t unitSize = uprv_strlen(key) - styleSuffixLength(style); + genericUnit = unitOrNegativeFromString(key, unitSize); + if (style >= 0 && genericUnit != INVALID_UNIT) { + consumeTimeUnit(key, value, errorCode); + } + } + } } + }; // Virtual destructors must be defined out of line. -RelDateTimeFmtDataSink::RelDateTimeDetailSink::~RelDateTimeDetailSink() {} -RelDateTimeFmtDataSink::RelativeTimeSink::~RelativeTimeSink() {} -RelDateTimeFmtDataSink::RelativeSink::~RelativeSink() {} -RelDateTimeFmtDataSink::UnitSink::~UnitSink() {} RelDateTimeFmtDataSink::~RelDateTimeFmtDataSink() {} - } // namespace DateFormatSymbols::DtWidthType styleToDateFormatSymbolWidth[UDAT_STYLE_COUNT] = { @@ -652,8 +589,10 @@ static UBool loadUnitData( RelativeDateTimeCacheData &cacheData, const char* localeId, UErrorCode &status) { - RelDateTimeFmtDataSink sink(cacheData, localeId); - ures_getAllTableItemsWithFallback(resource, "fields", sink, status); + + RelDateTimeFmtDataSink sink(cacheData); + + ures_getAllItemsWithFallback(resource, "fields", sink, status); // Get the weekday names from DateFormatSymbols. loadWeekdayNames(cacheData.absoluteUnits, localeId, status); diff --git a/deps/icu-small/source/i18n/reldtfmt.cpp b/deps/icu-small/source/i18n/reldtfmt.cpp index 7055e724bbe7e5..4a928695356b0c 100644 --- a/deps/icu-small/source/i18n/reldtfmt.cpp +++ b/deps/icu-small/source/i18n/reldtfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and @@ -11,15 +13,15 @@ #include -#include "reldtfmt.h" #include "unicode/datefmt.h" +#include "unicode/reldatefmt.h" #include "unicode/simpleformatter.h" #include "unicode/smpdtfmt.h" #include "unicode/udisplaycontext.h" #include "unicode/uchar.h" #include "unicode/brkiter.h" -#include "gregoimp.h" // for CalendarData +#include "reldtfmt.h" #include "cmemory.h" #include "uresimp.h" @@ -35,16 +37,12 @@ struct URelativeString { const UChar* string; /** string, or NULL if not set **/ }; -static const char DT_DateTimePatternsTag[]="DateTimePatterns"; - - UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RelativeDateFormat) RelativeDateFormat::RelativeDateFormat(const RelativeDateFormat& other) : DateFormat(other), fDateTimeFormatter(NULL), fDatePattern(other.fDatePattern), fTimePattern(other.fTimePattern), fCombinedFormat(NULL), fDateStyle(other.fDateStyle), fLocale(other.fLocale), - fDayMin(other.fDayMin), fDayMax(other.fDayMax), fDatesLen(other.fDatesLen), fDates(NULL), fCombinedHasDateAtStart(other.fCombinedHasDateAtStart), fCapitalizationInfoSet(other.fCapitalizationInfoSet), @@ -59,8 +57,8 @@ RelativeDateFormat::RelativeDateFormat(const RelativeDateFormat& other) : fCombinedFormat = new SimpleFormatter(*other.fCombinedFormat); } if (fDatesLen > 0) { - fDates = (URelativeString*) uprv_malloc(sizeof(fDates[0])*fDatesLen); - uprv_memcpy(fDates, other.fDates, sizeof(fDates[0])*fDatesLen); + fDates = (URelativeString*) uprv_malloc(sizeof(fDates[0])*(size_t)fDatesLen); + uprv_memcpy(fDates, other.fDates, sizeof(fDates[0])*(size_t)fDatesLen); } #if !UCONFIG_NO_BREAK_ITERATION if (other.fCapitalizationBrkIter != NULL) { @@ -72,7 +70,7 @@ RelativeDateFormat::RelativeDateFormat(const RelativeDateFormat& other) : RelativeDateFormat::RelativeDateFormat( UDateFormatStyle timeStyle, UDateFormatStyle dateStyle, const Locale& locale, UErrorCode& status) : DateFormat(), fDateTimeFormatter(NULL), fDatePattern(), fTimePattern(), fCombinedFormat(NULL), - fDateStyle(dateStyle), fLocale(locale), fDayMin(0), fDayMax(0), fDatesLen(0), fDates(NULL), + fDateStyle(dateStyle), fLocale(locale), fDatesLen(0), fDates(NULL), fCombinedHasDateAtStart(FALSE), fCapitalizationInfoSet(FALSE), fCapitalizationOfRelativeUnitsForUIListMenu(FALSE), fCapitalizationOfRelativeUnitsForStandAlone(FALSE), fCapitalizationBrkIter(NULL) @@ -112,6 +110,7 @@ RelativeDateFormat::RelativeDateFormat( UDateFormatStyle timeStyle, UDateFormatS fDateTimeFormatter=dynamic_cast(df); if (fDateTimeFormatter == NULL) { status = U_UNSUPPORTED_ERROR; + delete df; return; } fDateTimeFormatter->toPattern(fTimePattern); @@ -353,19 +352,14 @@ const UChar *RelativeDateFormat::getStringForDay(int32_t day, int32_t &len, UErr return NULL; } - // Is it outside the resource bundle's range? - if(day < fDayMin || day > fDayMax) { - return NULL; // don't have it. - } - - // Linear search the held strings - for(int n=0;n= 0 && n < fDatesLen) { + if (fDates[n].offset == day && fDates[n].string != NULL) { len = fDates[n].len; return fDates[n].string; } } - return NULL; // not found. } @@ -453,125 +447,114 @@ RelativeDateFormat::initCapitalizationContextInfo(const Locale& thelocale) #if !UCONFIG_NO_BREAK_ITERATION const char * localeID = (thelocale != NULL)? thelocale.getBaseName(): NULL; UErrorCode status = U_ZERO_ERROR; - UResourceBundle *rb = ures_open(NULL, localeID, &status); - rb = ures_getByKeyWithFallback(rb, "contextTransforms", rb, &status); - rb = ures_getByKeyWithFallback(rb, "relative", rb, &status); + LocalUResourceBundlePointer rb(ures_open(NULL, localeID, &status)); + ures_getByKeyWithFallback(rb.getAlias(), + "contextTransforms/relative", + rb.getAlias(), &status); if (U_SUCCESS(status) && rb != NULL) { int32_t len = 0; - const int32_t * intVector = ures_getIntVector(rb, &len, &status); + const int32_t * intVector = ures_getIntVector(rb.getAlias(), + &len, &status); if (U_SUCCESS(status) && intVector != NULL && len >= 2) { fCapitalizationOfRelativeUnitsForUIListMenu = intVector[0]; fCapitalizationOfRelativeUnitsForStandAlone = intVector[1]; } } - ures_close(rb); #endif } +namespace { + +/** + * Sink for getting data from fields/day/relative data. + * For loading relative day names, e.g., "yesterday", "today". + */ + +struct RelDateFmtDataSink : public ResourceSink { + URelativeString *fDatesPtr; + int32_t fDatesLen; + + RelDateFmtDataSink(URelativeString* fDates, int32_t len) : fDatesPtr(fDates), fDatesLen(len) { + for (int32_t i = 0; i < fDatesLen; ++i) { + fDatesPtr[i].offset = 0; + fDatesPtr[i].string = NULL; + fDatesPtr[i].len = -1; + } + } + + virtual ~RelDateFmtDataSink(); + + virtual void put(const char *key, ResourceValue &value, + UBool /*noFallback*/, UErrorCode &errorCode) { + ResourceTable relDayTable = value.getTable(errorCode); + int32_t n = 0; + int32_t len = 0; + for (int32_t i = 0; relDayTable.getKeyAndValue(i, key, value); ++i) { + // Find the relative offset. + int32_t offset = atoi(key); + + // Put in the proper spot, but don't override existing data. + n = offset + UDAT_DIRECTION_THIS; // Converts to index in UDAT_R + if (n < fDatesLen && fDatesPtr[n].string == NULL) { + // Not found and n is an empty slot. + fDatesPtr[n].offset = offset; + fDatesPtr[n].string = value.getString(len, errorCode); + fDatesPtr[n].len = len; + } + } + } +}; + + +// Virtual destructors must be defined out of line. +RelDateFmtDataSink::~RelDateFmtDataSink() {} + +} // Namespace + + static const UChar patItem1[] = {0x7B,0x31,0x7D}; // "{1}" static const int32_t patItem1Len = 3; void RelativeDateFormat::loadDates(UErrorCode &status) { - CalendarData calData(fLocale, "gregorian", status); - - UErrorCode tempStatus = status; - UResourceBundle *dateTimePatterns = calData.getByKey(DT_DateTimePatternsTag, tempStatus); - if(U_SUCCESS(tempStatus)) { - int32_t patternsSize = ures_getSize(dateTimePatterns); + UResourceBundle *rb = ures_open(NULL, fLocale.getBaseName(), &status); + LocalUResourceBundlePointer dateTimePatterns( + ures_getByKeyWithFallback(rb, + "calendar/gregorian/DateTimePatterns", + (UResourceBundle*)NULL, &status)); + if(U_SUCCESS(status)) { + int32_t patternsSize = ures_getSize(dateTimePatterns.getAlias()); if (patternsSize > kDateTime) { int32_t resStrLen = 0; - int32_t glueIndex = kDateTime; - if (patternsSize >= (DateFormat::kDateTimeOffset + DateFormat::kShort + 1)) { - // Get proper date time format - switch (fDateStyle) { - case kFullRelative: - case kFull: - glueIndex = kDateTimeOffset + kFull; - break; - case kLongRelative: - case kLong: - glueIndex = kDateTimeOffset + kLong; - break; - case kMediumRelative: - case kMedium: - glueIndex = kDateTimeOffset + kMedium; - break; - case kShortRelative: - case kShort: - glueIndex = kDateTimeOffset + kShort; - break; - default: - break; + if (patternsSize >= (kDateTimeOffset + kShort + 1)) { + int32_t offsetIncrement = (fDateStyle & ~kRelative); // Remove relative bit. + if (offsetIncrement >= (int32_t)kFull && + offsetIncrement <= (int32_t)kShortRelative) { + glueIndex = kDateTimeOffset + offsetIncrement; } } - const UChar *resStr = ures_getStringByIndex(dateTimePatterns, glueIndex, &resStrLen, &tempStatus); - if (U_SUCCESS(tempStatus) && resStrLen >= patItem1Len && u_strncmp(resStr,patItem1,patItem1Len)==0) { + const UChar *resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), glueIndex, &resStrLen, &status); + if (U_SUCCESS(status) && resStrLen >= patItem1Len && u_strncmp(resStr,patItem1,patItem1Len)==0) { fCombinedHasDateAtStart = TRUE; } - fCombinedFormat = new SimpleFormatter(UnicodeString(TRUE, resStr, resStrLen), 2, 2, tempStatus); + fCombinedFormat = new SimpleFormatter(UnicodeString(TRUE, resStr, resStrLen), 2, 2, status); } } - UResourceBundle *rb = ures_open(NULL, fLocale.getBaseName(), &status); - rb = ures_getByKeyWithFallback(rb, "fields", rb, &status); - rb = ures_getByKeyWithFallback(rb, "day", rb, &status); - rb = ures_getByKeyWithFallback(rb, "relative", rb, &status); - // set up min/max - fDayMin=-1; - fDayMax=1; - - if(U_FAILURE(status)) { - fDatesLen=0; - ures_close(rb); - return; - } - - fDatesLen = ures_getSize(rb); + // Data loading for relative names, e.g., "yesterday", "today", "tomorrow". + fDatesLen = UDAT_DIRECTION_COUNT; // Maximum defined by data. fDates = (URelativeString*) uprv_malloc(sizeof(fDates[0])*fDatesLen); - // Load in each item into the array... - int n = 0; - - UResourceBundle *subString = NULL; - - while(ures_hasNext(rb) && U_SUCCESS(status)) { // iterate over items - subString = ures_getNextResource(rb, subString, &status); - - if(U_FAILURE(status) || (subString==NULL)) break; - - // key = offset # - const char *key = ures_getKey(subString); - - // load the string and length - int32_t aLen; - const UChar* aString = ures_getString(subString, &aLen, &status); + RelDateFmtDataSink sink(fDates, fDatesLen); + ures_getAllItemsWithFallback(rb, "fields/day/relative", sink, status); - if(U_FAILURE(status) || aString == NULL) break; - - // calculate the offset - int32_t offset = atoi(key); - - // set min/max - if(offset < fDayMin) { - fDayMin = offset; - } - if(offset > fDayMax) { - fDayMax = offset; - } - - // copy the string pointer - fDates[n].offset = offset; - fDates[n].string = aString; - fDates[n].len = aLen; - - n++; - } - ures_close(subString); ures_close(rb); - // the fDates[] array could be sorted here, for direct access. + if(U_FAILURE(status)) { + fDatesLen=0; + return; + } } //---------------------------------------------------------------------- @@ -609,4 +592,4 @@ int32_t RelativeDateFormat::dayDifference(Calendar &cal, UErrorCode &status) { U_NAMESPACE_END -#endif +#endif /* !UCONFIG_NO_FORMATTING */ diff --git a/deps/icu-small/source/i18n/reldtfmt.h b/deps/icu-small/source/i18n/reldtfmt.h index f82855c357f1fc..ea091a91c393d5 100644 --- a/deps/icu-small/source/i18n/reldtfmt.h +++ b/deps/icu-small/source/i18n/reldtfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and * @@ -255,8 +257,6 @@ class RelativeDateFormat : public DateFormat { UDateFormatStyle fDateStyle; Locale fLocale; - int32_t fDayMin; // day id of lowest # - int32_t fDayMax; // day id of highest # int32_t fDatesLen; // Length of array URelativeString *fDates; // array of strings @@ -264,7 +264,11 @@ class RelativeDateFormat : public DateFormat { UBool fCapitalizationInfoSet; UBool fCapitalizationOfRelativeUnitsForUIListMenu; UBool fCapitalizationOfRelativeUnitsForStandAlone; +#if !UCONFIG_NO_BREAK_ITERATION BreakIterator* fCapitalizationBrkIter; +#else + UObject* fCapitalizationBrkIter; +#endif /** * Get the string at a specific offset. @@ -333,4 +337,3 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ #endif // RELDTFMT_H -//eof diff --git a/deps/icu-small/source/i18n/rematch.cpp b/deps/icu-small/source/i18n/rematch.cpp index 348fd45d22ad58..5a5bb80e05e642 100644 --- a/deps/icu-small/source/i18n/rematch.cpp +++ b/deps/icu-small/source/i18n/rematch.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************** * Copyright (C) 2002-2016 International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/remtrans.cpp b/deps/icu-small/source/i18n/remtrans.cpp index 4ee98f7d3cc10a..89837f991d6f30 100644 --- a/deps/icu-small/source/i18n/remtrans.cpp +++ b/deps/icu-small/source/i18n/remtrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/remtrans.h b/deps/icu-small/source/i18n/remtrans.h index 25a5609dffeec8..a5635781f979c7 100644 --- a/deps/icu-small/source/i18n/remtrans.h +++ b/deps/icu-small/source/i18n/remtrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/repattrn.cpp b/deps/icu-small/source/i18n/repattrn.cpp index bf69dbb66f4295..b792ca048445b5 100644 --- a/deps/icu-small/source/i18n/repattrn.cpp +++ b/deps/icu-small/source/i18n/repattrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // // file: repattrn.cpp // diff --git a/deps/icu-small/source/i18n/rulebasedcollator.cpp b/deps/icu-small/source/i18n/rulebasedcollator.cpp index 758c65769cc52e..4852667ada8079 100644 --- a/deps/icu-small/source/i18n/rulebasedcollator.cpp +++ b/deps/icu-small/source/i18n/rulebasedcollator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines @@ -1609,7 +1611,7 @@ RuleBasedCollator::isUnsafe(UChar32 c) const { return data->isUnsafeBackward(c, settings->isNumeric()); } -void +void U_CALLCONV RuleBasedCollator::computeMaxExpansions(const CollationTailoring *t, UErrorCode &errorCode) { t->maxExpansions = CollationElementIterator::computeMaxExpansions(t->data, errorCode); } diff --git a/deps/icu-small/source/i18n/scientificnumberformatter.cpp b/deps/icu-small/source/i18n/scientificnumberformatter.cpp index b3bc09939ceb9f..56a43f9b7fa45e 100644 --- a/deps/icu-small/source/i18n/scientificnumberformatter.cpp +++ b/deps/icu-small/source/i18n/scientificnumberformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/scriptset.cpp b/deps/icu-small/source/i18n/scriptset.cpp index c20a55d00baad5..ab7cb1e68ec449 100644 --- a/deps/icu-small/source/i18n/scriptset.cpp +++ b/deps/icu-small/source/i18n/scriptset.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2014, International Business Machines @@ -191,6 +193,15 @@ int32_t ScriptSet::nextSetBit(int32_t fromIndex) const { return -1; } +UBool ScriptSet::isEmpty() const { + for (uint32_t i=0; i= 0; i = nextSetBit(i + 1)) { @@ -238,6 +249,41 @@ ScriptSet &ScriptSet::parseScripts(const UnicodeString &scriptString, UErrorCode return *this; } +void ScriptSet::setScriptExtensions(UChar32 codePoint, UErrorCode& status) { + if (U_FAILURE(status)) { return; } + static const int32_t FIRST_GUESS_SCRIPT_CAPACITY = 5; + MaybeStackArray scripts; + UErrorCode internalStatus = U_ZERO_ERROR; + int32_t script_count = -1; + + while (TRUE) { + script_count = uscript_getScriptExtensions( + codePoint, scripts.getAlias(), FIRST_GUESS_SCRIPT_CAPACITY, &internalStatus); + if (internalStatus == U_BUFFER_OVERFLOW_ERROR) { + // Need to allocate more space + if (scripts.resize(script_count) == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + internalStatus = U_ZERO_ERROR; + } else { + break; + } + } + + // Check if we failed for some reason other than buffer overflow + if (U_FAILURE(internalStatus)) { + status = internalStatus; + return; + } + + // Load the scripts into the ScriptSet and return + for (int32_t i = 0; i < script_count; i++) { + this->set(scripts[i], status); + if (U_FAILURE(status)) { return; } + } +} + U_NAMESPACE_END U_CAPI UBool U_EXPORT2 diff --git a/deps/icu-small/source/i18n/scriptset.h b/deps/icu-small/source/i18n/scriptset.h index 62af5d591d100c..e8de3b9613f990 100644 --- a/deps/icu-small/source/i18n/scriptset.h +++ b/deps/icu-small/source/i18n/scriptset.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2013, International Business Machines @@ -38,6 +40,7 @@ class U_I18N_API ScriptSet: public UMemory { ~ScriptSet(); UBool operator == (const ScriptSet &other) const; + UBool operator != (const ScriptSet &other) const {return !(*this == other);}; ScriptSet & operator = (const ScriptSet &other); UBool test(UScriptCode script, UErrorCode &status) const; @@ -55,9 +58,14 @@ class U_I18N_API ScriptSet: public UMemory { int32_t hashCode() const; int32_t nextSetBit(int32_t script) const; + UBool isEmpty() const; + UnicodeString &displayScripts(UnicodeString &dest) const; // append script names to dest string. ScriptSet & parseScripts(const UnicodeString &scriptsString, UErrorCode &status); // Replaces ScriptSet contents. + // Wraps around UScript::getScriptExtensions() and adds the corresponding scripts to this instance. + void setScriptExtensions(UChar32 codePoint, UErrorCode& status); + private: uint32_t bits[6]; }; diff --git a/deps/icu-small/source/i18n/search.cpp b/deps/icu-small/source/i18n/search.cpp index 8d2de67974e1d9..77323cc664fc19 100644 --- a/deps/icu-small/source/i18n/search.cpp +++ b/deps/icu-small/source/i18n/search.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2008,2010 IBM and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/selfmt.cpp b/deps/icu-small/source/i18n/selfmt.cpp index 5016e8e30a16c3..041fea515c88ba 100644 --- a/deps/icu-small/source/i18n/selfmt.cpp +++ b/deps/icu-small/source/i18n/selfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/selfmtimpl.h b/deps/icu-small/source/i18n/selfmtimpl.h index 02638448718e56..75bc3e343a8f36 100644 --- a/deps/icu-small/source/i18n/selfmtimpl.h +++ b/deps/icu-small/source/i18n/selfmtimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/sharedbreakiterator.cpp b/deps/icu-small/source/i18n/sharedbreakiterator.cpp index 430dfba1ccb24a..ca962c6283374a 100644 --- a/deps/icu-small/source/i18n/sharedbreakiterator.cpp +++ b/deps/icu-small/source/i18n/sharedbreakiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2014, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/sharedbreakiterator.h b/deps/icu-small/source/i18n/sharedbreakiterator.h index 09ba4312a3995a..58be1f6a76e906 100644 --- a/deps/icu-small/source/i18n/sharedbreakiterator.h +++ b/deps/icu-small/source/i18n/sharedbreakiterator.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/sharedcalendar.h b/deps/icu-small/source/i18n/sharedcalendar.h index 2a10c88b593851..f6d97b55bc128f 100644 --- a/deps/icu-small/source/i18n/sharedcalendar.h +++ b/deps/icu-small/source/i18n/sharedcalendar.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/shareddateformatsymbols.h b/deps/icu-small/source/i18n/shareddateformatsymbols.h index 8451183bc29aa5..a11a8a391b55ba 100644 --- a/deps/icu-small/source/i18n/shareddateformatsymbols.h +++ b/deps/icu-small/source/i18n/shareddateformatsymbols.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/sharednumberformat.h b/deps/icu-small/source/i18n/sharednumberformat.h index b6f5a8c923f36a..fcb618a4d48d50 100644 --- a/deps/icu-small/source/i18n/sharednumberformat.h +++ b/deps/icu-small/source/i18n/sharednumberformat.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/sharedpluralrules.h b/deps/icu-small/source/i18n/sharedpluralrules.h index 51773008fb69d2..faed6dea0e174d 100644 --- a/deps/icu-small/source/i18n/sharedpluralrules.h +++ b/deps/icu-small/source/i18n/sharedpluralrules.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2014, International Business Machines diff --git a/deps/icu-small/source/i18n/significantdigitinterval.h b/deps/icu-small/source/i18n/significantdigitinterval.h index a3d86f1c8fe280..336af784a50649 100644 --- a/deps/icu-small/source/i18n/significantdigitinterval.h +++ b/deps/icu-small/source/i18n/significantdigitinterval.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/simpletz.cpp b/deps/icu-small/source/i18n/simpletz.cpp index 3696d210736d7f..7dadef5ae60620 100644 --- a/deps/icu-small/source/i18n/simpletz.cpp +++ b/deps/icu-small/source/i18n/simpletz.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/smallintformatter.cpp b/deps/icu-small/source/i18n/smallintformatter.cpp index 44dd9391cb722c..b96f6dad3b5f5d 100644 --- a/deps/icu-small/source/i18n/smallintformatter.cpp +++ b/deps/icu-small/source/i18n/smallintformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/smallintformatter.h b/deps/icu-small/source/i18n/smallintformatter.h index 2907c6203a6f6c..846d6b405472ae 100644 --- a/deps/icu-small/source/i18n/smallintformatter.h +++ b/deps/icu-small/source/i18n/smallintformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/smpdtfmt.cpp b/deps/icu-small/source/i18n/smpdtfmt.cpp index 145587fb12ee14..85cc162a11f39f 100644 --- a/deps/icu-small/source/i18n/smpdtfmt.cpp +++ b/deps/icu-small/source/i18n/smpdtfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2016, International Business Machines Corporation and * @@ -50,10 +52,10 @@ #include "unicode/vtzone.h" #include "unicode/udisplaycontext.h" #include "unicode/brkiter.h" +#include "uresimp.h" #include "olsontz.h" #include "patternprops.h" #include "fphdlimp.h" -#include "gregoimp.h" #include "hebrwcal.h" #include "cstring.h" #include "uassert.h" @@ -164,9 +166,6 @@ static const UChar SUPPRESS_NEGATIVE_PREFIX[] = {0xAB00, 0}; * These are the tags we expect to see in normal resource bundle files associated * with a locale. */ -static const char gDateTimePatternsTag[]="DateTimePatterns"; - -//static const UChar gEtcUTC[] = {0x45, 0x74, 0x63, 0x2F, 0x55, 0x54, 0x43, 0x00}; // "Etc/UTC" static const UChar QUOTE = 0x27; // Single quote /* @@ -702,20 +701,42 @@ void SimpleDateFormat::construct(EStyle timeStyle, initializeCalendar(NULL, locale, status); if (U_FAILURE(status)) return; - CalendarData calData(locale, fCalendar?fCalendar->getType():NULL, status); - UResourceBundle *dateTimePatterns = calData.getByKey(gDateTimePatternsTag, status); - UResourceBundle *currentBundle; + // Load date time patterns directly from resources. + const char* cType = fCalendar ? fCalendar->getType() : NULL; + LocalUResourceBundlePointer bundle(ures_open(NULL, locale.getBaseName(), &status)); + if (U_FAILURE(status)) return; + + UBool cTypeIsGregorian = TRUE; + LocalUResourceBundlePointer dateTimePatterns; + if (cType != NULL && uprv_strcmp(cType, "gregorian") != 0) { + CharString resourcePath("calendar/", status); + resourcePath.append(cType, status).append("/DateTimePatterns", status); + dateTimePatterns.adoptInstead( + ures_getByKeyWithFallback(bundle.getAlias(), resourcePath.data(), + (UResourceBundle*)NULL, &status)); + cTypeIsGregorian = FALSE; + } + // Check for "gregorian" fallback. + if (cTypeIsGregorian || status == U_MISSING_RESOURCE_ERROR) { + status = U_ZERO_ERROR; + dateTimePatterns.adoptInstead( + ures_getByKeyWithFallback(bundle.getAlias(), + "calendar/gregorian/DateTimePatterns", + (UResourceBundle*)NULL, &status)); + } if (U_FAILURE(status)) return; - if (ures_getSize(dateTimePatterns) <= kDateTime) + LocalUResourceBundlePointer currentBundle; + + if (ures_getSize(dateTimePatterns.getAlias()) <= kDateTime) { status = U_INVALID_FORMAT_ERROR; return; } - setLocaleIDs(ures_getLocaleByType(dateTimePatterns, ULOC_VALID_LOCALE, &status), - ures_getLocaleByType(dateTimePatterns, ULOC_ACTUAL_LOCALE, &status)); + setLocaleIDs(ures_getLocaleByType(dateTimePatterns.getAlias(), ULOC_VALID_LOCALE, &status), + ures_getLocaleByType(dateTimePatterns.getAlias(), ULOC_ACTUAL_LOCALE, &status)); // create a symbols object from the locale fSymbols = DateFormatSymbols::createForLocale(locale, status); @@ -736,66 +757,64 @@ void SimpleDateFormat::construct(EStyle timeStyle, // and time pattern strings. if ((timeStyle != kNone) && (dateStyle != kNone)) { - currentBundle = ures_getByIndex(dateTimePatterns, (int32_t)timeStyle, NULL, &status); + currentBundle.adoptInstead( + ures_getByIndex(dateTimePatterns.getAlias(), (int32_t)timeStyle, NULL, &status)); if (U_FAILURE(status)) { status = U_INVALID_FORMAT_ERROR; return; } - switch (ures_getType(currentBundle)) { + switch (ures_getType(currentBundle.getAlias())) { case URES_STRING: { - resStr = ures_getString(currentBundle, &resStrLen, &status); + resStr = ures_getString(currentBundle.getAlias(), &resStrLen, &status); break; } case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle, 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle, 1, &ovrStrLen, &status); + resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); + ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); fTimeOverride.setTo(TRUE, ovrStr, ovrStrLen); break; } default: { status = U_INVALID_FORMAT_ERROR; - ures_close(currentBundle); return; } } - ures_close(currentBundle); UnicodeString tempus1(TRUE, resStr, resStrLen); - currentBundle = ures_getByIndex(dateTimePatterns, (int32_t)dateStyle, NULL, &status); + currentBundle.adoptInstead( + ures_getByIndex(dateTimePatterns.getAlias(), (int32_t)dateStyle, NULL, &status)); if (U_FAILURE(status)) { status = U_INVALID_FORMAT_ERROR; return; } - switch (ures_getType(currentBundle)) { + switch (ures_getType(currentBundle.getAlias())) { case URES_STRING: { - resStr = ures_getString(currentBundle, &resStrLen, &status); + resStr = ures_getString(currentBundle.getAlias(), &resStrLen, &status); break; } case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle, 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle, 1, &ovrStrLen, &status); + resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); + ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); break; } default: { status = U_INVALID_FORMAT_ERROR; - ures_close(currentBundle); return; } } - ures_close(currentBundle); UnicodeString tempus2(TRUE, resStr, resStrLen); int32_t glueIndex = kDateTime; - int32_t patternsSize = ures_getSize(dateTimePatterns); + int32_t patternsSize = ures_getSize(dateTimePatterns.getAlias()); if (patternsSize >= (kDateTimeOffset + kShort + 1)) { // Get proper date time format glueIndex = (int32_t)(kDateTimeOffset + (dateStyle - kDateOffset)); } - resStr = ures_getStringByIndex(dateTimePatterns, glueIndex, &resStrLen, &status); + resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), glueIndex, &resStrLen, &status); SimpleFormatter(UnicodeString(TRUE, resStr, resStrLen), 2, 2, status). format(tempus1, tempus2, fPattern, status); } @@ -803,56 +822,54 @@ void SimpleDateFormat::construct(EStyle timeStyle, // pattern string from the resources // setTo() - see DateFormatSymbols::assignArray comments else if (timeStyle != kNone) { - currentBundle = ures_getByIndex(dateTimePatterns, (int32_t)timeStyle, NULL, &status); + currentBundle.adoptInstead( + ures_getByIndex(dateTimePatterns.getAlias(), (int32_t)timeStyle, NULL, &status)); if (U_FAILURE(status)) { status = U_INVALID_FORMAT_ERROR; return; } - switch (ures_getType(currentBundle)) { + switch (ures_getType(currentBundle.getAlias())) { case URES_STRING: { - resStr = ures_getString(currentBundle, &resStrLen, &status); + resStr = ures_getString(currentBundle.getAlias(), &resStrLen, &status); break; } case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle, 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle, 1, &ovrStrLen, &status); + resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); + ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); break; } default: { status = U_INVALID_FORMAT_ERROR; - ures_close(currentBundle); return; } } fPattern.setTo(TRUE, resStr, resStrLen); - ures_close(currentBundle); } else if (dateStyle != kNone) { - currentBundle = ures_getByIndex(dateTimePatterns, (int32_t)dateStyle, NULL, &status); + currentBundle.adoptInstead( + ures_getByIndex(dateTimePatterns.getAlias(), (int32_t)dateStyle, NULL, &status)); if (U_FAILURE(status)) { status = U_INVALID_FORMAT_ERROR; return; } - switch (ures_getType(currentBundle)) { + switch (ures_getType(currentBundle.getAlias())) { case URES_STRING: { - resStr = ures_getString(currentBundle, &resStrLen, &status); + resStr = ures_getString(currentBundle.getAlias(), &resStrLen, &status); break; } case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle, 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle, 1, &ovrStrLen, &status); + resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); + ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); break; } default: { status = U_INVALID_FORMAT_ERROR; - ures_close(currentBundle); return; } } fPattern.setTo(TRUE, resStr, resStrLen); - ures_close(currentBundle); } // and if it includes _neither_, that's an error @@ -1553,7 +1570,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, } else if (count == 2) { value /= 10; } - FieldPosition p(0); + FieldPosition p(FieldPosition::DONT_CARE); currentNumberFormat->format(value, appendTo, p); if (count > 3) { currentNumberFormat->setMinimumIntegerDigits(count - 3); @@ -2040,7 +2057,7 @@ SimpleDateFormat::zeroPaddingNumber( int32_t value, int32_t minDigits, int32_t maxDigits) const { if (currentNumberFormat!=NULL) { - FieldPosition pos(0); + FieldPosition pos(FieldPosition::DONT_CARE); currentNumberFormat->setMinimumIntegerDigits(minDigits); currentNumberFormat->setMaximumIntegerDigits(maxDigits); diff --git a/deps/icu-small/source/i18n/smpdtfst.cpp b/deps/icu-small/source/i18n/smpdtfst.cpp index f9e94b82c62939..50980a99e4dfa5 100644 --- a/deps/icu-small/source/i18n/smpdtfst.cpp +++ b/deps/icu-small/source/i18n/smpdtfst.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/smpdtfst.h b/deps/icu-small/source/i18n/smpdtfst.h index da30f11d886f00..38ad558de2dfc0 100644 --- a/deps/icu-small/source/i18n/smpdtfst.h +++ b/deps/icu-small/source/i18n/smpdtfst.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/sortkey.cpp b/deps/icu-small/source/i18n/sortkey.cpp index 257888c741512b..68b0f062b8daf4 100644 --- a/deps/icu-small/source/i18n/sortkey.cpp +++ b/deps/icu-small/source/i18n/sortkey.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/standardplural.cpp b/deps/icu-small/source/i18n/standardplural.cpp index 456e9390ca7c2d..c39bae1ab18b9c 100644 --- a/deps/icu-small/source/i18n/standardplural.cpp +++ b/deps/icu-small/source/i18n/standardplural.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/standardplural.h b/deps/icu-small/source/i18n/standardplural.h index 8a8de2188485ec..56c63c347cee1e 100644 --- a/deps/icu-small/source/i18n/standardplural.h +++ b/deps/icu-small/source/i18n/standardplural.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/strmatch.cpp b/deps/icu-small/source/i18n/strmatch.cpp index ad02c5f44c538a..e72cfc9ab03d00 100644 --- a/deps/icu-small/source/i18n/strmatch.cpp +++ b/deps/icu-small/source/i18n/strmatch.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2012, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/strmatch.h b/deps/icu-small/source/i18n/strmatch.h index 32f5c4b7907883..0241adfd3f01f0 100644 --- a/deps/icu-small/source/i18n/strmatch.h +++ b/deps/icu-small/source/i18n/strmatch.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2001-2011, International Business Machines Corporation * and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/strrepl.cpp b/deps/icu-small/source/i18n/strrepl.cpp index 3181d5b15982b7..d061eff579e58a 100644 --- a/deps/icu-small/source/i18n/strrepl.cpp +++ b/deps/icu-small/source/i18n/strrepl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2012, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/strrepl.h b/deps/icu-small/source/i18n/strrepl.h index faf96b62962425..a452db993fb45d 100644 --- a/deps/icu-small/source/i18n/strrepl.h +++ b/deps/icu-small/source/i18n/strrepl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2011, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/stsearch.cpp b/deps/icu-small/source/i18n/stsearch.cpp index 925ee3138f3547..643ec21b277395 100644 --- a/deps/icu-small/source/i18n/stsearch.cpp +++ b/deps/icu-small/source/i18n/stsearch.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2014 IBM and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/taiwncal.cpp b/deps/icu-small/source/i18n/taiwncal.cpp index 7c51843c0f5c08..f1ca6fa135bd34 100644 --- a/deps/icu-small/source/i18n/taiwncal.cpp +++ b/deps/icu-small/source/i18n/taiwncal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/taiwncal.h b/deps/icu-small/source/i18n/taiwncal.h index 125a20da173a04..b15cff5beb75b8 100644 --- a/deps/icu-small/source/i18n/taiwncal.h +++ b/deps/icu-small/source/i18n/taiwncal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2003-2013, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/timezone.cpp b/deps/icu-small/source/i18n/timezone.cpp index d0a1a418798179..427674aac4ff3d 100644 --- a/deps/icu-small/source/i18n/timezone.cpp +++ b/deps/icu-small/source/i18n/timezone.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 1997-2015, International Business Machines Corporation and +* Copyright (C) 1997-2016, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* * @@ -458,6 +460,8 @@ TimeZone::detectHostTimeZone() uprv_tzset(); // Initialize tz... system data + uprv_tzname_clear_cache(); + // Get the timezone ID from the host. This function should do // any required host-specific remapping; e.g., on Windows this // function maps the Date and Time control panel setting to an diff --git a/deps/icu-small/source/i18n/titletrn.cpp b/deps/icu-small/source/i18n/titletrn.cpp index 79ffb403194adc..a1de8be6669567 100644 --- a/deps/icu-small/source/i18n/titletrn.cpp +++ b/deps/icu-small/source/i18n/titletrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/titletrn.h b/deps/icu-small/source/i18n/titletrn.h index a093152b66cbdb..a6380e3bd142c6 100644 --- a/deps/icu-small/source/i18n/titletrn.h +++ b/deps/icu-small/source/i18n/titletrn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/tmunit.cpp b/deps/icu-small/source/i18n/tmunit.cpp index e56c51ca0f7e73..d9da2681251c2f 100644 --- a/deps/icu-small/source/i18n/tmunit.cpp +++ b/deps/icu-small/source/i18n/tmunit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2014, Google, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/tmutamt.cpp b/deps/icu-small/source/i18n/tmutamt.cpp index 734b5de882d953..7be730765bfff4 100644 --- a/deps/icu-small/source/i18n/tmutamt.cpp +++ b/deps/icu-small/source/i18n/tmutamt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008, Google, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/tmutfmt.cpp b/deps/icu-small/source/i18n/tmutfmt.cpp index fa31d7b3c1815c..1669546f767535 100644 --- a/deps/icu-small/source/i18n/tmutfmt.cpp +++ b/deps/icu-small/source/i18n/tmutfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2015, Google, International Business Machines Corporation @@ -347,6 +349,115 @@ TimeUnitFormat::initDataMembers(UErrorCode& err){ } } +struct TimeUnitFormatReadSink : public ResourceSink { + TimeUnitFormat *timeUnitFormatObj; + const UVector &pluralCounts; + UTimeUnitFormatStyle style; + UBool beenHere; + + TimeUnitFormatReadSink(TimeUnitFormat *timeUnitFormatObj, + const UVector &pluralCounts, UTimeUnitFormatStyle style) : + timeUnitFormatObj(timeUnitFormatObj), pluralCounts(pluralCounts), + style(style), beenHere(FALSE){} + + virtual ~TimeUnitFormatReadSink(); + + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + // Skip all put() calls except the first one -- discard all fallback data. + if (beenHere) { + return; + } else { + beenHere = TRUE; + } + + ResourceTable units = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + + for (int32_t i = 0; units.getKeyAndValue(i, key, value); ++i) { + const char* timeUnitName = key; + if (timeUnitName == NULL) { + continue; + } + + TimeUnit::UTimeUnitFields timeUnitField = TimeUnit::UTIMEUNIT_FIELD_COUNT; + if ( uprv_strcmp(timeUnitName, gTimeUnitYear) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_YEAR; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitMonth) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_MONTH; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitDay) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_DAY; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitHour) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_HOUR; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitMinute) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_MINUTE; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitSecond) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_SECOND; + } else if ( uprv_strcmp(timeUnitName, gTimeUnitWeek) == 0 ) { + timeUnitField = TimeUnit::UTIMEUNIT_WEEK; + } else { + continue; + } + LocalPointer localCountToPatterns; + Hashtable *countToPatterns = + timeUnitFormatObj->fTimeUnitToCountToPatterns[timeUnitField]; + if (countToPatterns == NULL) { + localCountToPatterns.adoptInsteadAndCheckErrorCode( + timeUnitFormatObj->initHash(errorCode), errorCode); + countToPatterns = localCountToPatterns.getAlias(); + if (U_FAILURE(errorCode)) { + return; + } + } + + ResourceTable countsToPatternTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { + continue; + } + for (int32_t j = 0; countsToPatternTable.getKeyAndValue(j, key, value); ++j) { + errorCode = U_ZERO_ERROR; + UnicodeString pattern = value.getUnicodeString(errorCode); + if (U_FAILURE(errorCode)) { + continue; + } + UnicodeString pluralCountUniStr(key, -1, US_INV); + if (!pluralCounts.contains(&pluralCountUniStr)) { + continue; + } + LocalPointer messageFormat(new MessageFormat( + pattern, timeUnitFormatObj->getLocale(errorCode), errorCode), errorCode); + if (U_FAILURE(errorCode)) { + return; + } + MessageFormat** formatters = + (MessageFormat**)countToPatterns->get(pluralCountUniStr); + if (formatters == NULL) { + LocalMemory localFormatters( + (MessageFormat **)uprv_malloc(UTMUTFMT_FORMAT_STYLE_COUNT*sizeof(MessageFormat*))); + if (localFormatters.isNull()) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + return; + } + localFormatters[UTMUTFMT_FULL_STYLE] = NULL; + localFormatters[UTMUTFMT_ABBREVIATED_STYLE] = NULL; + countToPatterns->put(pluralCountUniStr, localFormatters.getAlias(), errorCode); + if (U_FAILURE(errorCode)) { + return; + } + formatters = localFormatters.orphan(); + } + formatters[style] = messageFormat.orphan(); + } + + if (timeUnitFormatObj->fTimeUnitToCountToPatterns[timeUnitField] == NULL) { + timeUnitFormatObj->fTimeUnitToCountToPatterns[timeUnitField] = localCountToPatterns.orphan(); + } + } + } + +}; + +TimeUnitFormatReadSink::~TimeUnitFormatReadSink() {} + void TimeUnitFormat::readFromCurrentLocale(UTimeUnitFormatStyle style, const char* key, const UVector& pluralCounts, UErrorCode& err) { @@ -365,94 +476,10 @@ TimeUnitFormat::readFromCurrentLocale(UTimeUnitFormatStyle style, const char* ke if (U_FAILURE(status)) { return; } - int32_t size = ures_getSize(unitsRes.getAlias()); - for ( int32_t index = 0; index < size; ++index) { - status = U_ZERO_ERROR; - // resource of one time unit - LocalUResourceBundlePointer oneTimeUnit( - ures_getByIndex(unitsRes.getAlias(), index, NULL, &status)); - if (U_FAILURE(status)) { - continue; - } - const char* timeUnitName = ures_getKey(oneTimeUnit.getAlias()); - if (timeUnitName == NULL) { - continue; - } - LocalUResourceBundlePointer countsToPatternRB( - ures_getByKey(unitsRes.getAlias(), timeUnitName, NULL, &status)); - if (countsToPatternRB.isNull() || U_FAILURE(status)) { - continue; - } - TimeUnit::UTimeUnitFields timeUnitField = TimeUnit::UTIMEUNIT_FIELD_COUNT; - if ( uprv_strcmp(timeUnitName, gTimeUnitYear) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_YEAR; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitMonth) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_MONTH; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitDay) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_DAY; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitHour) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_HOUR; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitMinute) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_MINUTE; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitSecond) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_SECOND; - } else if ( uprv_strcmp(timeUnitName, gTimeUnitWeek) == 0 ) { - timeUnitField = TimeUnit::UTIMEUNIT_WEEK; - } else { - continue; - } - LocalPointer localCountToPatterns; - Hashtable *countToPatterns = fTimeUnitToCountToPatterns[timeUnitField]; - if (countToPatterns == NULL) { - localCountToPatterns.adoptInsteadAndCheckErrorCode(initHash(err), err); - countToPatterns = localCountToPatterns.getAlias(); - if (U_FAILURE(err)) { - return; - } - } - int32_t count = ures_getSize(countsToPatternRB.getAlias()); - const char* pluralCount; - for ( int32_t pluralIndex = 0; pluralIndex < count; ++pluralIndex) { - // resource of count to pattern - status = U_ZERO_ERROR; - UnicodeString pattern = - ures_getNextUnicodeString(countsToPatternRB.getAlias(), &pluralCount, &status); - if (U_FAILURE(status)) { - continue; - } - UnicodeString pluralCountUniStr(pluralCount, -1, US_INV); - if (!pluralCounts.contains(&pluralCountUniStr)) { - continue; - } - LocalPointer messageFormat(new MessageFormat(pattern, getLocale(err), err), err); - if (U_FAILURE(err)) { - return; - } - MessageFormat** formatters = (MessageFormat**)countToPatterns->get(pluralCountUniStr); - if (formatters == NULL) { - LocalMemory localFormatters( - (MessageFormat **)uprv_malloc(UTMUTFMT_FORMAT_STYLE_COUNT*sizeof(MessageFormat*))); - if (localFormatters.isNull()) { - err = U_MEMORY_ALLOCATION_ERROR; - return; - } - localFormatters[UTMUTFMT_FULL_STYLE] = NULL; - localFormatters[UTMUTFMT_ABBREVIATED_STYLE] = NULL; - countToPatterns->put(pluralCountUniStr, localFormatters.getAlias(), err); - if (U_FAILURE(err)) { - return; - } - formatters = localFormatters.orphan(); - } - //delete formatters[style]; - formatters[style] = messageFormat.orphan(); - } - if (fTimeUnitToCountToPatterns[timeUnitField] == NULL) { - fTimeUnitToCountToPatterns[timeUnitField] = localCountToPatterns.orphan(); - } - } -} + TimeUnitFormatReadSink sink(this, pluralCounts, style); + ures_getAllItemsWithFallback(unitsRes.getAlias(), "", sink, status); +} void TimeUnitFormat::checkConsistency(UTimeUnitFormatStyle style, const char* key, UErrorCode& err) { diff --git a/deps/icu-small/source/i18n/tolowtrn.cpp b/deps/icu-small/source/i18n/tolowtrn.cpp index 3edeaf81a68443..f0a59bbd0b4716 100644 --- a/deps/icu-small/source/i18n/tolowtrn.cpp +++ b/deps/icu-small/source/i18n/tolowtrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/tolowtrn.h b/deps/icu-small/source/i18n/tolowtrn.h index 564b215a728d54..616e59899f974d 100644 --- a/deps/icu-small/source/i18n/tolowtrn.h +++ b/deps/icu-small/source/i18n/tolowtrn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/toupptrn.cpp b/deps/icu-small/source/i18n/toupptrn.cpp index 4b7c7d06acaca1..a34792e07cfb82 100644 --- a/deps/icu-small/source/i18n/toupptrn.cpp +++ b/deps/icu-small/source/i18n/toupptrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/toupptrn.h b/deps/icu-small/source/i18n/toupptrn.h index 77799acbfd6bba..eae44e7d187dfa 100644 --- a/deps/icu-small/source/i18n/toupptrn.h +++ b/deps/icu-small/source/i18n/toupptrn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/translit.cpp b/deps/icu-small/source/i18n/translit.cpp index 56cad2d18f98b9..79328baa2bb157 100644 --- a/deps/icu-small/source/i18n/translit.cpp +++ b/deps/icu-small/source/i18n/translit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/transreg.cpp b/deps/icu-small/source/i18n/transreg.cpp index 2f7e7d56fa7b55..cc1d51dea84749 100644 --- a/deps/icu-small/source/i18n/transreg.cpp +++ b/deps/icu-small/source/i18n/transreg.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/transreg.h b/deps/icu-small/source/i18n/transreg.h index e01f89ad0705e6..334963f8d1e9c2 100644 --- a/deps/icu-small/source/i18n/transreg.h +++ b/deps/icu-small/source/i18n/transreg.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/tridpars.cpp b/deps/icu-small/source/i18n/tridpars.cpp index a58d58550d427d..140e3d7d1cf74d 100644 --- a/deps/icu-small/source/i18n/tridpars.cpp +++ b/deps/icu-small/source/i18n/tridpars.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines Corporation @@ -902,7 +904,7 @@ Transliterator* TransliteratorIDParser::createBasicInstance(const UnicodeString& /** * Initialize static memory. Called through umtx_initOnce only. */ -void TransliteratorIDParser::init(UErrorCode &status) { +void U_CALLCONV TransliteratorIDParser::init(UErrorCode &status) { U_ASSERT(SPECIAL_INVERSES == NULL); ucln_i18n_registerCleanup(UCLN_I18N_TRANSLITERATOR, utrans_transliterator_cleanup); diff --git a/deps/icu-small/source/i18n/tridpars.h b/deps/icu-small/source/i18n/tridpars.h index 88620fd18daf78..7c226023ef8011 100644 --- a/deps/icu-small/source/i18n/tridpars.h +++ b/deps/icu-small/source/i18n/tridpars.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************** * Copyright (c) 2002-2010, International Business Machines Corporation * @@ -349,7 +351,7 @@ class TransliteratorIDParser /* not : public UObject because all methods are sta /** * Initialize static memory. */ - static void init(UErrorCode &status); + static void U_CALLCONV init(UErrorCode &status); friend class SingleID; }; diff --git a/deps/icu-small/source/i18n/tzfmt.cpp b/deps/icu-small/source/i18n/tzfmt.cpp index e03b1a88aae044..783edac34fde70 100644 --- a/deps/icu-small/source/i18n/tzfmt.cpp +++ b/deps/icu-small/source/i18n/tzfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/tzgnames.cpp b/deps/icu-small/source/i18n/tzgnames.cpp index 127ea58deb9e90..4fc726ea54de9b 100644 --- a/deps/icu-small/source/i18n/tzgnames.cpp +++ b/deps/icu-small/source/i18n/tzgnames.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/tzgnames.h b/deps/icu-small/source/i18n/tzgnames.h index ebe9b76ba5ba91..e78e8ee991734e 100644 --- a/deps/icu-small/source/i18n/tzgnames.h +++ b/deps/icu-small/source/i18n/tzgnames.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2012, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/tznames.cpp b/deps/icu-small/source/i18n/tznames.cpp index db1ce0ddeec0cc..6aefd13b536fc0 100644 --- a/deps/icu-small/source/i18n/tznames.cpp +++ b/deps/icu-small/source/i18n/tznames.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2015, International Business Machines Corporation and * @@ -116,6 +118,9 @@ class TimeZoneNamesDelegate : public TimeZoneNames { UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const; + void loadAllDisplayNames(UErrorCode& status); + void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const; + MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const; private: TimeZoneNamesDelegate(); @@ -278,6 +283,16 @@ TimeZoneNamesDelegate::getExemplarLocationName(const UnicodeString& tzID, Unicod return fTZnamesCacheEntry->names->getExemplarLocationName(tzID, name); } +void +TimeZoneNamesDelegate::loadAllDisplayNames(UErrorCode& status) { + fTZnamesCacheEntry->names->loadAllDisplayNames(status); +} + +void +TimeZoneNamesDelegate::getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const { + fTZnamesCacheEntry->names->getDisplayNames(tzID, types, numTypes, date, dest, status); +} + TimeZoneNames::MatchInfoCollection* TimeZoneNamesDelegate::find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const { return fTZnamesCacheEntry->names->find(text, start, types, status); @@ -330,6 +345,29 @@ TimeZoneNames::getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, return name; } +// Empty default implementation, to be overriden in tznames_impl.cpp. +void +TimeZoneNames::loadAllDisplayNames(UErrorCode& /*status*/) { +} + +// A default, lightweight implementation of getDisplayNames. +// Overridden in tznames_impl.cpp. +void +TimeZoneNames::getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const { + if (U_FAILURE(status)) { return; } + if (tzID.isEmpty()) { return; } + UnicodeString mzID; + for (int i = 0; i < numTypes; i++) { + getTimeZoneDisplayName(tzID, types[i], dest[i]); + if (dest[i].isEmpty()) { + if (mzID.isEmpty()) { + getMetaZoneID(tzID, date, mzID); + } + getMetaZoneDisplayName(mzID, types[i], dest[i]); + } + } +} + struct MatchInfo : UMemory { UTimeZoneNameType nameType; diff --git a/deps/icu-small/source/i18n/tznames_impl.cpp b/deps/icu-small/source/i18n/tznames_impl.cpp index 0f50232a3ca64c..3e92acb6f9606e 100644 --- a/deps/icu-small/source/i18n/tznames_impl.cpp +++ b/deps/icu-small/source/i18n/tznames_impl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2016, International Business Machines Corporation and @@ -21,6 +23,7 @@ #include "cstring.h" #include "uassert.h" #include "mutex.h" +#include "resource.h" #include "uresimp.h" #include "ureslocs.h" #include "zonemeta.h" @@ -28,7 +31,6 @@ #include "uvector.h" #include "olsontz.h" - U_NAMESPACE_BEGIN #define ZID_KEY_MAX 128 @@ -37,25 +39,16 @@ U_NAMESPACE_BEGIN static const char gZoneStrings[] = "zoneStrings"; static const char gMZPrefix[] = "meta:"; -static const char* KEYS[] = {"lg", "ls", "ld", "sg", "ss", "sd"}; -static const int32_t KEYS_SIZE = UPRV_LENGTHOF(KEYS); - -static const char gEcTag[] = "ec"; - -static const char EMPTY[] = ""; // place holder for empty ZNames/TZNames - -static const UTimeZoneNameType ALL_NAME_TYPES[] = { - UTZNM_LONG_GENERIC, UTZNM_LONG_STANDARD, UTZNM_LONG_DAYLIGHT, - UTZNM_SHORT_GENERIC, UTZNM_SHORT_STANDARD, UTZNM_SHORT_DAYLIGHT, - UTZNM_EXEMPLAR_LOCATION, - UTZNM_UNKNOWN // unknown as the last one -}; +static const char EMPTY[] = ""; // place holder for empty ZNames +static const char DUMMY_LOADER[] = ""; // place holder for dummy ZNamesLoader +static const UChar NO_NAME[] = { 0 }; // for empty no-fallback time zone names // stuff for TZDBTimeZoneNames static const char* TZDBNAMES_KEYS[] = {"ss", "sd"}; static const int32_t TZDBNAMES_KEYS_SIZE = UPRV_LENGTHOF(TZDBNAMES_KEYS); static UMutex gTZDBNamesMapLock = U_MUTEX_INITIALIZER; +static UMutex gDataMutex = U_MUTEX_INITIALIZER; static UHashtable* gTZDBNamesMap = NULL; static icu::UInitOnce gTZDBNamesMapInitOnce = U_INITONCE_INITIALIZER; @@ -63,6 +56,20 @@ static icu::UInitOnce gTZDBNamesMapInitOnce = U_INITONCE_INITIALIZER; static TextTrieMap* gTZDBNamesTrie = NULL; static icu::UInitOnce gTZDBNamesTrieInitOnce = U_INITONCE_INITIALIZER; +// The order in which strings are stored may be different than the order in the public enum. +enum UTimeZoneNameTypeIndex { + UTZNM_INDEX_UNKNOWN = -1, + UTZNM_INDEX_EXEMPLAR_LOCATION, + UTZNM_INDEX_LONG_GENERIC, + UTZNM_INDEX_LONG_STANDARD, + UTZNM_INDEX_LONG_DAYLIGHT, + UTZNM_INDEX_SHORT_GENERIC, + UTZNM_INDEX_SHORT_STANDARD, + UTZNM_INDEX_SHORT_DAYLIGHT, + UTZNM_INDEX_COUNT +}; +static const UChar* EMPTY_NAMES[UTZNM_INDEX_COUNT] = {0,0,0,0,0,0,0}; + U_CDECL_BEGIN static UBool U_CALLCONV tzdbTimeZoneNames_cleanup(void) { if (gTZDBNamesMap != NULL) { @@ -81,6 +88,26 @@ static UBool U_CALLCONV tzdbTimeZoneNames_cleanup(void) { } U_CDECL_END +/** + * ZNameInfo stores zone name information in the trie + */ +struct ZNameInfo { + UTimeZoneNameType type; + const UChar* tzID; + const UChar* mzID; +}; + +/** + * ZMatchInfo stores zone name match information used by find method + */ +struct ZMatchInfo { + const ZNameInfo* znameInfo; + int32_t matchLength; +}; + +// Helper functions +static void mergeTimeZoneKey(const UnicodeString& mzID, char* result); + #define DEFAULT_CHARACTERNODE_CAPACITY 1 // --------------------------------------------------- @@ -182,7 +209,7 @@ TextTrieMap::put(const UnicodeString &key, void *value, ZNStringPool &sp, UError put(s, value, status); } -// This method is for designed for a persistent key, such as string key stored in +// This method is designed for a persistent key, such as string key stored in // resource bundle. void TextTrieMap::put(const UChar *key, void *value, UErrorCode &status) { @@ -194,11 +221,22 @@ TextTrieMap::put(const UChar *key, void *value, UErrorCode &status) { } } if (U_FAILURE(status)) { + if (fValueDeleter) { + fValueDeleter((void*) key); + } return; } U_ASSERT(fLazyContents != NULL); + UChar *s = const_cast(key); fLazyContents->addElement(s, status); + if (U_FAILURE(status)) { + if (fValueDeleter) { + fValueDeleter((void*) key); + } + return; + } + fLazyContents->addElement(value, status); } @@ -207,6 +245,10 @@ TextTrieMap::putImpl(const UnicodeString &key, void *value, UErrorCode &status) if (fNodes == NULL) { fNodesCapacity = 512; fNodes = (CharacterNode *)uprv_malloc(fNodesCapacity * sizeof(CharacterNode)); + if (fNodes == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } fNodes[0].clear(); // Init root node. fNodesCount = 1; } @@ -517,196 +559,283 @@ void ZNStringPool::freeze() { } -// --------------------------------------------------- -// ZNames - names common for time zone and meta zone -// --------------------------------------------------- +/** + * This class stores name data for a meta zone or time zone. + */ class ZNames : public UMemory { -public: - virtual ~ZNames(); +private: + friend class TimeZoneNamesImpl; + + static UTimeZoneNameTypeIndex getTZNameTypeIndex(UTimeZoneNameType type) { + switch(type) { + case UTZNM_EXEMPLAR_LOCATION: return UTZNM_INDEX_EXEMPLAR_LOCATION; + case UTZNM_LONG_GENERIC: return UTZNM_INDEX_LONG_GENERIC; + case UTZNM_LONG_STANDARD: return UTZNM_INDEX_LONG_STANDARD; + case UTZNM_LONG_DAYLIGHT: return UTZNM_INDEX_LONG_DAYLIGHT; + case UTZNM_SHORT_GENERIC: return UTZNM_INDEX_SHORT_GENERIC; + case UTZNM_SHORT_STANDARD: return UTZNM_INDEX_SHORT_STANDARD; + case UTZNM_SHORT_DAYLIGHT: return UTZNM_INDEX_SHORT_DAYLIGHT; + default: return UTZNM_INDEX_UNKNOWN; + } + } + static UTimeZoneNameType getTZNameType(UTimeZoneNameTypeIndex index) { + switch(index) { + case UTZNM_INDEX_EXEMPLAR_LOCATION: return UTZNM_EXEMPLAR_LOCATION; + case UTZNM_INDEX_LONG_GENERIC: return UTZNM_LONG_GENERIC; + case UTZNM_INDEX_LONG_STANDARD: return UTZNM_LONG_STANDARD; + case UTZNM_INDEX_LONG_DAYLIGHT: return UTZNM_LONG_DAYLIGHT; + case UTZNM_INDEX_SHORT_GENERIC: return UTZNM_SHORT_GENERIC; + case UTZNM_INDEX_SHORT_STANDARD: return UTZNM_SHORT_STANDARD; + case UTZNM_INDEX_SHORT_DAYLIGHT: return UTZNM_SHORT_DAYLIGHT; + default: return UTZNM_UNKNOWN; + } + } - static ZNames* createInstance(UResourceBundle* rb, const char* key); - virtual const UChar* getName(UTimeZoneNameType type); + const UChar* fNames[UTZNM_INDEX_COUNT]; + UBool fDidAddIntoTrie; -protected: - ZNames(const UChar** names); - static const UChar** loadData(UResourceBundle* rb, const char* key); + // Whether we own the location string, if computed rather than loaded from a bundle. + // A meta zone names instance never has an exemplar location string. + UBool fOwnsLocationName; + + ZNames(const UChar* names[], const UChar* locationName) + : fDidAddIntoTrie(FALSE) { + uprv_memcpy(fNames, names, sizeof(fNames)); + if (locationName != NULL) { + fOwnsLocationName = TRUE; + fNames[UTZNM_INDEX_EXEMPLAR_LOCATION] = locationName; + } else { + fOwnsLocationName = FALSE; + } + } + +public: + ~ZNames() { + if (fOwnsLocationName) { + const UChar* locationName = fNames[UTZNM_INDEX_EXEMPLAR_LOCATION]; + U_ASSERT(locationName != NULL); + uprv_free((void*) locationName); + } + } private: - const UChar** fNames; -}; + static void* createMetaZoneAndPutInCache(UHashtable* cache, const UChar* names[], + const UnicodeString& mzID, UErrorCode& status) { + if (U_FAILURE(status)) { return NULL; } + U_ASSERT(names != NULL); -ZNames::ZNames(const UChar** names) -: fNames(names) { -} + // Use the persistent ID as the resource key, so we can + // avoid duplications. + // TODO: Is there a more efficient way, like intern() in Java? + void* key = (void*) ZoneMeta::findMetaZoneID(mzID); + void* value; + if (uprv_memcmp(names, EMPTY_NAMES, sizeof(EMPTY_NAMES)) == 0) { + value = (void*) EMPTY; + } else { + value = (void*) (new ZNames(names, NULL)); + if (value == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + } + uhash_put(cache, key, value, &status); + return value; + } + + static void* createTimeZoneAndPutInCache(UHashtable* cache, const UChar* names[], + const UnicodeString& tzID, UErrorCode& status) { + if (U_FAILURE(status)) { return NULL; } + U_ASSERT(names != NULL); + + // If necessary, compute the location name from the time zone name. + UChar* locationName = NULL; + if (names[UTZNM_INDEX_EXEMPLAR_LOCATION] == NULL) { + UnicodeString locationNameUniStr; + TimeZoneNamesImpl::getDefaultExemplarLocationName(tzID, locationNameUniStr); + + // Copy the computed location name to the heap + if (locationNameUniStr.length() > 0) { + const UChar* buff = locationNameUniStr.getTerminatedBuffer(); + int32_t len = sizeof(UChar) * (locationNameUniStr.length() + 1); + locationName = (UChar*) uprv_malloc(len); + if (locationName == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + uprv_memcpy(locationName, buff, len); + } + } -ZNames::~ZNames() { - if (fNames != NULL) { - uprv_free(fNames); + // Use the persistent ID as the resource key, so we can + // avoid duplications. + // TODO: Is there a more efficient way, like intern() in Java? + void* key = (void*) ZoneMeta::findTimeZoneID(tzID); + void* value = (void*) (new ZNames(names, locationName)); + if (value == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + uhash_put(cache, key, value, &status); + return value; } -} -ZNames* -ZNames::createInstance(UResourceBundle* rb, const char* key) { - const UChar** names = loadData(rb, key); - if (names == NULL) { - // No names data available - return NULL; + const UChar* getName(UTimeZoneNameType type) const { + UTimeZoneNameTypeIndex index = getTZNameTypeIndex(type); + return index >= 0 ? fNames[index] : NULL; } - return new ZNames(names); -} -const UChar* -ZNames::getName(UTimeZoneNameType type) { - if (fNames == NULL) { - return NULL; - } - const UChar *name = NULL; - switch(type) { - case UTZNM_LONG_GENERIC: - name = fNames[0]; - break; - case UTZNM_LONG_STANDARD: - name = fNames[1]; - break; - case UTZNM_LONG_DAYLIGHT: - name = fNames[2]; - break; - case UTZNM_SHORT_GENERIC: - name = fNames[3]; - break; - case UTZNM_SHORT_STANDARD: - name = fNames[4]; - break; - case UTZNM_SHORT_DAYLIGHT: - name = fNames[5]; - break; - case UTZNM_EXEMPLAR_LOCATION: // implemeted by subclass - default: - name = NULL; + void addAsMetaZoneIntoTrie(const UChar* mzID, TextTrieMap& trie, UErrorCode& status) { + addNamesIntoTrie(mzID, NULL, trie, status); } - return name; -} - -const UChar** -ZNames::loadData(UResourceBundle* rb, const char* key) { - if (rb == NULL || key == NULL || *key == 0) { - return NULL; + void addAsTimeZoneIntoTrie(const UChar* tzID, TextTrieMap& trie, UErrorCode& status) { + addNamesIntoTrie(NULL, tzID, trie, status); } - UErrorCode status = U_ZERO_ERROR; - const UChar **names = NULL; + void addNamesIntoTrie(const UChar* mzID, const UChar* tzID, TextTrieMap& trie, + UErrorCode& status) { + if (U_FAILURE(status)) { return; } + if (fDidAddIntoTrie) { return; } + fDidAddIntoTrie = TRUE; - UResourceBundle* rbTable = NULL; - rbTable = ures_getByKeyWithFallback(rb, key, rbTable, &status); - if (U_SUCCESS(status)) { - names = (const UChar **)uprv_malloc(sizeof(const UChar*) * KEYS_SIZE); - if (names != NULL) { - UBool isEmpty = TRUE; - for (int32_t i = 0; i < KEYS_SIZE; i++) { - status = U_ZERO_ERROR; - int32_t len = 0; - const UChar *value = ures_getStringByKeyWithFallback(rbTable, KEYS[i], &len, &status); - if (U_FAILURE(status) || len == 0) { - names[i] = NULL; - } else { - names[i] = value; - isEmpty = FALSE; + for (int32_t i = 0; i < UTZNM_INDEX_COUNT; i++) { + const UChar* name = fNames[i]; + if (name != NULL) { + ZNameInfo *nameinfo = (ZNameInfo *)uprv_malloc(sizeof(ZNameInfo)); + if (nameinfo == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + nameinfo->mzID = mzID; + nameinfo->tzID = tzID; + nameinfo->type = getTZNameType((UTimeZoneNameTypeIndex)i); + trie.put(name, nameinfo, status); // trie.put() takes ownership of the key + if (U_FAILURE(status)) { + return; } - } - if (isEmpty) { - // No need to keep the names array - uprv_free(names); - names = NULL; } } } - ures_close(rbTable); - return names; -} -// --------------------------------------------------- -// TZNames - names for a time zone -// --------------------------------------------------- -class TZNames : public ZNames { public: - virtual ~TZNames(); - - static TZNames* createInstance(UResourceBundle* rb, const char* key, const UnicodeString& tzID); - virtual const UChar* getName(UTimeZoneNameType type); - -private: - TZNames(const UChar** names); - const UChar* fLocationName; - UChar* fLocationNameOwned; + struct ZNamesLoader; }; -TZNames::TZNames(const UChar** names) -: ZNames(names), fLocationName(NULL), fLocationNameOwned(NULL) { -} +struct ZNames::ZNamesLoader : public ResourceSink { + const UChar *names[UTZNM_INDEX_COUNT]; -TZNames::~TZNames() { - if (fLocationNameOwned) { - uprv_free(fLocationNameOwned); + ZNamesLoader() { + clear(); } -} + virtual ~ZNamesLoader(); -const UChar* -TZNames::getName(UTimeZoneNameType type) { - if (type == UTZNM_EXEMPLAR_LOCATION) { - return fLocationName; + /** Reset for loading another set of names. */ + void clear() { + uprv_memcpy(names, EMPTY_NAMES, sizeof(names)); } - return ZNames::getName(type); -} -TZNames* -TZNames::createInstance(UResourceBundle* rb, const char* key, const UnicodeString& tzID) { - if (rb == NULL || key == NULL || *key == 0) { - return NULL; + void loadMetaZone(const UResourceBundle* zoneStrings, const UnicodeString& mzID, UErrorCode& errorCode) { + if (U_FAILURE(errorCode)) { return; } + + char key[ZID_KEY_MAX + 1]; + mergeTimeZoneKey(mzID, key); + + loadNames(zoneStrings, key, errorCode); } - const UChar** names = loadData(rb, key); - const UChar* locationName = NULL; - UChar* locationNameOwned = NULL; + void loadTimeZone(const UResourceBundle* zoneStrings, const UnicodeString& tzID, UErrorCode& errorCode) { + // Replace "/" with ":". + UnicodeString uKey(tzID); + for (int32_t i = 0; i < uKey.length(); i++) { + if (uKey.charAt(i) == (UChar)0x2F) { + uKey.setCharAt(i, (UChar)0x3A); + } + } + + char key[ZID_KEY_MAX + 1]; + uKey.extract(0, uKey.length(), key, sizeof(key), US_INV); - UErrorCode status = U_ZERO_ERROR; - int32_t len = 0; + loadNames(zoneStrings, key, errorCode); + } + + void loadNames(const UResourceBundle* zoneStrings, const char* key, UErrorCode& errorCode) { + U_ASSERT(zoneStrings != NULL); + U_ASSERT(key != NULL); + U_ASSERT(key[0] != '\0'); - UResourceBundle* table = ures_getByKeyWithFallback(rb, key, NULL, &status); - locationName = ures_getStringByKeyWithFallback(table, gEcTag, &len, &status); - // ignore missing resource here - status = U_ZERO_ERROR; + UErrorCode localStatus = U_ZERO_ERROR; + clear(); + ures_getAllItemsWithFallback(zoneStrings, key, *this, localStatus); - ures_close(table); + // Ignore errors, but propogate possible warnings. + if (U_SUCCESS(localStatus)) { + errorCode = localStatus; + } + } - if (locationName == NULL) { - UnicodeString tmpName; - int32_t tmpNameLen = 0; - TimeZoneNamesImpl::getDefaultExemplarLocationName(tzID, tmpName); - tmpNameLen = tmpName.length(); + void setNameIfEmpty(const char* key, const ResourceValue* value, UErrorCode& errorCode) { + UTimeZoneNameTypeIndex type = nameTypeFromKey(key); + if (type == UTZNM_INDEX_UNKNOWN) { return; } + if (names[type] == NULL) { + int32_t length; + // 'NO_NAME' indicates internally that this field should remain empty. It will be + // replaced by 'NULL' in getNames() + names[type] = (value == NULL) ? NO_NAME : value->getString(length, errorCode); + } + } - if (tmpNameLen > 0) { - locationNameOwned = (UChar*) uprv_malloc(sizeof(UChar) * (tmpNameLen + 1)); - if (locationNameOwned) { - tmpName.extract(locationNameOwned, tmpNameLen + 1, status); - locationName = locationNameOwned; + virtual void put(const char* key, ResourceValue& value, UBool /*noFallback*/, + UErrorCode &errorCode) { + ResourceTable namesTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t i = 0; namesTable.getKeyAndValue(i, key, value); ++i) { + if (value.isNoInheritanceMarker()) { + setNameIfEmpty(key, NULL, errorCode); + } else { + setNameIfEmpty(key, &value, errorCode); } } } - TZNames* tznames = NULL; - if (locationName != NULL || names != NULL) { - tznames = new TZNames(names); - if (tznames == NULL) { - if (locationNameOwned) { - uprv_free(locationNameOwned); + static UTimeZoneNameTypeIndex nameTypeFromKey(const char *key) { + char c0, c1; + if ((c0 = key[0]) == 0 || (c1 = key[1]) == 0 || key[2] != 0) { + return UTZNM_INDEX_UNKNOWN; + } + if (c0 == 'l') { + return c1 == 'g' ? UTZNM_INDEX_LONG_GENERIC : + c1 == 's' ? UTZNM_INDEX_LONG_STANDARD : + c1 == 'd' ? UTZNM_INDEX_LONG_DAYLIGHT : UTZNM_INDEX_UNKNOWN; + } else if (c0 == 's') { + return c1 == 'g' ? UTZNM_INDEX_SHORT_GENERIC : + c1 == 's' ? UTZNM_INDEX_SHORT_STANDARD : + c1 == 'd' ? UTZNM_INDEX_SHORT_DAYLIGHT : UTZNM_INDEX_UNKNOWN; + } else if (c0 == 'e' && c1 == 'c') { + return UTZNM_INDEX_EXEMPLAR_LOCATION; + } + return UTZNM_INDEX_UNKNOWN; + } + + /** + * Returns an array of names. It is the caller's responsibility to copy the data into a + * permanent location, as the returned array is owned by the loader instance and may be + * cleared or leave scope. + * + * This is different than Java, where the array will no longer be modified and null + * may be returned. + */ + const UChar** getNames() { + // Remove 'NO_NAME' references in the array and replace with 'NULL' + for (int32_t i = 0; i < UTZNM_INDEX_COUNT; ++i) { + if (names[i] == NO_NAME) { + names[i] = NULL; } } - tznames->fLocationName = locationName; - tznames->fLocationNameOwned = locationNameOwned; + return names; } +}; + +ZNames::ZNamesLoader::~ZNamesLoader() {} - return tznames; -} // --------------------------------------------------- // The meta zone ID enumeration class @@ -772,25 +901,6 @@ MetaZoneIDsEnumeration::~MetaZoneIDsEnumeration() { } } -U_CDECL_BEGIN -/** - * ZNameInfo stores zone name information in the trie - */ -typedef struct ZNameInfo { - UTimeZoneNameType type; - const UChar* tzID; - const UChar* mzID; -} ZNameInfo; - -/** - * ZMatchInfo stores zone name match information used by find method - */ -typedef struct ZMatchInfo { - const ZNameInfo* znameInfo; - int32_t matchLength; -} ZMatchInfo; -U_CDECL_END - // --------------------------------------------------- // ZNameSearchHandler @@ -883,16 +993,7 @@ U_CDECL_BEGIN static void U_CALLCONV deleteZNames(void *obj) { if (obj != EMPTY) { - delete (ZNames *)obj; - } -} -/** - * Deleter for TZNames - */ -static void U_CALLCONV -deleteTZNames(void *obj) { - if (obj != EMPTY) { - delete (TZNames *)obj; + delete (ZNames*) obj; } } @@ -906,14 +1007,13 @@ deleteZNameInfo(void *obj) { U_CDECL_END -static UMutex gLock = U_MUTEX_INITIALIZER; - TimeZoneNamesImpl::TimeZoneNamesImpl(const Locale& locale, UErrorCode& status) : fLocale(locale), fZoneStrings(NULL), fTZNamesMap(NULL), fMZNamesMap(NULL), fNamesTrieFullyLoaded(FALSE), + fNamesFullyLoaded(FALSE), fNamesTrie(TRUE, deleteZNameInfo) { initialize(locale, status); } @@ -943,14 +1043,14 @@ TimeZoneNamesImpl::initialize(const Locale& locale, UErrorCode& status) { } uhash_setValueDeleter(fMZNamesMap, deleteZNames); - uhash_setValueDeleter(fTZNamesMap, deleteTZNames); + uhash_setValueDeleter(fTZNamesMap, deleteZNames); // no key deleters for name maps // preload zone strings for the default zone TimeZone *tz = TimeZone::createDefault(); const UChar *tzID = ZoneMeta::getCanonicalCLDRID(*tz); if (tzID != NULL) { - loadStrings(UnicodeString(tzID)); + loadStrings(UnicodeString(tzID), status); } delete tz; @@ -962,20 +1062,15 @@ TimeZoneNamesImpl::initialize(const Locale& locale, UErrorCode& status) { * except initializer. */ void -TimeZoneNamesImpl::loadStrings(const UnicodeString& tzCanonicalID) { - loadTimeZoneNames(tzCanonicalID); +TimeZoneNamesImpl::loadStrings(const UnicodeString& tzCanonicalID, UErrorCode& status) { + loadTimeZoneNames(tzCanonicalID, status); + LocalPointer mzIDs(getAvailableMetaZoneIDs(tzCanonicalID, status)); + if (U_FAILURE(status)) { return; } + U_ASSERT(!mzIDs.isNull()); - UErrorCode status = U_ZERO_ERROR; - StringEnumeration *mzIDs = getAvailableMetaZoneIDs(tzCanonicalID, status); - if (U_SUCCESS(status) && mzIDs != NULL) { - const UnicodeString *mzID; - while ((mzID = mzIDs->snext(status))) { - if (U_FAILURE(status)) { - break; - } - loadMetaZoneNames(*mzID); - } - delete mzIDs; + const UnicodeString *mzID; + while ((mzID = mzIDs->snext(status)) && U_SUCCESS(status)) { + loadMetaZoneNames(*mzID, status); } } @@ -1096,7 +1191,6 @@ TimeZoneNamesImpl::_getReferenceZoneID(const UnicodeString& mzID, const char* re return tzID; } - UnicodeString& TimeZoneNamesImpl::getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, @@ -1109,11 +1203,12 @@ TimeZoneNamesImpl::getMetaZoneDisplayName(const UnicodeString& mzID, ZNames *znames = NULL; TimeZoneNamesImpl *nonConstThis = const_cast(this); - umtx_lock(&gLock); { - znames = nonConstThis->loadMetaZoneNames(mzID); + Mutex lock(&gDataMutex); + UErrorCode status = U_ZERO_ERROR; + znames = nonConstThis->loadMetaZoneNames(mzID, status); + if (U_FAILURE(status)) { return name; } } - umtx_unlock(&gLock); if (znames != NULL) { const UChar* s = znames->getName(type); @@ -1131,14 +1226,15 @@ TimeZoneNamesImpl::getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNa return name; } - TZNames *tznames = NULL; + ZNames *tznames = NULL; TimeZoneNamesImpl *nonConstThis = const_cast(this); - umtx_lock(&gLock); { - tznames = nonConstThis->loadTimeZoneNames(tzID); + Mutex lock(&gDataMutex); + UErrorCode status = U_ZERO_ERROR; + tznames = nonConstThis->loadTimeZoneNames(tzID, status); + if (U_FAILURE(status)) { return name; } } - umtx_unlock(&gLock); if (tznames != NULL) { const UChar *s = tznames->getName(type); @@ -1153,14 +1249,15 @@ UnicodeString& TimeZoneNamesImpl::getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const { name.setToBogus(); // cleanup result. const UChar* locName = NULL; - TZNames *tznames = NULL; + ZNames *tznames = NULL; TimeZoneNamesImpl *nonConstThis = const_cast(this); - umtx_lock(&gLock); { - tznames = nonConstThis->loadTimeZoneNames(tzID); + Mutex lock(&gDataMutex); + UErrorCode status = U_ZERO_ERROR; + tznames = nonConstThis->loadTimeZoneNames(tzID, status); + if (U_FAILURE(status)) { return name; } } - umtx_unlock(&gLock); if (tznames != NULL) { locName = tznames->getName(UTZNM_EXEMPLAR_LOCATION); @@ -1193,215 +1290,386 @@ static void mergeTimeZoneKey(const UnicodeString& mzID, char* result) { * This method updates the cache and must be called with a lock */ ZNames* -TimeZoneNamesImpl::loadMetaZoneNames(const UnicodeString& mzID) { - if (mzID.length() > (ZID_KEY_MAX - MZ_PREFIX_LEN)) { - return NULL; - } +TimeZoneNamesImpl::loadMetaZoneNames(const UnicodeString& mzID, UErrorCode& status) { + if (U_FAILURE(status)) { return NULL; } + U_ASSERT(mzID.length() <= ZID_KEY_MAX - MZ_PREFIX_LEN); - ZNames *znames = NULL; - - UErrorCode status = U_ZERO_ERROR; UChar mzIDKey[ZID_KEY_MAX + 1]; mzID.extract(mzIDKey, ZID_KEY_MAX + 1, status); - U_ASSERT(status == U_ZERO_ERROR); // already checked length above + U_ASSERT(U_SUCCESS(status)); // already checked length above mzIDKey[mzID.length()] = 0; - void *cacheVal = uhash_get(fMZNamesMap, mzIDKey); - if (cacheVal == NULL) { - char key[ZID_KEY_MAX + 1]; - mergeTimeZoneKey(mzID, key); - znames = ZNames::createInstance(fZoneStrings, key); - - if (znames == NULL) { - cacheVal = (void *)EMPTY; - } else { - cacheVal = znames; - } - // Use the persistent ID as the resource key, so we can - // avoid duplications. - const UChar* newKey = ZoneMeta::findMetaZoneID(mzID); - if (newKey != NULL) { - uhash_put(fMZNamesMap, (void *)newKey, cacheVal, &status); - if (U_FAILURE(status)) { - if (znames != NULL) { - delete znames; - znames = NULL; - } - } else if (znames != NULL) { - // put the name info into the trie - for (int32_t i = 0; ALL_NAME_TYPES[i] != UTZNM_UNKNOWN; i++) { - const UChar* name = znames->getName(ALL_NAME_TYPES[i]); - if (name != NULL) { - ZNameInfo *nameinfo = (ZNameInfo *)uprv_malloc(sizeof(ZNameInfo)); - if (nameinfo != NULL) { - nameinfo->type = ALL_NAME_TYPES[i]; - nameinfo->tzID = NULL; - nameinfo->mzID = newKey; - fNamesTrie.put(name, nameinfo, status); - } - } - } - } - - } else { - // Should never happen with a valid input - if (znames != NULL) { - // It's not possible that we get a valid ZNames with unknown ID. - // But just in case.. - delete znames; - znames = NULL; - } - } - } else if (cacheVal != EMPTY) { - znames = (ZNames *)cacheVal; + void* mznames = uhash_get(fMZNamesMap, mzIDKey); + if (mznames == NULL) { + ZNames::ZNamesLoader loader; + loader.loadMetaZone(fZoneStrings, mzID, status); + mznames = ZNames::createMetaZoneAndPutInCache(fMZNamesMap, loader.getNames(), mzID, status); + if (U_FAILURE(status)) { return NULL; } } - return znames; + if (mznames != EMPTY) { + return (ZNames*)mznames; + } else { + return NULL; + } } /* * This method updates the cache and must be called with a lock */ -TZNames* -TimeZoneNamesImpl::loadTimeZoneNames(const UnicodeString& tzID) { - if (tzID.length() > ZID_KEY_MAX) { - return NULL; - } - - TZNames *tznames = NULL; +ZNames* +TimeZoneNamesImpl::loadTimeZoneNames(const UnicodeString& tzID, UErrorCode& status) { + if (U_FAILURE(status)) { return NULL; } + U_ASSERT(tzID.length() <= ZID_KEY_MAX); - UErrorCode status = U_ZERO_ERROR; UChar tzIDKey[ZID_KEY_MAX + 1]; int32_t tzIDKeyLen = tzID.extract(tzIDKey, ZID_KEY_MAX + 1, status); - U_ASSERT(status == U_ZERO_ERROR); // already checked length above + U_ASSERT(U_SUCCESS(status)); // already checked length above tzIDKey[tzIDKeyLen] = 0; - void *cacheVal = uhash_get(fTZNamesMap, tzIDKey); - if (cacheVal == NULL) { - char key[ZID_KEY_MAX + 1]; - UErrorCode status = U_ZERO_ERROR; - // Replace "/" with ":". - UnicodeString uKey(tzID); - for (int32_t i = 0; i < uKey.length(); i++) { - if (uKey.charAt(i) == (UChar)0x2F) { - uKey.setCharAt(i, (UChar)0x3A); - } - } - uKey.extract(0, uKey.length(), key, sizeof(key), US_INV); - tznames = TZNames::createInstance(fZoneStrings, key, tzID); - - if (tznames == NULL) { - cacheVal = (void *)EMPTY; - } else { - cacheVal = tznames; - } - // Use the persistent ID as the resource key, so we can - // avoid duplications. - const UChar* newKey = ZoneMeta::findTimeZoneID(tzID); - if (newKey != NULL) { - uhash_put(fTZNamesMap, (void *)newKey, cacheVal, &status); - if (U_FAILURE(status)) { - if (tznames != NULL) { - delete tznames; - tznames = NULL; - } - } else if (tznames != NULL) { - // put the name info into the trie - for (int32_t i = 0; ALL_NAME_TYPES[i] != UTZNM_UNKNOWN; i++) { - const UChar* name = tznames->getName(ALL_NAME_TYPES[i]); - if (name != NULL) { - ZNameInfo *nameinfo = (ZNameInfo *)uprv_malloc(sizeof(ZNameInfo)); - if (nameinfo != NULL) { - nameinfo->type = ALL_NAME_TYPES[i]; - nameinfo->tzID = newKey; - nameinfo->mzID = NULL; - fNamesTrie.put(name, nameinfo, status); - } - } - } - } - } else { - // Should never happen with a valid input - if (tznames != NULL) { - // It's not possible that we get a valid TZNames with unknown ID. - // But just in case.. - delete tznames; - tznames = NULL; - } - } - } else if (cacheVal != EMPTY) { - tznames = (TZNames *)cacheVal; + void *tznames = uhash_get(fTZNamesMap, tzIDKey); + if (tznames == NULL) { + ZNames::ZNamesLoader loader; + loader.loadTimeZone(fZoneStrings, tzID, status); + tznames = ZNames::createTimeZoneAndPutInCache(fTZNamesMap, loader.getNames(), tzID, status); + if (U_FAILURE(status)) { return NULL; } } - return tznames; + // tznames is never EMPTY + return (ZNames*)tznames; } TimeZoneNames::MatchInfoCollection* TimeZoneNamesImpl::find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const { ZNameSearchHandler handler(types); + TimeZoneNames::MatchInfoCollection* matches; + TimeZoneNamesImpl* nonConstThis = const_cast(this); - TimeZoneNamesImpl *nonConstThis = const_cast(this); - - umtx_lock(&gLock); + // Synchronize so that data is not loaded multiple times. + // TODO: Consider more fine-grained synchronization. { - fNamesTrie.search(text, start, (TextTrieMapSearchResultHandler *)&handler, status); - } - umtx_unlock(&gLock); + Mutex lock(&gDataMutex); - if (U_FAILURE(status)) { - return NULL; + // First try of lookup. + matches = doFind(handler, text, start, status); + if (U_FAILURE(status)) { return NULL; } + if (matches != NULL) { + return matches; + } + + // All names are not yet loaded into the trie. + // We may have loaded names for formatting several time zones, + // and might be parsing one of those. + // Populate the parsing trie from all of the already-loaded names. + nonConstThis->addAllNamesIntoTrie(status); + + // Second try of lookup. + matches = doFind(handler, text, start, status); + if (U_FAILURE(status)) { return NULL; } + if (matches != NULL) { + return matches; + } + + // There are still some names we haven't loaded into the trie yet. + // Load everything now. + nonConstThis->internalLoadAllDisplayNames(status); + nonConstThis->addAllNamesIntoTrie(status); + nonConstThis->fNamesTrieFullyLoaded = TRUE; + if (U_FAILURE(status)) { return NULL; } + + // Third try: we must return this one. + return doFind(handler, text, start, status); } +} + +TimeZoneNames::MatchInfoCollection* +TimeZoneNamesImpl::doFind(ZNameSearchHandler& handler, + const UnicodeString& text, int32_t start, UErrorCode& status) const { + + fNamesTrie.search(text, start, (TextTrieMapSearchResultHandler *)&handler, status); + if (U_FAILURE(status)) { return NULL; } int32_t maxLen = 0; TimeZoneNames::MatchInfoCollection* matches = handler.getMatches(maxLen); if (matches != NULL && ((maxLen == (text.length() - start)) || fNamesTrieFullyLoaded)) { - // perfect match + // perfect match, or no more names available return matches; } - delete matches; + return NULL; +} - // All names are not yet loaded into the trie - umtx_lock(&gLock); - { - if (!fNamesTrieFullyLoaded) { - const UnicodeString *id; +// Caller must synchronize. +void TimeZoneNamesImpl::addAllNamesIntoTrie(UErrorCode& status) { + if (U_FAILURE(status)) return; + int32_t pos; + const UHashElement* element; - // load strings for all zones - StringEnumeration *tzIDs = TimeZone::createTimeZoneIDEnumeration(UCAL_ZONE_TYPE_CANONICAL, NULL, NULL, status); - if (U_SUCCESS(status)) { - while ((id = tzIDs->snext(status))) { - if (U_FAILURE(status)) { - break; + pos = UHASH_FIRST; + while ((element = uhash_nextElement(fMZNamesMap, &pos)) != NULL) { + if (element->value.pointer == EMPTY) { continue; } + UChar* mzID = (UChar*) element->key.pointer; + ZNames* znames = (ZNames*) element->value.pointer; + znames->addAsMetaZoneIntoTrie(mzID, fNamesTrie, status); + if (U_FAILURE(status)) { return; } + } + + pos = UHASH_FIRST; + while ((element = uhash_nextElement(fTZNamesMap, &pos)) != NULL) { + if (element->value.pointer == EMPTY) { continue; } + UChar* tzID = (UChar*) element->key.pointer; + ZNames* znames = (ZNames*) element->value.pointer; + znames->addAsTimeZoneIntoTrie(tzID, fNamesTrie, status); + if (U_FAILURE(status)) { return; } + } +} + +U_CDECL_BEGIN +static void U_CALLCONV +deleteZNamesLoader(void* obj) { + if (obj == DUMMY_LOADER) { return; } + const ZNames::ZNamesLoader* loader = (const ZNames::ZNamesLoader*) obj; + delete loader; +} +U_CDECL_END + +struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink { + TimeZoneNamesImpl& tzn; + UHashtable* keyToLoader; + + ZoneStringsLoader(TimeZoneNamesImpl& _tzn, UErrorCode& status) + : tzn(_tzn) { + keyToLoader = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status); + if (U_FAILURE(status)) { return; } + uhash_setKeyDeleter(keyToLoader, uprv_free); + uhash_setValueDeleter(keyToLoader, deleteZNamesLoader); + } + virtual ~ZoneStringsLoader(); + + void* createKey(const char* key, UErrorCode& status) { + int32_t len = sizeof(char) * (uprv_strlen(key) + 1); + char* newKey = (char*) uprv_malloc(len); + if (newKey == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + uprv_memcpy(newKey, key, len); + newKey[len-1] = '\0'; + return (void*) newKey; + } + + UBool isMetaZone(const char* key) { + return (uprv_strlen(key) >= MZ_PREFIX_LEN && uprv_memcmp(key, gMZPrefix, MZ_PREFIX_LEN) == 0); + } + + UnicodeString mzIDFromKey(const char* key) { + return UnicodeString(key + MZ_PREFIX_LEN, uprv_strlen(key) - MZ_PREFIX_LEN, US_INV); + } + + UnicodeString tzIDFromKey(const char* key) { + UnicodeString tzID(key, -1, US_INV); + // Replace all colons ':' with slashes '/' + for (int i=0; ivalue.pointer == DUMMY_LOADER) { continue; } + ZNames::ZNamesLoader* loader = (ZNames::ZNamesLoader*) element->value.pointer; + char* key = (char*) element->key.pointer; + + if (isMetaZone(key)) { + UnicodeString mzID = mzIDFromKey(key); + ZNames::createMetaZoneAndPutInCache(tzn.fMZNamesMap, loader->getNames(), mzID, status); + } else { + UnicodeString tzID = tzIDFromKey(key); + ZNames::createTimeZoneAndPutInCache(tzn.fTZNamesMap, loader->getNames(), tzID, status); + } + if (U_FAILURE(status)) { return; } + } + } + + void consumeNamesTable(const char *key, ResourceValue &value, UBool noFallback, + UErrorCode &status) { + if (U_FAILURE(status)) { return; } + + void* loader = uhash_get(keyToLoader, key); + if (loader == NULL) { + if (isMetaZone(key)) { + UnicodeString mzID = mzIDFromKey(key); + void* cacheVal = uhash_get(tzn.fMZNamesMap, mzID.getTerminatedBuffer()); + if (cacheVal != NULL) { + // We have already loaded the names for this meta zone. + loader = (void*) DUMMY_LOADER; + } else { + loader = (void*) new ZNames::ZNamesLoader(); + if (loader == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + } + } else { + UnicodeString tzID = tzIDFromKey(key); + void* cacheVal = uhash_get(tzn.fTZNamesMap, tzID.getTerminatedBuffer()); + if (cacheVal != NULL) { + // We have already loaded the names for this time zone. + loader = (void*) DUMMY_LOADER; + } else { + loader = (void*) new ZNames::ZNamesLoader(); + if (loader == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; } - // loadStrings also load related metazone strings - nonConstThis->loadStrings(*id); } } - if (tzIDs != NULL) { - delete tzIDs; + + void* newKey = createKey(key, status); + if (U_FAILURE(status)) { + deleteZNamesLoader(loader); + return; } - if (U_SUCCESS(status)) { - nonConstThis->fNamesTrieFullyLoaded = TRUE; + + uhash_put(keyToLoader, newKey, loader, &status); + if (U_FAILURE(status)) { return; } + } + + if (loader != DUMMY_LOADER) { + // Let the ZNamesLoader consume the names table. + ((ZNames::ZNamesLoader*)loader)->put(key, value, noFallback, status); + } + } + + virtual void put(const char *key, ResourceValue &value, UBool noFallback, + UErrorCode &status) { + ResourceTable timeZonesTable = value.getTable(status); + if (U_FAILURE(status)) { return; } + for (int32_t i = 0; timeZonesTable.getKeyAndValue(i, key, value); ++i) { + U_ASSERT(!value.isNoInheritanceMarker()); + if (value.getType() == URES_TABLE) { + consumeNamesTable(key, value, noFallback, status); + } else { + // Ignore fields that aren't tables (e.g., fallbackFormat and regionFormatStandard). + // All time zone fields are tables. } + if (U_FAILURE(status)) { return; } } } - umtx_unlock(&gLock); +}; - if (U_FAILURE(status)) { - return NULL; +// Virtual destructors must be defined out of line. +TimeZoneNamesImpl::ZoneStringsLoader::~ZoneStringsLoader() { + uhash_close(keyToLoader); +} + +void TimeZoneNamesImpl::loadAllDisplayNames(UErrorCode& status) { + if (U_FAILURE(status)) return; + + { + Mutex lock(&gDataMutex); + internalLoadAllDisplayNames(status); } +} + +void TimeZoneNamesImpl::getDisplayNames(const UnicodeString& tzID, + const UTimeZoneNameType types[], int32_t numTypes, + UDate date, UnicodeString dest[], UErrorCode& status) const { + if (U_FAILURE(status)) return; + + if (tzID.isEmpty()) { return; } + void* tznames = NULL; + void* mznames = NULL; + TimeZoneNamesImpl *nonConstThis = const_cast(this); - umtx_lock(&gLock); + // Load the time zone strings { - // now try it again - fNamesTrie.search(text, start, (TextTrieMapSearchResultHandler *)&handler, status); + Mutex lock(&gDataMutex); + tznames = (void*) nonConstThis->loadTimeZoneNames(tzID, status); + if (U_FAILURE(status)) { return; } + } + U_ASSERT(tznames != NULL); + + // Load the values into the dest array + for (int i = 0; i < numTypes; i++) { + UTimeZoneNameType type = types[i]; + const UChar* name = ((ZNames*)tznames)->getName(type); + if (name == NULL) { + if (mznames == NULL) { + // Load the meta zone name + UnicodeString mzID; + getMetaZoneID(tzID, date, mzID); + if (mzID.isEmpty()) { + mznames = (void*) EMPTY; + } else { + // Load the meta zone strings + // Mutex is scoped to the "else" statement + Mutex lock(&gDataMutex); + mznames = (void*) nonConstThis->loadMetaZoneNames(mzID, status); + if (U_FAILURE(status)) { return; } + // Note: when the metazone doesn't exist, in Java, loadMetaZoneNames returns + // a dummy object instead of NULL. + if (mznames == NULL) { + mznames = (void*) EMPTY; + } + } + } + U_ASSERT(mznames != NULL); + if (mznames != EMPTY) { + name = ((ZNames*)mznames)->getName(type); + } + } + if (name != NULL) { + dest[i].setTo(TRUE, name, -1); + } else { + dest[i].setToBogus(); + } } - umtx_unlock(&gLock); +} - return handler.getMatches(maxLen); +// Caller must synchronize. +void TimeZoneNamesImpl::internalLoadAllDisplayNames(UErrorCode& status) { + if (!fNamesFullyLoaded) { + fNamesFullyLoaded = TRUE; + + ZoneStringsLoader loader(*this, status); + loader.load(status); + if (U_FAILURE(status)) { return; } + + const UnicodeString *id; + + // load strings for all zones + StringEnumeration *tzIDs = TimeZone::createTimeZoneIDEnumeration( + UCAL_ZONE_TYPE_CANONICAL, NULL, NULL, status); + if (U_SUCCESS(status)) { + while ((id = tzIDs->snext(status))) { + if (U_FAILURE(status)) { + break; + } + UnicodeString copy(*id); + void* value = uhash_get(fTZNamesMap, copy.getTerminatedBuffer()); + if (value == NULL) { + // loadStrings also loads related metazone strings + loadStrings(*id, status); + } + } + } + if (tzIDs != NULL) { + delete tzIDs; + } + } } + + static const UChar gEtcPrefix[] = { 0x45, 0x74, 0x63, 0x2F }; // "Etc/" static const int32_t gEtcPrefixLen = 4; static const UChar gSystemVPrefix[] = { 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x56, 0x2F }; // "SystemV/ @@ -1554,7 +1822,7 @@ TZDBNames::createInstance(UResourceBundle* rb, const char* key) { if (regions != NULL) { char **p = regions; for (int32_t i = 0; i < numRegions; p++, i++) { - uprv_free(p); + uprv_free(*p); } uprv_free(regions); } @@ -1982,9 +2250,10 @@ TZDBTimeZoneNames::getMetaZoneNames(const UnicodeString& mzID, UErrorCode& statu } // Use the persistent ID as the resource key, so we can // avoid duplications. - const UChar* newKey = ZoneMeta::findMetaZoneID(mzID); + // TODO: Is there a more efficient way, like intern() in Java? + void* newKey = (void*) ZoneMeta::findMetaZoneID(mzID); if (newKey != NULL) { - uhash_put(gTZDBNamesMap, (void *)newKey, cacheVal, &status); + uhash_put(gTZDBNamesMap, newKey, cacheVal, &status); if (U_FAILURE(status)) { if (tzdbNames != NULL) { delete tzdbNames; diff --git a/deps/icu-small/source/i18n/tznames_impl.h b/deps/icu-small/source/i18n/tznames_impl.h index 5e5d96829e79ca..6b913bb6bf8c1b 100644 --- a/deps/icu-small/source/i18n/tznames_impl.h +++ b/deps/icu-small/source/i18n/tznames_impl.h @@ -1,7 +1,9 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* - * Copyright (C) 2011-2014, International Business Machines Corporation and * - * others. All Rights Reserved. * + * Copyright (C) 2011-2016, International Business Machines Corporation and + * others. All Rights Reserved. ******************************************************************************* */ @@ -159,8 +161,8 @@ class U_I18N_API TextTrieMap : public UMemory { class ZNames; -class TZNames; class TextTrieMap; +class ZNameSearchHandler; class TimeZoneNamesImpl : public TimeZoneNames { public: @@ -184,6 +186,9 @@ class TimeZoneNamesImpl : public TimeZoneNames { TimeZoneNames::MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const; + void loadAllDisplayNames(UErrorCode& status); + void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const; + static UnicodeString& getDefaultExemplarLocationName(const UnicodeString& tzID, UnicodeString& name); static StringEnumeration* _getAvailableMetaZoneIDs(UErrorCode& status); @@ -201,15 +206,23 @@ class TimeZoneNamesImpl : public TimeZoneNames { UHashtable* fMZNamesMap; UBool fNamesTrieFullyLoaded; + UBool fNamesFullyLoaded; TextTrieMap fNamesTrie; void initialize(const Locale& locale, UErrorCode& status); void cleanup(); - void loadStrings(const UnicodeString& tzCanonicalID); + void loadStrings(const UnicodeString& tzCanonicalID, UErrorCode& status); + + ZNames* loadMetaZoneNames(const UnicodeString& mzId, UErrorCode& status); + ZNames* loadTimeZoneNames(const UnicodeString& mzId, UErrorCode& status); + TimeZoneNames::MatchInfoCollection* doFind(ZNameSearchHandler& handler, + const UnicodeString& text, int32_t start, UErrorCode& status) const; + void addAllNamesIntoTrie(UErrorCode& errorCode); + + void internalLoadAllDisplayNames(UErrorCode& status); - ZNames* loadMetaZoneNames(const UnicodeString& mzId); - TZNames* loadTimeZoneNames(const UnicodeString& mzId); + struct ZoneStringsLoader; }; class TZDBNames; diff --git a/deps/icu-small/source/i18n/tzrule.cpp b/deps/icu-small/source/i18n/tzrule.cpp index 59e1f44c87d975..2ff61302b8180e 100644 --- a/deps/icu-small/source/i18n/tzrule.cpp +++ b/deps/icu-small/source/i18n/tzrule.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/tztrans.cpp b/deps/icu-small/source/i18n/tztrans.cpp index 6e0ddf6d39b8aa..76e259c5aef672 100644 --- a/deps/icu-small/source/i18n/tztrans.cpp +++ b/deps/icu-small/source/i18n/tztrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/ucal.cpp b/deps/icu-small/source/i18n/ucal.cpp index c405701ece9121..a9377b1e511f9e 100644 --- a/deps/icu-small/source/i18n/ucal.cpp +++ b/deps/icu-small/source/i18n/ucal.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/ucln_in.cpp b/deps/icu-small/source/i18n/ucln_in.cpp index 49e6b37fd0f6df..b33a68923767ca 100644 --- a/deps/icu-small/source/i18n/ucln_in.cpp +++ b/deps/icu-small/source/i18n/ucln_in.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * @@ -28,7 +30,7 @@ static const char copyright[] = U_COPYRIGHT_STRING; static cleanupFunc *gCleanupFunctions[UCLN_I18N_COUNT]; -static UBool i18n_cleanup(void) +static UBool U_CALLCONV i18n_cleanup(void) { int32_t libType = UCLN_I18N_START; (void)copyright; /* Suppress unused variable warning with clang. */ diff --git a/deps/icu-small/source/i18n/ucln_in.h b/deps/icu-small/source/i18n/ucln_in.h index 3fdec6db0d5686..b609fce0c2da5a 100644 --- a/deps/icu-small/source/i18n/ucln_in.h +++ b/deps/icu-small/source/i18n/ucln_in.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2016, International Business Machines @@ -24,8 +26,8 @@ as the functions are suppose to be called. It's usually best to have child dependencies called first. */ typedef enum ECleanupI18NType { UCLN_I18N_START = -1, - UCLN_I18N_IDENTIFIER_INFO, UCLN_I18N_SPOOF, + UCLN_I18N_SPOOFDATA, UCLN_I18N_TRANSLITERATOR, UCLN_I18N_REGEX, UCLN_I18N_ISLAMIC_CALENDAR, @@ -40,6 +42,7 @@ typedef enum ECleanupI18NType { UCLN_I18N_TIMEZONENAMES, UCLN_I18N_ZONEMETA, UCLN_I18N_TIMEZONE, + UCLN_I18N_DIGITLIST, UCLN_I18N_DECFMT, UCLN_I18N_NUMFMT, UCLN_I18N_ALLOWED_HOUR_FORMATS, diff --git a/deps/icu-small/source/i18n/ucol.cpp b/deps/icu-small/source/i18n/ucol.cpp index b950756d4075b1..c622aef7c245b7 100644 --- a/deps/icu-small/source/i18n/ucol.cpp +++ b/deps/icu-small/source/i18n/ucol.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/ucol_imp.h b/deps/icu-small/source/i18n/ucol_imp.h index bfa2bb445af30d..7c9e8f68911209 100644 --- a/deps/icu-small/source/i18n/ucol_imp.h +++ b/deps/icu-small/source/i18n/ucol_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -76,7 +78,7 @@ class CollationLoader { const CollationCacheEntry *createCacheEntry(UErrorCode &errorCode); private: - static void loadRootRules(UErrorCode &errorCode); + static void U_CALLCONV loadRootRules(UErrorCode &errorCode); // The following members are used by loadTailoring() // and the cache callback. diff --git a/deps/icu-small/source/i18n/ucol_res.cpp b/deps/icu-small/source/i18n/ucol_res.cpp index d7e2ab427c9f4d..314b766ee6db02 100644 --- a/deps/icu-small/source/i18n/ucol_res.cpp +++ b/deps/icu-small/source/i18n/ucol_res.cpp @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 1996-2014, International Business Machines +* Copyright (C) 1996-2016, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * file name: ucol_res.cpp @@ -34,11 +36,13 @@ #include "unicode/uloc.h" #include "unicode/unistr.h" #include "unicode/ures.h" +#include "charstr.h" #include "cmemory.h" #include "cstring.h" #include "collationdatareader.h" #include "collationroot.h" #include "collationtailoring.h" +#include "resource.h" #include "putilimp.h" #include "uassert.h" #include "ucln_in.h" @@ -74,9 +78,7 @@ ucol_res_cleanup() { return TRUE; } -U_CDECL_END - -void +void U_CALLCONV CollationLoader::loadRootRules(UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return; } rootBundle = ures_open(U_ICUDATA_COLL, kRootLocaleName, &errorCode); @@ -90,6 +92,8 @@ CollationLoader::loadRootRules(UErrorCode &errorCode) { ucln_i18n_registerCleanup(UCLN_I18N_UCOL_RES, ucol_res_cleanup); } +U_CDECL_END + void CollationLoader::appendRootRules(UnicodeString &s) { UErrorCode errorCode = U_ZERO_ERROR; @@ -501,8 +505,6 @@ U_CAPI UCollator* ucol_open(const char *loc, UErrorCode *status) { - U_NAMESPACE_USE - UTRACE_ENTRY_OC(UTRACE_UCOL_OPEN); UTRACE_DATA1(UTRACE_INFO, "locale = \"%s\"", loc); UCollator *result = NULL; @@ -523,8 +525,6 @@ ucol_getDisplayName( const char *objLoc, int32_t resultLength, UErrorCode *status) { - U_NAMESPACE_USE - if(U_FAILURE(*status)) return -1; UnicodeString dst; if(!(result==NULL && resultLength==0)) { @@ -558,8 +558,6 @@ ucol_countAvailable() #if !UCONFIG_NO_SERVICE U_CAPI UEnumeration* U_EXPORT2 ucol_openAvailableLocales(UErrorCode *status) { - U_NAMESPACE_USE - // This is a wrapper over Collator::getAvailableLocales() if (U_FAILURE(*status)) { return NULL; @@ -615,119 +613,75 @@ static const UEnumeration defaultKeywordValues = { ulist_reset_keyword_values_iterator }; -#include - -U_CAPI UEnumeration* U_EXPORT2 -ucol_getKeywordValuesForLocale(const char* /*key*/, const char* locale, - UBool /*commonlyUsed*/, UErrorCode* status) { - /* Get the locale base name. */ - char localeBuffer[ULOC_FULLNAME_CAPACITY] = ""; - uloc_getBaseName(locale, localeBuffer, sizeof(localeBuffer), status); - - /* Create the 2 lists - * -values is the temp location for the keyword values - * -results hold the actual list used by the UEnumeration object - */ - UList *values = ulist_createEmptyList(status); - UList *results = ulist_createEmptyList(status); - UEnumeration *en = (UEnumeration *)uprv_malloc(sizeof(UEnumeration)); - if (U_FAILURE(*status) || en == NULL) { - if (en == NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - } else { - uprv_free(en); - } - ulist_deleteList(values); - ulist_deleteList(results); - return NULL; - } +namespace { - memcpy(en, &defaultKeywordValues, sizeof(UEnumeration)); - en->context = results; - - /* Open the resource bundle for collation with the given locale. */ - UResourceBundle bundle, collations, collres, defres; - ures_initStackObject(&bundle); - ures_initStackObject(&collations); - ures_initStackObject(&collres); - ures_initStackObject(&defres); - - ures_openFillIn(&bundle, U_ICUDATA_COLL, localeBuffer, status); - - while (U_SUCCESS(*status)) { - ures_getByKey(&bundle, RESOURCE_NAME, &collations, status); - ures_resetIterator(&collations); - while (U_SUCCESS(*status) && ures_hasNext(&collations)) { - ures_getNextResource(&collations, &collres, status); - const char *key = ures_getKey(&collres); - /* If the key is default, get the string and store it in results list only - * if results list is empty. - */ - if (uprv_strcmp(key, "default") == 0) { - if (ulist_getListSize(results) == 0) { - char *defcoll = (char *)uprv_malloc(sizeof(char) * ULOC_KEYWORDS_CAPACITY); - int32_t defcollLength = ULOC_KEYWORDS_CAPACITY; - - ures_getNextResource(&collres, &defres, status); -#if U_CHARSET_FAMILY==U_ASCII_FAMILY - /* optimize - use the utf-8 string */ - ures_getUTF8String(&defres, defcoll, &defcollLength, TRUE, status); -#else - { - const UChar* defString = ures_getString(&defres, &defcollLength, status); - if(U_SUCCESS(*status)) { - if(defcollLength+1 > ULOC_KEYWORDS_CAPACITY) { - *status = U_BUFFER_OVERFLOW_ERROR; - } else { - u_UCharsToChars(defString, defcoll, defcollLength+1); - } - } +struct KeywordsSink : public ResourceSink { +public: + KeywordsSink(UErrorCode &errorCode) : + values(ulist_createEmptyList(&errorCode)), hasDefault(FALSE) {} + virtual ~KeywordsSink(); + + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, + UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + ResourceTable collations = value.getTable(errorCode); + for (int32_t i = 0; collations.getKeyAndValue(i, key, value); ++i) { + UResType type = value.getType(); + if (type == URES_STRING) { + if (!hasDefault && uprv_strcmp(key, "default") == 0) { + CharString defcoll; + defcoll.appendInvariantChars(value.getUnicodeString(errorCode), errorCode); + if (U_SUCCESS(errorCode) && !defcoll.isEmpty()) { + char *ownedDefault = uprv_strdup(defcoll.data()); + if (ownedDefault == NULL) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + return; + } + ulist_removeString(values, defcoll.data()); + ulist_addItemBeginList(values, ownedDefault, TRUE, &errorCode); + hasDefault = TRUE; } -#endif - - ulist_addItemBeginList(results, defcoll, TRUE, status); } - } else if (uprv_strncmp(key, "private-", 8) != 0) { - ulist_addItemEndList(values, key, FALSE, status); - } - } - - /* If the locale is "" this is root so exit. */ - if (uprv_strlen(localeBuffer) == 0) { - break; - } - /* Get the parent locale and open a new resource bundle. */ - uloc_getParent(localeBuffer, localeBuffer, sizeof(localeBuffer), status); - ures_openFillIn(&bundle, U_ICUDATA_COLL, localeBuffer, status); - } - - ures_close(&defres); - ures_close(&collres); - ures_close(&collations); - ures_close(&bundle); - - if (U_SUCCESS(*status)) { - char *value = NULL; - ulist_resetList(values); - while ((value = (char *)ulist_getNext(values)) != NULL) { - if (!ulist_containsString(results, value, (int32_t)uprv_strlen(value))) { - ulist_addItemEndList(results, value, FALSE, status); - if (U_FAILURE(*status)) { - break; + } else if (type == URES_TABLE && uprv_strncmp(key, "private-", 8) != 0) { + if (!ulist_containsString(values, key, (int32_t)uprv_strlen(key))) { + ulist_addItemEndList(values, key, FALSE, &errorCode); } } + if (U_FAILURE(errorCode)) { return; } } } + UList *values; + UBool hasDefault; +}; + +KeywordsSink::~KeywordsSink() { ulist_deleteList(values); +} - if (U_FAILURE(*status)){ - uenum_close(en); - en = NULL; - } else { - ulist_resetList(results); - } +} // namespace + +U_CAPI UEnumeration* U_EXPORT2 +ucol_getKeywordValuesForLocale(const char* /*key*/, const char* locale, + UBool /*commonlyUsed*/, UErrorCode* status) { + // Note: The parameter commonlyUsed is not used. + // The switch is in the method signature for consistency + // with other locale services. + + // Read available collation values from collation bundles. + LocalUResourceBundlePointer bundle(ures_open(U_ICUDATA_COLL, locale, status)); + KeywordsSink sink(*status); + ures_getAllItemsWithFallback(bundle.getAlias(), RESOURCE_NAME, sink, *status); + if (U_FAILURE(*status)) { return NULL; } + UEnumeration *en = (UEnumeration *)uprv_malloc(sizeof(UEnumeration)); + if (en == NULL) { + *status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + memcpy(en, &defaultKeywordValues, sizeof(UEnumeration)); + en->context = sink.values; + sink.values = NULL; // Avoid deletion in the sink destructor. return en; } diff --git a/deps/icu-small/source/i18n/ucol_sit.cpp b/deps/icu-small/source/i18n/ucol_sit.cpp index 5d9e0d4546d765..c81977b8a34cc0 100644 --- a/deps/icu-small/source/i18n/ucol_sit.cpp +++ b/deps/icu-small/source/i18n/ucol_sit.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2004-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/ucoleitr.cpp b/deps/icu-small/source/i18n/ucoleitr.cpp index 6ccabded67c898..4b46b205aa07db 100644 --- a/deps/icu-small/source/i18n/ucoleitr.cpp +++ b/deps/icu-small/source/i18n/ucoleitr.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2001-2016, International Business Machines @@ -34,9 +36,9 @@ U_NAMESPACE_USE #define DEFAULT_BUFFER_SIZE 16 #define BUFFER_GROW 8 -#define ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0]) +#define ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (size_t)(count) * sizeof (src)[0]) -#define NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type)) +#define NEW_ARRAY(type, count) (type *) uprv_malloc((size_t)(count) * sizeof(type)) #define DELETE_ARRAY(array) uprv_free((void *) (array)) diff --git a/deps/icu-small/source/i18n/ucsdet.cpp b/deps/icu-small/source/i18n/ucsdet.cpp index f0445427c706a6..dd69d9f548b78a 100644 --- a/deps/icu-small/source/i18n/ucsdet.cpp +++ b/deps/icu-small/source/i18n/ucsdet.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/udat.cpp b/deps/icu-small/source/i18n/udat.cpp index 7b65aa739a47d3..b07e1ceab7436d 100644 --- a/deps/icu-small/source/i18n/udat.cpp +++ b/deps/icu-small/source/i18n/udat.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/udateintervalformat.cpp b/deps/icu-small/source/i18n/udateintervalformat.cpp index ef6fc197c75680..e6eec44847453c 100644 --- a/deps/icu-small/source/i18n/udateintervalformat.cpp +++ b/deps/icu-small/source/i18n/udateintervalformat.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2010-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/udatpg.cpp b/deps/icu-small/source/i18n/udatpg.cpp index d0bafa30a89cc5..d8824afdfc4adf 100644 --- a/deps/icu-small/source/i18n/udatpg.cpp +++ b/deps/icu-small/source/i18n/udatpg.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/ufieldpositer.cpp b/deps/icu-small/source/i18n/ufieldpositer.cpp index 7f8688425d6fb6..b1c9c64805889c 100644 --- a/deps/icu-small/source/i18n/ufieldpositer.cpp +++ b/deps/icu-small/source/i18n/ufieldpositer.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2015, International Business Machines diff --git a/deps/icu-small/source/i18n/uitercollationiterator.cpp b/deps/icu-small/source/i18n/uitercollationiterator.cpp index f717282eac03b8..eb71725380a635 100644 --- a/deps/icu-small/source/i18n/uitercollationiterator.cpp +++ b/deps/icu-small/source/i18n/uitercollationiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/uitercollationiterator.h b/deps/icu-small/source/i18n/uitercollationiterator.h index a64f88561b3b33..da9f8d34687d0b 100644 --- a/deps/icu-small/source/i18n/uitercollationiterator.h +++ b/deps/icu-small/source/i18n/uitercollationiterator.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/ulocdata.c b/deps/icu-small/source/i18n/ulocdata.c index fc84756d4c88f4..e1e61ce8706abc 100644 --- a/deps/icu-small/source/i18n/ulocdata.c +++ b/deps/icu-small/source/i18n/ulocdata.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * diff --git a/deps/icu-small/source/i18n/umsg.cpp b/deps/icu-small/source/i18n/umsg.cpp index d4a55818cdbe17..75647e37d6bbdf 100644 --- a/deps/icu-small/source/i18n/umsg.cpp +++ b/deps/icu-small/source/i18n/umsg.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -469,7 +471,7 @@ umsg_vformat( const UMessageFormat *fmt, } } UnicodeString resultStr; - FieldPosition fieldPosition(0); + FieldPosition fieldPosition(FieldPosition::DONT_CARE); /* format the message */ ((const MessageFormat*)fmt)->format(args,count,resultStr,fieldPosition,*status); diff --git a/deps/icu-small/source/i18n/umsg_imp.h b/deps/icu-small/source/i18n/umsg_imp.h index 78bbf966bcec1c..e3538d39710f31 100644 --- a/deps/icu-small/source/i18n/umsg_imp.h +++ b/deps/icu-small/source/i18n/umsg_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001, International Business Machines diff --git a/deps/icu-small/source/i18n/unesctrn.cpp b/deps/icu-small/source/i18n/unesctrn.cpp index a4e9358ae68052..2e79067dee6aa9 100644 --- a/deps/icu-small/source/i18n/unesctrn.cpp +++ b/deps/icu-small/source/i18n/unesctrn.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2011, International Business Machines @@ -85,7 +87,7 @@ static UChar* copySpec(const UChar* spec) { UChar *result = (UChar *)uprv_malloc(len*sizeof(UChar)); // Check for memory allocation error. if (result != NULL) { - uprv_memcpy(result, spec, len*sizeof(result[0])); + uprv_memcpy(result, spec, (size_t)len*sizeof(result[0])); } return result; } diff --git a/deps/icu-small/source/i18n/unesctrn.h b/deps/icu-small/source/i18n/unesctrn.h index bfde6fc134fdd7..7ae8302b0fcb33 100644 --- a/deps/icu-small/source/i18n/unesctrn.h +++ b/deps/icu-small/source/i18n/unesctrn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/uni2name.cpp b/deps/icu-small/source/i18n/uni2name.cpp index a10fa14c7f31f7..24323b3f60642f 100644 --- a/deps/icu-small/source/i18n/uni2name.cpp +++ b/deps/icu-small/source/i18n/uni2name.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/uni2name.h b/deps/icu-small/source/i18n/uni2name.h index aede864564a65b..7d85113f665b1d 100644 --- a/deps/icu-small/source/i18n/uni2name.h +++ b/deps/icu-small/source/i18n/uni2name.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2007, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/alphaindex.h b/deps/icu-small/source/i18n/unicode/alphaindex.h index 9116ccc26c1d36..e9e8739ed28a00 100644 --- a/deps/icu-small/source/i18n/unicode/alphaindex.h +++ b/deps/icu-small/source/i18n/unicode/alphaindex.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/i18n/unicode/basictz.h b/deps/icu-small/source/i18n/unicode/basictz.h index 5b470382507f54..8da4a00bf877be 100644 --- a/deps/icu-small/source/i18n/unicode/basictz.h +++ b/deps/icu-small/source/i18n/unicode/basictz.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/calendar.h b/deps/icu-small/source/i18n/unicode/calendar.h index 35252bb9c809a0..b7da5f3c5b8b94 100644 --- a/deps/icu-small/source/i18n/unicode/calendar.h +++ b/deps/icu-small/source/i18n/unicode/calendar.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/choicfmt.h b/deps/icu-small/source/i18n/unicode/choicfmt.h index cfd520624dc53a..ab3c28fe0740d7 100644 --- a/deps/icu-small/source/i18n/unicode/choicfmt.h +++ b/deps/icu-small/source/i18n/unicode/choicfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/coleitr.h b/deps/icu-small/source/i18n/unicode/coleitr.h index f07ada7b6703a2..628b461f9453d4 100644 --- a/deps/icu-small/source/i18n/unicode/coleitr.h +++ b/deps/icu-small/source/i18n/unicode/coleitr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1997-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/coll.h b/deps/icu-small/source/i18n/unicode/coll.h index 5468342716b6d4..e41be2ee81a25c 100644 --- a/deps/icu-small/source/i18n/unicode/coll.h +++ b/deps/icu-small/source/i18n/unicode/coll.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1996-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/compactdecimalformat.h b/deps/icu-small/source/i18n/unicode/compactdecimalformat.h index ced6bee5994a4f..1fcc5c581e089d 100644 --- a/deps/icu-small/source/i18n/unicode/compactdecimalformat.h +++ b/deps/icu-small/source/i18n/unicode/compactdecimalformat.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2012-2016, International Business Machines @@ -157,7 +159,6 @@ class U_I18N_API CompactDecimalFormat : public DecimalFormat { FieldPositionIterator* posIter, UErrorCode& status) const; - /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual. */ /** * Format a long number using base-10 representation. * @@ -167,7 +168,7 @@ class U_I18N_API CompactDecimalFormat : public DecimalFormat { * @param pos On input: an alignment field, if desired. * On output: the offsets of the alignment field. * @return Reference to 'appendTo' parameter. - * @draft ICU 56 + * @stable ICU 56 */ virtual UnicodeString& format(int32_t number, UnicodeString& appendTo, @@ -274,7 +275,7 @@ class U_I18N_API CompactDecimalFormat : public DecimalFormat { * @return Reference to 'appendTo' parameter. * @internal */ - virtual UnicodeString& format(const StringPiece &number, + virtual UnicodeString& format(StringPiece number, UnicodeString& appendTo, FieldPositionIterator* posIter, UErrorCode& status) const; diff --git a/deps/icu-small/source/i18n/unicode/curramt.h b/deps/icu-small/source/i18n/unicode/curramt.h index ce9acbfd5cda7c..268d53c0b15f7e 100644 --- a/deps/icu-small/source/i18n/unicode/curramt.h +++ b/deps/icu-small/source/i18n/unicode/curramt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2006, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/currpinf.h b/deps/icu-small/source/i18n/unicode/currpinf.h index 4f1f8962c38896..133de38fc2fd99 100644 --- a/deps/icu-small/source/i18n/unicode/currpinf.h +++ b/deps/icu-small/source/i18n/unicode/currpinf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2015, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/currunit.h b/deps/icu-small/source/i18n/unicode/currunit.h index 93ecd2c48906e2..313c92a6acacfc 100644 --- a/deps/icu-small/source/i18n/unicode/currunit.h +++ b/deps/icu-small/source/i18n/unicode/currunit.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/datefmt.h b/deps/icu-small/source/i18n/unicode/datefmt.h index 2ccac7976037d9..6e3a78f2913ce1 100644 --- a/deps/icu-small/source/i18n/unicode/datefmt.h +++ b/deps/icu-small/source/i18n/unicode/datefmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/dcfmtsym.h b/deps/icu-small/source/i18n/unicode/dcfmtsym.h index 9b406b14172b43..946227addb7557 100644 --- a/deps/icu-small/source/i18n/unicode/dcfmtsym.h +++ b/deps/icu-small/source/i18n/unicode/dcfmtsym.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/decimfmt.h b/deps/icu-small/source/i18n/unicode/decimfmt.h index e7f8ea592e09af..7339399f72e001 100644 --- a/deps/icu-small/source/i18n/unicode/decimfmt.h +++ b/deps/icu-small/source/i18n/unicode/decimfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -968,7 +970,7 @@ class U_I18N_API DecimalFormat: public NumberFormat { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(double number, UnicodeString& appendTo, @@ -1017,7 +1019,7 @@ class U_I18N_API DecimalFormat: public NumberFormat { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(int32_t number, UnicodeString& appendTo, @@ -1066,7 +1068,7 @@ class U_I18N_API DecimalFormat: public NumberFormat { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(int64_t number, UnicodeString& appendTo, @@ -1087,9 +1089,9 @@ class U_I18N_API DecimalFormat: public NumberFormat { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ - virtual UnicodeString& format(const StringPiece &number, + virtual UnicodeString& format(StringPiece number, UnicodeString& appendTo, FieldPositionIterator* posIter, UErrorCode& status) const; @@ -2101,6 +2103,8 @@ class U_I18N_API DecimalFormat: public NumberFormat { DecimalFormatSymbols* symbolsToAdopt = 0 ); + void handleCurrencySignInPattern(UErrorCode& status); + void parse(const UnicodeString& text, Formattable& result, ParsePosition& pos, diff --git a/deps/icu-small/source/i18n/unicode/dtfmtsym.h b/deps/icu-small/source/i18n/unicode/dtfmtsym.h index c338c46fac2dbc..507868e2c328fb 100644 --- a/deps/icu-small/source/i18n/unicode/dtfmtsym.h +++ b/deps/icu-small/source/i18n/unicode/dtfmtsym.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines @@ -270,9 +272,15 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * @stable ICU 3.6 */ enum DtContextType { - FORMAT, - STANDALONE, - DT_CONTEXT_COUNT + FORMAT, + STANDALONE, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal DtContextType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + DT_CONTEXT_COUNT +#endif // U_HIDE_DEPRECATED_API }; /** @@ -280,17 +288,21 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * @stable ICU 3.6 */ enum DtWidthType { - ABBREVIATED, - WIDE, - NARROW, - /** - * Short width is currently only supported for weekday names. - * @stable ICU 51 - */ - SHORT, - /** - */ - DT_WIDTH_COUNT = 4 + ABBREVIATED, + WIDE, + NARROW, + /** + * Short width is currently only supported for weekday names. + * @stable ICU 51 + */ + SHORT, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal DtWidthType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + DT_WIDTH_COUNT = 4 +#endif // U_HIDE_DEPRECATED_API }; /** diff --git a/deps/icu-small/source/i18n/unicode/dtitvfmt.h b/deps/icu-small/source/i18n/unicode/dtitvfmt.h index 181d46c8e0af72..68360b87dffaf5 100644 --- a/deps/icu-small/source/i18n/unicode/dtitvfmt.h +++ b/deps/icu-small/source/i18n/unicode/dtitvfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************************** * Copyright (C) 2008-2016, International Business Machines Corporation and * others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/unicode/dtitvinf.h b/deps/icu-small/source/i18n/unicode/dtitvinf.h index 1c7f3983df991e..b31061e16aff10 100644 --- a/deps/icu-small/source/i18n/unicode/dtitvinf.h +++ b/deps/icu-small/source/i18n/unicode/dtitvinf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2016, International Business Machines Corporation and @@ -150,7 +152,8 @@ U_NAMESPACE_BEGIN class U_I18N_API DateIntervalInfo U_FINAL : public UObject { public: -#ifndef U_HIDE_INTERNAL_API + // Do not enclose the protected default constructor with #ifndef U_HIDE_INTERNAL_API + // or else the compiler will create a public default constructor. /** * Default constructor. * It does not initialize any interval patterns except @@ -165,7 +168,6 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { * @internal ICU 4.0 */ DateIntervalInfo(UErrorCode& status); -#endif /* U_HIDE_INTERNAL_API */ /** @@ -339,7 +341,10 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { */ friend class DateIntervalFormat; - friend struct DateIntervalSink; + /** + * Internal struct used to load resource bundle data. + */ + struct DateIntervalSink; /** * Following is for saving the interval patterns. diff --git a/deps/icu-small/source/i18n/unicode/dtptngen.h b/deps/icu-small/source/i18n/unicode/dtptngen.h index eb8a44541e061c..fd617ce3cdcbfb 100644 --- a/deps/icu-small/source/i18n/unicode/dtptngen.h +++ b/deps/icu-small/source/i18n/unicode/dtptngen.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and @@ -116,7 +118,6 @@ class U_I18N_API DateTimePatternGenerator : public UObject { */ UBool operator!=(const DateTimePatternGenerator& other) const; -#ifndef U_HIDE_DRAFT_API /** * Utility to return a unique skeleton from a given pattern. For example, * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd". @@ -125,10 +126,9 @@ class U_I18N_API DateTimePatternGenerator : public UObject { * @param status Output param set to success/failure code on exit, * which must not indicate a failure before the function call. * @return skeleton such as "MMMdd" - * @draft ICU 56 + * @stable ICU 56 */ static UnicodeString staticGetSkeleton(const UnicodeString& pattern, UErrorCode& status); -#endif /* U_HIDE_DRAFT_API */ /** * Utility to return a unique skeleton from a given pattern. For example, @@ -149,7 +149,6 @@ class U_I18N_API DateTimePatternGenerator : public UObject { return staticGetSkeleton(pattern, status); }*/ -#ifndef U_HIDE_DRAFT_API /** * Utility to return a unique base skeleton from a given pattern. This is * the same as the skeleton, except that differences in length are minimized @@ -161,10 +160,9 @@ class U_I18N_API DateTimePatternGenerator : public UObject { * @param status Output param set to success/failure code on exit, * which must not indicate a failure before the function call. * @return base skeleton, such as "MMMd" - * @draft ICU 56 + * @stable ICU 56 */ static UnicodeString staticGetBaseSkeleton(const UnicodeString& pattern, UErrorCode& status); -#endif /* U_HIDE_DRAFT_API */ /** * Utility to return a unique base skeleton from a given pattern. This is @@ -518,7 +516,6 @@ class U_I18N_API DateTimePatternGenerator : public UObject { UnicodeString decimal; DateTimeMatcher *skipMatcher; Hashtable *fAvailableFormatKeyHash; - UnicodeString hackPattern; UnicodeString emptyString; UChar fDefaultHourFormatChar; @@ -534,9 +531,11 @@ class U_I18N_API DateTimePatternGenerator : public UObject { }; void initData(const Locale &locale, UErrorCode &status); - void addCanonicalItems(); + void addCanonicalItems(UErrorCode &status); void addICUPatterns(const Locale& locale, UErrorCode& status); void hackTimes(const UnicodeString& hackPattern, UErrorCode& status); + void getCalendarTypeToUse(const Locale& locale, CharString& destination, UErrorCode& err); + void consumeShortTimePattern(const UnicodeString& shortTimePattern, UErrorCode& status); void addCLDRData(const Locale& locale, UErrorCode& status); UDateTimePatternConflict addPatternWithSkeleton(const UnicodeString& pattern, const UnicodeString * skeletonToUse, UBool override, UnicodeString& conflictingPattern, UErrorCode& status); void initHashtable(UErrorCode& status); @@ -544,6 +543,7 @@ class U_I18N_API DateTimePatternGenerator : public UObject { void setDecimalSymbols(const Locale& locale, UErrorCode& status); UDateTimePatternField getAppendFormatNumber(const char* field) const; UDateTimePatternField getAppendNameNumber(const char* field) const; + UnicodeString& getMutableAppendItemName(UDateTimePatternField field); void getAppendName(UDateTimePatternField field, UnicodeString& value); int32_t getCanonicalIndex(const UnicodeString& field); const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0); @@ -554,8 +554,12 @@ class U_I18N_API DateTimePatternGenerator : public UObject { UBool isAvailableFormatSet(const UnicodeString &key) const; void copyHashtable(Hashtable *other, UErrorCode &status); UBool isCanonicalItem(const UnicodeString& item) const; - static void loadAllowedHourFormatsData(UErrorCode &status); + static void U_CALLCONV loadAllowedHourFormatsData(UErrorCode &status); void getAllowedHourFormats(const Locale &locale, UErrorCode &status); + + struct AppendItemFormatsSink; + struct AppendItemNamesSink; + struct AvailableFormatsSink; } ;// end class DateTimePatternGenerator U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/dtrule.h b/deps/icu-small/source/i18n/unicode/dtrule.h index 3ef080b4eb0ee9..32d230ea778244 100644 --- a/deps/icu-small/source/i18n/unicode/dtrule.h +++ b/deps/icu-small/source/i18n/unicode/dtrule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2008, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/fieldpos.h b/deps/icu-small/source/i18n/unicode/fieldpos.h index b3d64b4e842186..6091941106e87d 100644 --- a/deps/icu-small/source/i18n/unicode/fieldpos.h +++ b/deps/icu-small/source/i18n/unicode/fieldpos.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2006, International Business Machines @@ -56,7 +58,7 @@ U_NAMESPACE_BEGIN * to perform partial formatting or to get information about the * formatted output (such as the position of a field). * - * The FieldPosition class is not suitable for subclassing. + * The FieldPosition class is not intended for public subclassing. * *

* Below is an example of using FieldPosition to aid @@ -107,7 +109,8 @@ class U_I18N_API FieldPosition : public UObject { public: /** * DONT_CARE may be specified as the field to indicate that the - * caller doesn't need to specify a field. Do not subclass. + * caller doesn't need to specify a field. + * @stable ICU 2.0 */ enum { DONT_CARE = -1 }; diff --git a/deps/icu-small/source/i18n/unicode/fmtable.h b/deps/icu-small/source/i18n/unicode/fmtable.h index 6cad276f42366c..ac5daba893646f 100644 --- a/deps/icu-small/source/i18n/unicode/fmtable.h +++ b/deps/icu-small/source/i18n/unicode/fmtable.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2014, International Business Machines @@ -134,7 +136,7 @@ class U_I18N_API Formattable : public UObject { * decimal number. * @stable ICU 4.4 */ - Formattable(const StringPiece &number, UErrorCode &status); + Formattable(StringPiece number, UErrorCode &status); /** * Creates a Formattable object with a UnicodeString object to copy from. @@ -581,7 +583,7 @@ class U_I18N_API Formattable : public UObject { * incoming string is not a valid decimal number. * @stable ICU 4.4 */ - void setDecimalNumber(const StringPiece &numberString, + void setDecimalNumber(StringPiece numberString, UErrorCode &status); /** diff --git a/deps/icu-small/source/i18n/unicode/format.h b/deps/icu-small/source/i18n/unicode/format.h index 7bbd32df6adee6..1484e9f00edf6d 100644 --- a/deps/icu-small/source/i18n/unicode/format.h +++ b/deps/icu-small/source/i18n/unicode/format.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2011, International Business Machines Corporation and others. diff --git a/deps/icu-small/source/i18n/unicode/fpositer.h b/deps/icu-small/source/i18n/unicode/fpositer.h index 20e78714dc071c..694a1d8770d019 100644 --- a/deps/icu-small/source/i18n/unicode/fpositer.h +++ b/deps/icu-small/source/i18n/unicode/fpositer.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2010-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/gender.h b/deps/icu-small/source/i18n/unicode/gender.h index cbb73916c66ce7..02948951843c10 100644 --- a/deps/icu-small/source/i18n/unicode/gender.h +++ b/deps/icu-small/source/i18n/unicode/gender.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/gregocal.h b/deps/icu-small/source/i18n/unicode/gregocal.h index 1e507d3bb7b620..60ba0cc6acf6f4 100644 --- a/deps/icu-small/source/i18n/unicode/gregocal.h +++ b/deps/icu-small/source/i18n/unicode/gregocal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 1997-2013, International Business Machines Corporation and others. * All Rights Reserved. diff --git a/deps/icu-small/source/i18n/unicode/measfmt.h b/deps/icu-small/source/i18n/unicode/measfmt.h index c177a963f80b63..866d7d3227cae7 100644 --- a/deps/icu-small/source/i18n/unicode/measfmt.h +++ b/deps/icu-small/source/i18n/unicode/measfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2016, International Business Machines @@ -59,11 +61,13 @@ enum UMeasureFormatWidth { */ UMEASFMT_WIDTH_NUMERIC, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of values in this enum. - * @stable ICU 53 + * One more than the highest normal UMeasureFormatWidth value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UMEASFMT_WIDTH_COUNT = 4 +#endif // U_HIDE_DEPRECATED_API }; /** @stable ICU 53 */ typedef enum UMeasureFormatWidth UMeasureFormatWidth; @@ -206,6 +210,21 @@ class U_I18N_API MeasureFormat : public Format { FieldPosition &pos, UErrorCode &status) const; +#ifndef U_HIDE_DRAFT_API + /** + * Gets the display name of the specified {@link MeasureUnit} corresponding to the current + * locale and format width. + * @param unit The unit for which to get a display name. + * @param status the error. + * @return The display name in the locale and width specified in + * {@link MeasureFormat#getInstance}, or null if there is no display name available + * for the specified unit. + * + * @draft ICU 58 + */ + UnicodeString getUnitDisplayName(const MeasureUnit& unit, UErrorCode &status) const; +#endif /* U_HIDE_DRAFT_API */ + /** * Return a formatter for CurrencyAmount objects in the given diff --git a/deps/icu-small/source/i18n/unicode/measunit.h b/deps/icu-small/source/i18n/unicode/measunit.h index 8f8c92415b9dc2..9810b91194616b 100644 --- a/deps/icu-small/source/i18n/unicode/measunit.h +++ b/deps/icu-small/source/i18n/unicode/measunit.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2016, International Business Machines @@ -255,15 +257,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createRadian(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of angle: revolution. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createRevolutionAngle(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of area: acre. @@ -375,15 +375,13 @@ class U_I18N_API MeasureUnit: public UObject { static MeasureUnit *createPartPerMillion(UErrorCode &status); #endif /* U_HIDE_DRAFT_API */ -#ifndef U_HIDE_DRAFT_API /** * Returns unit of consumption: liter-per-100kilometers. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createLiterPer100Kilometers(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of consumption: liter-per-kilometer. @@ -411,6 +409,46 @@ class U_I18N_API MeasureUnit: public UObject { static MeasureUnit *createMilePerGallonImperial(UErrorCode &status); #endif /* U_HIDE_DRAFT_API */ +#ifndef U_HIDE_DRAFT_API + /** + * Returns unit of coordinate: east. + * Caller owns returned value and must free it. + * @param status ICU error code. + * @draft ICU 58 + */ + static MeasureUnit *createEast(UErrorCode &status); +#endif /* U_HIDE_DRAFT_API */ + +#ifndef U_HIDE_DRAFT_API + /** + * Returns unit of coordinate: north. + * Caller owns returned value and must free it. + * @param status ICU error code. + * @draft ICU 58 + */ + static MeasureUnit *createNorth(UErrorCode &status); +#endif /* U_HIDE_DRAFT_API */ + +#ifndef U_HIDE_DRAFT_API + /** + * Returns unit of coordinate: south. + * Caller owns returned value and must free it. + * @param status ICU error code. + * @draft ICU 58 + */ + static MeasureUnit *createSouth(UErrorCode &status); +#endif /* U_HIDE_DRAFT_API */ + +#ifndef U_HIDE_DRAFT_API + /** + * Returns unit of coordinate: west. + * Caller owns returned value and must free it. + * @param status ICU error code. + * @draft ICU 58 + */ + static MeasureUnit *createWest(UErrorCode &status); +#endif /* U_HIDE_DRAFT_API */ + /** * Returns unit of digital: bit. * Caller owns returned value and must free it. @@ -491,15 +529,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createTerabyte(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of duration: century. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createCentury(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of duration: day. @@ -789,15 +825,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createMile(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of length: mile-scandinavian. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createMileScandinavian(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of length: millimeter. @@ -1039,15 +1073,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createKilometerPerHour(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of speed: knot. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createKnot(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of speed: meter-per-second. @@ -1081,15 +1113,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createFahrenheit(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of temperature: generic. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createGenericTemperature(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of temperature: kelvin. @@ -1187,15 +1217,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createCup(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of volume: cup-metric. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createCupMetric(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of volume: deciliter. @@ -1271,15 +1299,13 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit *createPint(UErrorCode &status); -#ifndef U_HIDE_DRAFT_API /** * Returns unit of volume: pint-metric. * Caller owns returned value and must free it. * @param status ICU error code. - * @draft ICU 56 + * @stable ICU 56 */ static MeasureUnit *createPintMetric(UErrorCode &status); -#endif /* U_HIDE_DRAFT_API */ /** * Returns unit of volume: quart. diff --git a/deps/icu-small/source/i18n/unicode/measure.h b/deps/icu-small/source/i18n/unicode/measure.h index a9c75989965ae6..719bc6bc8f6054 100644 --- a/deps/icu-small/source/i18n/unicode/measure.h +++ b/deps/icu-small/source/i18n/unicode/measure.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/msgfmt.h b/deps/icu-small/source/i18n/unicode/msgfmt.h index 5de91e41ff70c3..1a9973872d627d 100644 --- a/deps/icu-small/source/i18n/unicode/msgfmt.h +++ b/deps/icu-small/source/i18n/unicode/msgfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 2007-2013, International Business Machines Corporation and * others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/unicode/numfmt.h b/deps/icu-small/source/i18n/unicode/numfmt.h index 072b566da13a18..9e3d5d34ec4cca 100644 --- a/deps/icu-small/source/i18n/unicode/numfmt.h +++ b/deps/icu-small/source/i18n/unicode/numfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2016, International Business Machines Corporation and others. @@ -266,7 +268,7 @@ class U_I18N_API NumberFormat : public Format { * NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, @@ -389,7 +391,7 @@ class U_I18N_API NumberFormat : public Format { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(double number, UnicodeString& appendTo, @@ -441,7 +443,7 @@ class U_I18N_API NumberFormat : public Format { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(int32_t number, UnicodeString& appendTo, @@ -494,7 +496,7 @@ class U_I18N_API NumberFormat : public Format { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ virtual UnicodeString& format(int64_t number, UnicodeString& appendTo, @@ -515,9 +517,9 @@ class U_I18N_API NumberFormat : public Format { * Can be NULL. * @param status Output param filled with success/failure status. * @return Reference to 'appendTo' parameter. - * @stable 4.4 + * @stable ICU 4.4 */ - virtual UnicodeString& format(const StringPiece &number, + virtual UnicodeString& format(StringPiece number, UnicodeString& appendTo, FieldPositionIterator* posIter, UErrorCode& status) const; diff --git a/deps/icu-small/source/i18n/unicode/numsys.h b/deps/icu-small/source/i18n/unicode/numsys.h index 2b21afc074ac5f..da181551c272d0 100644 --- a/deps/icu-small/source/i18n/unicode/numsys.h +++ b/deps/icu-small/source/i18n/unicode/numsys.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/plurfmt.h b/deps/icu-small/source/i18n/unicode/plurfmt.h index 6b417b8d57a2f2..b10e4179b6bab0 100644 --- a/deps/icu-small/source/i18n/unicode/plurfmt.h +++ b/deps/icu-small/source/i18n/unicode/plurfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/plurrule.h b/deps/icu-small/source/i18n/unicode/plurrule.h index 7abd6574086495..146e6bea831f09 100644 --- a/deps/icu-small/source/i18n/unicode/plurrule.h +++ b/deps/icu-small/source/i18n/unicode/plurrule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/rbnf.h b/deps/icu-small/source/i18n/unicode/rbnf.h index 2cd02e70f14b6f..14230f8982d2ef 100644 --- a/deps/icu-small/source/i18n/unicode/rbnf.h +++ b/deps/icu-small/source/i18n/unicode/rbnf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and others. @@ -54,7 +56,13 @@ enum URBNFRuleSetTag { URBNF_ORDINAL, URBNF_DURATION, URBNF_NUMBERING_SYSTEM, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal URBNFRuleSetTag value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ URBNF_COUNT +#endif // U_HIDE_DEPRECATED_API }; /** diff --git a/deps/icu-small/source/i18n/unicode/rbtz.h b/deps/icu-small/source/i18n/unicode/rbtz.h index 79805dd64eeac9..20de34bb1743dc 100644 --- a/deps/icu-small/source/i18n/unicode/rbtz.h +++ b/deps/icu-small/source/i18n/unicode/rbtz.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/regex.h b/deps/icu-small/source/i18n/unicode/regex.h index 2333f96b25f2c0..96c64874a4cf43 100644 --- a/deps/icu-small/source/i18n/unicode/regex.h +++ b/deps/icu-small/source/i18n/unicode/regex.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/region.h b/deps/icu-small/source/i18n/unicode/region.h index 2e1ac82a62f1d1..47829944a3bfaf 100644 --- a/deps/icu-small/source/i18n/unicode/region.h +++ b/deps/icu-small/source/i18n/unicode/region.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2014-2016, International Business Machines Corporation and others. @@ -210,7 +212,7 @@ class U_I18N_API Region : public UObject { * anything meaningful. */ - static void loadRegionData(UErrorCode &status); + static void U_CALLCONV loadRegionData(UErrorCode &status); }; diff --git a/deps/icu-small/source/i18n/unicode/reldatefmt.h b/deps/icu-small/source/i18n/unicode/reldatefmt.h index b336e2fe3ddc9f..8e659e2bc83b1a 100644 --- a/deps/icu-small/source/i18n/unicode/reldatefmt.h +++ b/deps/icu-small/source/i18n/unicode/reldatefmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 2014-2016, International Business Machines Corporation and @@ -23,7 +25,7 @@ * \brief C++ API: Formats relative dates such as "1 day ago" or "tomorrow" */ -#if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION +#if !UCONFIG_NO_FORMATTING /** * Represents the unit for formatting a relative date. e.g "in 5 days" @@ -74,11 +76,13 @@ typedef enum UDateRelativeUnit { */ UDAT_RELATIVE_YEARS, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of items in this enum. - * @stable ICU 53 + * One more than the highest normal UDateRelativeUnit value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_RELATIVE_UNIT_COUNT +#endif // U_HIDE_DEPRECATED_API } UDateRelativeUnit; /** @@ -161,11 +165,13 @@ typedef enum UDateAbsoluteUnit { */ UDAT_ABSOLUTE_NOW, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of items in this enum. - * @stable ICU 53 + * One more than the highest normal UDateAbsoluteUnit value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_ABSOLUTE_UNIT_COUNT +#endif // U_HIDE_DEPRECATED_API } UDateAbsoluteUnit; /** @@ -211,13 +217,16 @@ typedef enum UDateDirection { */ UDAT_DIRECTION_PLAIN, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of items in this enum. - * @stable ICU 53 + * One more than the highest normal UDateDirection value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_DIRECTION_COUNT +#endif // U_HIDE_DEPRECATED_API } UDateDirection; +#if !UCONFIG_NO_BREAK_ITERATION U_NAMESPACE_BEGIN @@ -509,5 +518,6 @@ class U_I18N_API RelativeDateTimeFormatter : public UObject { U_NAMESPACE_END -#endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/ -#endif +#endif /* !UCONFIG_NO_BREAK_ITERATION */ +#endif /* !UCONFIG_NO_FORMATTING */ +#endif /* __RELDATEFMT_H */ diff --git a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h index 710238a796d6b1..0b34755dc2858b 100644 --- a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h +++ b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2014-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/search.h b/deps/icu-small/source/i18n/unicode/search.h index 5b65e88b9c3e75..35a05526236db7 100644 --- a/deps/icu-small/source/i18n/unicode/search.h +++ b/deps/icu-small/source/i18n/unicode/search.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011 IBM and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/unicode/selfmt.h b/deps/icu-small/source/i18n/unicode/selfmt.h old mode 100644 new mode 100755 index 635144bb9b35d6..37a8f2b82192fc --- a/deps/icu-small/source/i18n/unicode/selfmt.h +++ b/deps/icu-small/source/i18n/unicode/selfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/simpletz.h b/deps/icu-small/source/i18n/unicode/simpletz.h index a0639d6a708d40..7e41a4ab8a4849 100644 --- a/deps/icu-small/source/i18n/unicode/simpletz.h +++ b/deps/icu-small/source/i18n/unicode/simpletz.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2013, International Business Machines * diff --git a/deps/icu-small/source/i18n/unicode/smpdtfmt.h b/deps/icu-small/source/i18n/unicode/smpdtfmt.h index b7fa42054dc9a3..e6cf28d22be00d 100644 --- a/deps/icu-small/source/i18n/unicode/smpdtfmt.h +++ b/deps/icu-small/source/i18n/unicode/smpdtfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* * Copyright (C) 1997-2016, International Business Machines Corporation and * others. All Rights Reserved. @@ -651,7 +653,7 @@ class SimpleDateFormatMutableNFs; * = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss a zzz", success ); * GregorianCalendar cal(success); * UDate currentTime_1 = cal.getTime(success); - * FieldPosition fp(0); + * FieldPosition fp(FieldPosition::DONT_CARE); * UnicodeString dateString; * formatter->format( currentTime_1, dateString, fp ); * cout << "result: " << dateString << endl; @@ -999,6 +1001,12 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * (Presumably, letters that would be more mnemonic in that locale's * language.) This function would produce a pattern using those * letters. + *

+ * Note: This implementation depends on DateFormatSymbols::getLocalPatternChars() + * to get localized format pattern characters. ICU does not include + * localized pattern character data, therefore, unless user sets localized + * pattern characters manually, this method returns the same result as + * toPattern(). * * @param result Receives the localized pattern. * @param status Output param set to success/failure code on diff --git a/deps/icu-small/source/i18n/unicode/sortkey.h b/deps/icu-small/source/i18n/unicode/sortkey.h index b4629d4e241ccc..6f1543da4003d9 100644 --- a/deps/icu-small/source/i18n/unicode/sortkey.h +++ b/deps/icu-small/source/i18n/unicode/sortkey.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************** * Copyright (C) 1996-2014, International Business Machines Corporation and others. diff --git a/deps/icu-small/source/i18n/unicode/stsearch.h b/deps/icu-small/source/i18n/unicode/stsearch.h index 64317608b5acf2..1cae53d12859de 100644 --- a/deps/icu-small/source/i18n/unicode/stsearch.h +++ b/deps/icu-small/source/i18n/unicode/stsearch.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2014 IBM and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/unicode/tblcoll.h b/deps/icu-small/source/i18n/unicode/tblcoll.h index 020c4b96062ad7..c48ea38c130a2f 100644 --- a/deps/icu-small/source/i18n/unicode/tblcoll.h +++ b/deps/icu-small/source/i18n/unicode/tblcoll.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 1996-2016, International Business Machines Corporation and @@ -854,7 +856,7 @@ class U_I18N_API RuleBasedCollator : public Collator { */ UBool isUnsafe(UChar32 c) const; - static void computeMaxExpansions(const CollationTailoring *t, UErrorCode &errorCode); + static void U_CALLCONV computeMaxExpansions(const CollationTailoring *t, UErrorCode &errorCode); UBool initMaxExpansions(UErrorCode &errorCode) const; void setFastLatinOptions(CollationSettings &ownedSettings) const; diff --git a/deps/icu-small/source/i18n/unicode/timezone.h b/deps/icu-small/source/i18n/unicode/timezone.h index 6c72095537f75f..58c84d062bebad 100644 --- a/deps/icu-small/source/i18n/unicode/timezone.h +++ b/deps/icu-small/source/i18n/unicode/timezone.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************* * Copyright (c) 1997-2016, International Business Machines Corporation * and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/unicode/tmunit.h b/deps/icu-small/source/i18n/unicode/tmunit.h index e398ab96bdcf23..a19a1f3c1760c3 100644 --- a/deps/icu-small/source/i18n/unicode/tmunit.h +++ b/deps/icu-small/source/i18n/unicode/tmunit.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2016, International Business Machines Corporation, * @@ -41,7 +43,13 @@ class U_I18N_API TimeUnit: public MeasureUnit { UTIMEUNIT_HOUR, UTIMEUNIT_MINUTE, UTIMEUNIT_SECOND, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UTimeUnitFields value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UTIMEUNIT_FIELD_COUNT +#endif // U_HIDE_DEPRECATED_API }; /** diff --git a/deps/icu-small/source/i18n/unicode/tmutamt.h b/deps/icu-small/source/i18n/unicode/tmutamt.h index ad8047a1f1a4de..887150121fe545 100644 --- a/deps/icu-small/source/i18n/unicode/tmutamt.h +++ b/deps/icu-small/source/i18n/unicode/tmutamt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2010, Google, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/tmutfmt.h b/deps/icu-small/source/i18n/unicode/tmutfmt.h index 728ff13219a012..b90d4a096d71bb 100644 --- a/deps/icu-small/source/i18n/unicode/tmutfmt.h +++ b/deps/icu-small/source/i18n/unicode/tmutfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2008-2014, Google, International Business Machines Corporation @@ -50,6 +52,8 @@ U_NAMESPACE_BEGIN class Hashtable; class UVector; +struct TimeUnitFormatReadSink; + /** * Format or parse a TimeUnitAmount, using plural rules for the units where available. * @@ -227,6 +231,7 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { // UTIMEUNIT_YEAR. static const char* getTimeUnitName(TimeUnit::UTimeUnitFields field, UErrorCode& status); + friend struct TimeUnitFormatReadSink; }; inline UBool diff --git a/deps/icu-small/source/i18n/unicode/translit.h b/deps/icu-small/source/i18n/unicode/translit.h index d41b5c0a80edc8..1e49bfb9697a62 100644 --- a/deps/icu-small/source/i18n/unicode/translit.h +++ b/deps/icu-small/source/i18n/unicode/translit.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/tzfmt.h b/deps/icu-small/source/i18n/unicode/tzfmt.h index 9b39bf0ee43c6e..dd86f1b48c9619 100644 --- a/deps/icu-small/source/i18n/unicode/tzfmt.h +++ b/deps/icu-small/source/i18n/unicode/tzfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/tznames.h b/deps/icu-small/source/i18n/unicode/tznames.h index cbc9c1f3a847e3..8861a7d026b89b 100644 --- a/deps/icu-small/source/i18n/unicode/tznames.h +++ b/deps/icu-small/source/i18n/unicode/tznames.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2011-2015, International Business Machines Corporation and +* Copyright (C) 2011-2016, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* */ @@ -133,7 +135,7 @@ class U_I18N_API TimeZoneNames : public UObject { virtual ~TimeZoneNames(); /** - * Return true if the given TimeZoneNames objects are emantically equal. + * Return true if the given TimeZoneNames objects are semantically equal. * @param other the object to be compared with. * @return Return TRUE if the given Format objects are semantically equal. * @stable ICU 50 @@ -288,6 +290,18 @@ class U_I18N_API TimeZoneNames : public UObject { */ virtual UnicodeString& getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UDate date, UnicodeString& name) const; + /** + * @internal For specific users only until proposed publicly. + * @deprecated This API is ICU internal only. + */ + virtual void loadAllDisplayNames(UErrorCode& status); + + /** + * @internal For specific users only until proposed publicly. + * @deprecated This API is ICU internal only. + */ + virtual void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const; + /** * MatchInfoCollection represents a collection of time zone name matches used by * {@link TimeZoneNames#find}. diff --git a/deps/icu-small/source/i18n/unicode/tzrule.h b/deps/icu-small/source/i18n/unicode/tzrule.h index c153afa1e94da2..5e020bc1a38c56 100644 --- a/deps/icu-small/source/i18n/unicode/tzrule.h +++ b/deps/icu-small/source/i18n/unicode/tzrule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2008, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/tztrans.h b/deps/icu-small/source/i18n/unicode/tztrans.h index f5934d91254525..b2e09999bb9263 100644 --- a/deps/icu-small/source/i18n/unicode/tztrans.h +++ b/deps/icu-small/source/i18n/unicode/tztrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2008, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/unicode/ucal.h b/deps/icu-small/source/i18n/unicode/ucal.h index 8f3bf71f99a587..18522f6475e15e 100644 --- a/deps/icu-small/source/i18n/unicode/ucal.h +++ b/deps/icu-small/source/i18n/unicode/ucal.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines Corporation and @@ -423,10 +425,12 @@ enum UCalendarDateFields { */ UCAL_IS_LEAP_MONTH, - /** - * Field count - * @stable ICU 2.6 - */ + // Do not conditionalize with #ifndef U_HIDE_DEPRECATED_API, + // it is needed for layout of Calendar, DateFormat, and other objects + /** + * One more than the highest normal UCalendarDateFields value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCAL_FIELD_COUNT, /** diff --git a/deps/icu-small/source/i18n/unicode/ucol.h b/deps/icu-small/source/i18n/unicode/ucol.h index 25f90408c92ecc..0b3fab90b1a05d 100644 --- a/deps/icu-small/source/i18n/unicode/ucol.h +++ b/deps/icu-small/source/i18n/unicode/ucol.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (c) 1996-2015, International Business Machines Corporation and others. @@ -123,8 +125,13 @@ typedef enum { /** upper case sorts before lower case */ UCOL_UPPER_FIRST = 25, +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UColAttributeValue value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCOL_ATTRIBUTE_VALUE_COUNT - +#endif // U_HIDE_DEPRECATED_API } UColAttributeValue; /** @@ -191,12 +198,13 @@ typedef enum { * @stable ICU 4.8 */ UCOL_REORDER_CODE_DIGIT = 0x1004, - /** - * The limit of the reorder codes. This is intended for use in range checking - * and enumeration of the reorder codes. - * @stable ICU 4.8 - */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UColReorderCode value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCOL_REORDER_CODE_LIMIT = 0x1005 +#endif // U_HIDE_DEPRECATED_API } UColReorderCode; /** @@ -333,10 +341,13 @@ typedef enum { * @stable ICU 2.8 */ UCOL_NUMERIC_COLLATION = UCOL_STRENGTH + 2, - /** - * The number of UColAttribute constants. - * @stable ICU 2.0 - */ + + // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API, + // it is needed for layout of RuleBasedCollator object. + /** + * One more than the highest normal UColAttribute value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UCOL_ATTRIBUTE_COUNT } UColAttribute; @@ -1050,7 +1061,13 @@ typedef enum { UCOL_BOUND_UPPER = 1, /** upper bound that will match all the strings that have the same initial substring as the given string */ UCOL_BOUND_UPPER_LONG = 2, - UCOL_BOUND_VALUE_COUNT +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UColBoundMode value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + UCOL_BOUND_VALUE_COUNT +#endif // U_HIDE_DEPRECATED_API } UColBoundMode; /** diff --git a/deps/icu-small/source/i18n/unicode/ucoleitr.h b/deps/icu-small/source/i18n/unicode/ucoleitr.h index 7af783d37c52f3..89fd9e85cf79a0 100644 --- a/deps/icu-small/source/i18n/unicode/ucoleitr.h +++ b/deps/icu-small/source/i18n/unicode/ucoleitr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/ucsdet.h b/deps/icu-small/source/i18n/unicode/ucsdet.h index b737b160479268..a926d2f22cbbc4 100644 --- a/deps/icu-small/source/i18n/unicode/ucsdet.h +++ b/deps/icu-small/source/i18n/unicode/ucsdet.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/udat.h b/deps/icu-small/source/i18n/unicode/udat.h index 5baec621379d90..cacfbe85009c23 100644 --- a/deps/icu-small/source/i18n/unicode/udat.h +++ b/deps/icu-small/source/i18n/unicode/udat.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2016, International Business Machines @@ -787,16 +789,15 @@ typedef enum UDateFormatField { UDAT_TIME_SEPARATOR_FIELD = 37, #endif /* U_HIDE_INTERNAL_API */ - /** +#ifndef U_HIDE_DEPRECATED_API + /** * Number of FieldPosition and UFieldPosition selectors for * DateFormat and UDateFormat. * Valid selectors range from 0 to UDAT_FIELD_COUNT-1. - * This value is subject to change if new fields are defined - * in the future. - * @stable ICU 3.0 + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_FIELD_COUNT = 38 - +#endif // U_HIDE_DEPRECATED_API } UDateFormatField; @@ -888,23 +889,24 @@ typedef enum UDateFormatBooleanAttribute { * @stable ICU 53 */ UDAT_PARSE_ALLOW_NUMERIC = 1, -#ifndef U_HIDE_DRAFT_API /** * indicates tolerance of a partial literal match * e.g. accepting "--mon-02-march-2011" for a pattern of "'--: 'EEE-WW-MMMM-yyyy" - * @draft ICU 56 + * @stable ICU 56 */ UDAT_PARSE_PARTIAL_LITERAL_MATCH = 2, /** * indicates tolerance of pattern mismatch between input data and specified format pattern. * e.g. accepting "September" for a month pattern of MMM ("Sep") - * @draft ICU 56 + * @stable ICU 56 */ UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3, -#endif /* U_HIDE_DRAFT_API */ + + // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API, + // it is needed for layout of DateFormat object. /** - * count boolean date format constants - * @stable ICU 53 + * One more than the highest normal UDateFormatBooleanAttribute value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_BOOLEAN_ATTRIBUTE_COUNT = 4 } UDateFormatBooleanAttribute; diff --git a/deps/icu-small/source/i18n/unicode/udateintervalformat.h b/deps/icu-small/source/i18n/unicode/udateintervalformat.h index 26d9b5a9ddc0ce..81bff16d6e67af 100644 --- a/deps/icu-small/source/i18n/unicode/udateintervalformat.h +++ b/deps/icu-small/source/i18n/unicode/udateintervalformat.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2010-2012,2015 International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/udatpg.h b/deps/icu-small/source/i18n/unicode/udatpg.h index f52ed4c34ae88a..365d51c493c5fe 100644 --- a/deps/icu-small/source/i18n/unicode/udatpg.h +++ b/deps/icu-small/source/i18n/unicode/udatpg.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -83,7 +85,13 @@ typedef enum UDateTimePatternField { UDATPG_FRACTIONAL_SECOND_FIELD, /** @stable ICU 3.8 */ UDATPG_ZONE_FIELD, - /** @stable ICU 3.8 */ + + // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API, + // it is needed for layout of DateTimePatternGenerator object. + /** + * One more than the highest normal UDateTimePatternField value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UDATPG_FIELD_COUNT } UDateTimePatternField; @@ -120,8 +128,13 @@ typedef enum UDateTimePatternConflict { UDATPG_BASE_CONFLICT, /** @stable ICU 3.8 */ UDATPG_CONFLICT, - /** @stable ICU 3.8 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UDateTimePatternConflict value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UDATPG_CONFLICT_COUNT +#endif // U_HIDE_DEPRECATED_API } UDateTimePatternConflict; /** diff --git a/deps/icu-small/source/i18n/unicode/ufieldpositer.h b/deps/icu-small/source/i18n/unicode/ufieldpositer.h index 836bfdf279d4b2..8dfa3df5a409d0 100644 --- a/deps/icu-small/source/i18n/unicode/ufieldpositer.h +++ b/deps/icu-small/source/i18n/unicode/ufieldpositer.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2015-2016, International Business Machines @@ -84,8 +86,8 @@ U_NAMESPACE_END /** * Get information for the next field in the formatted string to which this - * UFieldPositionIterator currently applies, or return FALSE if there are - * no more fields. + * UFieldPositionIterator currently applies, or return a negative value if there + * are no more fields. * @param fpositer * A pointer to the UFieldPositionIterator object containing iteration * state for the format fields. diff --git a/deps/icu-small/source/i18n/unicode/uformattable.h b/deps/icu-small/source/i18n/unicode/uformattable.h index a64ae14653a19d..e4683d56c35898 100644 --- a/deps/icu-small/source/i18n/unicode/uformattable.h +++ b/deps/icu-small/source/i18n/unicode/uformattable.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2013-2014, International Business Machines Corporation and others. @@ -49,7 +51,13 @@ typedef enum UFormattableType { UFMT_ARRAY, /**< ufmt_countArray() and ufmt_getArray() will return the value. @see ufmt_getArrayItemByIndex */ UFMT_INT64, /**< ufmt_getInt64() will return without conversion. @see ufmt_getInt64 */ UFMT_OBJECT, /**< ufmt_getObject() will return without conversion. @see ufmt_getObject*/ - UFMT_COUNT /**< Count of defined UFormattableType values */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UFormattableType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + UFMT_COUNT +#endif // U_HIDE_DEPRECATED_API } UFormattableType; diff --git a/deps/icu-small/source/i18n/unicode/ugender.h b/deps/icu-small/source/i18n/unicode/ugender.h index 86e229df61b298..c1e591ed28fb0e 100644 --- a/deps/icu-small/source/i18n/unicode/ugender.h +++ b/deps/icu-small/source/i18n/unicode/ugender.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2010-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/ulocdata.h b/deps/icu-small/source/i18n/unicode/ulocdata.h index 63495f681cee4a..ecf6fdcb3f532e 100644 --- a/deps/icu-small/source/i18n/unicode/ulocdata.h +++ b/deps/icu-small/source/i18n/unicode/ulocdata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * @@ -47,8 +49,13 @@ typedef enum ULocaleDataExemplarSetType { ULOCDATA_ES_INDEX=2, /** Punctuation set @stable ICU 51 */ ULOCDATA_ES_PUNCTUATION=3, - /** One higher than the last valid type @stable ICU 3.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal ULocaleDataExemplarSetType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ ULOCDATA_ES_COUNT=4 +#endif // U_HIDE_DEPRECATED_API } ULocaleDataExemplarSetType; /** The possible types of delimiters. @@ -63,8 +70,13 @@ typedef enum ULocaleDataDelimiterType { ULOCDATA_ALT_QUOTATION_START = 2, /** Alternate quotation end @stable ICU 3.4 */ ULOCDATA_ALT_QUOTATION_END = 3, - /** One higher than the last valid type @stable ICU 3.4 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal ULocaleDataDelimiterType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ ULOCDATA_DELIMITER_COUNT = 4 +#endif // U_HIDE_DEPRECATED_API } ULocaleDataDelimiterType; /** @@ -189,7 +201,13 @@ typedef enum UMeasurementSystem { UMS_SI, /**< Measurement system specified by SI otherwise known as Metric system. @stable ICU 2.8 */ UMS_US, /**< Measurement system followed in the United States of America. @stable ICU 2.8 */ UMS_UK, /**< Mix of metric and imperial units used in Great Britain. @stable ICU 55 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UMeasurementSystem value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UMS_LIMIT +#endif // U_HIDE_DEPRECATED_API } UMeasurementSystem; /** diff --git a/deps/icu-small/source/i18n/unicode/umsg.h b/deps/icu-small/source/i18n/unicode/umsg.h index e79026f72e00b6..0beb39d5abbee0 100644 --- a/deps/icu-small/source/i18n/unicode/umsg.h +++ b/deps/icu-small/source/i18n/unicode/umsg.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/unirepl.h b/deps/icu-small/source/i18n/unicode/unirepl.h index 974a3f54014081..37815a9a24cfa4 100644 --- a/deps/icu-small/source/i18n/unicode/unirepl.h +++ b/deps/icu-small/source/i18n/unicode/unirepl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2005, International Business Machines Corporation diff --git a/deps/icu-small/source/i18n/unicode/unum.h b/deps/icu-small/source/i18n/unicode/unum.h index 8747cc595fec1a..7c652e09cf701b 100644 --- a/deps/icu-small/source/i18n/unicode/unum.h +++ b/deps/icu-small/source/i18n/unicode/unum.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2015, International Business Machines Corporation and others. @@ -219,35 +221,35 @@ typedef enum UNumberFormatStyle { * @stable ICU 54 */ UNUM_CASH_CURRENCY=13, -#ifndef U_HIDE_DRAFT_API /** * Decimal format expressed using compact notation * (short form, corresponds to UNumberCompactStyle=UNUM_SHORT) * e.g. "23K", "45B" - * @draft ICU 56 + * @stable ICU 56 */ UNUM_DECIMAL_COMPACT_SHORT=14, /** * Decimal format expressed using compact notation * (long form, corresponds to UNumberCompactStyle=UNUM_LONG) * e.g. "23 thousand", "45 billion" - * @draft ICU 56 + * @stable ICU 56 */ UNUM_DECIMAL_COMPACT_LONG=15, /** * Currency format with a currency symbol, e.g., "$1.00", * using non-accounting style for negative values (e.g. minus sign). * Overrides any style specified using -cf- key in locale. - * @draft ICU 56 + * @stable ICU 56 */ UNUM_CURRENCY_STANDARD=16, -#endif /* U_HIDE_DRAFT_API */ +#ifndef U_HIDE_DEPRECATED_API /** - * One more than the highest number format style constant. - * @stable ICU 4.8 + * One more than the highest normal UNumberFormatStyle value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UNUM_FORMAT_STYLE_COUNT=17, +#endif // U_HIDE_DEPRECATED_API /** * Default format @@ -323,7 +325,13 @@ enum UCurrencySpacing { UNUM_CURRENCY_SURROUNDING_MATCH, /** @stable ICU 4.8 */ UNUM_CURRENCY_INSERT, - /** @stable ICU 4.8 */ + + // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API, + // it is needed for layout of DecimalFormatSymbols object. + /** + * One more than the highest normal UCurrencySpacing value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UNUM_CURRENCY_SPACING_COUNT }; typedef enum UCurrencySpacing UCurrencySpacing; /**< @stable ICU 4.8 */ @@ -357,8 +365,13 @@ typedef enum UNumberFormatFields { UNUM_PERMILL_FIELD, /** @stable ICU 49 */ UNUM_SIGN_FIELD, - /** @stable ICU 49 */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UNumberFormatFields value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UNUM_FIELD_COUNT +#endif // U_HIDE_DEPRECATED_API } UNumberFormatFields; @@ -1272,8 +1285,13 @@ typedef enum UNumberFormatSymbol { */ UNUM_EXPONENT_MULTIPLICATION_SYMBOL = 27, - /** count symbol constants */ +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UNumberFormatSymbol value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ UNUM_FORMAT_SYMBOL_COUNT = 28 +#endif // U_HIDE_DEPRECATED_API } UNumberFormatSymbol; /** diff --git a/deps/icu-small/source/i18n/unicode/unumsys.h b/deps/icu-small/source/i18n/unicode/unumsys.h index 8f9d386dd5d458..396d55d6b7699b 100644 --- a/deps/icu-small/source/i18n/unicode/unumsys.h +++ b/deps/icu-small/source/i18n/unicode/unumsys.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2013-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/upluralrules.h b/deps/icu-small/source/i18n/unicode/upluralrules.h index 5bcadd4bda60f4..52e34d8d25dd66 100644 --- a/deps/icu-small/source/i18n/unicode/upluralrules.h +++ b/deps/icu-small/source/i18n/unicode/upluralrules.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2010-2013, International Business Machines @@ -52,11 +54,13 @@ enum UPluralType { * @stable ICU 50 */ UPLURAL_TYPE_ORDINAL, +#ifndef U_HIDE_DEPRECATED_API /** - * Number of Plural rules types. - * @stable ICU 50 + * One more than the highest normal UPluralType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UPLURAL_TYPE_COUNT +#endif // U_HIDE_DEPRECATED_API }; /** * @stable ICU 50 diff --git a/deps/icu-small/source/i18n/unicode/uregex.h b/deps/icu-small/source/i18n/unicode/uregex.h index c51acd5f4043fe..7806a74afcc745 100644 --- a/deps/icu-small/source/i18n/unicode/uregex.h +++ b/deps/icu-small/source/i18n/unicode/uregex.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2004-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/uregion.h b/deps/icu-small/source/i18n/unicode/uregion.h index 29347528e0d284..b5d03691cabfe9 100644 --- a/deps/icu-small/source/i18n/unicode/uregion.h +++ b/deps/icu-small/source/i18n/unicode/uregion.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2014, International Business Machines @@ -105,11 +107,13 @@ typedef enum URegionType { */ URGN_DEPRECATED, +#ifndef U_HIDE_DEPRECATED_API /** - * Maximum value for this unumeration. - * @stable ICU 51 + * One more than the highest normal URegionType value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ URGN_LIMIT +#endif // U_HIDE_DEPRECATED_API } URegionType; #if !UCONFIG_NO_FORMATTING diff --git a/deps/icu-small/source/i18n/unicode/ureldatefmt.h b/deps/icu-small/source/i18n/unicode/ureldatefmt.h index fce016f564ff64..fad8ffd9e184b8 100644 --- a/deps/icu-small/source/i18n/unicode/ureldatefmt.h +++ b/deps/icu-small/source/i18n/unicode/ureldatefmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2016, International Business Machines @@ -58,11 +60,13 @@ typedef enum UDateRelativeDateTimeFormatterStyle { */ UDAT_STYLE_NARROW, - /** - * The number of styles. - * @stable ICU 54 - */ - UDAT_STYLE_COUNT +#ifndef U_HIDE_DEPRECATED_API + /** + * One more than the highest normal UDateRelativeDateTimeFormatterStyle value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. + */ + UDAT_STYLE_COUNT +#endif // U_HIDE_DEPRECATED_API } UDateRelativeDateTimeFormatterStyle; #ifndef U_HIDE_DRAFT_API @@ -162,11 +166,13 @@ typedef enum URelativeDateTimeUnit { * @draft ICU 57 */ UDAT_REL_UNIT_SATURDAY, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of URelativeDateTimeUnit values - * @draft ICU 57 + * One more than the highest normal URelativeDateTimeUnit value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UDAT_REL_UNIT_COUNT +#endif // U_HIDE_DEPRECATED_API } URelativeDateTimeUnit; #endif /* U_HIDE_DRAFT_API */ diff --git a/deps/icu-small/source/i18n/unicode/usearch.h b/deps/icu-small/source/i18n/unicode/usearch.h index 10721bc726dc2c..dcdb7fe420b814 100644 --- a/deps/icu-small/source/i18n/unicode/usearch.h +++ b/deps/icu-small/source/i18n/unicode/usearch.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2011,2014 IBM and others. All rights reserved. @@ -188,11 +190,13 @@ typedef enum { */ USEARCH_ELEMENT_COMPARISON = 2, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of attribute types - * @stable ICU 2.4 + * One more than the highest normal USearchAttribute value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ USEARCH_ATTRIBUTE_COUNT = 3 +#endif // U_HIDE_DEPRECATED_API } USearchAttribute; /** @@ -262,11 +266,13 @@ typedef enum { */ USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD, +#ifndef U_HIDE_DEPRECATED_API /** - * Count of attribute values - * @stable ICU 2.4 + * One more than the highest normal USearchAttributeValue value. + * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ USEARCH_ATTRIBUTE_VALUE_COUNT +#endif // U_HIDE_DEPRECATED_API } USearchAttributeValue; /* open and close ------------------------------------------------------ */ diff --git a/deps/icu-small/source/i18n/unicode/uspoof.h b/deps/icu-small/source/i18n/unicode/uspoof.h index c2285a700ed6bc..40b73380c57d52 100644 --- a/deps/icu-small/source/i18n/unicode/uspoof.h +++ b/deps/icu-small/source/i18n/unicode/uspoof.h @@ -1,6 +1,8 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** -* Copyright (C) 2008-2015, International Business Machines Corporation +* Copyright (C) 2008-2016, International Business Machines Corporation * and others. All Rights Reserved. *************************************************************************** * file name: uspoof.h @@ -35,123 +37,350 @@ * \file * \brief Unicode Security and Spoofing Detection, C API. * - * These functions are intended to check strings, typically - * identifiers of some type, such as URLs, for the presence of - * characters that are likely to be visually confusing - - * for cases where the displayed form of an identifier may - * not be what it appears to be. - * - * Unicode Technical Report #36, http://unicode.org/reports/tr36, and - * Unicode Technical Standard #39, http://unicode.org/reports/tr39 - * "Unicode security considerations", give more background on - * security an spoofing issues with Unicode identifiers. - * The tests and checks provided by this module implement the recommendations - * from those Unicode documents. - * - * The tests available on identifiers fall into two general categories: - * -# Single identifier tests. Check whether an identifier is - * potentially confusable with any other string, or is suspicious - * for other reasons. - * -# Two identifier tests. Check whether two specific identifiers are confusable. - * This does not consider whether either of strings is potentially - * confusable with any string other than the exact one specified. - * - * The steps to perform confusability testing are - * -# Open a USpoofChecker. - * -# Configure the USPoofChecker for the desired set of tests. The tests that will - * be performed are specified by a set of USpoofChecks flags. - * -# Perform the checks using the pre-configured USpoofChecker. The results indicate - * which (if any) of the selected tests have identified possible problems with the identifier. - * Results are reported as a set of USpoofChecks flags; this mirrors the form in which - * the set of tests to perform was originally specified to the USpoofChecker. - * - * A USpoofChecker may be used repeatedly to perform checks on any number of identifiers. - * - * Thread Safety: The test functions for checking a single identifier, or for testing - * whether two identifiers are possible confusable, are thread safe. - * They may called concurrently, from multiple threads, using the same USpoofChecker instance. - * - * More generally, the standard ICU thread safety rules apply: functions that take a - * const USpoofChecker parameter are thread safe. Those that take a non-const - * USpoofChecier are not thread safe. - * - * - * Descriptions of the available checks. - * - * When testing whether pairs of identifiers are confusable, with the uspoof_areConfusable() - * family of functions, the relevant tests are - * - * -# USPOOF_SINGLE_SCRIPT_CONFUSABLE: All of the characters from the two identifiers are - * from a single script, and the two identifiers are visually confusable. - * -# USPOOF_MIXED_SCRIPT_CONFUSABLE: At least one of the identifiers contains characters - * from more than one script, and the two identifiers are visually confusable. - * -# USPOOF_WHOLE_SCRIPT_CONFUSABLE: Each of the two identifiers is of a single script, but - * the two identifiers are from different scripts, and they are visually confusable. - * - * The safest approach is to enable all three of these checks as a group. - * - * USPOOF_ANY_CASE is a modifier for the above tests. If the identifiers being checked can - * be of mixed case and are used in a case-sensitive manner, this option should be specified. - * - * If the identifiers being checked are used in a case-insensitive manner, and if they are - * displayed to users in lower-case form only, the USPOOF_ANY_CASE option should not be - * specified. Confusabality issues involving upper case letters will not be reported. - * - * When performing tests on a single identifier, with the uspoof_check() family of functions, - * the relevant tests are: - * - * -# USPOOF_MIXED_SCRIPT_CONFUSABLE: the identifier contains characters from multiple - * scripts, and there exists an identifier of a single script that is visually confusable. - * -# USPOOF_WHOLE_SCRIPT_CONFUSABLE: the identifier consists of characters from a single - * script, and there exists a visually confusable identifier. - * The visually confusable identifier also consists of characters from a single script. - * but not the same script as the identifier being checked. - * -# USPOOF_ANY_CASE: modifies the mixed script and whole script confusables tests. If - * specified, the checks will consider confusable characters of any case. If this flag is not - * set, the test is performed assuming case folded identifiers. - * -# USPOOF_SINGLE_SCRIPT: check that the identifier contains only characters from a - * single script. (Characters from the 'common' and 'inherited' scripts are ignored.) - * This is not a test for confusable identifiers - * -# USPOOF_INVISIBLE: check an identifier for the presence of invisible characters, - * such as zero-width spaces, or character sequences that are - * likely not to display, such as multiple occurrences of the same - * non-spacing mark. This check does not test the input string as a whole - * for conformance to any particular syntax for identifiers. - * -# USPOOF_CHAR_LIMIT: check that an identifier contains only characters from a specified set - * of acceptable characters. See uspoof_setAllowedChars() and - * uspoof_setAllowedLocales(). - * - * Note on Scripts: - * Characters from the Unicode Scripts "Common" and "Inherited" are ignored when considering - * the script of an identifier. Common characters include digits and symbols that - * are normally used with text from more than one script. - * - * Identifier Skeletons: A skeleton is a transformation of an identifier, such that - * all identifiers that are confusable with each other have the same skeleton. - * Using skeletons, it is possible to build a dictionary data structure for - * a set of identifiers, and then quickly test whether a new identifier is - * confusable with an identifier already in the set. The uspoof_getSkeleton() - * family of functions will produce the skeleton from an identifier. - * - * Note that skeletons are not guaranteed to be stable between versions - * of Unicode or ICU, so an applications should not rely on creating a permanent, - * or difficult to update, database of skeletons. Instabilities result from - * identifying new pairs or sequences of characters that are visually - * confusable, and thus must be mapped to the same skeleton character(s). - * - * Skeletons are computed using the algorithm and data describe in Unicode UAX 39. - * The latest proposed update, UAX 39 Version 8 draft 1, says "the tables SL, SA, and ML - * were still problematic, and discouraged from use in [Uniocde] 7.0. - * They were thus removed from version 8.0" - * - * In light of this, the default mapping data included with ICU 55 uses the - * Unicode 7 MA (Multi script Any case) table data for the other type options - * (Single Script, Any Case), (Single Script, Lower Case) and (Multi Script, Lower Case). + *

+ * This class, based on Unicode Technical Report #36 and + * Unicode Technical Standard #39, has two main functions: + * + *

    + *
  1. Checking whether two strings are visually confusable with each other, such as "Harvest" and + * "Ηarvest", where the second string starts with the Greek capital letter Eta.
  2. + *
  3. Checking whether an individual string is likely to be an attempt at confusing the reader (spoof + * detection), such as "paypal" with some Latin characters substituted with Cyrillic look-alikes.
  4. + *
+ * + *

+ * Although originally designed as a method for flagging suspicious identifier strings such as URLs, + * USpoofChecker has a number of other practical use cases, such as preventing attempts to evade bad-word + * content filters. + * + *

+ * The functions of this class are exposed as C API, with a handful of syntactical conveniences for C++. + * + *

Confusables

+ * + *

+ * The following example shows how to use USpoofChecker to check for confusability between two strings: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * UChar* str1 = (UChar*) u"Harvest"; + * UChar* str2 = (UChar*) u"\u0397arvest"; // with U+0397 GREEK CAPITAL LETTER ETA + * + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setChecks(sc, USPOOF_CONFUSABLE, &status); + * + * int32_t bitmask = uspoof_areConfusable(sc, str1, -1, str2, -1, &status); + * UBool result = bitmask != 0; + * // areConfusable: 1 (status: U_ZERO_ERROR) + * printf("areConfusable: %d (status: %s)\n", result, u_errorName(status)); + * uspoof_close(sc); + * \endcode + * + *

+ * The call to {@link uspoof_open} creates a USpoofChecker object; the call to {@link uspoof_setChecks} + * enables confusable checking and disables all other checks; the call to {@link uspoof_areConfusable} performs the + * confusability test; and the following line extracts the result out of the return value. For best performance, + * the instance should be created once (e.g., upon application startup), and the efficient + * {@link uspoof_areConfusable} method can be used at runtime. + * + *

+ * The type {@link LocalUSpoofCheckerPointer} is exposed for C++ programmers. It will automatically call + * {@link uspoof_close} when the object goes out of scope: + * + * \code{.cpp} + * UErrorCode status = U_ZERO_ERROR; + * LocalUSpoofCheckerPointer sc(uspoof_open(&status)); + * uspoof_setChecks(sc.getAlias(), USPOOF_CONFUSABLE, &status); + * // ... + * \endcode + * + *

+ * UTS 39 defines two strings to be confusable if they map to the same skeleton string. A skeleton can + * be thought of as a "hash code". {@link uspoof_getSkeleton} computes the skeleton for a particular string, so + * the following snippet is equivalent to the example above: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * UChar* str1 = (UChar*) u"Harvest"; + * UChar* str2 = (UChar*) u"\u0397arvest"; // with U+0397 GREEK CAPITAL LETTER ETA + * + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setChecks(sc, USPOOF_CONFUSABLE, &status); + * + * // Get skeleton 1 + * int32_t skel1Len = uspoof_getSkeleton(sc, 0, str1, -1, NULL, 0, &status); + * UChar* skel1 = (UChar*) malloc(++skel1Len * sizeof(UChar)); + * status = U_ZERO_ERROR; + * uspoof_getSkeleton(sc, 0, str1, -1, skel1, skel1Len, &status); + * + * // Get skeleton 2 + * int32_t skel2Len = uspoof_getSkeleton(sc, 0, str2, -1, NULL, 0, &status); + * UChar* skel2 = (UChar*) malloc(++skel2Len * sizeof(UChar)); + * status = U_ZERO_ERROR; + * uspoof_getSkeleton(sc, 0, str2, -1, skel2, skel2Len, &status); + * + * // Are the skeletons the same? + * UBool result = u_strcmp(skel1, skel2) == 0; + * // areConfusable: 1 (status: U_ZERO_ERROR) + * printf("areConfusable: %d (status: %s)\n", result, u_errorName(status)); + * uspoof_close(sc); + * free(skel1); + * free(skel2); + * \endcode + * + *

+ * If you need to check if a string is confusable with any string in a dictionary of many strings, rather than calling + * {@link uspoof_areConfusable} many times in a loop, {@link uspoof_getSkeleton} can be used instead, as shown below: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * #define DICTIONARY_LENGTH 2 + * UChar* dictionary[DICTIONARY_LENGTH] = { (UChar*) u"lorem", (UChar*) u"ipsum" }; + * UChar* skeletons[DICTIONARY_LENGTH]; + * UChar* str = (UChar*) u"1orern"; + * + * // Setup: + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setChecks(sc, USPOOF_CONFUSABLE, &status); + * for (size_t i=0; i + * Note: Since the Unicode confusables mapping table is frequently updated, confusable skeletons are not + * guaranteed to be the same between ICU releases. We therefore recommend that you always compute confusable skeletons + * at runtime and do not rely on creating a permanent, or difficult to update, database of skeletons. + * + *

Spoof Detection

+ * + *

+ * The following snippet shows a minimal example of using USpoofChecker to perform spoof detection on a + * string: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * UChar* str = (UChar*) u"p\u0430ypal"; // with U+0430 CYRILLIC SMALL LETTER A + * + * // Get the default set of allowable characters: + * USet* allowed = uset_openEmpty(); + * uset_addAll(allowed, uspoof_getRecommendedSet(&status)); + * uset_addAll(allowed, uspoof_getInclusionSet(&status)); + * + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setAllowedChars(sc, allowed, &status); + * uspoof_setRestrictionLevel(sc, USPOOF_MODERATELY_RESTRICTIVE); + * + * int32_t bitmask = uspoof_check(sc, str, -1, NULL, &status); + * UBool result = bitmask != 0; + * // fails checks: 1 (status: U_ZERO_ERROR) + * printf("fails checks: %d (status: %s)\n", result, u_errorName(status)); + * uspoof_close(sc); + * uset_close(allowed); + * \endcode + * + *

+ * As in the case for confusability checking, it is good practice to create one USpoofChecker instance at + * startup, and call the cheaper {@link uspoof_check} online. We specify the set of + * allowed characters to be those with type RECOMMENDED or INCLUSION, according to the recommendation in UTS 39. + * + *

+ * In addition to {@link uspoof_check}, the function {@link uspoof_checkUTF8} is exposed for UTF8-encoded char* strings, + * and {@link uspoof_checkUnicodeString} is exposed for C++ programmers. + * + *

+ * If the {@link USPOOF_AUX_INFO} check is enabled, a limited amount of information on why a string failed the checks + * is available in the returned bitmask. For complete information, use the {@link uspoof_check2} class of functions + * with a {@link USpoofCheckResult} parameter: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * UChar* str = (UChar*) u"p\u0430ypal"; // with U+0430 CYRILLIC SMALL LETTER A + * + * // Get the default set of allowable characters: + * USet* allowed = uset_openEmpty(); + * uset_addAll(allowed, uspoof_getRecommendedSet(&status)); + * uset_addAll(allowed, uspoof_getInclusionSet(&status)); + * + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setAllowedChars(sc, allowed, &status); + * uspoof_setRestrictionLevel(sc, USPOOF_MODERATELY_RESTRICTIVE); + * + * USpoofCheckResult* checkResult = uspoof_openCheckResult(&status); + * int32_t bitmask = uspoof_check2(sc, str, -1, checkResult, &status); + * + * int32_t failures1 = bitmask; + * int32_t failures2 = uspoof_getCheckResultChecks(checkResult, &status); + * assert(failures1 == failures2); + * // checks that failed: 0x00000010 (status: U_ZERO_ERROR) + * printf("checks that failed: %#010x (status: %s)\n", failures1, u_errorName(status)); + * + * // Cleanup: + * uspoof_close(sc); + * uset_close(allowed); + * uspoof_closeCheckResult(checkResult); + * \endcode + * + * C++ users can take advantage of a few syntactical conveniences. The following snippet is functionally + * equivalent to the one above: + * + * \code{.cpp} + * UErrorCode status = U_ZERO_ERROR; + * UnicodeString str((UChar*) u"p\u0430ypal"); // with U+0430 CYRILLIC SMALL LETTER A + * + * // Get the default set of allowable characters: + * UnicodeSet allowed; + * allowed.addAll(*uspoof_getRecommendedUnicodeSet(&status)); + * allowed.addAll(*uspoof_getInclusionUnicodeSet(&status)); + * + * LocalUSpoofCheckerPointer sc(uspoof_open(&status)); + * uspoof_setAllowedChars(sc.getAlias(), allowed.toUSet(), &status); + * uspoof_setRestrictionLevel(sc.getAlias(), USPOOF_MODERATELY_RESTRICTIVE); + * + * LocalUSpoofCheckResultPointer checkResult(uspoof_openCheckResult(&status)); + * int32_t bitmask = uspoof_check2UnicodeString(sc.getAlias(), str, checkResult.getAlias(), &status); + * + * int32_t failures1 = bitmask; + * int32_t failures2 = uspoof_getCheckResultChecks(checkResult.getAlias(), &status); + * assert(failures1 == failures2); + * // checks that failed: 0x00000010 (status: U_ZERO_ERROR) + * printf("checks that failed: %#010x (status: %s)\n", failures1, u_errorName(status)); + * + * // Explicit cleanup not necessary. + * \endcode + * + *

+ * The return value is a bitmask of the checks that failed. In this case, there was one check that failed: + * {@link USPOOF_RESTRICTION_LEVEL}, corresponding to the fifth bit (16). The possible checks are: + * + *

    + *
  • RESTRICTION_LEVEL: flags strings that violate the + * Restriction Level test as specified in UTS + * 39; in most cases, this means flagging strings that contain characters from multiple different scripts.
  • + *
  • INVISIBLE: flags strings that contain invisible characters, such as zero-width spaces, or character + * sequences that are likely not to display, such as multiple occurrences of the same non-spacing mark.
  • + *
  • CHAR_LIMIT: flags strings that contain characters outside of a specified set of acceptable + * characters. See {@link uspoof_setAllowedChars} and {@link uspoof_setAllowedLocales}.
  • + *
  • MIXED_NUMBERS: flags strings that contain digits from multiple different numbering systems.
  • + *
+ * + *

+ * These checks can be enabled independently of each other. For example, if you were interested in checking for only the + * INVISIBLE and MIXED_NUMBERS conditions, you could do: + * + * \code{.c} + * UErrorCode status = U_ZERO_ERROR; + * UChar* str = (UChar*) u"8\u09EA"; // 8 mixed with U+09EA BENGALI DIGIT FOUR + * + * USpoofChecker* sc = uspoof_open(&status); + * uspoof_setChecks(sc, USPOOF_INVISIBLE | USPOOF_MIXED_NUMBERS, &status); + * + * int32_t bitmask = uspoof_check2(sc, str, -1, NULL, &status); + * UBool result = bitmask != 0; + * // fails checks: 1 (status: U_ZERO_ERROR) + * printf("fails checks: %d (status: %s)\n", result, u_errorName(status)); + * uspoof_close(sc); + * \endcode + * + *

+ * Here is an example in C++ showing how to compute the restriction level of a string: + * + * \code{.cpp} + * UErrorCode status = U_ZERO_ERROR; + * UnicodeString str((UChar*) u"p\u0430ypal"); // with U+0430 CYRILLIC SMALL LETTER A + * + * // Get the default set of allowable characters: + * UnicodeSet allowed; + * allowed.addAll(*uspoof_getRecommendedUnicodeSet(&status)); + * allowed.addAll(*uspoof_getInclusionUnicodeSet(&status)); + * + * LocalUSpoofCheckerPointer sc(uspoof_open(&status)); + * uspoof_setAllowedChars(sc.getAlias(), allowed.toUSet(), &status); + * uspoof_setRestrictionLevel(sc.getAlias(), USPOOF_MODERATELY_RESTRICTIVE); + * uspoof_setChecks(sc.getAlias(), USPOOF_RESTRICTION_LEVEL | USPOOF_AUX_INFO, &status); + * + * LocalUSpoofCheckResultPointer checkResult(uspoof_openCheckResult(&status)); + * int32_t bitmask = uspoof_check2UnicodeString(sc.getAlias(), str, checkResult.getAlias(), &status); + * + * URestrictionLevel restrictionLevel = uspoof_getCheckResultRestrictionLevel(checkResult.getAlias(), &status); + * // Since USPOOF_AUX_INFO was enabled, the restriction level is also available in the upper bits of the bitmask: + * assert((restrictionLevel & bitmask) == restrictionLevel); + * // Restriction level: 0x50000000 (status: U_ZERO_ERROR) + * printf("Restriction level: %#010x (status: %s)\n", restrictionLevel, u_errorName(status)); + * \endcode + * + *

+ * The code '0x50000000' corresponds to the restriction level USPOOF_MINIMALLY_RESTRICTIVE. Since + * USPOOF_MINIMALLY_RESTRICTIVE is weaker than USPOOF_MODERATELY_RESTRICTIVE, the string fails the check. + * + *

+ * Note: The Restriction Level is the most powerful of the checks. The full logic is documented in + * UTS 39, but the basic idea is that strings + * are restricted to contain characters from only a single script, except that most scripts are allowed to have + * Latin characters interspersed. Although the default restriction level is HIGHLY_RESTRICTIVE, it is + * recommended that users set their restriction level to MODERATELY_RESTRICTIVE, which allows Latin mixed + * with all other scripts except Cyrillic, Greek, and Cherokee, with which it is often confusable. For more details on + * the levels, see UTS 39 or {@link URestrictionLevel}. The Restriction Level test is aware of the set of + * allowed characters set in {@link uspoof_setAllowedChars}. Note that characters which have script code + * COMMON or INHERITED, such as numbers and punctuation, are ignored when computing whether a string has multiple + * scripts. + * + *

Additional Information

+ * + *

+ * A USpoofChecker instance may be used repeatedly to perform checks on any number of identifiers. + * + *

+ * Thread Safety: The test functions for checking a single identifier, or for testing whether + * two identifiers are possible confusable, are thread safe. They may called concurrently, from multiple threads, + * using the same USpoofChecker instance. + * + *

+ * More generally, the standard ICU thread safety rules apply: functions that take a const USpoofChecker parameter are + * thread safe. Those that take a non-const USpoofChecker are not thread safe.. + * + * @stable ICU 4.6 */ struct USpoofChecker; typedef struct USpoofChecker USpoofChecker; /**< typedef for C of USpoofChecker */ +#ifndef U_HIDE_DRAFT_API +/** + * @see uspoof_openCheckResult + */ +struct USpoofCheckResult; +/** + * @see uspoof_openCheckResult + */ +typedef struct USpoofCheckResult USpoofCheckResult; +#endif /* U_HIDE_DRAFT_API */ + /** * Enum for the kinds of checks that USpoofChecker can perform. * These enum values are used both to select the set of checks that @@ -160,45 +389,61 @@ typedef struct USpoofChecker USpoofChecker; /**< typedef for C of USpoofChecker * @stable ICU 4.2 */ typedef enum USpoofChecks { - /** Single script confusable test. - * When testing whether two identifiers are confusable, report that they are if - * both are from the same script and they are visually confusable. - * Note: this test is not applicable to a check of a single identifier. - */ + /** + * When performing the two-string {@link uspoof_areConfusable} test, this flag in the return value indicates + * that the two strings are visually confusable and that they are from the same script, according to UTS 39 section + * 4. + * + * @see uspoof_areConfusable + * @stable ICU 4.2 + */ USPOOF_SINGLE_SCRIPT_CONFUSABLE = 1, - /** Mixed script confusable test. - * When checking a single identifier, report a problem if - * the identifier contains multiple scripts, and - * is confusable with some other identifier in a single script - * When testing whether two identifiers are confusable, report that they are if - * the two IDs are visually confusable, - * and at least one contains characters from more than one script. + /** + * When performing the two-string {@link uspoof_areConfusable} test, this flag in the return value indicates + * that the two strings are visually confusable and that they are not from the same script, according to UTS + * 39 section 4. + * + * @see uspoof_areConfusable + * @stable ICU 4.2 */ USPOOF_MIXED_SCRIPT_CONFUSABLE = 2, - /** Whole script confusable test. - * When checking a single identifier, report a problem if - * The identifier is of a single script, and - * there exists a confusable identifier in another script. - * When testing whether two identifiers are confusable, report that they are if - * each is of a single script, - * the scripts of the two identifiers are different, and - * the identifiers are visually confusable. + /** + * When performing the two-string {@link uspoof_areConfusable} test, this flag in the return value indicates + * that the two strings are visually confusable and that they are not from the same script but both of them are + * single-script strings, according to UTS 39 section 4. + * + * @see uspoof_areConfusable + * @stable ICU 4.2 */ USPOOF_WHOLE_SCRIPT_CONFUSABLE = 4, - /** Any Case Modifier for confusable identifier tests. - If specified, consider all characters, of any case, when looking for confusables. - If USPOOF_ANY_CASE is not specified, identifiers being checked are assumed to have been - case folded. Upper case confusable characters will not be checked. - Selects between Lower Case Confusable and - Any Case Confusable. */ +#ifndef U_HIDE_DRAFT_API + /** + * Enable this flag in {@link uspoof_setChecks} to turn on all types of confusables. You may set + * the checks to some subset of SINGLE_SCRIPT_CONFUSABLE, MIXED_SCRIPT_CONFUSABLE, or WHOLE_SCRIPT_CONFUSABLE to + * make {@link uspoof_areConfusable} return only those types of confusables. + * + * @see uspoof_areConfusable + * @see uspoof_getSkeleton + * @draft ICU 58 + */ + USPOOF_CONFUSABLE = USPOOF_SINGLE_SCRIPT_CONFUSABLE | USPOOF_MIXED_SCRIPT_CONFUSABLE | USPOOF_WHOLE_SCRIPT_CONFUSABLE, +#endif /* U_HIDE_DRAFT_API */ + +#ifndef U_HIDE_DEPRECATED_API + /** + * This flag is deprecated and no longer affects the behavior of SpoofChecker. + * + * @deprecated ICU 58 Any case confusable mappings were removed from UTS 39; the corresponding ICU API was deprecated. + */ USPOOF_ANY_CASE = 8, +#endif /* U_HIDE_DEPRECATED_API */ /** * Check that an identifier is no looser than the specified RestrictionLevel. - * The default if uspoof_setRestrctionLevel() is not called is HIGHLY_RESTRICTIVE. + * The default if {@link uspoof_setRestrictionLevel} is not called is HIGHLY_RESTRICTIVE. * * If USPOOF_AUX_INFO is enabled the actual restriction level of the * identifier being tested will also be returned by uspoof_check(). @@ -229,14 +474,15 @@ typedef enum USpoofChecks { USPOOF_INVISIBLE = 32, /** Check that an identifier contains only characters from a specified set - * of acceptable characters. See uspoof_setAllowedChars() and - * uspoof_setAllowedLocales(). + * of acceptable characters. See {@link uspoof_setAllowedChars} and + * {@link uspoof_setAllowedLocales}. Note that a string that fails this check + * will also fail the {@link USPOOF_RESTRICTION_LEVEL} check. */ USPOOF_CHAR_LIMIT = 64, /** - * Check that an identifier does not include decimal digits from - * more than one numbering system. + * Check that an identifier does not mix numbers from different numbering systems. + * For more information, see UTS 39 section 5.3. * * @stable ICU 51 */ @@ -253,11 +499,11 @@ typedef enum USpoofChecks { * Enable the return of auxillary (non-error) information in the * upper bits of the check results value. * - * If this "check" is not enabled, the results of uspoof_check() will be zero when an - * identifier passes all of the enabled checks. + * If this "check" is not enabled, the results of {@link uspoof_check} will be + * zero when an identifier passes all of the enabled checks. * - * If this "check" is enabled, (uspoof_check() & USPOOF_ALL_CHECKS) will be zero - * when an identifier passes all checks. + * If this "check" is enabled, (uspoof_check() & {@link USPOOF_ALL_CHECKS}) will + * be zero when an identifier passes all checks. * * @stable ICU 51 */ @@ -267,39 +513,53 @@ typedef enum USpoofChecks { /** - * Constants from UAX #39 for use in setRestrictionLevel(), and + * Constants from UAX #39 for use in {@link uspoof_setRestrictionLevel}, and * for returned identifier restriction levels in check results. + * * @stable ICU 51 + * + * @see uspoof_setRestrictionLevel + * @see uspoof_check */ typedef enum URestrictionLevel { /** - * Only ASCII characters: U+0000..U+007F + * All characters in the string are in the identifier profile and all characters in the string are in the + * ASCII range. * * @stable ICU 51 */ USPOOF_ASCII = 0x10000000, /** - * All characters in each identifier must be from a single script. - * - * @stable ICU 53 - */ + * The string classifies as ASCII-Only, or all characters in the string are in the identifier profile and + * the string is single-script, according to the definition in UTS 39 section 5.1. + * + * @stable ICU 53 + */ USPOOF_SINGLE_SCRIPT_RESTRICTIVE = 0x20000000, /** - * All characters in each identifier must be from a single script, or from the combinations: Latin + Han + - * Hiragana + Katakana; Latin + Han + Bopomofo; or Latin + Han + Hangul. Note that this level will satisfy the - * vast majority of Latin-script users; also that TR36 has ASCII instead of Latin. + * The string classifies as Single Script, or all characters in the string are in the identifier profile and + * the string is covered by any of the following sets of scripts, according to the definition in UTS 39 + * section 5.1: + *

    + *
  • Latin + Han + Bopomofo (or equivalently: Latn + Hanb)
  • + *
  • Latin + Han + Hiragana + Katakana (or equivalently: Latn + Jpan)
  • + *
  • Latin + Han + Hangul (or equivalently: Latn +Kore)
  • + *
+ * This is the default restriction in ICU. * * @stable ICU 51 */ USPOOF_HIGHLY_RESTRICTIVE = 0x30000000, /** - * Allow Latin with other scripts except Cyrillic, Greek, Cherokee Otherwise, the same as Highly Restrictive + * The string classifies as Highly Restrictive, or all characters in the string are in the identifier profile + * and the string is covered by Latin and any one other Recommended or Aspirational script, except Cyrillic, + * Greek, and Cherokee. * * @stable ICU 51 */ USPOOF_MODERATELY_RESTRICTIVE = 0x40000000, /** - * Allow arbitrary mixtures of scripts. Otherwise, the same as Moderately Restrictive. + * All characters in the string are in the identifier profile. Allow arbitrary mixtures of scripts. * * @stable ICU 51 */ @@ -311,11 +571,18 @@ typedef enum USpoofChecks { */ USPOOF_UNRESTRICTIVE = 0x60000000, /** - * Mask for selecting the Restriction Level bits from the return value of uspoof_check(). - * - * @stable ICU 53 - */ - USPOOF_RESTRICTION_LEVEL_MASK = 0x7F000000 + * Mask for selecting the Restriction Level bits from the return value of {@link uspoof_check}. + * + * @stable ICU 53 + */ + USPOOF_RESTRICTION_LEVEL_MASK = 0x7F000000, +#ifndef U_HIDE_INTERNAL_API + /** + * An undefined restriction level. + * @internal + */ + USPOOF_UNDEFINED_RESTRICTIVE = -1 +#endif /* U_HIDE_INTERNAL_API */ } URestrictionLevel; /** @@ -359,10 +626,10 @@ uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLeng /** * Open a Spoof Checker from the source form of the spoof data. - * The two inputs correspond to the Unicode data files confusables.txt - * and confusablesWholeScript.txt as described in Unicode UAX #39. - * The syntax of the source data is as described in UAX #39 for - * these files, and the content of these files is acceptable input. + * The input corresponds to the Unicode data file confusables.txt + * as described in Unicode UAX #39. The syntax of the source data + * is as described in UAX #39 for this file, and the content of + * this file is acceptable input. * * The character encoding of the (char *) input text is UTF-8. * @@ -371,10 +638,9 @@ uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLeng * @param confusablesLen The length of the confusables text, or -1 if the * input string is zero terminated. * @param confusablesWholeScript - * a pointer to the whole script confusables definitions, - * as found in the file confusablesWholeScript.txt from unicode.org. - * @param confusablesWholeScriptLen The length of the whole script confusables text, or - * -1 if the input string is zero terminated. + * Deprecated in ICU 58. No longer used. + * @param confusablesWholeScriptLen + * Deprecated in ICU 58. No longer used. * @param errType In the event of an error in the input, indicates * which of the input files contains the error. * The value is one of USPOOF_SINGLE_SCRIPT_CONFUSABLE or @@ -435,8 +701,33 @@ uspoof_clone(const USpoofChecker *sc, UErrorCode *status); /** - * Specify the set of checks that will be performed by the check - * functions of this Spoof Checker. + * Specify the bitmask of checks that will be performed by {@link uspoof_check}. Calling this method + * overwrites any checks that may have already been enabled. By default, all checks are enabled. + * + * To enable specific checks and disable all others, the "whitelisted" checks should be ORed together. For + * example, to fail strings containing characters outside of the set specified by {@link uspoof_setAllowedChars} and + * also strings that contain digits from mixed numbering systems: + * + *
+ * {@code
+ * uspoof_setChecks(USPOOF_CHAR_LIMIT | USPOOF_MIXED_NUMBERS);
+ * }
+ * 
+ * + * To disable specific checks and enable all others, the "blacklisted" checks should be ANDed away from + * ALL_CHECKS. For example, if you are not planning to use the {@link uspoof_areConfusable} functionality, + * it is good practice to disable the CONFUSABLE check: + * + *
+ * {@code
+ * uspoof_setChecks(USPOOF_ALL_CHECKS & ~USPOOF_CONFUSABLE);
+ * }
+ * 
+ * + * Note that methods such as {@link uspoof_setAllowedChars}, {@link uspoof_setAllowedLocales}, and + * {@link uspoof_setRestrictionLevel} will enable certain checks when called. Those methods will OR the check they + * enable onto the existing bitmask specified by this method. For more details, see the documentation of those + * methods. * * @param sc The USpoofChecker * @param checks The set of checks that this spoof checker will perform. @@ -464,19 +755,22 @@ U_STABLE int32_t U_EXPORT2 uspoof_getChecks(const USpoofChecker *sc, UErrorCode *status); /** - * Set the loosest restriction level allowed. The default if this function - * is not called is HIGHLY_RESTRICTIVE. - * Calling this function also enables the RESTRICTION_LEVEL check. - * @param restrictionLevel The loosest restriction level allowed. - * @see URestrictionLevel - * @stable ICU 51 - */ + * Set the loosest restriction level allowed for strings. The default if this is not called is + * {@link USPOOF_HIGHLY_RESTRICTIVE}. Calling this method enables the {@link USPOOF_RESTRICTION_LEVEL} and + * {@link USPOOF_MIXED_NUMBERS} checks, corresponding to Sections 5.1 and 5.2 of UTS 39. To customize which checks are + * to be performed by {@link uspoof_check}, see {@link uspoof_setChecks}. + * + * @param sc The USpoofChecker + * @param restrictionLevel The loosest restriction level allowed. + * @see URestrictionLevel + * @stable ICU 51 + */ U_STABLE void U_EXPORT2 uspoof_setRestrictionLevel(USpoofChecker *sc, URestrictionLevel restrictionLevel); /** - * Get the Restriction Level that will be tested if the checks include RESTRICTION_LEVEL. + * Get the Restriction Level that will be tested if the checks include {@link USPOOF_RESTRICTION_LEVEL}. * * @return The restriction level * @see URestrictionLevel @@ -499,7 +793,7 @@ uspoof_getRestrictionLevel(const USpoofChecker *sc); * Supplying an empty string removes all restrictions; * characters from any script will be allowed. * - * The USPOOF_CHAR_LIMIT test is automatically enabled for this + * The {@link USPOOF_CHAR_LIMIT} test is automatically enabled for this * USpoofChecker when calling this function with a non-empty list * of locales. * @@ -511,7 +805,7 @@ uspoof_getRestrictionLevel(const USpoofChecker *sc); * can be made to the result of uspoof_setAllowedLocales() by * fetching the resulting set with uspoof_getAllowedChars(), * manipulating it with the Unicode Set API, then resetting the - * spoof detectors limits with uspoof_setAllowedChars() + * spoof detectors limits with uspoof_setAllowedChars(). * * @param sc The USpoofChecker * @param localesList A list list of locales, from which the language @@ -654,16 +948,21 @@ uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status); * The text to be checked will typically be an identifier of some sort. * The set of checks to be performed is specified with uspoof_setChecks(). * + * \note + * Consider using the newer API, {@link uspoof_check2}, instead. + * The newer API exposes additional information from the check procedure + * and is otherwise identical to this method. + * * @param sc The USpoofChecker * @param id The identifier to be checked for possible security issues, * in UTF-16 format. * @param length the length of the string to be checked, expressed in * 16 bit UTF-16 code units, or -1 if the string is * zero terminated. - * @param position An out parameter. - * Originally, the index of the first string position that failed a check. - * Now, always returns zero. - * This parameter may be null. + * @param position Deprecated in ICU 51. Always returns zero. + * Originally, an out parameter for the index of the first + * string position that failed a check. + * This parameter may be NULL. * @param status The error code, set if an error occurred while attempting to * perform the check. * Spoofing or security issues detected with the input string are @@ -673,6 +972,7 @@ uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status); * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) * will be zero if the input string passes all of the * enabled checks. + * @see uspoof_check2 * @stable ICU 4.2 */ U_STABLE int32_t U_EXPORT2 @@ -687,15 +987,19 @@ uspoof_check(const USpoofChecker *sc, * The text to be checked will typically be an identifier of some sort. * The set of checks to be performed is specified with uspoof_setChecks(). * + * \note + * Consider using the newer API, {@link uspoof_check2UTF8}, instead. + * The newer API exposes additional information from the check procedure + * and is otherwise identical to this method. + * * @param sc The USpoofChecker * @param id A identifier to be checked for possible security issues, in UTF8 format. * @param length the length of the string to be checked, or -1 if the string is * zero terminated. - * @param position An out parameter. - * Originally, the index of the first string position that failed a check. - * Now, always returns zero. - * This parameter may be null. - * @deprecated ICU 51 + * @param position Deprecated in ICU 51. Always returns zero. + * Originally, an out parameter for the index of the first + * string position that failed a check. + * This parameter may be NULL. * @param status The error code, set if an error occurred while attempting to * perform the check. * Spoofing or security issues detected with the input string are @@ -707,6 +1011,7 @@ uspoof_check(const USpoofChecker *sc, * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) * will be zero if the input string passes all of the * enabled checks. + * @see uspoof_check2UTF8 * @stable ICU 4.2 */ U_STABLE int32_t U_EXPORT2 @@ -722,13 +1027,17 @@ uspoof_checkUTF8(const USpoofChecker *sc, * The text to be checked will typically be an identifier of some sort. * The set of checks to be performed is specified with uspoof_setChecks(). * + * \note + * Consider using the newer API, {@link uspoof_check2UnicodeString}, instead. + * The newer API exposes additional information from the check procedure + * and is otherwise identical to this method. + * * @param sc The USpoofChecker * @param id A identifier to be checked for possible security issues. - * @param position An out parameter. - * Originally, the index of the first string position that failed a check. - * Now, always returns zero. - * This parameter may be null. - * @deprecated ICU 51 + * @param position Deprecated in ICU 51. Always returns zero. + * Originally, an out parameter for the index of the first + * string position that failed a check. + * This parameter may be NULL. * @param status The error code, set if an error occurred while attempting to * perform the check. * Spoofing or security issues detected with the input string are @@ -738,6 +1047,7 @@ uspoof_checkUTF8(const USpoofChecker *sc, * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) * will be zero if the input string passes all of the * enabled checks. + * @see uspoof_check2UnicodeString * @stable ICU 4.2 */ U_STABLE int32_t U_EXPORT2 @@ -745,26 +1055,229 @@ uspoof_checkUnicodeString(const USpoofChecker *sc, const icu::UnicodeString &id, int32_t *position, UErrorCode *status); +#endif + + +#ifndef U_HIDE_DRAFT_API +/** + * Check the specified string for possible security issues. + * The text to be checked will typically be an identifier of some sort. + * The set of checks to be performed is specified with uspoof_setChecks(). + * + * @param sc The USpoofChecker + * @param id The identifier to be checked for possible security issues, + * in UTF-16 format. + * @param length the length of the string to be checked, or -1 if the string is + * zero terminated. + * @param checkResult An instance of USpoofCheckResult to be filled with + * details about the identifier. Can be NULL. + * @param status The error code, set if an error occurred while attempting to + * perform the check. + * Spoofing or security issues detected with the input string are + * not reported here, but through the function's return value. + * @return An integer value with bits set for any potential security + * or spoofing issues detected. The bits are defined by + * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) + * will be zero if the input string passes all of the + * enabled checks. Any information in this bitmask will be + * consistent with the information saved in the optional + * checkResult parameter. + * @see uspoof_openCheckResult + * @see uspoof_check2UTF8 + * @see uspoof_check2UnicodeString + * @draft ICU 58 + */ +U_DRAFT int32_t U_EXPORT2 +uspoof_check2(const USpoofChecker *sc, + const UChar* id, int32_t length, + USpoofCheckResult* checkResult, + UErrorCode *status); + +/** + * Check the specified string for possible security issues. + * The text to be checked will typically be an identifier of some sort. + * The set of checks to be performed is specified with uspoof_setChecks(). + * + * This version of {@link uspoof_check} accepts a USpoofCheckResult, which + * returns additional information about the identifier. For more + * information, see {@link uspoof_openCheckResult}. + * + * @param sc The USpoofChecker + * @param id A identifier to be checked for possible security issues, in UTF8 format. + * @param length the length of the string to be checked, or -1 if the string is + * zero terminated. + * @param checkResult An instance of USpoofCheckResult to be filled with + * details about the identifier. Can be NULL. + * @param status The error code, set if an error occurred while attempting to + * perform the check. + * Spoofing or security issues detected with the input string are + * not reported here, but through the function's return value. + * @return An integer value with bits set for any potential security + * or spoofing issues detected. The bits are defined by + * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) + * will be zero if the input string passes all of the + * enabled checks. Any information in this bitmask will be + * consistent with the information saved in the optional + * checkResult parameter. + * @see uspoof_openCheckResult + * @see uspoof_check2 + * @see uspoof_check2UnicodeString + * @draft ICU 58 + */ +U_DRAFT int32_t U_EXPORT2 +uspoof_check2UTF8(const USpoofChecker *sc, + const char *id, int32_t length, + USpoofCheckResult* checkResult, + UErrorCode *status); + +#if U_SHOW_CPLUSPLUS_API +/** + * Check the specified string for possible security issues. + * The text to be checked will typically be an identifier of some sort. + * The set of checks to be performed is specified with uspoof_setChecks(). + * + * @param sc The USpoofChecker + * @param id A identifier to be checked for possible security issues. + * @param checkResult An instance of USpoofCheckResult to be filled with + * details about the identifier. Can be NULL. + * @param status The error code, set if an error occurred while attempting to + * perform the check. + * Spoofing or security issues detected with the input string are + * not reported here, but through the function's return value. + * @return An integer value with bits set for any potential security + * or spoofing issues detected. The bits are defined by + * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) + * will be zero if the input string passes all of the + * enabled checks. Any information in this bitmask will be + * consistent with the information saved in the optional + * checkResult parameter. + * @see uspoof_openCheckResult + * @see uspoof_check2 + * @see uspoof_check2UTF8 + * @draft ICU 58 + */ +U_DRAFT int32_t U_EXPORT2 +uspoof_check2UnicodeString(const USpoofChecker *sc, + const icu::UnicodeString &id, + USpoofCheckResult* checkResult, + UErrorCode *status); +#endif + +/** + * Create a USpoofCheckResult, used by the {@link uspoof_check2} class of functions to return + * information about the identifier. Information includes: + *
    + *
  • A bitmask of the checks that failed
  • + *
  • The identifier's restriction level (UTS 39 section 5.2)
  • + *
  • The set of numerics in the string (UTS 39 section 5.3)
  • + *
+ * The data held in a USpoofCheckResult is cleared whenever it is passed into a new call + * of {@link uspoof_check2}. + * + * @param status The error code, set if this function encounters a problem. + * @return the newly created USpoofCheckResult + * @see uspoof_check2 + * @see uspoof_check2UTF8 + * @see uspoof_check2UnicodeString + * @draft ICU 58 + */ +U_DRAFT USpoofCheckResult* U_EXPORT2 +uspoof_openCheckResult(UErrorCode *status); + +/** + * Close a USpoofCheckResult, freeing any memory that was being held by + * its implementation. + * + * @param checkResult The instance of USpoofCheckResult to close + * @draft ICU 58 + */ +U_DRAFT void U_EXPORT2 +uspoof_closeCheckResult(USpoofCheckResult *checkResult); + +#if U_SHOW_CPLUSPLUS_API + +U_NAMESPACE_BEGIN + +/** + * \class LocalUSpoofCheckResultPointer + * "Smart pointer" class, closes a USpoofCheckResult via {@link uspoof_closeCheckResult}. + * For most methods see the LocalPointerBase base class. + * + * @see LocalPointerBase + * @see LocalPointer + * @draft ICU 58 + */ +U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult); + +U_NAMESPACE_END #endif +/** + * Indicates which of the spoof check(s) have failed. The value is a bitwise OR of the constants for the tests + * in question: USPOOF_RESTRICTION_LEVEL, USPOOF_CHAR_LIMIT, and so on. + * + * @param checkResult The instance of USpoofCheckResult created by {@link uspoof_openCheckResult} + * @param status The error code, set if an error occurred. + * @return An integer value with bits set for any potential security + * or spoofing issues detected. The bits are defined by + * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS) + * will be zero if the input string passes all of the + * enabled checks. + * @see uspoof_setChecks + * @draft ICU 58 + */ +U_DRAFT int32_t U_EXPORT2 +uspoof_getCheckResultChecks(const USpoofCheckResult *checkResult, UErrorCode *status); + +/** + * Gets the restriction level that the text meets, if the USPOOF_RESTRICTION_LEVEL check + * was enabled; otherwise, undefined. + * + * @param checkResult The instance of USpoofCheckResult created by {@link uspoof_openCheckResult} + * @param status The error code, set if an error occurred. + * @return The restriction level contained in the USpoofCheckResult + * @see uspoof_setRestrictionLevel + * @draft ICU 58 + */ +U_DRAFT URestrictionLevel U_EXPORT2 +uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult *checkResult, UErrorCode *status); + +/** + * Gets the set of numerics found in the string, if the USPOOF_MIXED_NUMBERS check was enabled; + * otherwise, undefined. The set will contain the zero digit from each decimal number system found + * in the input string. Ownership of the returned USet remains with the USpoofCheckResult. + * The USet will be free'd when {@link uspoof_closeCheckResult} is called. + * + * @param checkResult The instance of USpoofCheckResult created by {@link uspoof_openCheckResult} + * @return The set of numerics contained in the USpoofCheckResult + * @param status The error code, set if an error occurred. + * @draft ICU 58 + */ +U_DRAFT const USet* U_EXPORT2 +uspoof_getCheckResultNumerics(const USpoofCheckResult *checkResult, UErrorCode *status); +#endif /* U_HIDE_DRAFT_API */ + /** * Check the whether two specified strings are visually confusable. - * The types of confusability to be tested - single script, mixed script, - * or whole script - are determined by the check options set for the - * USpoofChecker. * - * The tests to be performed are controlled by the flags - * USPOOF_SINGLE_SCRIPT_CONFUSABLE - * USPOOF_MIXED_SCRIPT_CONFUSABLE - * USPOOF_WHOLE_SCRIPT_CONFUSABLE - * At least one of these tests must be selected. + * If the strings are confusable, the return value will be nonzero, as long as + * {@link USPOOF_CONFUSABLE} was enabled in uspoof_setChecks(). + * + * The bits in the return value correspond to flags for each of the classes of + * confusables applicable to the two input strings. According to UTS 39 + * section 4, the possible flags are: + * + *
    + *
  • {@link USPOOF_SINGLE_SCRIPT_CONFUSABLE}
  • + *
  • {@link USPOOF_MIXED_SCRIPT_CONFUSABLE}
  • + *
  • {@link USPOOF_WHOLE_SCRIPT_CONFUSABLE}
  • + *
* - * USPOOF_ANY_CASE is a modifier for the tests. Select it if the identifiers - * may be of mixed case. - * If identifiers are case folded for comparison and - * display to the user, do not select the USPOOF_ANY_CASE option. + * If one or more of the above flags were not listed in uspoof_setChecks(), this + * function will never report that class of confusable. The check + * {@link USPOOF_CONFUSABLE} enables all three flags. * * * @param sc The USpoofChecker @@ -786,6 +1299,7 @@ uspoof_checkUnicodeString(const USpoofChecker *sc, * the type of confusability found, as defined by * enum USpoofChecks. Zero is returned if the identifiers * are not confusable. + * * @stable ICU 4.2 */ U_STABLE int32_t U_EXPORT2 @@ -797,10 +1311,7 @@ uspoof_areConfusable(const USpoofChecker *sc, /** - * Check the whether two specified strings are visually confusable. - * The types of confusability to be tested - single script, mixed script, - * or whole script - are determined by the check options set for the - * USpoofChecker. + * A version of {@link uspoof_areConfusable} accepting strings in UTF-8 format. * * @param sc The USpoofChecker * @param id1 The first of the two identifiers to be compared for @@ -819,7 +1330,10 @@ uspoof_areConfusable(const USpoofChecker *sc, * the type of confusability found, as defined by * enum USpoofChecks. Zero is returned if the strings * are not confusable. + * * @stable ICU 4.2 + * + * @see uspoof_areConfusable */ U_STABLE int32_t U_EXPORT2 uspoof_areConfusableUTF8(const USpoofChecker *sc, @@ -832,10 +1346,7 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc, #if U_SHOW_CPLUSPLUS_API /** - * Check the whether two specified strings are visually confusable. - * The types of confusability to be tested - single script, mixed script, - * or whole script - are determined by the check options set for the - * USpoofChecker. + * A version of {@link uspoof_areConfusable} accepting UnicodeStrings. * * @param sc The USpoofChecker * @param s1 The first of the two identifiers to be compared for @@ -850,7 +1361,10 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc, * the type of confusability found, as defined by * enum USpoofChecks. Zero is returned if the identifiers * are not confusable. + * * @stable ICU 4.2 + * + * @see uspoof_areConfusable */ U_STABLE int32_t U_EXPORT2 uspoof_areConfusableUnicodeString(const USpoofChecker *sc, @@ -861,37 +1375,36 @@ uspoof_areConfusableUnicodeString(const USpoofChecker *sc, /** - * Get the "skeleton" for an identifier. - * Skeletons are a transformation of the input identifier; - * Two identifiers are confusable if their skeletons are identical. - * See Unicode UAX #39 for additional information. - * - * Using skeletons directly makes it possible to quickly check - * whether an identifier is confusable with any of some large - * set of existing identifiers, by creating an efficiently - * searchable collection of the skeletons. - * - * @param sc The USpoofChecker - * @param type The type of skeleton, corresponding to which - * of the Unicode confusable data tables to use. - * The default is Mixed-Script, Lowercase. - * Allowed options are USPOOF_SINGLE_SCRIPT_CONFUSABLE and - * USPOOF_ANY_CASE. The two flags may be ORed. - * @param id The input identifier whose skeleton will be computed. - * @param length The length of the input identifier, expressed in 16 bit - * UTF-16 code units, or -1 if the string is zero terminated. - * @param dest The output buffer, to receive the skeleton string. - * @param destCapacity The length of the output buffer, in 16 bit units. - * The destCapacity may be zero, in which case the function will - * return the actual length of the skeleton. - * @param status The error code, set if an error occurred while attempting to - * perform the check. - * @return The length of the skeleton string. The returned length - * is always that of the complete skeleton, even when the - * supplied buffer is too small (or of zero length) - * - * @stable ICU 4.2 - */ + * Get the "skeleton" for an identifier. + * Skeletons are a transformation of the input identifier; + * Two identifiers are confusable if their skeletons are identical. + * See Unicode UAX #39 for additional information. + * + * Using skeletons directly makes it possible to quickly check + * whether an identifier is confusable with any of some large + * set of existing identifiers, by creating an efficiently + * searchable collection of the skeletons. + * + * @param sc The USpoofChecker + * @param type Deprecated in ICU 58. You may pass any number. + * Originally, controlled which of the Unicode confusable data + * tables to use. + * @param id The input identifier whose skeleton will be computed. + * @param length The length of the input identifier, expressed in 16 bit + * UTF-16 code units, or -1 if the string is zero terminated. + * @param dest The output buffer, to receive the skeleton string. + * @param destCapacity The length of the output buffer, in 16 bit units. + * The destCapacity may be zero, in which case the function will + * return the actual length of the skeleton. + * @param status The error code, set if an error occurred while attempting to + * perform the check. + * @return The length of the skeleton string. The returned length + * is always that of the complete skeleton, even when the + * supplied buffer is too small (or of zero length) + * + * @stable ICU 4.2 + * @see uspoof_areConfusable + */ U_STABLE int32_t U_EXPORT2 uspoof_getSkeleton(const USpoofChecker *sc, uint32_t type, @@ -900,40 +1413,38 @@ uspoof_getSkeleton(const USpoofChecker *sc, UErrorCode *status); /** - * Get the "skeleton" for an identifier. - * Skeletons are a transformation of the input identifier; - * Two identifiers are confusable if their skeletons are identical. - * See Unicode UAX #39 for additional information. - * - * Using skeletons directly makes it possible to quickly check - * whether an identifier is confusable with any of some large - * set of existing identifiers, by creating an efficiently - * searchable collection of the skeletons. - * - * @param sc The USpoofChecker - * @param type The type of skeleton, corresponding to which - * of the Unicode confusable data tables to use. - * The default is Mixed-Script, Lowercase. - * Allowed options are USPOOF_SINGLE_SCRIPT_CONFUSABLE and - * USPOOF_ANY_CASE. The two flags may be ORed. - * @param id The UTF-8 format identifier whose skeleton will be computed. - * @param length The length of the input string, in bytes, - * or -1 if the string is zero terminated. - * @param dest The output buffer, to receive the skeleton string. - * @param destCapacity The length of the output buffer, in bytes. - * The destCapacity may be zero, in which case the function will - * return the actual length of the skeleton. - * @param status The error code, set if an error occurred while attempting to - * perform the check. Possible Errors include U_INVALID_CHAR_FOUND - * for invalid UTF-8 sequences, and - * U_BUFFER_OVERFLOW_ERROR if the destination buffer is too small - * to hold the complete skeleton. - * @return The length of the skeleton string, in bytes. The returned length - * is always that of the complete skeleton, even when the - * supplied buffer is too small (or of zero length) - * - * @stable ICU 4.2 - */ + * Get the "skeleton" for an identifier. + * Skeletons are a transformation of the input identifier; + * Two identifiers are confusable if their skeletons are identical. + * See Unicode UAX #39 for additional information. + * + * Using skeletons directly makes it possible to quickly check + * whether an identifier is confusable with any of some large + * set of existing identifiers, by creating an efficiently + * searchable collection of the skeletons. + * + * @param sc The USpoofChecker + * @param type Deprecated in ICU 58. You may pass any number. + * Originally, controlled which of the Unicode confusable data + * tables to use. + * @param id The UTF-8 format identifier whose skeleton will be computed. + * @param length The length of the input string, in bytes, + * or -1 if the string is zero terminated. + * @param dest The output buffer, to receive the skeleton string. + * @param destCapacity The length of the output buffer, in bytes. + * The destCapacity may be zero, in which case the function will + * return the actual length of the skeleton. + * @param status The error code, set if an error occurred while attempting to + * perform the check. Possible Errors include U_INVALID_CHAR_FOUND + * for invalid UTF-8 sequences, and + * U_BUFFER_OVERFLOW_ERROR if the destination buffer is too small + * to hold the complete skeleton. + * @return The length of the skeleton string, in bytes. The returned length + * is always that of the complete skeleton, even when the + * supplied buffer is too small (or of zero length) + * + * @stable ICU 4.2 + */ U_STABLE int32_t U_EXPORT2 uspoof_getSkeletonUTF8(const USpoofChecker *sc, uint32_t type, @@ -943,30 +1454,28 @@ uspoof_getSkeletonUTF8(const USpoofChecker *sc, #if U_SHOW_CPLUSPLUS_API /** - * Get the "skeleton" for an identifier. - * Skeletons are a transformation of the input identifier; - * Two identifiers are confusable if their skeletons are identical. - * See Unicode UAX #39 for additional information. - * - * Using skeletons directly makes it possible to quickly check - * whether an identifier is confusable with any of some large - * set of existing identifiers, by creating an efficiently - * searchable collection of the skeletons. - * - * @param sc The USpoofChecker. - * @param type The type of skeleton, corresponding to which - * of the Unicode confusable data tables to use. - * The default is Mixed-Script, Lowercase. - * Allowed options are USPOOF_SINGLE_SCRIPT_CONFUSABLE and - * USPOOF_ANY_CASE. The two flags may be ORed. - * @param id The input identifier whose skeleton will be computed. - * @param dest The output identifier, to receive the skeleton string. - * @param status The error code, set if an error occurred while attempting to - * perform the check. - * @return A reference to the destination (skeleton) string. - * - * @stable ICU 4.2 - */ + * Get the "skeleton" for an identifier. + * Skeletons are a transformation of the input identifier; + * Two identifiers are confusable if their skeletons are identical. + * See Unicode UAX #39 for additional information. + * + * Using skeletons directly makes it possible to quickly check + * whether an identifier is confusable with any of some large + * set of existing identifiers, by creating an efficiently + * searchable collection of the skeletons. + * + * @param sc The USpoofChecker. + * @param type Deprecated in ICU 58. You may pass any number. + * Originally, controlled which of the Unicode confusable data + * tables to use. + * @param id The input identifier whose skeleton will be computed. + * @param dest The output identifier, to receive the skeleton string. + * @param status The error code, set if an error occurred while attempting to + * perform the check. + * @return A reference to the destination (skeleton) string. + * + * @stable ICU 4.2 + */ U_I18N_API icu::UnicodeString & U_EXPORT2 uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, uint32_t type, @@ -977,7 +1486,8 @@ uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, /** * Get the set of Candidate Characters for Inclusion in Identifiers, as defined - * in Unicode UAX #31, http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Inclusion_in_Identifiers + * in http://unicode.org/Public/security/latest/xidmodifications.txt + * and documented in http://www.unicode.org/reports/tr39/, Unicode Security Mechanisms. * * The returned set is frozen. Ownership of the set remains with the ICU library; it must not * be deleted by the caller. @@ -991,7 +1501,8 @@ uspoof_getInclusionSet(UErrorCode *status); /** * Get the set of characters from Recommended Scripts for Inclusion in Identifiers, as defined - * in Unicode UAX #31, http://www.unicode.org/reports/tr31/#Table_Recommended_Scripts + * in http://unicode.org/Public/security/latest/xidmodifications.txt + * and documented in http://www.unicode.org/reports/tr39/, Unicode Security Mechanisms. * * The returned set is frozen. Ownership of the set remains with the ICU library; it must not * be deleted by the caller. @@ -1007,7 +1518,8 @@ uspoof_getRecommendedSet(UErrorCode *status); /** * Get the set of Candidate Characters for Inclusion in Identifiers, as defined - * in Unicode UAX #31, http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Inclusion_in_Identifiers + * in http://unicode.org/Public/security/latest/xidmodifications.txt + * and documented in http://www.unicode.org/reports/tr39/, Unicode Security Mechanisms. * * The returned set is frozen. Ownership of the set remains with the ICU library; it must not * be deleted by the caller. @@ -1021,7 +1533,8 @@ uspoof_getInclusionUnicodeSet(UErrorCode *status); /** * Get the set of characters from Recommended Scripts for Inclusion in Identifiers, as defined - * in Unicode UAX #31, http://www.unicode.org/reports/tr31/#Table_Recommended_Scripts + * in http://unicode.org/Public/security/latest/xidmodifications.txt + * and documented in http://www.unicode.org/reports/tr39/, Unicode Security Mechanisms. * * The returned set is frozen. Ownership of the set remains with the ICU library; it must not * be deleted by the caller. diff --git a/deps/icu-small/source/i18n/unicode/utmscale.h b/deps/icu-small/source/i18n/unicode/utmscale.h index e22b1bc5e6ce99..6b4b389ac8ad24 100644 --- a/deps/icu-small/source/i18n/unicode/utmscale.h +++ b/deps/icu-small/source/i18n/unicode/utmscale.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2004 - 2008, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unicode/utrans.h b/deps/icu-small/source/i18n/unicode/utrans.h index 4ada5ef93c2082..661ee5d3850860 100644 --- a/deps/icu-small/source/i18n/unicode/utrans.h +++ b/deps/icu-small/source/i18n/unicode/utrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2011,2014-2015 International Business Machines diff --git a/deps/icu-small/source/i18n/unicode/vtzone.h b/deps/icu-small/source/i18n/unicode/vtzone.h index 22992b197f4c01..1682a3d526ccfb 100644 --- a/deps/icu-small/source/i18n/unicode/vtzone.h +++ b/deps/icu-small/source/i18n/unicode/vtzone.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/unum.cpp b/deps/icu-small/source/i18n/unum.cpp index 4b617df36fb759..0e224858db0a1d 100644 --- a/deps/icu-small/source/i18n/unum.cpp +++ b/deps/icu-small/source/i18n/unum.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1996-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/unumsys.cpp b/deps/icu-small/source/i18n/unumsys.cpp index aab769dd030f74..f643e342ebc762 100644 --- a/deps/icu-small/source/i18n/unumsys.cpp +++ b/deps/icu-small/source/i18n/unumsys.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2013, International Business Machines Corporation and others. diff --git a/deps/icu-small/source/i18n/upluralrules.cpp b/deps/icu-small/source/i18n/upluralrules.cpp index 1e92c8840f30a9..5e1eebf53d5dc2 100644 --- a/deps/icu-small/source/i18n/upluralrules.cpp +++ b/deps/icu-small/source/i18n/upluralrules.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2010-2012, International Business Machines diff --git a/deps/icu-small/source/i18n/uregex.cpp b/deps/icu-small/source/i18n/uregex.cpp index a6e6be26a7d5f8..03e2586c5f74f4 100644 --- a/deps/icu-small/source/i18n/uregex.cpp +++ b/deps/icu-small/source/i18n/uregex.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2004-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/uregexc.cpp b/deps/icu-small/source/i18n/uregexc.cpp index f430cdbf68bd2d..6d0dc2062c6037 100644 --- a/deps/icu-small/source/i18n/uregexc.cpp +++ b/deps/icu-small/source/i18n/uregexc.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2006, International Business Machines diff --git a/deps/icu-small/source/i18n/uregion.cpp b/deps/icu-small/source/i18n/uregion.cpp index 58bd9d0a0cca44..8e079ec593318c 100644 --- a/deps/icu-small/source/i18n/uregion.cpp +++ b/deps/icu-small/source/i18n/uregion.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ***************************************************************************************** * Copyright (C) 2013-2015, International Business Machines Corporation and others. diff --git a/deps/icu-small/source/i18n/usearch.cpp b/deps/icu-small/source/i18n/usearch.cpp index a2aad7c67495eb..5e1617eb3e8d8d 100644 --- a/deps/icu-small/source/i18n/usearch.cpp +++ b/deps/icu-small/source/i18n/usearch.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2015 IBM and others. All rights reserved. @@ -222,7 +224,7 @@ inline int32_t * addTouint32_tArray(int32_t *destination, if (U_FAILURE(*status)) { return NULL; } - uprv_memcpy(temp, destination, sizeof(int32_t) * offset); + uprv_memcpy(temp, destination, sizeof(int32_t) * (size_t)offset); *destinationlength = newlength; destination = temp; } @@ -264,7 +266,7 @@ inline int64_t * addTouint64_tArray(int64_t *destination, return NULL; } - uprv_memcpy(temp, destination, sizeof(int64_t) * offset); + uprv_memcpy(temp, destination, sizeof(int64_t) * (size_t)offset); *destinationlength = newlength; destination = temp; } @@ -1379,7 +1381,7 @@ inline UChar * addToUCharArray( UChar *destination, } } if (source1length != 0) { - uprv_memcpy(destination, source1, sizeof(UChar) * source1length); + u_memcpy(destination, source1, source1length); } if (source2length != 0) { uprv_memcpy(destination + source1length, source2, diff --git a/deps/icu-small/source/i18n/uspoof.cpp b/deps/icu-small/source/i18n/uspoof.cpp index 341fff6ecd086d..3be10862fccdd9 100644 --- a/deps/icu-small/source/i18n/uspoof.cpp +++ b/deps/icu-small/source/i18n/uspoof.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 2008-2015, International Business Machines Corporation @@ -20,7 +22,6 @@ #include "unicode/utf16.h" #include "cmemory.h" #include "cstring.h" -#include "identifier_info.h" #include "mutex.h" #include "scriptset.h" #include "uassert.h" @@ -40,9 +41,7 @@ U_NAMESPACE_USE static UnicodeSet *gInclusionSet = NULL; static UnicodeSet *gRecommendedSet = NULL; static const Normalizer2 *gNfdNormalizer = NULL; -static SpoofData *gDefaultSpoofData = NULL; static UInitOnce gSpoofInitStaticsOnce = U_INITONCE_INITIALIZER; -static UInitOnce gSpoofInitDefaultOnce = U_INITONCE_INITIALIZER; static UBool U_CALLCONV uspoof_cleanup(void) { @@ -51,83 +50,78 @@ uspoof_cleanup(void) { delete gRecommendedSet; gRecommendedSet = NULL; gNfdNormalizer = NULL; - if (gDefaultSpoofData) { - gDefaultSpoofData->removeReference(); // Will delete, assuming all user-level spoof checkers were closed. - } - gDefaultSpoofData = NULL; gSpoofInitStaticsOnce.reset(); - gSpoofInitDefaultOnce.reset(); return TRUE; } static void U_CALLCONV initializeStatics(UErrorCode &status) { static const char *inclusionPat = - "[\\u0027\\u002D-\\u002E\\u003A\\u00B7\\u0375\\u058A\\u05F3-\\u05F4" - "\\u06FD-\\u06FE\\u0F0B\\u200C-\\u200D\\u2010\\u2019\\u2027\\u30A0\\u30FB]"; + "['\\-.\\:\\u00B7\\u0375\\u058A\\u05F3\\u05F4\\u06FD\\u06FE\\u0F0B\\u200C\\u200D\\u2010\\u" + "2019\\u2027\\u30A0\\u30FB]"; gInclusionSet = new UnicodeSet(UnicodeString(inclusionPat, -1, US_INV), status); gInclusionSet->freeze(); - // Note: data from http://unicode.org/Public/security/latest/xidmodifications.txt version 8.0.0 - // There is no tooling to generate this from the .txt file, hand extracted with editor macros. - // Ultimately, data will be available as character properties, eliminating this. + // Note: data from http://unicode.org/Public/security/9.0.0/IdentifierStatus.txt + // There is tooling to generate this constant in the unicodetools project: + // org.unicode.text.tools.RecommendedSetGenerator + // It will print the Java and C++ code to the console for easy copy-paste into this file. // Note: concatenated string constants do not work with UNICODE_STRING_SIMPLE on all platforms. static const char *recommendedPat = - "[\\u0030-\\u0039\\u0041-\\u005A\\u005F\\u0061-\\u007A\\u00C0-\\u00D6\\u00D8-\\u00F6" - "\\u00F8-\\u0131\\u0134-\\u013E\\u0141-\\u0148\\u014A-\\u017E\\u018F\\u01A0-\\u01A1" - "\\u01AF-\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4-\\u01F5\\u01F8-\\u021B" - "\\u021E-\\u021F\\u0226-\\u0233\\u0259\\u02BB-\\u02BC\\u02EC\\u0300-\\u0304\\u0306-\\u030C" - "\\u030F-\\u0311\\u0313-\\u0314\\u031B\\u0323-\\u0328\\u032D-\\u032E\\u0330-\\u0331" - "\\u0335\\u0338-\\u0339\\u0342\\u0345\\u037B-\\u037D\\u0386\\u0388-\\u038A\\u038C" - "\\u038E-\\u03A1\\u03A3-\\u03CE\\u03FC-\\u045F\\u048A-\\u0529\\u052E-\\u052F\\u0531-\\u0556" - "\\u0559\\u0561-\\u0586\\u05B4\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u063F\\u0641-\\u0655" - "\\u0660-\\u0669\\u0670-\\u0672\\u0674\\u0679-\\u068D\\u068F-\\u06D3\\u06D5\\u06E5-\\u06E6" - "\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u08A0-\\u08AC\\u08B2\\u0901-\\u094D\\u094F-\\u0950" - "\\u0956-\\u0957\\u0960-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983" - "\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9" - "\\u09BC-\\u09C4\\u09C7-\\u09C8\\u09CB-\\u09CE\\u09D7\\u09E0-\\u09E3\\u09E6-\\u09F1" - "\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32" - "\\u0A35\\u0A38-\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47-\\u0A48\\u0A4B-\\u0A4D\\u0A5C" - "\\u0A66-\\u0A74\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0" - "\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0" - "\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28" - "\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B43\\u0B47-\\u0B48\\u0B4B-\\u0B4D" - "\\u0B56-\\u0B57\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71\\u0B82-\\u0B83\\u0B85-\\u0B8A" - "\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4" - "\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0" - "\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28" - "\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55-\\u0C56" - "\\u0C60-\\u0C61\\u0C66-\\u0C6F\\u0C82-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8" - "\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5-\\u0CD6" - "\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1-\\u0CF2\\u0D02-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10" - "\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D61" - "\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82-\\u0D83\\u0D85-\\u0D8E\\u0D91-\\u0D96\\u0D9A-\\u0DA5" - "\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6" - "\\u0DD8-\\u0DDE\\u0DF2\\u0E01-\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59" - "\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F" - "\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA-\\u0EAB\\u0EAD-\\u0EB2\\u0EB4-\\u0EB9\\u0EBB-\\u0EBD" - "\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE-\\u0EDF\\u0F00\\u0F20-\\u0F29" - "\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C\\u0F4E-\\u0F51\\u0F53-\\u0F56" - "\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C\\u0F71-\\u0F72\\u0F74\\u0F7A-\\u0F80" - "\\u0F82-\\u0F84\\u0F86-\\u0F92\\u0F94-\\u0F97\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6" - "\\u0FA8-\\u0FAB\\u0FAD-\\u0FB8\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D" - "\\u10C7\\u10CD\\u10D0-\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-\\u1248\\u124A-\\u124D" - "\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0" - "\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310" - "\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u1780-\\u17A2\\u17A5-\\u17A7" - "\\u17A9-\\u17B3\\u17B6-\\u17CA\\u17D2\\u17D7\\u17DC\\u17E0-\\u17E9\\u1E00-\\u1E99" - "\\u1E9E\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D" - "\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70\\u1F72\\u1F74\\u1F76\\u1F78" - "\\u1F7A\\u1F7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA\\u1FBC\\u1FC2-\\u1FC4\\u1FC6-\\u1FC8" - "\\u1FCA\\u1FCC\\u1FD0-\\u1FD2\\u1FD6-\\u1FDA\\u1FE0-\\u1FE2\\u1FE4-\\u1FEA\\u1FEC" - "\\u1FF2-\\u1FF4\\u1FF6-\\u1FF8\\u1FFA\\u1FFC\\u2D27\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6" - "\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6" - "\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3041-\\u3096\\u3099-\\u309A\\u309D-\\u309E\\u30A1-\\u30FA" - "\\u30FC-\\u30FE\\u3105-\\u312D\\u31A0-\\u31BA\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA660-\\uA661" - "\\uA674-\\uA67B\\uA67F\\uA69F\\uA717-\\uA71F\\uA788\\uA78D-\\uA78E\\uA790-\\uA793" - "\\uA7A0-\\uA7AA\\uA7FA\\uA9E7-\\uA9FE\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06" - "\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAC00-\\uD7A3\\uFA0E-\\uFA0F" - "\\uFA11\\uFA13-\\uFA14\\uFA1F\\uFA21\\uFA23-\\uFA24\\uFA27-\\uFA29\\U00020000-\\U0002A6D6" - "\\U0002A700-\\U0002B734\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1]"; + "[0-9A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u0131\\u0134-\\u013E\\u0141-\\u014" + "8\\u014A-\\u017E\\u018F\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E" + "6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0259\\u02BB\\u02B" + "C\\u02EC\\u0300-\\u0304\\u0306-\\u030C\\u030F-\\u0311\\u0313\\u0314\\u031B\\u0323-\\u03" + "28\\u032D\\u032E\\u0330\\u0331\\u0335\\u0338\\u0339\\u0342\\u0345\\u037B-\\u037D\\u0386" + "\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03CE\\u03FC-\\u045F\\u048A-\\u0529\\u05" + "2E\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0586\\u05B4\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0" + "620-\\u063F\\u0641-\\u0655\\u0660-\\u0669\\u0670-\\u0672\\u0674\\u0679-\\u068D\\u068F-" + "\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u08A0-\\u08AC\\u08B2" + "\\u08B6-\\u08BD\\u0901-\\u094D\\u094F\\u0950\\u0956\\u0957\\u0960-\\u0963\\u0966-\\u096" + "F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u0" + "9A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u" + "09D7\\u09E0-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-" + "\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A35\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\" + "u0A4B-\\u0A4D\\u0A5C\\u0A66-\\u0A74\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A9" + "3-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0" + "ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\" + "u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B43\\u0B47" + "\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83" + "\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3" + "\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0B" + "D0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u" + "0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56" + "\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92" + "-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0" + "CD5\\u0CD6\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0" + "D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57" + "\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D8E\\u0D91-\\u0D9" + "6\\u0D9A-\\u0DA5\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0" + "DD4\\u0DD6\\u0DD8-\\u0DDE\\u0DF2\\u0E01-\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\" + "u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u" + "0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB2\\u0EB4-\\u0EB9\\u0EBB-\\u0EBD\\" + "u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00\\u0F20-\\u0F29" + "\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C\\u0F4E-\\u0F51\\u0F53-\\u0F" + "56\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C\\u0F71\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0" + "F82-\\u0F84\\u0F86-\\u0F92\\u0F94-\\u0F97\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6" + "\\u0FA8-\\u0FAB\\u0FAD-\\u0FB8\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10" + "C7\\u10CD\\u10D0-\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-\\u1248\\u124A-\\u124D\\u" + "1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2" + "-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1" + "315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u1780-\\u17A2\\u17A5-\\u17A7\\u17A9-" + "\\u17B3\\u17B6-\\u17CA\\u17D2\\u17D7\\u17DC\\u17E0-\\u17E9\\u1C80-\\u1C88\\u1E00-\\u1E9" + "9\\u1E9E\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1" + "F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70\\u1F72\\u1F74\\u1F76\\u1F78\\u1F7A\\u1F" + "7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA\\u1FBC\\u1FC2-\\u1FC4\\u1FC6-\\u1FC8\\u1FCA\\u1FCC\\u1" + "FD0-\\u1FD2\\u1FD6-\\u1FDA\\u1FE0-\\u1FE2\\u1FE4-\\u1FEA\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-" + "\\u1FF8\\u1FFA\\u1FFC\\u2D27\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0" + "-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3" + "005-\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E\\u30A1-\\u30FA\\u30FC-\\u30FE\\u" + "3105-\\u312D\\u31A0-\\u31BA\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA660\\uA661\\uA674-\\uA67B" + "\\uA67F\\uA69F\\uA717-\\uA71F\\uA788\\uA78D\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7AE" + "\\uA7FA\\uA9E7-\\uA9FE\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB" + "11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAC00-\\uD7A3\\uFA0E\\uFA0F\\uFA11\\uFA13\\uF" + "A14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00020000-\\U0002A6D6\\U0002A700-\\U0" + "002B734\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1]"; gRecommendedSet = new UnicodeSet(UnicodeString(recommendedPat, -1, US_INV), status); gRecommendedSet->freeze(); @@ -135,11 +129,6 @@ static void U_CALLCONV initializeStatics(UErrorCode &status) { ucln_i18n_registerCleanup(UCLN_I18N_SPOOF, uspoof_cleanup); } -static void U_CALLCONV initializeDefaultData(UErrorCode &status) { - gDefaultSpoofData = SpoofData::getDefault(status); - ucln_i18n_registerCleanup(UCLN_I18N_SPOOF, uspoof_cleanup); -} - U_CFUNC void uspoof_internalInitStatics(UErrorCode *status) { umtx_initOnce(gSpoofInitStaticsOnce, &initializeStatics, *status); } @@ -147,14 +136,10 @@ U_CFUNC void uspoof_internalInitStatics(UErrorCode *status) { U_CAPI USpoofChecker * U_EXPORT2 uspoof_open(UErrorCode *status) { umtx_initOnce(gSpoofInitStaticsOnce, &initializeStatics, *status); - umtx_initOnce(gSpoofInitDefaultOnce, &initializeDefaultData, *status); if (U_FAILURE(*status)) { return NULL; } - SpoofImpl *si = new SpoofImpl(gDefaultSpoofData, *status); - if (si) { - gDefaultSpoofData->addReference(); - } + SpoofImpl *si = new SpoofImpl(*status); if (U_SUCCESS(*status) && si == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; } @@ -162,7 +147,7 @@ uspoof_open(UErrorCode *status) { delete si; si = NULL; } - return reinterpret_cast(si); + return si->asUSpoofChecker(); } @@ -188,9 +173,9 @@ uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLeng } if (pActualLength != NULL) { - *pActualLength = sd->fRawData->fLength; + *pActualLength = sd->size(); } - return reinterpret_cast(si); + return si->asUSpoofChecker(); } @@ -205,7 +190,7 @@ uspoof_clone(const USpoofChecker *sc, UErrorCode *status) { delete result; result = NULL; } - return reinterpret_cast(result); + return result->asUSpoofChecker(); } @@ -250,6 +235,7 @@ uspoof_setRestrictionLevel(USpoofChecker *sc, URestrictionLevel restrictionLevel SpoofImpl *This = SpoofImpl::validateThis(sc, status); if (This != NULL) { This->fRestrictionLevel = restrictionLevel; + This->fChecks |= USPOOF_RESTRICTION_LEVEL; } } @@ -333,6 +319,22 @@ uspoof_check(const USpoofChecker *sc, int32_t *position, UErrorCode *status) { + // Backwards compatibility: + if (position != NULL) { + *position = 0; + } + + // Delegate to uspoof_check2 + return uspoof_check2(sc, id, length, NULL, status); +} + + +U_CAPI int32_t U_EXPORT2 +uspoof_check2(const USpoofChecker *sc, + const UChar* id, int32_t length, + USpoofCheckResult* checkResult, + UErrorCode *status) { + const SpoofImpl *This = SpoofImpl::validateThis(sc, *status); if (This == NULL) { return 0; @@ -342,7 +344,7 @@ uspoof_check(const USpoofChecker *sc, return 0; } UnicodeString idStr((length == -1), id, length); // Aliasing constructor. - int32_t result = uspoof_checkUnicodeString(sc, idStr, position, status); + int32_t result = uspoof_check2UnicodeString(sc, idStr, checkResult, status); return result; } @@ -353,11 +355,27 @@ uspoof_checkUTF8(const USpoofChecker *sc, int32_t *position, UErrorCode *status) { + // Backwards compatibility: + if (position != NULL) { + *position = 0; + } + + // Delegate to uspoof_check2 + return uspoof_check2UTF8(sc, id, length, NULL, status); +} + + +U_CAPI int32_t U_EXPORT2 +uspoof_check2UTF8(const USpoofChecker *sc, + const char *id, int32_t length, + USpoofCheckResult* checkResult, + UErrorCode *status) { + if (U_FAILURE(*status)) { return 0; } UnicodeString idStr = UnicodeString::fromUTF8(StringPiece(id, length>=0 ? length : uprv_strlen(id))); - int32_t result = uspoof_checkUnicodeString(sc, idStr, position, status); + int32_t result = uspoof_check2UnicodeString(sc, idStr, checkResult, status); return result; } @@ -419,125 +437,95 @@ uspoof_areConfusableUnicodeString(const USpoofChecker *sc, // If no tests relavant to this function have been specified, return an error. // TODO: is this really the right thing to do? It's probably an error on the caller's part, // but logically we would just return 0 (no error). - if ((This->fChecks & (USPOOF_SINGLE_SCRIPT_CONFUSABLE | USPOOF_MIXED_SCRIPT_CONFUSABLE | - USPOOF_WHOLE_SCRIPT_CONFUSABLE)) == 0) { + if ((This->fChecks & USPOOF_CONFUSABLE) == 0) { *status = U_INVALID_STATE_ERROR; return 0; } - int32_t flagsForSkeleton = This->fChecks & USPOOF_ANY_CASE; - int32_t result = 0; - IdentifierInfo *identifierInfo = This->getIdentifierInfo(*status); - if (U_FAILURE(*status)) { + // Compute the skeletons and check for confusability. + UnicodeString id1Skeleton; + uspoof_getSkeletonUnicodeString(sc, 0 /* deprecated */, id1, id1Skeleton, status); + UnicodeString id2Skeleton; + uspoof_getSkeletonUnicodeString(sc, 0 /* deprecated */, id2, id2Skeleton, status); + if (U_FAILURE(*status)) { return 0; } + if (id1Skeleton != id2Skeleton) { return 0; } - identifierInfo->setIdentifier(id1, *status); - int32_t id1ScriptCount = identifierInfo->getScriptCount(); - int32_t id1FirstScript = identifierInfo->getScripts()->nextSetBit(0); - identifierInfo->setIdentifier(id2, *status); - int32_t id2ScriptCount = identifierInfo->getScriptCount(); - int32_t id2FirstScript = identifierInfo->getScripts()->nextSetBit(0); - This->releaseIdentifierInfo(identifierInfo); - identifierInfo = NULL; - - if (This->fChecks & USPOOF_SINGLE_SCRIPT_CONFUSABLE) { - UnicodeString id1Skeleton; - UnicodeString id2Skeleton; - if (id1ScriptCount <= 1 && id2ScriptCount <= 1 && id1FirstScript == id2FirstScript) { - flagsForSkeleton |= USPOOF_SINGLE_SCRIPT_CONFUSABLE; - uspoof_getSkeletonUnicodeString(sc, flagsForSkeleton, id1, id1Skeleton, status); - uspoof_getSkeletonUnicodeString(sc, flagsForSkeleton, id2, id2Skeleton, status); - if (id1Skeleton == id2Skeleton) { - result |= USPOOF_SINGLE_SCRIPT_CONFUSABLE; - } + + // If we get here, the strings are confusable. Now we just need to set the flags for the appropriate classes + // of confusables according to UTS 39 section 4. + // Start by computing the resolved script sets of id1 and id2. + ScriptSet id1RSS; + This->getResolvedScriptSet(id1, id1RSS, *status); + ScriptSet id2RSS; + This->getResolvedScriptSet(id2, id2RSS, *status); + + // Turn on all applicable flags + int32_t result = 0; + if (id1RSS.intersects(id2RSS)) { + result |= USPOOF_SINGLE_SCRIPT_CONFUSABLE; + } else { + result |= USPOOF_MIXED_SCRIPT_CONFUSABLE; + if (!id1RSS.isEmpty() && !id2RSS.isEmpty()) { + result |= USPOOF_WHOLE_SCRIPT_CONFUSABLE; } } - if (result & USPOOF_SINGLE_SCRIPT_CONFUSABLE) { - // If the two inputs are single script confusable they cannot also be - // mixed or whole script confusable, according to the UAX39 definitions. - // So we can skip those tests. - return result; + // Turn off flags that the user doesn't want + if ((This->fChecks & USPOOF_SINGLE_SCRIPT_CONFUSABLE) == 0) { + result &= ~USPOOF_SINGLE_SCRIPT_CONFUSABLE; } - - // Two identifiers are whole script confusable if each is of a single script - // and they are mixed script confusable. - UBool possiblyWholeScriptConfusables = - id1ScriptCount <= 1 && id2ScriptCount <= 1 && (This->fChecks & USPOOF_WHOLE_SCRIPT_CONFUSABLE); - - // - // Mixed Script Check - // - if ((This->fChecks & USPOOF_MIXED_SCRIPT_CONFUSABLE) || possiblyWholeScriptConfusables ) { - // For getSkeleton(), resetting the USPOOF_SINGLE_SCRIPT_CONFUSABLE flag will get us - // the mixed script table skeleton, which is what we want. - // The Any Case / Lower Case bit in the skelton flags was set at the top of the function. - UnicodeString id1Skeleton; - UnicodeString id2Skeleton; - flagsForSkeleton &= ~USPOOF_SINGLE_SCRIPT_CONFUSABLE; - uspoof_getSkeletonUnicodeString(sc, flagsForSkeleton, id1, id1Skeleton, status); - uspoof_getSkeletonUnicodeString(sc, flagsForSkeleton, id2, id2Skeleton, status); - if (id1Skeleton == id2Skeleton) { - result |= USPOOF_MIXED_SCRIPT_CONFUSABLE; - if (possiblyWholeScriptConfusables) { - result |= USPOOF_WHOLE_SCRIPT_CONFUSABLE; - } - } + if ((This->fChecks & USPOOF_MIXED_SCRIPT_CONFUSABLE) == 0) { + result &= ~USPOOF_MIXED_SCRIPT_CONFUSABLE; + } + if ((This->fChecks & USPOOF_WHOLE_SCRIPT_CONFUSABLE) == 0) { + result &= ~USPOOF_WHOLE_SCRIPT_CONFUSABLE; } return result; } - - U_CAPI int32_t U_EXPORT2 uspoof_checkUnicodeString(const USpoofChecker *sc, const icu::UnicodeString &id, int32_t *position, UErrorCode *status) { - const SpoofImpl *This = SpoofImpl::validateThis(sc, *status); - if (This == NULL) { - return 0; - } - int32_t result = 0; - IdentifierInfo *identifierInfo = NULL; - if ((This->fChecks) & (USPOOF_RESTRICTION_LEVEL | USPOOF_MIXED_NUMBERS)) { - identifierInfo = This->getIdentifierInfo(*status); - if (U_FAILURE(*status)) { - goto cleanupAndReturn; - } - identifierInfo->setIdentifier(id, *status); - identifierInfo->setIdentifierProfile(*This->fAllowedCharsSet); + // Backwards compatibility: + if (position != NULL) { + *position = 0; } + // Delegate to uspoof_check2 + return uspoof_check2UnicodeString(sc, id, NULL, status); +} + +int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) { + U_ASSERT(This != NULL); + U_ASSERT(checkResult != NULL); + checkResult->clear(); + int32_t result = 0; - if ((This->fChecks) & USPOOF_RESTRICTION_LEVEL) { - URestrictionLevel idRestrictionLevel = identifierInfo->getRestrictionLevel(*status); + if (0 != (This->fChecks & USPOOF_RESTRICTION_LEVEL)) { + URestrictionLevel idRestrictionLevel = This->getRestrictionLevel(id, *status); if (idRestrictionLevel > This->fRestrictionLevel) { result |= USPOOF_RESTRICTION_LEVEL; } - if (This->fChecks & USPOOF_AUX_INFO) { - result |= idRestrictionLevel; - } + checkResult->fRestrictionLevel = idRestrictionLevel; } - if ((This->fChecks) & USPOOF_MIXED_NUMBERS) { - const UnicodeSet *numerics = identifierInfo->getNumerics(); - if (numerics->size() > 1) { + if (0 != (This->fChecks & USPOOF_MIXED_NUMBERS)) { + UnicodeSet numerics; + This->getNumerics(id, numerics, *status); + if (numerics.size() > 1) { result |= USPOOF_MIXED_NUMBERS; } - - // TODO: ICU4J returns the UnicodeSet of the numerics found in the identifier. - // We have no easy way to do the same in C. - // if (checkResult != null) { - // checkResult.numerics = numerics; - // } + checkResult->fNumerics = numerics; // UnicodeSet::operator= } - if (This->fChecks & (USPOOF_CHAR_LIMIT)) { + if (0 != (This->fChecks & USPOOF_CHAR_LIMIT)) { int32_t i; UChar32 c; int32_t length = id.length(); @@ -551,103 +539,74 @@ uspoof_checkUnicodeString(const USpoofChecker *sc, } } - if (This->fChecks & - (USPOOF_WHOLE_SCRIPT_CONFUSABLE | USPOOF_MIXED_SCRIPT_CONFUSABLE | USPOOF_INVISIBLE)) { - // These are the checks that need to be done on NFD input + if (0 != (This->fChecks & USPOOF_INVISIBLE)) { + // This check needs to be done on NFD input UnicodeString nfdText; gNfdNormalizer->normalize(id, nfdText, *status); int32_t nfdLength = nfdText.length(); - if (This->fChecks & USPOOF_INVISIBLE) { - - // scan for more than one occurence of the same non-spacing mark - // in a sequence of non-spacing marks. - int32_t i; - UChar32 c; - UChar32 firstNonspacingMark = 0; - UBool haveMultipleMarks = FALSE; - UnicodeSet marksSeenSoFar; // Set of combining marks in a single combining sequence. - - for (i=0; ifChecks & (USPOOF_WHOLE_SCRIPT_CONFUSABLE | USPOOF_MIXED_SCRIPT_CONFUSABLE)) { - // The basic test is the same for both whole and mixed script confusables. - // Compute the set of scripts that every input character has a confusable in. - // For this computation an input character is always considered to be - // confusable with itself in its own script. - // - // If the number of such scripts is two or more, and the input consisted of - // characters all from a single script, we have a whole script confusable. - // (The two scripts will be the original script and the one that is confusable) - // - // If the number of such scripts >= one, and the original input contained characters from - // more than one script, we have a mixed script confusable. (We can transform - // some of the characters, and end up with a visually similar string all in - // one script.) - - if (identifierInfo == NULL) { - identifierInfo = This->getIdentifierInfo(*status); - if (U_FAILURE(*status)) { - goto cleanupAndReturn; + for (i=0; isetIdentifier(id, *status); + continue; } - - int32_t scriptCount = identifierInfo->getScriptCount(); - - ScriptSet scripts; - This->wholeScriptCheck(nfdText, &scripts, *status); - int32_t confusableScriptCount = scripts.countMembers(); - //printf("confusableScriptCount = %d\n", confusableScriptCount); - - if ((This->fChecks & USPOOF_WHOLE_SCRIPT_CONFUSABLE) && - confusableScriptCount >= 2 && - scriptCount == 1) { - result |= USPOOF_WHOLE_SCRIPT_CONFUSABLE; + if (firstNonspacingMark == 0) { + firstNonspacingMark = c; + continue; } - - if ((This->fChecks & USPOOF_MIXED_SCRIPT_CONFUSABLE) && - confusableScriptCount >= 1 && - scriptCount > 1) { - result |= USPOOF_MIXED_SCRIPT_CONFUSABLE; + if (!haveMultipleMarks) { + marksSeenSoFar.add(firstNonspacingMark); + haveMultipleMarks = TRUE; } + if (marksSeenSoFar.contains(c)) { + // report the error, and stop scanning. + // No need to find more than the first failure. + result |= USPOOF_INVISIBLE; + break; + } + marksSeenSoFar.add(c); } } -cleanupAndReturn: - This->releaseIdentifierInfo(identifierInfo); - if (position != NULL) { - *position = 0; + checkResult->fChecks = result; + return checkResult->toCombinedBitmask(This->fChecks); +} + +U_CAPI int32_t U_EXPORT2 +uspoof_check2UnicodeString(const USpoofChecker *sc, + const icu::UnicodeString &id, + USpoofCheckResult* checkResult, + UErrorCode *status) { + const SpoofImpl *This = SpoofImpl::validateThis(sc, *status); + if (This == NULL) { + return FALSE; + } + + if (checkResult != NULL) { + CheckResult* ThisCheckResult = CheckResult::validateThis(checkResult, *status); + if (ThisCheckResult == NULL) { + return FALSE; + } + return checkImpl(This, id, ThisCheckResult, status); + } else { + // Stack-allocate the checkResult since this method doesn't return it + CheckResult stackCheckResult; + return checkImpl(This, id, &stackCheckResult, status); } - return result; } @@ -678,7 +637,7 @@ uspoof_getSkeleton(const USpoofChecker *sc, U_I18N_API UnicodeString & U_EXPORT2 uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, - uint32_t type, + uint32_t /*type*/, const UnicodeString &id, UnicodeString &dest, UErrorCode *status) { @@ -687,21 +646,9 @@ uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, return dest; } - int32_t tableMask = 0; - switch (type) { - case 0: - tableMask = USPOOF_ML_TABLE_FLAG; - break; - case USPOOF_SINGLE_SCRIPT_CONFUSABLE: - tableMask = USPOOF_SL_TABLE_FLAG; - break; - case USPOOF_ANY_CASE: - tableMask = USPOOF_MA_TABLE_FLAG; - break; - case USPOOF_SINGLE_SCRIPT_CONFUSABLE | USPOOF_ANY_CASE: - tableMask = USPOOF_SA_TABLE_FLAG; - break; - default: + // Check that at least one of the CONFUSABLE flags is turned on. If not, + // return an error. + if ((This->fChecks & USPOOF_CONFUSABLE) == 0) { *status = U_ILLEGAL_ARGUMENT_ERROR; return dest; } @@ -717,7 +664,7 @@ uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, for (inputIndex=0; inputIndex < normalizedLen; ) { UChar32 c = nfdId.char32At(inputIndex); inputIndex += U16_LENGTH(c); - This->confusableLookup(c, tableMask, skelStr); + This->fSpoofData->confusableLookup(c, skelStr); } gNfdNormalizer->normalize(skelStr, dest, *status); @@ -761,13 +708,8 @@ uspoof_serialize(USpoofChecker *sc,void *buf, int32_t capacity, UErrorCode *stat U_ASSERT(U_FAILURE(*status)); return 0; } - int32_t dataSize = This->fSpoofData->fRawData->fLength; - if (capacity < dataSize) { - *status = U_BUFFER_OVERFLOW_ERROR; - return dataSize; - } - uprv_memcpy(buf, This->fSpoofData->fRawData, dataSize); - return dataSize; + + return This->fSpoofData->serialize(buf, capacity, *status); } U_CAPI const USet * U_EXPORT2 @@ -794,6 +736,48 @@ uspoof_getRecommendedUnicodeSet(UErrorCode *status) { return gRecommendedSet; } +//------------------ +// CheckResult APIs +//------------------ + +U_CAPI USpoofCheckResult* U_EXPORT2 +uspoof_openCheckResult(UErrorCode *status) { + CheckResult* checkResult = new CheckResult(); + if (checkResult == NULL) { + *status = U_MEMORY_ALLOCATION_ERROR; + return NULL; + } + return checkResult->asUSpoofCheckResult(); +} + +U_CAPI void U_EXPORT2 +uspoof_closeCheckResult(USpoofCheckResult* checkResult) { + UErrorCode status = U_ZERO_ERROR; + CheckResult* This = CheckResult::validateThis(checkResult, status); + delete This; +} + +U_CAPI int32_t U_EXPORT2 +uspoof_getCheckResultChecks(const USpoofCheckResult *checkResult, UErrorCode *status) { + const CheckResult* This = CheckResult::validateThis(checkResult, *status); + if (U_FAILURE(*status)) { return 0; } + return This->fChecks; +} + +U_CAPI URestrictionLevel U_EXPORT2 +uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult *checkResult, UErrorCode *status) { + const CheckResult* This = CheckResult::validateThis(checkResult, *status); + if (U_FAILURE(*status)) { return USPOOF_UNRESTRICTIVE; } + return This->fRestrictionLevel; +} + +U_CAPI const USet* U_EXPORT2 +uspoof_getCheckResultNumerics(const USpoofCheckResult *checkResult, UErrorCode *status) { + const CheckResult* This = CheckResult::validateThis(checkResult, *status); + if (U_FAILURE(*status)) { return NULL; } + return This->fNumerics.toUSet(); +} + #endif // !UCONFIG_NO_NORMALIZATION diff --git a/deps/icu-small/source/i18n/uspoof_build.cpp b/deps/icu-small/source/i18n/uspoof_build.cpp index 0a404faf76bef2..d676fe997741b3 100644 --- a/deps/icu-small/source/i18n/uspoof_build.cpp +++ b/deps/icu-small/source/i18n/uspoof_build.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 2008-2015, International Business Machines Corporation @@ -35,7 +37,6 @@ #include "uassert.h" #include "uarrsort.h" #include "uspoof_conf.h" -#include "uspoof_wsconf.h" #if !UCONFIG_NO_NORMALIZATION @@ -48,7 +49,7 @@ U_CFUNC void uspoof_internalInitStatics(UErrorCode *status); U_CAPI USpoofChecker * U_EXPORT2 uspoof_openFromSource(const char *confusables, int32_t confusablesLen, - const char *confusablesWholeScript, int32_t confusablesWholeScriptLen, + const char* /*confusablesWholeScript*/, int32_t /*confusablesWholeScriptLen*/, int32_t *errorType, UParseError *pe, UErrorCode *status) { uspoof_internalInitStatics(status); if (U_FAILURE(*status)) { @@ -74,7 +75,6 @@ uspoof_openFromSource(const char *confusables, int32_t confusablesLen, // Compile the binary data from the source (text) format. ConfusabledataBuilder::buildConfusableData(This, confusables, confusablesLen, errorType, pe, *status); - buildWSConfusableData(This, confusablesWholeScript, confusablesWholeScriptLen, pe, *status); if (U_FAILURE(*status)) { delete This; diff --git a/deps/icu-small/source/i18n/uspoof_conf.cpp b/deps/icu-small/source/i18n/uspoof_conf.cpp index aba8375e7c6bf8..6edd1fa3f3cd66 100644 --- a/deps/icu-small/source/i18n/uspoof_conf.cpp +++ b/deps/icu-small/source/i18n/uspoof_conf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -43,11 +45,13 @@ U_NAMESPACE_USE // // The binary structures are described in uspoof_impl.h // -// 1. parse the data, building 4 hash tables, one each for the SL, SA, ML and MA -// tables. Each maps from a UChar32 to a String. +// 1. Parse the data, making a hash table mapping from a UChar32 to a String. // // 2. Sort all of the strings encountered by length, since they will need to // be stored in that order in the final string table. +// TODO: Sorting these strings by length is no longer needed since the removal of +// the string lengths table. This logic can be removed to save processing time +// when building confusables data. // // 3. Build a list of keys (UChar32s) from the four mapping tables. Sort the // list because that will be the ordering of our runtime table. @@ -61,7 +65,7 @@ U_NAMESPACE_USE SPUString::SPUString(UnicodeString *s) { fStr = s; - fStrTableIndex = 0; + fCharOrStrTableIndex = 0; } @@ -143,15 +147,11 @@ SPUString *SPUStringPool::addString(UnicodeString *src, UErrorCode &status) { ConfusabledataBuilder::ConfusabledataBuilder(SpoofImpl *spImpl, UErrorCode &status) : fSpoofImpl(spImpl), fInput(NULL), - fSLTable(NULL), - fSATable(NULL), - fMLTable(NULL), - fMATable(NULL), + fTable(NULL), fKeySet(NULL), fKeyVec(NULL), fValueVec(NULL), fStringTable(NULL), - fStringLengthsTable(NULL), stringPool(NULL), fParseLine(NULL), fParseHexNum(NULL), @@ -160,10 +160,7 @@ ConfusabledataBuilder::ConfusabledataBuilder(SpoofImpl *spImpl, UErrorCode &stat if (U_FAILURE(status)) { return; } - fSLTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status); - fSATable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status); - fMLTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status); - fMATable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status); + fTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status); fKeySet = new UnicodeSet(); fKeyVec = new UVector(status); fValueVec = new UVector(status); @@ -175,14 +172,10 @@ ConfusabledataBuilder::~ConfusabledataBuilder() { uprv_free(fInput); uregex_close(fParseLine); uregex_close(fParseHexNum); - uhash_close(fSLTable); - uhash_close(fSATable); - uhash_close(fMLTable); - uhash_close(fMATable); + uhash_close(fTable); delete fKeySet; delete fKeyVec; delete fStringTable; - delete fStringLengthsTable; delete fValueVec; delete stringPool; } @@ -228,7 +221,7 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL // any line. What was matched is determined by examining which capture groups have a match. // Capture Group 1: the source char // Capture Group 2: the replacement chars - // Capture Group 3-6 the table type, SL, SA, ML, or MA + // Capture Group 3-6 the table type, SL, SA, ML, or MA (deprecated) // Capture Group 7: A blank or comment only line. // Capture Group 8: A syntactically invalid line. Anything that didn't match before. // Example Line from the confusables.txt source file: @@ -294,41 +287,12 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL // This a little like a Java intern() - any duplicates will be eliminated. SPUString *smapString = stringPool->addString(mapString, status); - // Add the UChar32 -> string mapping to the appropriate table. - UHashtable *table = uregex_start(fParseLine, 3, &status) >= 0 ? fSLTable : - uregex_start(fParseLine, 4, &status) >= 0 ? fSATable : - uregex_start(fParseLine, 5, &status) >= 0 ? fMLTable : - uregex_start(fParseLine, 6, &status) >= 0 ? fMATable : - NULL; - if (U_SUCCESS(status) && table == NULL) { - status = U_PARSE_ERROR; - } - if (U_FAILURE(status)) { - return; - } - + // Add the UChar32 -> string mapping to the table. // For Unicode 8, the SL, SA and ML tables have been discontinued. // All input data from confusables.txt is tagged MA. - // ICU spoof check functions should ignore the specified table and always - // use this MA Data. - // For now, implement by populating the MA data into all four tables, and - // keep the multiple table implementation in place, in case it comes back - // at some time in the future. - // There is no run time size penalty to keeping the four table implementation - - // the data is shared when it's the same betweeen tables. - if (table != fMATable) { - status = U_PARSE_ERROR; - return; - }; - // uhash_iput(table, keyChar, smapString, &status); - uhash_iput(fSLTable, keyChar, smapString, &status); - uhash_iput(fSATable, keyChar, smapString, &status); - uhash_iput(fMLTable, keyChar, smapString, &status); - uhash_iput(fMATable, keyChar, smapString, &status); + uhash_iput(fTable, keyChar, smapString, &status); + if (U_FAILURE(status)) { return; } fKeySet->add(keyChar); - if (U_FAILURE(status)) { - return; - } } // Input data is now all parsed and collected. @@ -341,43 +305,24 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL // Build up the string array, and record the index of each string therein // in the (build time only) string pool. // Strings of length one are not entered into the strings array. - // At the same time, build up the string lengths table, which records the - // position in the string table of the first string of each length >= 4. // (Strings in the table are sorted by length) stringPool->sort(status); fStringTable = new UnicodeString(); - fStringLengthsTable = new UVector(status); - int32_t previousStringLength = 0; - int32_t previousStringIndex = 0; int32_t poolSize = stringPool->size(); int32_t i; for (i=0; igetByIndex(i); int32_t strLen = s->fStr->length(); int32_t strIndex = fStringTable->length(); - U_ASSERT(strLen >= previousStringLength); if (strLen == 1) { // strings of length one do not get an entry in the string table. // Keep the single string character itself here, which is the same // convention that is used in the final run-time string table index. - s->fStrTableIndex = s->fStr->charAt(0); + s->fCharOrStrTableIndex = s->fStr->charAt(0); } else { - if ((strLen > previousStringLength) && (previousStringLength >= 4)) { - fStringLengthsTable->addElement(previousStringIndex, status); - fStringLengthsTable->addElement(previousStringLength, status); - } - s->fStrTableIndex = strIndex; + s->fCharOrStrTableIndex = strIndex; fStringTable->append(*(s->fStr)); } - previousStringLength = strLen; - previousStringIndex = strIndex; - } - // Make the final entry to the string lengths table. - // (it holds an entry for the _last_ string of each length, so adding the - // final one doesn't happen in the main loop because no longer string was encountered.) - if (previousStringLength >= 4) { - fStringLengthsTable->addElement(previousStringIndex, status); - fStringLengthsTable->addElement(previousStringLength, status); } // Construct the compile-time Key and Value tables @@ -396,10 +341,22 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL // code points requires a nested loop. for (UChar32 keyChar=fKeySet->getRangeStart(range); keyChar <= fKeySet->getRangeEnd(range); keyChar++) { - addKeyEntry(keyChar, fSLTable, USPOOF_SL_TABLE_FLAG, status); - addKeyEntry(keyChar, fSATable, USPOOF_SA_TABLE_FLAG, status); - addKeyEntry(keyChar, fMLTable, USPOOF_ML_TABLE_FLAG, status); - addKeyEntry(keyChar, fMATable, USPOOF_MA_TABLE_FLAG, status); + SPUString *targetMapping = static_cast(uhash_iget(fTable, keyChar)); + U_ASSERT(targetMapping != NULL); + + // Set an error code if trying to consume a long string. Otherwise, + // codePointAndLengthToKey will abort on a U_ASSERT. + if (targetMapping->fStr->length() > 256) { + status = U_ILLEGAL_ARGUMENT_ERROR; + return; + } + + int32_t key = ConfusableDataUtils::codePointAndLengthToKey(keyChar, + targetMapping->fStr->length()); + int32_t value = targetMapping->fCharOrStrTableIndex; + + fKeyVec->addElement(key, status); + fValueVec->addElement(value, status); } } @@ -435,14 +392,14 @@ void ConfusabledataBuilder::outputData(UErrorCode &status) { return; } int i; - int32_t previousKey = 0; + UChar32 previousCodePoint = 0; for (i=0; ielementAti(i); - (void)previousKey; // Suppress unused variable warning on gcc. - U_ASSERT((key & 0x00ffffff) >= (previousKey & 0x00ffffff)); - U_ASSERT((key & 0xff000000) != 0); + UChar32 codePoint = ConfusableDataUtils::keyToCodePoint(key); + // strictly greater because there can be only one entry per code point + U_ASSERT(codePoint > previousCodePoint); keys[i] = key; - previousKey = key; + previousCodePoint = codePoint; } SpoofDataHeader *rawData = fSpoofImpl->fSpoofData->fRawData; rawData->fCFUKeys = (int32_t)((char *)keys - (char *)rawData); @@ -484,143 +441,6 @@ void ConfusabledataBuilder::outputData(UErrorCode &status) { rawData->fCFUStringTable = (int32_t)((char *)strings - (char *)rawData); rawData->fCFUStringTableLen = stringsLength; fSpoofImpl->fSpoofData->fCFUStrings = strings; - - // The String Lengths Table - // While copying into the runtime array do some sanity checks on the values - // Each complete entry contains two fields, an index and an offset. - // Lengths should increase with each entry. - // Offsets should be less than the size of the string table. - int32_t lengthTableLength = fStringLengthsTable->size(); - uint16_t *stringLengths = - static_cast(fSpoofImpl->fSpoofData->reserveSpace(lengthTableLength*sizeof(uint16_t), status)); - if (U_FAILURE(status)) { - return; - } - int32_t destIndex = 0; - uint32_t previousLength = 0; - for (i=0; i(fStringLengthsTable->elementAti(i)); - uint32_t length = static_cast(fStringLengthsTable->elementAti(i+1)); - U_ASSERT(offset < stringsLength); - U_ASSERT(length < 40); - (void)previousLength; // Suppress unused variable warning on gcc. - U_ASSERT(length > previousLength); - stringLengths[destIndex++] = static_cast(offset); - stringLengths[destIndex++] = static_cast(length); - previousLength = length; - } - rawData = fSpoofImpl->fSpoofData->fRawData; - rawData->fCFUStringLengths = (int32_t)((char *)stringLengths - (char *)rawData); - // Note: StringLengthsSize in the raw data is the number of complete entries, - // each consisting of a pair of 16 bit values, hence the divide by 2. - rawData->fCFUStringLengthsSize = lengthTableLength / 2; - fSpoofImpl->fSpoofData->fCFUStringLengths = - reinterpret_cast(stringLengths); -} - - - -// addKeyEntry Construction of the confusable Key and Mapping Values tables. -// This is an intermediate point in the building process. -// We already have the mappings in the hash tables fSLTable, etc. -// This function builds corresponding run-time style table entries into -// fKeyVec and fValueVec - -void ConfusabledataBuilder::addKeyEntry( - UChar32 keyChar, // The key character - UHashtable *table, // The table, one of SATable, MATable, etc. - int32_t tableFlag, // One of USPOOF_SA_TABLE_FLAG, etc. - UErrorCode &status) { - - SPUString *targetMapping = static_cast(uhash_iget(table, keyChar)); - if (targetMapping == NULL) { - // No mapping for this key character. - // (This function is called for all four tables for each key char that - // is seen anywhere, so this no entry cases are very much expected.) - return; - } - - // Check whether there is already an entry with the correct mapping. - // If so, simply set the flag in the keyTable saying that the existing entry - // applies to the table that we're doing now. - - UBool keyHasMultipleValues = FALSE; - int32_t i; - for (i=fKeyVec->size()-1; i>=0 ; i--) { - int32_t key = fKeyVec->elementAti(i); - if ((key & 0x0ffffff) != keyChar) { - // We have now checked all existing key entries for this key char (if any) - // without finding one with the same mapping. - break; - } - UnicodeString mapping = getMapping(i); - if (mapping == *(targetMapping->fStr)) { - // The run time entry we are currently testing has the correct mapping. - // Set the flag in it indicating that it applies to the new table also. - key |= tableFlag; - fKeyVec->setElementAt(key, i); - return; - } - keyHasMultipleValues = TRUE; - } - - // Need to add a new entry to the binary data being built for this mapping. - // Includes adding entries to both the key table and the parallel values table. - - int32_t newKey = keyChar | tableFlag; - if (keyHasMultipleValues) { - newKey |= USPOOF_KEY_MULTIPLE_VALUES; - } - int32_t adjustedMappingLength = targetMapping->fStr->length() - 1; - if (adjustedMappingLength>3) { - adjustedMappingLength = 3; - } - newKey |= adjustedMappingLength << USPOOF_KEY_LENGTH_SHIFT; - - int32_t newData = targetMapping->fStrTableIndex; - - fKeyVec->addElement(newKey, status); - fValueVec->addElement(newData, status); - - // If the preceding key entry is for the same key character (but with a different mapping) - // set the multiple-values flag on it. - if (keyHasMultipleValues) { - int32_t previousKeyIndex = fKeyVec->size() - 2; - int32_t previousKey = fKeyVec->elementAti(previousKeyIndex); - previousKey |= USPOOF_KEY_MULTIPLE_VALUES; - fKeyVec->setElementAt(previousKey, previousKeyIndex); - } -} - - - -UnicodeString ConfusabledataBuilder::getMapping(int32_t index) { - int32_t key = fKeyVec->elementAti(index); - int32_t value = fValueVec->elementAti(index); - int32_t length = USPOOF_KEY_LENGTH_FIELD(key); - int32_t lastIndexWithLen; - switch (length) { - case 0: - return UnicodeString(static_cast(value)); - case 1: - case 2: - return UnicodeString(*fStringTable, value, length+1); - case 3: - length = 0; - int32_t i; - for (i=0; isize(); i+=2) { - lastIndexWithLen = fStringLengthsTable->elementAti(i); - if (value <= lastIndexWithLen) { - length = fStringLengthsTable->elementAti(i+1); - break; - } - } - U_ASSERT(length>=3); - return UnicodeString(*fStringTable, value, length); - default: - U_ASSERT(FALSE); - } - return UnicodeString(); } #endif diff --git a/deps/icu-small/source/i18n/uspoof_conf.h b/deps/icu-small/source/i18n/uspoof_conf.h index 2157142be6cd9e..72cd028104fdad 100644 --- a/deps/icu-small/source/i18n/uspoof_conf.h +++ b/deps/icu-small/source/i18n/uspoof_conf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -36,9 +38,9 @@ U_NAMESPACE_BEGIN struct SPUString : public UMemory { UnicodeString *fStr; // The actual string. - int32_t fStrTableIndex; // Index into the final runtime data for this string. - // (or, for length 1, the single string char itself, - // there being no string table entry for it.) + int32_t fCharOrStrTableIndex; // Index into the final runtime data for this + // string (or, for length 1, the single string char + // itself, there being no string table entry for it.) SPUString(UnicodeString *s); ~SPUString(); }; @@ -86,10 +88,7 @@ class ConfusabledataBuilder : public UMemory { private: SpoofImpl *fSpoofImpl; UChar *fInput; - UHashtable *fSLTable; - UHashtable *fSATable; - UHashtable *fMLTable; - UHashtable *fMATable; + UHashtable *fTable; UnicodeSet *fKeySet; // A set of all keys (UChar32s) that go into the four mapping tables. // The binary data is first assembled into the following four collections, then @@ -97,7 +96,6 @@ class ConfusabledataBuilder : public UMemory { UVector *fKeyVec; UVector *fValueVec; UnicodeString *fStringTable; - UVector *fStringLengthsTable; SPUStringPool *stringPool; URegularExpression *fParseLine; diff --git a/deps/icu-small/source/i18n/uspoof_impl.cpp b/deps/icu-small/source/i18n/uspoof_impl.cpp index 111a1489ffd55c..fba742c3ffc013 100644 --- a/deps/icu-small/source/i18n/uspoof_impl.cpp +++ b/deps/icu-small/source/i18n/uspoof_impl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2008-2016, International Business Machines @@ -13,11 +15,11 @@ #include "utrie2.h" #include "cmemory.h" #include "cstring.h" -#include "identifier_info.h" #include "scriptset.h" #include "umutex.h" #include "udataswp.h" #include "uassert.h" +#include "ucln_in.h" #include "uspoof_impl.h" #if !UCONFIG_NO_NORMALIZATION @@ -27,41 +29,53 @@ U_NAMESPACE_BEGIN UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SpoofImpl) -SpoofImpl::SpoofImpl(SpoofData *data, UErrorCode &status) : - fMagic(0), fChecks(USPOOF_ALL_CHECKS), fSpoofData(data), fAllowedCharsSet(NULL) , - fAllowedLocales(NULL), fCachedIdentifierInfo(NULL) { - if (U_FAILURE(status)) { - return; - } +SpoofImpl::SpoofImpl(SpoofData *data, UErrorCode& status) { + construct(status); + fSpoofData = data; +} + +SpoofImpl::SpoofImpl(UErrorCode& status) { + construct(status); + + // TODO: Call this method where it is actually needed, instead of in the + // constructor, to allow for lazy data loading. See #12696. + fSpoofData = SpoofData::getDefault(status); +} + +SpoofImpl::SpoofImpl() { + UErrorCode status = U_ZERO_ERROR; + construct(status); + + // TODO: Call this method where it is actually needed, instead of in the + // constructor, to allow for lazy data loading. See #12696. + fSpoofData = SpoofData::getDefault(status); +} + +void SpoofImpl::construct(UErrorCode& status) { + fMagic = USPOOF_MAGIC; + fChecks = USPOOF_ALL_CHECKS; + fSpoofData = NULL; + fAllowedCharsSet = NULL; + fAllowedLocales = NULL; fRestrictionLevel = USPOOF_HIGHLY_RESTRICTIVE; + if (U_FAILURE(status)) { return; } + UnicodeSet *allowedCharsSet = new UnicodeSet(0, 0x10ffff); - allowedCharsSet->freeze(); fAllowedCharsSet = allowedCharsSet; fAllowedLocales = uprv_strdup(""); if (fAllowedCharsSet == NULL || fAllowedLocales == NULL) { status = U_MEMORY_ALLOCATION_ERROR; return; } - fMagic = USPOOF_MAGIC; -} - - -SpoofImpl::SpoofImpl() : - fMagic(USPOOF_MAGIC), fChecks(USPOOF_ALL_CHECKS), fSpoofData(NULL), fAllowedCharsSet(NULL) , - fAllowedLocales(NULL), fCachedIdentifierInfo(NULL) { - UnicodeSet *allowedCharsSet = new UnicodeSet(0, 0x10ffff); allowedCharsSet->freeze(); - fAllowedCharsSet = allowedCharsSet; - fAllowedLocales = uprv_strdup(""); - fRestrictionLevel = USPOOF_HIGHLY_RESTRICTIVE; } // Copy Constructor, used by the user level clone() function. SpoofImpl::SpoofImpl(const SpoofImpl &src, UErrorCode &status) : fMagic(0), fChecks(USPOOF_ALL_CHECKS), fSpoofData(NULL), fAllowedCharsSet(NULL) , - fAllowedLocales(NULL), fCachedIdentifierInfo(NULL) { + fAllowedLocales(NULL) { if (U_FAILURE(status)) { return; } @@ -71,10 +85,10 @@ SpoofImpl::SpoofImpl(const SpoofImpl &src, UErrorCode &status) : fSpoofData = src.fSpoofData->addReference(); } fAllowedCharsSet = static_cast(src.fAllowedCharsSet->clone()); - if (fAllowedCharsSet == NULL) { + fAllowedLocales = uprv_strdup(src.fAllowedLocales); + if (fAllowedCharsSet == NULL || fAllowedLocales == NULL) { status = U_MEMORY_ALLOCATION_ERROR; } - fAllowedLocales = uprv_strdup(src.fAllowedLocales); fRestrictionLevel = src.fRestrictionLevel; } @@ -86,7 +100,11 @@ SpoofImpl::~SpoofImpl() { } delete fAllowedCharsSet; uprv_free((void *)fAllowedLocales); - delete fCachedIdentifierInfo; +} + +// Cast this instance as a USpoofChecker for the C API. +USpoofChecker *SpoofImpl::asUSpoofChecker() { + return reinterpret_cast(this); } // @@ -102,12 +120,11 @@ const SpoofImpl *SpoofImpl::validateThis(const USpoofChecker *sc, UErrorCode &st return NULL; } SpoofImpl *This = (SpoofImpl *)sc; - if (This->fMagic != USPOOF_MAGIC || - This->fSpoofData == NULL) { + if (This->fMagic != USPOOF_MAGIC) { status = U_INVALID_FORMAT_ERROR; return NULL; } - if (!SpoofData::validateDataVersion(This->fSpoofData->fRawData, status)) { + if (This->fSpoofData != NULL && !This->fSpoofData->validateDataVersion(status)) { return NULL; } return This; @@ -119,148 +136,6 @@ SpoofImpl *SpoofImpl::validateThis(USpoofChecker *sc, UErrorCode &status) { } - -//-------------------------------------------------------------------------------------- -// -// confusableLookup() This is the heart of the confusable skeleton generation -// implementation. -// -// Given a source character, produce the corresponding -// replacement character(s), appending them to the dest string. -// -//--------------------------------------------------------------------------------------- -int32_t SpoofImpl::confusableLookup(UChar32 inChar, int32_t tableMask, UnicodeString &dest) const { - - // Binary search the spoof data key table for the inChar - int32_t *low = fSpoofData->fCFUKeys; - int32_t *mid = NULL; - int32_t *limit = low + fSpoofData->fRawData->fCFUKeysSize; - UChar32 midc; - do { - int32_t delta = ((int32_t)(limit-low))/2; - mid = low + delta; - midc = *mid & 0x1fffff; - if (inChar == midc) { - goto foundChar; - } else if (inChar < midc) { - limit = mid; - } else { - low = mid; - } - } while (low < limit-1); - mid = low; - midc = *mid & 0x1fffff; - if (inChar != midc) { - // Char not found. It maps to itself. - int i = 0; - dest.append(inChar); - return i; - } - foundChar: - int32_t keyFlags = *mid & 0xff000000; - if ((keyFlags & tableMask) == 0) { - // We found the right key char, but the entry doesn't pertain to the - // table we need. See if there is an adjacent key that does - if (keyFlags & USPOOF_KEY_MULTIPLE_VALUES) { - int32_t *altMid; - for (altMid = mid-1; (*altMid&0x00ffffff) == inChar; altMid--) { - keyFlags = *altMid & 0xff000000; - if (keyFlags & tableMask) { - mid = altMid; - goto foundKey; - } - } - for (altMid = mid+1; (*altMid&0x00ffffff) == inChar; altMid++) { - keyFlags = *altMid & 0xff000000; - if (keyFlags & tableMask) { - mid = altMid; - goto foundKey; - } - } - } - // No key entry for this char & table. - // The input char maps to itself. - int i = 0; - dest.append(inChar); - return i; - } - - foundKey: - int32_t stringLen = USPOOF_KEY_LENGTH_FIELD(keyFlags) + 1; - int32_t keyTableIndex = (int32_t)(mid - fSpoofData->fCFUKeys); - - // Value is either a UChar (for strings of length 1) or - // an index into the string table (for longer strings) - uint16_t value = fSpoofData->fCFUValues[keyTableIndex]; - if (stringLen == 1) { - dest.append((UChar)value); - return 1; - } - - // String length of 4 from the above lookup is used for all strings of length >= 4. - // For these, get the real length from the string lengths table, - // which maps string table indexes to lengths. - // All strings of the same length are stored contiguously in the string table. - // 'value' from the lookup above is the starting index for the desired string. - - int32_t ix; - if (stringLen == 4) { - int32_t stringLengthsLimit = fSpoofData->fRawData->fCFUStringLengthsSize; - for (ix = 0; ix < stringLengthsLimit; ix++) { - if (fSpoofData->fCFUStringLengths[ix].fLastString >= value) { - stringLen = fSpoofData->fCFUStringLengths[ix].fStrLength; - break; - } - } - U_ASSERT(ix < stringLengthsLimit); - } - - U_ASSERT(value + stringLen <= fSpoofData->fRawData->fCFUStringTableLen); - UChar *src = &fSpoofData->fCFUStrings[value]; - dest.append(src, stringLen); - return stringLen; -} - - -//--------------------------------------------------------------------------------------- -// -// wholeScriptCheck() -// -// Input text is already normalized to NFD -// Return the set of scripts, each of which can represent something that is -// confusable with the input text. The script of the input text -// is included; input consisting of characters from a single script will -// always produce a result consisting of a set containing that script. -// -//--------------------------------------------------------------------------------------- -void SpoofImpl::wholeScriptCheck( - const UnicodeString &text, ScriptSet *result, UErrorCode &status) const { - - UTrie2 *table = - (fChecks & USPOOF_ANY_CASE) ? fSpoofData->fAnyCaseTrie : fSpoofData->fLowerCaseTrie; - result->setAll(); - int32_t length = text.length(); - for (int32_t inputIdx=0; inputIdx < length;) { - UChar32 c = text.char32At(inputIdx); - inputIdx += U16_LENGTH(c); - uint32_t index = utrie2_get32(table, c); - if (index == 0) { - // No confusables in another script for this char. - // TODO: we should change the data to have sets with just the single script - // bit for the script of this char. Gets rid of this special case. - // Until then, grab the script from the char and intersect it with the set. - UScriptCode cpScript = uscript_getScript(c, &status); - U_ASSERT(cpScript > USCRIPT_INHERITED); - result->intersect(cpScript, status); - } else if (index == 1) { - // Script == Common or Inherited. Nothing to do. - } else { - result->intersect(fSpoofData->fScriptSets[index]); - } - } -} - - void SpoofImpl::setAllowedLocales(const char *localesList, UErrorCode &status) { UnicodeSet allowedChars; UnicodeSet *tmpSet = NULL; @@ -372,6 +247,137 @@ void SpoofImpl::addScriptChars(const char *locale, UnicodeSet *allowedChars, UEr } } +// Computes the augmented script set for a code point, according to UTS 39 section 5.1. +void SpoofImpl::getAugmentedScriptSet(UChar32 codePoint, ScriptSet& result, UErrorCode& status) { + result.resetAll(); + result.setScriptExtensions(codePoint, status); + if (U_FAILURE(status)) { return; } + + // Section 5.1 step 1 + if (result.test(USCRIPT_HAN, status)) { + result.set(USCRIPT_HAN_WITH_BOPOMOFO, status); + result.set(USCRIPT_JAPANESE, status); + result.set(USCRIPT_KOREAN, status); + } + if (result.test(USCRIPT_HIRAGANA, status)) { + result.set(USCRIPT_JAPANESE, status); + } + if (result.test(USCRIPT_KATAKANA, status)) { + result.set(USCRIPT_JAPANESE, status); + } + if (result.test(USCRIPT_HANGUL, status)) { + result.set(USCRIPT_KOREAN, status); + } + if (result.test(USCRIPT_BOPOMOFO, status)) { + result.set(USCRIPT_HAN_WITH_BOPOMOFO, status); + } + + // Section 5.1 step 2 + if (result.test(USCRIPT_COMMON, status) || result.test(USCRIPT_INHERITED, status)) { + result.setAll(); + } +} + +// Computes the resolved script set for a string, according to UTS 39 section 5.1. +void SpoofImpl::getResolvedScriptSet(const UnicodeString& input, ScriptSet& result, UErrorCode& status) const { + getResolvedScriptSetWithout(input, USCRIPT_CODE_LIMIT, result, status); +} + +// Computes the resolved script set for a string, omitting characters having the specified script. +// If USCRIPT_CODE_LIMIT is passed as the second argument, all characters are included. +void SpoofImpl::getResolvedScriptSetWithout(const UnicodeString& input, UScriptCode script, ScriptSet& result, UErrorCode& status) const { + result.setAll(); + + ScriptSet temp; + UChar32 codePoint; + for (int32_t i = 0; i < input.length(); i += U16_LENGTH(codePoint)) { + codePoint = input.char32At(i); + + // Compute the augmented script set for the character + getAugmentedScriptSet(codePoint, temp, status); + if (U_FAILURE(status)) { return; } + + // Intersect the augmented script set with the resolved script set, but only if the character doesn't + // have the script specified in the function call + if (script == USCRIPT_CODE_LIMIT || !temp.test(script, status)) { + result.intersect(temp); + } + } +} + +// Computes the set of numerics for a string, according to UTS 39 section 5.3. +void SpoofImpl::getNumerics(const UnicodeString& input, UnicodeSet& result, UErrorCode& /*status*/) const { + result.clear(); + + UChar32 codePoint; + for (int32_t i = 0; i < input.length(); i += U16_LENGTH(codePoint)) { + codePoint = input.char32At(i); + + // Store a representative character for each kind of decimal digit + if (u_charType(codePoint) == U_DECIMAL_DIGIT_NUMBER) { + // Store the zero character as a representative for comparison. + // Unicode guarantees it is codePoint - value + result.add(codePoint - (UChar32)u_getNumericValue(codePoint)); + } + } +} + +// Computes the restriction level of a string, according to UTS 39 section 5.2. +URestrictionLevel SpoofImpl::getRestrictionLevel(const UnicodeString& input, UErrorCode& status) const { + // Section 5.2 step 1: + if (!fAllowedCharsSet->containsAll(input)) { + return USPOOF_UNRESTRICTIVE; + } + + // Section 5.2 step 2 + // Java use a static UnicodeSet for this test. In C++, avoid the static variable + // and just do a simple for loop. + UBool allASCII = TRUE; + for (int32_t i=0, length=input.length(); i 0x7f) { + allASCII = FALSE; + break; + } + } + if (allASCII) { + return USPOOF_ASCII; + } + + // Section 5.2 steps 3: + ScriptSet resolvedScriptSet; + getResolvedScriptSet(input, resolvedScriptSet, status); + if (U_FAILURE(status)) { return USPOOF_UNRESTRICTIVE; } + + // Section 5.2 step 4: + if (!resolvedScriptSet.isEmpty()) { + return USPOOF_SINGLE_SCRIPT_RESTRICTIVE; + } + + // Section 5.2 step 5: + ScriptSet resolvedNoLatn; + getResolvedScriptSetWithout(input, USCRIPT_LATIN, resolvedNoLatn, status); + if (U_FAILURE(status)) { return USPOOF_UNRESTRICTIVE; } + + // Section 5.2 step 6: + if (resolvedNoLatn.test(USCRIPT_HAN_WITH_BOPOMOFO, status) + || resolvedNoLatn.test(USCRIPT_JAPANESE, status) + || resolvedNoLatn.test(USCRIPT_KOREAN, status)) { + return USPOOF_HIGHLY_RESTRICTIVE; + } + + // Section 5.2 step 7: + if (!resolvedNoLatn.isEmpty() + && !resolvedNoLatn.test(USCRIPT_CYRILLIC, status) + && !resolvedNoLatn.test(USCRIPT_GREEK, status) + && !resolvedNoLatn.test(USCRIPT_CHEROKEE, status)) { + return USPOOF_MODERATELY_RESTRICTIVE; + } + + // Section 5.2 step 8: + return USPOOF_MINIMALLY_RESTRICTIVE; +} + + // Convert a text format hex number. Utility function used by builder code. Static. // Input: UChar *string text. Output: a UChar32 @@ -404,55 +410,60 @@ UChar32 SpoofImpl::ScanHex(const UChar *s, int32_t start, int32_t limit, UErrorC return (UChar32)val; } -// IdentifierInfo Cache. IdentifierInfo objects are somewhat expensive to create. -// Maintain a one-element cache, which is sufficient to avoid repeatedly -// creating new ones unless we get multi-thread concurrency in spoof -// check operations, which should be statistically uncommon. -// These functions are used in place of new & delete of an IdentifierInfo. -// They will recycle the IdentifierInfo when possible. -// They are logically const, and used within const functions that must be thread safe. -IdentifierInfo *SpoofImpl::getIdentifierInfo(UErrorCode &status) const { - IdentifierInfo *returnIdInfo = NULL; - if (U_FAILURE(status)) { - return returnIdInfo; - } - SpoofImpl *nonConstThis = const_cast(this); - { - Mutex m; - returnIdInfo = nonConstThis->fCachedIdentifierInfo; - nonConstThis->fCachedIdentifierInfo = NULL; - } - if (returnIdInfo == NULL) { - returnIdInfo = new IdentifierInfo(status); - if (U_SUCCESS(status) && returnIdInfo == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - } - if (U_FAILURE(status) && returnIdInfo != NULL) { - delete returnIdInfo; - returnIdInfo = NULL; - } - } - return returnIdInfo; +//----------------------------------------- +// +// class CheckResult Implementation +// +//----------------------------------------- + +CheckResult::CheckResult() : fMagic(USPOOF_CHECK_MAGIC) { + clear(); } +USpoofCheckResult* CheckResult::asUSpoofCheckResult() { + return reinterpret_cast(this); +} -void SpoofImpl::releaseIdentifierInfo(IdentifierInfo *idInfo) const { - if (idInfo != NULL) { - SpoofImpl *nonConstThis = const_cast(this); - { - Mutex m; - if (nonConstThis->fCachedIdentifierInfo == NULL) { - nonConstThis->fCachedIdentifierInfo = idInfo; - idInfo = NULL; - } - } - delete idInfo; +// +// Incoming parameter check on Status and the CheckResult object +// received from the C API. +// +const CheckResult* CheckResult::validateThis(const USpoofCheckResult *ptr, UErrorCode &status) { + if (U_FAILURE(status)) { return NULL; } + if (ptr == NULL) { + status = U_ILLEGAL_ARGUMENT_ERROR; + return NULL; } + CheckResult *This = (CheckResult*) ptr; + if (This->fMagic != USPOOF_CHECK_MAGIC) { + status = U_INVALID_FORMAT_ERROR; + return NULL; + } + return This; +} + +CheckResult* CheckResult::validateThis(USpoofCheckResult *ptr, UErrorCode &status) { + return const_cast + (CheckResult::validateThis(const_cast(ptr), status)); } +void CheckResult::clear() { + fChecks = 0; + fNumerics.clear(); + fRestrictionLevel = USPOOF_UNDEFINED_RESTRICTIVE; +} +int32_t CheckResult::toCombinedBitmask(int32_t enabledChecks) { + if ((enabledChecks & USPOOF_AUX_INFO) != 0 && fRestrictionLevel != USPOOF_UNDEFINED_RESTRICTIVE) { + return fChecks | fRestrictionLevel; + } else { + return fChecks; + } +} +CheckResult::~CheckResult() { +} //---------------------------------------------------------------------------------------------- // @@ -461,12 +472,14 @@ void SpoofImpl::releaseIdentifierInfo(IdentifierInfo *idInfo) const { //---------------------------------------------------------------------------------------------- -UBool SpoofData::validateDataVersion(const SpoofDataHeader *rawData, UErrorCode &status) { +UBool SpoofData::validateDataVersion(UErrorCode &status) const { if (U_FAILURE(status) || - rawData == NULL || - rawData->fMagic != USPOOF_MAGIC || - rawData->fFormatVersion[0] > 1 || - rawData->fFormatVersion[1] > 0) { + fRawData == NULL || + fRawData->fMagic != USPOOF_MAGIC || + fRawData->fFormatVersion[0] != USPOOF_CONFUSABLE_DATA_FORMAT_VERSION || + fRawData->fFormatVersion[1] != 0 || + fRawData->fFormatVersion[2] != 0 || + fRawData->fFormatVersion[3] != 0) { status = U_INVALID_FORMAT_ERROR; return FALSE; } @@ -485,7 +498,7 @@ spoofDataIsAcceptable(void *context, pInfo->dataFormat[1] == 0x66 && pInfo->dataFormat[2] == 0x75 && pInfo->dataFormat[3] == 0x20 && - pInfo->formatVersion[0] == 1 + pInfo->formatVersion[0] == USPOOF_CONFUSABLE_DATA_FORMAT_VERSION ) { UVersionInfo *version = static_cast(context); if(version != NULL) { @@ -497,32 +510,61 @@ spoofDataIsAcceptable(void *context, } } +// Methods for the loading of the default confusables data file. The confusable +// data is loaded only when it is needed. +// +// SpoofData::getDefault() - Return the default confusables data, and call the +// initOnce() if it is not available. Adds a reference +// to the SpoofData that the caller is responsible for +// decrementing when they are done with the data. // -// SpoofData::getDefault() - return a wrapper around the spoof data that is -// baked into the default ICU data. +// uspoof_loadDefaultData - Called once, from initOnce(). The resulting SpoofData +// is shared by all spoof checkers using the default data. // -// Called once, from the initOnce() function in uspoof_impl.cpp; the resulting -// SpoofData is shared by all spoof checkers using the default data. +// uspoof_cleanupDefaultData - Called during cleanup. // -SpoofData *SpoofData::getDefault(UErrorCode &status) { + +static UInitOnce gSpoofInitDefaultOnce = U_INITONCE_INITIALIZER; +static SpoofData* gDefaultSpoofData; + +static UBool U_CALLCONV +uspoof_cleanupDefaultData(void) { + if (gDefaultSpoofData) { + // Will delete, assuming all user-level spoof checkers were closed. + gDefaultSpoofData->removeReference(); + gDefaultSpoofData = NULL; + gSpoofInitDefaultOnce.reset(); + } + return TRUE; +} + +static void U_CALLCONV uspoof_loadDefaultData(UErrorCode& status) { UDataMemory *udm = udata_openChoice(NULL, "cfu", "confusables", spoofDataIsAcceptable, NULL, // context, would receive dataVersion if supplied. &status); + if (U_FAILURE(status)) { return; } + gDefaultSpoofData = new SpoofData(udm, status); if (U_FAILURE(status)) { - return NULL; - } - SpoofData *This = new SpoofData(udm, status); - if (U_FAILURE(status)) { - delete This; - return NULL; + delete gDefaultSpoofData; + return; } - if (This == NULL) { + if (gDefaultSpoofData == NULL) { status = U_MEMORY_ALLOCATION_ERROR; + return; } - return This; + ucln_i18n_registerCleanup(UCLN_I18N_SPOOFDATA, uspoof_cleanupDefaultData); +} + +SpoofData* SpoofData::getDefault(UErrorCode& status) { + umtx_initOnce(gSpoofInitDefaultOnce, &uspoof_loadDefaultData, status); + if (U_FAILURE(status)) { return NULL; } + gDefaultSpoofData->addReference(); + return gDefaultSpoofData; } + + SpoofData::SpoofData(UDataMemory *udm, UErrorCode &status) { reset(); @@ -533,7 +575,7 @@ SpoofData::SpoofData(UDataMemory *udm, UErrorCode &status) // fRawData is non-const because it may be constructed by the data builder. fRawData = reinterpret_cast( const_cast(udata_getMemory(udm))); - validateDataVersion(fRawData, status); + validateDataVersion(status); initPtrs(status); } @@ -554,7 +596,7 @@ SpoofData::SpoofData(const void *data, int32_t length, UErrorCode &status) status = U_INVALID_FORMAT_ERROR; return; } - validateDataVersion(fRawData, status); + validateDataVersion(status); initPtrs(status); } @@ -582,7 +624,7 @@ SpoofData::SpoofData(UErrorCode &status) { uprv_memset(fRawData, 0, initialSize); fRawData->fMagic = USPOOF_MAGIC; - fRawData->fFormatVersion[0] = 1; + fRawData->fFormatVersion[0] = USPOOF_CONFUSABLE_DATA_FORMAT_VERSION; fRawData->fFormatVersion[1] = 0; fRawData->fFormatVersion[2] = 0; fRawData->fFormatVersion[3] = 0; @@ -600,11 +642,7 @@ void SpoofData::reset() { fRefCount = 1; fCFUKeys = NULL; fCFUValues = NULL; - fCFUStringLengths = NULL; fCFUStrings = NULL; - fAnyCaseTrie = NULL; - fLowerCaseTrie = NULL; - fScriptSets = NULL; } @@ -626,7 +664,6 @@ void SpoofData::reset() { void SpoofData::initPtrs(UErrorCode &status) { fCFUKeys = NULL; fCFUValues = NULL; - fCFUStringLengths = NULL; fCFUStrings = NULL; if (U_FAILURE(status)) { return; @@ -637,33 +674,13 @@ void SpoofData::initPtrs(UErrorCode &status) { if (fRawData->fCFUStringIndex != 0) { fCFUValues = (uint16_t *)((char *)fRawData + fRawData->fCFUStringIndex); } - if (fRawData->fCFUStringLengths != 0) { - fCFUStringLengths = (SpoofStringLengthsElement *)((char *)fRawData + fRawData->fCFUStringLengths); - } if (fRawData->fCFUStringTable != 0) { fCFUStrings = (UChar *)((char *)fRawData + fRawData->fCFUStringTable); } - - if (fAnyCaseTrie == NULL && fRawData->fAnyCaseTrie != 0) { - fAnyCaseTrie = utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS, - (char *)fRawData + fRawData->fAnyCaseTrie, fRawData->fAnyCaseTrieLength, NULL, &status); - } - if (fLowerCaseTrie == NULL && fRawData->fLowerCaseTrie != 0) { - fLowerCaseTrie = utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS, - (char *)fRawData + fRawData->fLowerCaseTrie, fRawData->fLowerCaseTrieLength, NULL, &status); - } - - if (fRawData->fScriptSets != 0) { - fScriptSets = (ScriptSet *)((char *)fRawData + fRawData->fScriptSets); - } } SpoofData::~SpoofData() { - utrie2_close(fAnyCaseTrie); - fAnyCaseTrie = NULL; - utrie2_close(fLowerCaseTrie); - fLowerCaseTrie = NULL; if (fDataOwned) { uprv_free(fRawData); } @@ -708,6 +725,78 @@ void *SpoofData::reserveSpace(int32_t numBytes, UErrorCode &status) { return (char *)fRawData + returnOffset; } +int32_t SpoofData::serialize(void *buf, int32_t capacity, UErrorCode &status) const { + int32_t dataSize = fRawData->fLength; + if (capacity < dataSize) { + status = U_BUFFER_OVERFLOW_ERROR; + return dataSize; + } + uprv_memcpy(buf, fRawData, dataSize); + return dataSize; +} + +int32_t SpoofData::size() const { + return fRawData->fLength; +} + +//------------------------------- +// +// Front-end APIs for SpoofData +// +//------------------------------- + +int32_t SpoofData::confusableLookup(UChar32 inChar, UnicodeString &dest) const { + // Perform a binary search. + // [lo, hi), i.e lo is inclusive, hi is exclusive. + // The result after the loop will be in lo. + int32_t lo = 0; + int32_t hi = length(); + do { + int32_t mid = (lo + hi) / 2; + if (codePointAt(mid) > inChar) { + hi = mid; + } else if (codePointAt(mid) < inChar) { + lo = mid; + } else { + // Found result. Break early. + lo = mid; + break; + } + } while (hi - lo > 1); + + // Did we find an entry? If not, the char maps to itself. + if (codePointAt(lo) != inChar) { + dest.append(inChar); + return 1; + } + + // Add the element to the string builder and return. + return appendValueTo(lo, dest); +} + +int32_t SpoofData::length() const { + return fRawData->fCFUKeysSize; +} + +UChar32 SpoofData::codePointAt(int32_t index) const { + return ConfusableDataUtils::keyToCodePoint(fCFUKeys[index]); +} + +int32_t SpoofData::appendValueTo(int32_t index, UnicodeString& dest) const { + int32_t stringLength = ConfusableDataUtils::keyToLength(fCFUKeys[index]); + + // Value is either a char (for strings of length 1) or + // an index into the string table (for longer strings) + uint16_t value = fCFUValues[index]; + if (stringLength == 1) { + dest.append((UChar)value); + } else { + dest.append(fCFUStrings + value, stringLength); + } + + return stringLength; +} + U_NAMESPACE_END @@ -739,7 +828,10 @@ uspoof_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *ou pInfo->dataFormat[1]==0x66 && pInfo->dataFormat[2]==0x75 && pInfo->dataFormat[3]==0x20 && - pInfo->formatVersion[0]==1 )) { + pInfo->formatVersion[0]==USPOOF_CONFUSABLE_DATA_FORMAT_VERSION && + pInfo->formatVersion[1]==0 && + pInfo->formatVersion[2]==0 && + pInfo->formatVersion[3]==0 )) { udata_printError(ds, "uspoof_swap(): data format %02x.%02x.%02x.%02x " "(format version %02x %02x %02x %02x) is not recognized\n", pInfo->dataFormat[0], pInfo->dataFormat[1], @@ -828,26 +920,6 @@ uspoof_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *ou sectionLength = ds->readUInt32(spoofDH->fCFUStringTableLen) * 2; ds->swapArray16(ds, inBytes+sectionStart, sectionLength, outBytes+sectionStart, status); - // String Lengths Section - sectionStart = ds->readUInt32(spoofDH->fCFUStringLengths); - sectionLength = ds->readUInt32(spoofDH->fCFUStringLengthsSize) * 4; - ds->swapArray16(ds, inBytes+sectionStart, sectionLength, outBytes+sectionStart, status); - - // Any Case Trie - sectionStart = ds->readUInt32(spoofDH->fAnyCaseTrie); - sectionLength = ds->readUInt32(spoofDH->fAnyCaseTrieLength); - utrie2_swap(ds, inBytes+sectionStart, sectionLength, outBytes+sectionStart, status); - - // Lower Case Trie - sectionStart = ds->readUInt32(spoofDH->fLowerCaseTrie); - sectionLength = ds->readUInt32(spoofDH->fLowerCaseTrieLength); - utrie2_swap(ds, inBytes+sectionStart, sectionLength, outBytes+sectionStart, status); - - // Script Sets. The data is an array of int32_t - sectionStart = ds->readUInt32(spoofDH->fScriptSets); - sectionLength = ds->readUInt32(spoofDH->fScriptSetsLength) * sizeof(ScriptSet); - ds->swapArray32(ds, inBytes+sectionStart, sectionLength, outBytes+sectionStart, status); - // And, last, swap the header itself. // int32_t fMagic // swap this // uint8_t fFormatVersion[4] // Do not swap this, just copy diff --git a/deps/icu-small/source/i18n/uspoof_impl.h b/deps/icu-small/source/i18n/uspoof_impl.h index 44f6b5c9439053..62480e39e89791 100644 --- a/deps/icu-small/source/i18n/uspoof_impl.h +++ b/deps/icu-small/source/i18n/uspoof_impl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 2008-2013, International Business Machines Corporation @@ -13,6 +15,7 @@ #ifndef USPOOFIM_H #define USPOOFIM_H +#include "uassert.h" #include "unicode/utypes.h" #include "unicode/uspoof.h" #include "unicode/uscript.h" @@ -37,11 +40,13 @@ U_NAMESPACE_BEGIN // Magic number for sanity checking spoof data. #define USPOOF_MAGIC 0x3845fdef -class IdentifierInfo; +// Magic number for sanity checking spoof checkers. +#define USPOOF_CHECK_MAGIC 0x2734ecde + class ScriptSet; class SpoofData; struct SpoofDataHeader; -struct SpoofStringLengthsElement; +class ConfusableDataUtils; /** * Class SpoofImpl corresponds directly to the plain C API opaque type @@ -49,25 +54,20 @@ struct SpoofStringLengthsElement; */ class SpoofImpl : public UObject { public: - SpoofImpl(SpoofData *data, UErrorCode &status); - SpoofImpl(); - virtual ~SpoofImpl(); + SpoofImpl(SpoofData *data, UErrorCode& status); + SpoofImpl(UErrorCode& status); + SpoofImpl(); + void construct(UErrorCode& status); + virtual ~SpoofImpl(); /** Copy constructor, used by the user level uspoof_clone() function. */ SpoofImpl(const SpoofImpl &src, UErrorCode &status); + USpoofChecker *asUSpoofChecker(); static SpoofImpl *validateThis(USpoofChecker *sc, UErrorCode &status); static const SpoofImpl *validateThis(const USpoofChecker *sc, UErrorCode &status); - /** Get the confusable skeleton transform for a single code point. - * The result is a string with a length between 1 and 18. - * @param tableMask bit flag specifying which confusable table to use. - * One of USPOOF_SL_TABLE_FLAG, USPOOF_MA_TABLE_FLAG, etc. - * @return The length in UTF-16 code units of the substition string. - */ - int32_t confusableLookup(UChar32 inChar, int32_t tableMask, UnicodeString &destBuf) const; - /** Set and Get AllowedLocales, implementations of the corresponding API */ void setAllowedLocales(const char *localesList, UErrorCode &status); const char * getAllowedLocales(UErrorCode &status); @@ -76,26 +76,19 @@ class SpoofImpl : public UObject { // the specified locale. Part of the implementation of setAllowedLocales. void addScriptChars(const char *locale, UnicodeSet *allowedChars, UErrorCode &status); + // Functions implementing the features of UTS 39 section 5. + static void getAugmentedScriptSet(UChar32 codePoint, ScriptSet& result, UErrorCode& status); + void getResolvedScriptSet(const UnicodeString& input, ScriptSet& result, UErrorCode& status) const; + void getResolvedScriptSetWithout(const UnicodeString& input, UScriptCode script, ScriptSet& result, UErrorCode& status) const; + void getNumerics(const UnicodeString& input, UnicodeSet& result, UErrorCode& status) const; + URestrictionLevel getRestrictionLevel(const UnicodeString& input, UErrorCode& status) const; /** parse a hex number. Untility used by the builders. */ static UChar32 ScanHex(const UChar *s, int32_t start, int32_t limit, UErrorCode &status); - // Implementation for Whole Script tests. - // Return the test bit flag to be ORed into the eventual user return value - // if a Spoof opportunity is detected. - void wholeScriptCheck( - const UnicodeString &text, ScriptSet *result, UErrorCode &status) const; - static UClassID U_EXPORT2 getStaticClassID(void); virtual UClassID getDynamicClassID(void) const; - // IdentifierInfo Cache. IdentifierInfo objects are somewhat expensive to create. - // Maintain a one-element cache, which is sufficient to avoid repeatedly - // creating new ones unless we get multi-thread concurrency in spoof - // check operations, which should be statistically uncommon. - IdentifierInfo *getIdentifierInfo(UErrorCode &status) const; - void releaseIdentifierInfo(IdentifierInfo *idInfo) const; - // // Data Members // @@ -110,14 +103,36 @@ class SpoofImpl : public UObject { const char *fAllowedLocales; // The list of allowed locales. URestrictionLevel fRestrictionLevel; // The maximum restriction level for an acceptable identifier. - - IdentifierInfo *fCachedIdentifierInfo; // Do not use directly. See getIdentifierInfo().:w }; +/** + * Class CheckResult corresponds directly to the plain C API opaque type + * USpoofCheckResult. One can be cast to the other. + */ +class CheckResult : public UObject { +public: + CheckResult(); + virtual ~CheckResult(); + + USpoofCheckResult *asUSpoofCheckResult(); + static CheckResult *validateThis(USpoofCheckResult *ptr, UErrorCode &status); + static const CheckResult *validateThis(const USpoofCheckResult *ptr, UErrorCode &status); + + void clear(); + + // Used to convert this CheckResult to the older int32_t return value API + int32_t toCombinedBitmask(int32_t expectedChecks); + + // Data Members + int32_t fMagic; // Internal sanity check. + int32_t fChecks; // Bit vector of checks that were failed. + UnicodeSet fNumerics; // Set of numerics found in the string. + URestrictionLevel fRestrictionLevel; // The restriction level of the string. +}; // -// Confusable Mappings Data Structures +// Confusable Mappings Data Structures, version 2.0 // // For the confusable data, we are essentially implementing a map, // key: a code point @@ -125,14 +140,7 @@ class SpoofImpl : public UObject { // // The keys are stored as a sorted array of 32 bit ints. // bits 0-23 a code point value -// bits 24-31 flags -// 24: 1 if entry applies to SL table -// 25: 1 if entry applies to SA table -// 26: 1 if entry applies to ML table -// 27: 1 if entry applies to MA table -// 28: 1 if there are multiple entries for this code point. -// 29-30: length of value string, in UChars. -// values are (1, 2, 3, other) +// bits 24-31 length of value string, in UChars (between 1 and 256 UChars). // The key table is sorted in ascending code point order. (not on the // 32 bit int value, the flag bits do not participate in the sorting.) // @@ -146,39 +154,37 @@ class SpoofImpl : public UObject { // The strings table contains all of the value strings (those of length two or greater) // concatentated together into one long UChar (UTF-16) array. // -// The array is arranged by length of the strings - all strings of the same length -// are stored together. The sections are ordered by length of the strings - -// all two char strings first, followed by all of the three Char strings, etc. -// // There is no nul character or other mark between adjacent strings. // -// String Lengths table -// The length of strings from 1 to 3 is flagged in the key table. -// For strings of length 4 or longer, the string length table provides a -// mapping between an index into the string table and the corresponding length. -// Strings of these lengths are rare, so lookup time is not an issue. -// Each entry consists of -// uint16_t index of the _last_ string with this length -// uint16_t the length +//---------------------------------------------------------------------------- // +// Changes from format version 1 to format version 2: +// 1) Removal of the whole-script confusable data tables. +// 2) Removal of the SL/SA/ML/MA and multi-table flags in the key bitmask. +// 3) Expansion of string length value in the key bitmask from 2 bits to 8 bits. +// 4) Removal of the string lengths table since 8 bits is sufficient for the +// lengths of all entries in confusables.txt. -// Flag bits in the Key entries -#define USPOOF_SL_TABLE_FLAG (1<<24) -#define USPOOF_SA_TABLE_FLAG (1<<25) -#define USPOOF_ML_TABLE_FLAG (1<<26) -#define USPOOF_MA_TABLE_FLAG (1<<27) -#define USPOOF_KEY_MULTIPLE_VALUES (1<<28) -#define USPOOF_KEY_LENGTH_SHIFT 29 -#define USPOOF_KEY_LENGTH_FIELD(x) (((x)>>29) & 3) -struct SpoofStringLengthsElement { - uint16_t fLastString; // index in string table of last string with this length - uint16_t fStrLength; // Length of strings +// Internal functions for manipulating confusable data table keys +#define USPOOF_CONFUSABLE_DATA_FORMAT_VERSION 2 // version for ICU 58 +class ConfusableDataUtils { +public: + inline static UChar32 keyToCodePoint(int32_t key) { + return key & 0x00ffffff; + } + inline static int32_t keyToLength(int32_t key) { + return ((key & 0xff000000) >> 24) + 1; + } + inline static int32_t codePointAndLengthToKey(UChar32 codePoint, int32_t length) { + U_ASSERT((codePoint & 0x00ffffff) == codePoint); + U_ASSERT(length <= 256); + return codePoint | ((length - 1) << 24); + } }; - //------------------------------------------------------------------------------------- // // SpoofData @@ -195,7 +201,9 @@ struct SpoofStringLengthsElement { //--------------------------------------------------------------------------------------- class SpoofData: public UMemory { public: - static SpoofData *getDefault(UErrorCode &status); // Load standard ICU spoof data. + static SpoofData* getDefault(UErrorCode &status); // Get standard ICU spoof data. + static void releaseDefault(); // Cleanup reference to default spoof data. + SpoofData(UErrorCode &status); // Create new spoof data wrapper. // Only used when building new data from rules. @@ -210,7 +218,8 @@ class SpoofData: public UMemory { // Check raw Spoof Data Version compatibility. // Return TRUE it looks good. - static UBool validateDataVersion(const SpoofDataHeader *rawData, UErrorCode &status); + UBool validateDataVersion(UErrorCode &status) const; + ~SpoofData(); // Destructor not normally used. // Use removeReference() instead. // Reference Counting functions. @@ -220,6 +229,35 @@ class SpoofData: public UMemory { SpoofData *addReference(); void removeReference(); + // Reset all fields to an initial state. + // Called from the top of all constructors. + void reset(); + + // Copy this instance's raw data buffer to the specified address. + int32_t serialize(void *buf, int32_t capacity, UErrorCode &status) const; + + // Get the total number of bytes of data backed by this SpoofData. + // Not to be confused with length, which returns the number of confusable entries. + int32_t size() const; + + // Get the confusable skeleton transform for a single code point. + // The result is a string with a length between 1 and 18 as of Unicode 9. + // This is the main public endpoint for this class. + // @return The length in UTF-16 code units of the substition string. + int32_t confusableLookup(UChar32 inChar, UnicodeString &dest) const; + + // Get the number of confusable entries in this SpoofData. + int32_t length() const; + + // Get the code point (key) at the specified index. + UChar32 codePointAt(int32_t index) const; + + // Get the confusable skeleton (value) at the specified index. + // Append it to the specified UnicodeString&. + // @return The length in UTF-16 code units of the skeleton string. + int32_t appendValueTo(int32_t index, UnicodeString& dest) const; + + private: // Reserve space in the raw data. For use by builder when putting together a // new set of data. Init the new storage to zero, to prevent inconsistent // results if it is not all otherwise set by the requester. @@ -230,10 +268,6 @@ class SpoofData: public UMemory { // initialize the pointers from this object to the raw data. void initPtrs(UErrorCode &status); - // Reset all fields to an initial state. - // Called from the top of all constructors. - void reset(); - SpoofDataHeader *fRawData; // Ptr to the raw memory-mapped data UBool fDataOwned; // True if the raw data is owned, and needs // to be deleted when refcount goes to zero. @@ -247,15 +281,10 @@ class SpoofData: public UMemory { // Confusable data int32_t *fCFUKeys; uint16_t *fCFUValues; - SpoofStringLengthsElement *fCFUStringLengths; UChar *fCFUStrings; - // Whole Script Confusable Data - UTrie2 *fAnyCaseTrie; - UTrie2 *fLowerCaseTrie; - ScriptSet *fScriptSets; - }; - + friend class ConfusabledataBuilder; +}; //--------------------------------------------------------------------------------------- // @@ -284,47 +313,11 @@ struct SpoofDataHeader { int32_t fCFUStringTable; // byte offset of String table int32_t fCFUStringTableLen; // length of string table (in 16 bit UChars) - int32_t fCFUStringLengths; // byte offset to String Lengths table - int32_t fCFUStringLengthsSize; // number of entries in lengths table. (2 x 16 bits each) - - - // The following sections are for data from confusablesWholeScript.txt - - int32_t fAnyCaseTrie; // byte offset to the serialized Any Case Trie - int32_t fAnyCaseTrieLength; // Length (bytes) of the serialized Any Case Trie - - int32_t fLowerCaseTrie; // byte offset to the serialized Lower Case Trie - int32_t fLowerCaseTrieLength; // Length (bytes) of the serialized Lower Case Trie - - int32_t fScriptSets; // byte offset to array of ScriptSets - int32_t fScriptSetsLength; // Number of ScriptSets (24 bytes each) - - // The following sections are for data from xidmodifications.txt - int32_t unused[15]; // Padding, Room for Expansion +}; - }; - - - - -// -// Structure for the Whole Script Confusable Data -// See Unicode UAX-39, Unicode Security Mechanisms, for a description of the -// Whole Script confusable data -// -// The data provides mappings from code points to a set of scripts -// that contain characters that might be confused with the code point. -// There are two mappings, one for lower case only, and one for characters -// of any case. -// -// The actual data consists of a utrie2 to map from a code point to an offset, -// and an array of UScriptSets (essentially bit maps) that is indexed -// by the offsets obtained from the Trie. -// -// U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/uspoof_wsconf.cpp b/deps/icu-small/source/i18n/uspoof_wsconf.cpp deleted file mode 100644 index ad73ed690cd3fc..00000000000000 --- a/deps/icu-small/source/i18n/uspoof_wsconf.cpp +++ /dev/null @@ -1,435 +0,0 @@ -/* -****************************************************************************** -* -* Copyright (C) 2008-2013, International Business Machines -* Corporation and others. All Rights Reserved. -* -****************************************************************************** -* file name: uspoof_wsconf.cpp -* encoding: US-ASCII -* tab size: 8 (not used) -* indentation:4 -* -* created on: 2009Jan05 (refactoring earlier files) -* created by: Andy Heninger -* -* Internal functions for compililing Whole Script confusable source data -* into its binary (runtime) form. The binary data format is described -* in uspoof_impl.h -*/ - -#include "unicode/utypes.h" -#include "unicode/uspoof.h" - -#if !UCONFIG_NO_NORMALIZATION - -#if !UCONFIG_NO_REGULAR_EXPRESSIONS - -#include "unicode/unorm.h" -#include "unicode/uregex.h" -#include "unicode/ustring.h" -#include "cmemory.h" -#include "scriptset.h" -#include "uspoof_impl.h" -#include "uhash.h" -#include "uvector.h" -#include "uassert.h" -#include "uspoof_wsconf.h" - -U_NAMESPACE_USE - - -// Regular expression for parsing a line from the Unicode file confusablesWholeScript.txt -// Example Lines: -// 006F ; Latn; Deva; A # (o) LATIN SMALL LETTER O -// 0048..0049 ; Latn; Grek; A # [2] (H..I) LATIN CAPITAL LETTER H..LATIN CAPITAL LETTER I -// | | | | -// | | | |---- Which table, Any Case or Lower Case (A or L) -// | | |----------Target script. We need this. -// | |----------------Src script. Should match the script of the source -// | code points. Beyond checking that, we don't keep it. -// |--------------------------------Source code points or range. -// -// The expression will match _all_ lines, including erroneous lines. -// The result of the parse is returned via the contents of the (match) groups. -static const char *parseExp = - "(?m)" // Multi-line mode - "^([ \\t]*(?:#.*?)?)$" // A blank or comment line. Matches Group 1. - "|^(?:" // OR - "\\s*([0-9A-F]{4,})(?:..([0-9A-F]{4,}))?\\s*;" // Code point range. Groups 2 and 3. - "\\s*([A-Za-z]+)\\s*;" // The source script. Group 4. - "\\s*([A-Za-z]+)\\s*;" // The target script. Group 5. - "\\s*(?:(A)|(L))" // The table A or L. Group 6 or 7 - "[ \\t]*(?:#.*?)?" // Trailing commment - ")$|" // OR - "^(.*?)$"; // An error line. Group 8. - // Any line not matching the preceding - // parts of the expression.will match - // this, and thus be flagged as an error - - -// Extract a regular expression match group into a char * string. -// The group must contain only invariant characters. -// Used for script names -// -static void extractGroup( - URegularExpression *e, int32_t group, char *destBuf, int32_t destCapacity, UErrorCode &status) { - - UChar ubuf[50]; - ubuf[0] = 0; - destBuf[0] = 0; - int32_t len = uregex_group(e, group, ubuf, 50, &status); - if (U_FAILURE(status) || len == -1 || len >= destCapacity) { - return; - } - UnicodeString s(FALSE, ubuf, len); // Aliasing constructor - s.extract(0, len, destBuf, destCapacity, US_INV); -} - - - -U_NAMESPACE_BEGIN - -// Build the Whole Script Confusable data -// -// TODO: Reorganize. Either get rid of the WSConfusableDataBuilder class, -// because everything is local to this one build function anyhow, -// OR -// break this function into more reasonably sized pieces, with -// state in WSConfusableDataBuilder. -// -void buildWSConfusableData(SpoofImpl *spImpl, const char * confusablesWS, - int32_t confusablesWSLen, UParseError *pe, UErrorCode &status) -{ - if (U_FAILURE(status)) { - return; - } - URegularExpression *parseRegexp = NULL; - int32_t inputLen = 0; - UChar *input = NULL; - int32_t lineNum = 0; - - UVector *scriptSets = NULL; - uint32_t rtScriptSetsCount = 2; - - UTrie2 *anyCaseTrie = NULL; - UTrie2 *lowerCaseTrie = NULL; - - anyCaseTrie = utrie2_open(0, 0, &status); - lowerCaseTrie = utrie2_open(0, 0, &status); - - UnicodeString pattern(parseExp, -1, US_INV); - - // The scriptSets vector provides a mapping from TRIE values to the set of scripts. - // - // Reserved TRIE values: - // 0: Code point has no whole script confusables. - // 1: Code point is of script Common or Inherited. - // These code points do not participate in whole script confusable detection. - // (This is logically equivalent to saying that they contain confusables in - // all scripts) - // - // Because Trie values are indexes into the ScriptSets vector, pre-fill - // vector positions 0 and 1 to avoid conflicts with the reserved values. - - scriptSets = new UVector(status); - if (scriptSets == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - scriptSets->addElement((void *)NULL, status); - scriptSets->addElement((void *)NULL, status); - - // Convert the user input data from UTF-8 to UChar (UTF-16) - u_strFromUTF8(NULL, 0, &inputLen, confusablesWS, confusablesWSLen, &status); - if (status != U_BUFFER_OVERFLOW_ERROR) { - goto cleanup; - } - status = U_ZERO_ERROR; - input = static_cast(uprv_malloc((inputLen+1) * sizeof(UChar))); - if (input == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - u_strFromUTF8(input, inputLen+1, NULL, confusablesWS, confusablesWSLen, &status); - - parseRegexp = uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, &status); - - // Zap any Byte Order Mark at the start of input. Changing it to a space is benign - // given the syntax of the input. - if (*input == 0xfeff) { - *input = 0x20; - } - - // Parse the input, one line per iteration of this loop. - uregex_setText(parseRegexp, input, inputLen, &status); - while (uregex_findNext(parseRegexp, &status)) { - lineNum++; - if (uregex_start(parseRegexp, 1, &status) >= 0) { - // this was a blank or comment line. - continue; - } - if (uregex_start(parseRegexp, 8, &status) >= 0) { - // input file syntax error. - status = U_PARSE_ERROR; - goto cleanup; - } - if (U_FAILURE(status)) { - goto cleanup; - } - - // Pick up the start and optional range end code points from the parsed line. - UChar32 startCodePoint = SpoofImpl::ScanHex( - input, uregex_start(parseRegexp, 2, &status), uregex_end(parseRegexp, 2, &status), status); - UChar32 endCodePoint = startCodePoint; - if (uregex_start(parseRegexp, 3, &status) >=0) { - endCodePoint = SpoofImpl::ScanHex( - input, uregex_start(parseRegexp, 3, &status), uregex_end(parseRegexp, 3, &status), status); - } - - // Extract the two script names from the source line. We need these in an 8 bit - // default encoding (will be EBCDIC on IBM mainframes) in order to pass them on - // to the ICU u_getPropertyValueEnum() function. Ugh. - char srcScriptName[20]; - char targScriptName[20]; - extractGroup(parseRegexp, 4, srcScriptName, sizeof(srcScriptName), status); - extractGroup(parseRegexp, 5, targScriptName, sizeof(targScriptName), status); - UScriptCode srcScript = - static_cast(u_getPropertyValueEnum(UCHAR_SCRIPT, srcScriptName)); - UScriptCode targScript = - static_cast(u_getPropertyValueEnum(UCHAR_SCRIPT, targScriptName)); - if (U_FAILURE(status)) { - goto cleanup; - } - if (srcScript == USCRIPT_INVALID_CODE || targScript == USCRIPT_INVALID_CODE) { - status = U_INVALID_FORMAT_ERROR; - goto cleanup; - } - - // select the table - (A) any case or (L) lower case only - UTrie2 *table = anyCaseTrie; - if (uregex_start(parseRegexp, 7, &status) >= 0) { - table = lowerCaseTrie; - } - - // Build the set of scripts containing confusable characters for - // the code point(s) specified in this input line. - // Sanity check that the script of the source code point is the same - // as the source script indicated in the input file. Failure of this check is - // an error in the input file. - // Include the source script in the set (needed for Mixed Script Confusable detection). - // - UChar32 cp; - for (cp=startCodePoint; cp<=endCodePoint; cp++) { - int32_t setIndex = utrie2_get32(table, cp); - BuilderScriptSet *bsset = NULL; - if (setIndex > 0) { - U_ASSERT(setIndex < scriptSets->size()); - bsset = static_cast(scriptSets->elementAt(setIndex)); - } else { - bsset = new BuilderScriptSet(); - if (bsset == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - bsset->codePoint = cp; - bsset->trie = table; - bsset->sset = new ScriptSet(); - setIndex = scriptSets->size(); - bsset->index = setIndex; - bsset->rindex = 0; - if (bsset->sset == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - scriptSets->addElement(bsset, status); - utrie2_set32(table, cp, setIndex, &status); - } - bsset->sset->set(targScript, status); - bsset->sset->set(srcScript, status); - - if (U_FAILURE(status)) { - goto cleanup; - } - UScriptCode cpScript = uscript_getScript(cp, &status); - if (cpScript != srcScript) { - status = U_INVALID_FORMAT_ERROR; - goto cleanup; - } - } - } - - // Eliminate duplicate script sets. At this point we have a separate - // script set for every code point that had data in the input file. - // - // We eliminate underlying ScriptSet objects, not the BuildScriptSets that wrap them - // - // printf("Number of scriptSets: %d\n", scriptSets->size()); - { - int32_t duplicateCount = 0; - rtScriptSetsCount = 2; - for (int32_t outeri=2; outerisize(); outeri++) { - BuilderScriptSet *outerSet = static_cast(scriptSets->elementAt(outeri)); - if (outerSet->index != static_cast(outeri)) { - // This set was already identified as a duplicate. - // It will not be allocated a position in the runtime array of ScriptSets. - continue; - } - outerSet->rindex = rtScriptSetsCount++; - for (int32_t inneri=outeri+1; innerisize(); inneri++) { - BuilderScriptSet *innerSet = static_cast(scriptSets->elementAt(inneri)); - if (*(outerSet->sset) == *(innerSet->sset) && outerSet->sset != innerSet->sset) { - delete innerSet->sset; - innerSet->scriptSetOwned = FALSE; - innerSet->sset = outerSet->sset; - innerSet->index = outeri; - innerSet->rindex = outerSet->rindex; - duplicateCount++; - } - // But this doesn't get all. We need to fix the TRIE. - } - } - // printf("Number of distinct script sets: %d\n", rtScriptSetsCount); - } - - - - // Update the Trie values to be reflect the run time script indexes (after duplicate merging). - // (Trie Values 0 and 1 are reserved, and the corresponding slots in scriptSets - // are unused, which is why the loop index starts at 2.) - { - for (int32_t i=2; isize(); i++) { - BuilderScriptSet *bSet = static_cast(scriptSets->elementAt(i)); - if (bSet->rindex != (uint32_t)i) { - utrie2_set32(bSet->trie, bSet->codePoint, bSet->rindex, &status); - } - } - } - - // For code points with script==Common or script==Inherited, - // Set the reserved value of 1 into both Tries. These characters do not participate - // in Whole Script Confusable detection; this reserved value is the means - // by which they are detected. - { - UnicodeSet ignoreSet; - ignoreSet.applyIntPropertyValue(UCHAR_SCRIPT, USCRIPT_COMMON, status); - UnicodeSet inheritedSet; - inheritedSet.applyIntPropertyValue(UCHAR_SCRIPT, USCRIPT_INHERITED, status); - ignoreSet.addAll(inheritedSet); - for (int32_t rn=0; rnfSpoofData->fRawData->fAnyCaseTrie = spImpl->fSpoofData->fMemLimit; - spImpl->fSpoofData->fRawData->fAnyCaseTrieLength = size; - spImpl->fSpoofData->fAnyCaseTrie = anyCaseTrie; - void *where = spImpl->fSpoofData->reserveSpace(size, status); - utrie2_serialize(anyCaseTrie, where, size, &status); - - utrie2_freeze(lowerCaseTrie, UTRIE2_16_VALUE_BITS, &status); - size = utrie2_serialize(lowerCaseTrie, NULL, 0, &status); - // printf("Lower case Trie size: %d\n", size); - if (status != U_BUFFER_OVERFLOW_ERROR) { - goto cleanup; - } - status = U_ZERO_ERROR; - spImpl->fSpoofData->fRawData->fLowerCaseTrie = spImpl->fSpoofData->fMemLimit; - spImpl->fSpoofData->fRawData->fLowerCaseTrieLength = size; - spImpl->fSpoofData->fLowerCaseTrie = lowerCaseTrie; - where = spImpl->fSpoofData->reserveSpace(size, status); - utrie2_serialize(lowerCaseTrie, where, size, &status); - - spImpl->fSpoofData->fRawData->fScriptSets = spImpl->fSpoofData->fMemLimit; - spImpl->fSpoofData->fRawData->fScriptSetsLength = rtScriptSetsCount; - ScriptSet *rtScriptSets = static_cast - (spImpl->fSpoofData->reserveSpace(rtScriptSetsCount * sizeof(ScriptSet), status)); - uint32_t rindex = 2; - for (int32_t i=2; isize(); i++) { - BuilderScriptSet *bSet = static_cast(scriptSets->elementAt(i)); - if (bSet->rindex < rindex) { - // We have already copied this script set to the serialized data. - continue; - } - U_ASSERT(rindex == bSet->rindex); - rtScriptSets[rindex] = *bSet->sset; // Assignment of a ScriptSet just copies the bits. - rindex++; - } - } - - // Open new utrie2s from the serialized data. We don't want to keep the ones - // we just built because we would then have two copies of the data, one internal to - // the utries that we have already constructed, and one in the serialized data area. - // An alternative would be to not pre-serialize the Trie data, but that makes the - // spoof detector data different, depending on how the detector was constructed. - // It's simpler to keep the data always the same. - - spImpl->fSpoofData->fAnyCaseTrie = utrie2_openFromSerialized( - UTRIE2_16_VALUE_BITS, - (const char *)spImpl->fSpoofData->fRawData + spImpl->fSpoofData->fRawData->fAnyCaseTrie, - spImpl->fSpoofData->fRawData->fAnyCaseTrieLength, - NULL, - &status); - - spImpl->fSpoofData->fLowerCaseTrie = utrie2_openFromSerialized( - UTRIE2_16_VALUE_BITS, - (const char *)spImpl->fSpoofData->fRawData + spImpl->fSpoofData->fRawData->fLowerCaseTrie, - spImpl->fSpoofData->fRawData->fAnyCaseTrieLength, - NULL, - &status); - - - -cleanup: - if (U_FAILURE(status)) { - pe->line = lineNum; - } - uregex_close(parseRegexp); - uprv_free(input); - - int32_t i; - if (scriptSets != NULL) { - for (i=0; isize(); i++) { - BuilderScriptSet *bsset = static_cast(scriptSets->elementAt(i)); - delete bsset; - } - delete scriptSets; - } - utrie2_close(anyCaseTrie); - utrie2_close(lowerCaseTrie); - return; -} - -U_NAMESPACE_END - - - -BuilderScriptSet::BuilderScriptSet() { - codePoint = -1; - trie = NULL; - sset = NULL; - index = 0; - rindex = 0; - scriptSetOwned = TRUE; -} - -BuilderScriptSet::~BuilderScriptSet() { - if (scriptSetOwned) { - delete sset; - } -} - -#endif -#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS diff --git a/deps/icu-small/source/i18n/uspoof_wsconf.h b/deps/icu-small/source/i18n/uspoof_wsconf.h deleted file mode 100644 index 5c0e6111a7a45d..00000000000000 --- a/deps/icu-small/source/i18n/uspoof_wsconf.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -****************************************************************************** -* -* Copyright (C) 2008-2012, International Business Machines -* Corporation and others. All Rights Reserved. -* -****************************************************************************** -* file name: uspoof_buildwsconf.h -* encoding: US-ASCII -* tab size: 8 (not used) -* indentation:4 -* -* created on: 2009Jan19 -* created by: Andy Heninger -* -* Internal classes and functions -* for compiling whole script confusable data into its binary (runtime) form. -*/ - -#ifndef __USPOOF_BUILDWSCONF_H__ -#define __USPOOF_BUILDWSCONF_H__ - -#include "unicode/utypes.h" - -#if !UCONFIG_NO_NORMALIZATION - -#if !UCONFIG_NO_REGULAR_EXPRESSIONS - -#include "uspoof_impl.h" -#include "utrie2.h" - - -U_NAMESPACE_BEGIN - -// -// class BuilderScriptSet. Represents the set of scripts (Script Codes) -// containing characters that are confusable with one specific -// code point. -// - -class BuilderScriptSet: public UMemory { - public: - UChar32 codePoint; // The source code point. - UTrie2 *trie; // Any-case or Lower-case Trie. - // These Trie tables are the final result of the - // build. This flag indicates which of the two - // this set of data is for. - ScriptSet *sset; // The set of scripts itself. - - // Vectors of all B - uint32_t index; // Index of this set in the Build Time vector - // of script sets. - uint32_t rindex; // Index of this set in the final (runtime) - // array of sets. - UBool scriptSetOwned; // True if this BuilderScriptSet owns (should delete) - // its underlying sset. - - BuilderScriptSet(); - ~BuilderScriptSet(); -}; - - -void buildWSConfusableData(SpoofImpl *spImpl, const char * confusablesWS, - int32_t confusablesWSLen, UParseError *pe, UErrorCode &status); - -U_NAMESPACE_END - -#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS -#endif // !UCONFIG_NO_NORMALIZATION -#endif diff --git a/deps/icu-small/source/i18n/usrchimp.h b/deps/icu-small/source/i18n/usrchimp.h index 898e38a20f9e72..e6693d16b7ac51 100644 --- a/deps/icu-small/source/i18n/usrchimp.h +++ b/deps/icu-small/source/i18n/usrchimp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2015 IBM and others. All rights reserved. diff --git a/deps/icu-small/source/i18n/utf16collationiterator.cpp b/deps/icu-small/source/i18n/utf16collationiterator.cpp index 559ea91ea88492..733729fae79ece 100644 --- a/deps/icu-small/source/i18n/utf16collationiterator.cpp +++ b/deps/icu-small/source/i18n/utf16collationiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/utf16collationiterator.h b/deps/icu-small/source/i18n/utf16collationiterator.h index 16de2078ed0b3f..505ab810d37921 100644 --- a/deps/icu-small/source/i18n/utf16collationiterator.h +++ b/deps/icu-small/source/i18n/utf16collationiterator.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/utf8collationiterator.cpp b/deps/icu-small/source/i18n/utf8collationiterator.cpp index ddb753f6aefe66..0a0205e7b31cc2 100644 --- a/deps/icu-small/source/i18n/utf8collationiterator.cpp +++ b/deps/icu-small/source/i18n/utf8collationiterator.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/utf8collationiterator.h b/deps/icu-small/source/i18n/utf8collationiterator.h index bb0fc1179dc1eb..8deb5ea395b7af 100644 --- a/deps/icu-small/source/i18n/utf8collationiterator.h +++ b/deps/icu-small/source/i18n/utf8collationiterator.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2012-2016, International Business Machines diff --git a/deps/icu-small/source/i18n/utmscale.c b/deps/icu-small/source/i18n/utmscale.c index 94fb7525fd39a5..6868b9db2261a1 100644 --- a/deps/icu-small/source/i18n/utmscale.c +++ b/deps/icu-small/source/i18n/utmscale.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2004-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/utrans.cpp b/deps/icu-small/source/i18n/utrans.cpp index 91d9f1c8e67313..aed817ce2636e7 100644 --- a/deps/icu-small/source/i18n/utrans.cpp +++ b/deps/icu-small/source/i18n/utrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1997-2009,2014 International Business Machines diff --git a/deps/icu-small/source/i18n/valueformatter.cpp b/deps/icu-small/source/i18n/valueformatter.cpp index d7870d1041df8d..45b08f60b653ac 100644 --- a/deps/icu-small/source/i18n/valueformatter.cpp +++ b/deps/icu-small/source/i18n/valueformatter.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/valueformatter.h b/deps/icu-small/source/i18n/valueformatter.h index 42ccd212077670..da2dd1b33787e5 100644 --- a/deps/icu-small/source/i18n/valueformatter.h +++ b/deps/icu-small/source/i18n/valueformatter.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/visibledigits.cpp b/deps/icu-small/source/i18n/visibledigits.cpp index a6cbd0fdce276e..1fea3504dfeee8 100644 --- a/deps/icu-small/source/i18n/visibledigits.cpp +++ b/deps/icu-small/source/i18n/visibledigits.cpp @@ -1,5 +1,7 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* - * Copyright (C) 2015, International Business Machines + * Copyright (C) 2016, International Business Machines * Corporation and others. All Rights Reserved. * * file name: visibledigits.cpp @@ -84,8 +86,11 @@ double VisibleDigits::computeAbsDoubleValue() const { } // stack allocate a decNumber to hold MAX_DBL_DIGITS+3 significant digits - char rawNumber[sizeof(decNumber) + MAX_DBL_DIGITS+3]; - decNumber *numberPtr = (decNumber *) rawNumber; + struct { + decNumber decNum; + char digits[MAX_DBL_DIGITS+3]; + } decNumberWithStorage; + decNumber *numberPtr = &decNumberWithStorage.decNum; int32_t mostSig = fInterval.getMostSignificantExclusive(); int32_t mostSigNonZero = fExponent + fDigits.length(); @@ -109,15 +114,8 @@ double VisibleDigits::computeAbsDoubleValue() const { char str[MAX_DBL_DIGITS+18]; uprv_decNumberToString(numberPtr, str); U_ASSERT(uprv_strlen(str) < MAX_DBL_DIGITS+18); - char decimalSeparator = DigitList::getStrtodDecimalSeparator(); - if (decimalSeparator != '.') { - char *decimalPt = strchr(str, '.'); - if (decimalPt != NULL) { - *decimalPt = decimalSeparator; - } - } char *unused = NULL; - return uprv_strtod(str, &unused); + return DigitList::decimalStrToDouble(str, &unused); } void VisibleDigits::getFixedDecimal( @@ -165,7 +163,8 @@ void VisibleDigits::getFixedDecimal( // f (decimal digits) // skip over any leading 0's in fraction digits. int32_t idx = -1; - for (; idx >= -v && getDigitByExponent(idx) == 0; --idx); + for (; idx >= -v && getDigitByExponent(idx) == 0; --idx) + ; // Only process up to first 18 non zero fraction digits for decimalDigits // since that is all we can fit into an int64. diff --git a/deps/icu-small/source/i18n/visibledigits.h b/deps/icu-small/source/i18n/visibledigits.h index 9390aadc6bd200..cd18239a56601a 100644 --- a/deps/icu-small/source/i18n/visibledigits.h +++ b/deps/icu-small/source/i18n/visibledigits.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/i18n/vtzone.cpp b/deps/icu-small/source/i18n/vtzone.cpp index 0585ea75ae0fa2..ba5f3bc0d7bde2 100644 --- a/deps/icu-small/source/i18n/vtzone.cpp +++ b/deps/icu-small/source/i18n/vtzone.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/vzone.cpp b/deps/icu-small/source/i18n/vzone.cpp index cd75802a179074..7ee95e4edecd6a 100644 --- a/deps/icu-small/source/i18n/vzone.cpp +++ b/deps/icu-small/source/i18n/vzone.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/vzone.h b/deps/icu-small/source/i18n/vzone.h index f89a5619a67fa8..22a41b4e37b478 100644 --- a/deps/icu-small/source/i18n/vzone.h +++ b/deps/icu-small/source/i18n/vzone.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/windtfmt.cpp b/deps/icu-small/source/i18n/windtfmt.cpp index 8625ea7e3efa4e..20ce338bb4b88a 100644 --- a/deps/icu-small/source/i18n/windtfmt.cpp +++ b/deps/icu-small/source/i18n/windtfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2016, International Business Machines @@ -230,8 +232,8 @@ static const DWORD dfFlags[] = {DATE_LONGDATE, DATE_LONGDATE, DATE_SHORTDATE, DA void Win32DateFormat::formatDate(const SYSTEMTIME *st, UnicodeString &appendTo) const { int result; - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; + wchar_t stackBuffer[STACK_BUFFER_SIZE]; + wchar_t *buffer = stackBuffer; result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE); @@ -239,12 +241,12 @@ void Win32DateFormat::formatDate(const SYSTEMTIME *st, UnicodeString &appendTo) if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0); - buffer = NEW_ARRAY(UChar, newLength); + buffer = NEW_ARRAY(wchar_t, newLength); GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength); } } - appendTo.append(buffer, (int32_t) wcslen(buffer)); + appendTo.append((const UChar *)buffer, (int32_t) wcslen(buffer)); if (buffer != stackBuffer) { DELETE_ARRAY(buffer); @@ -256,8 +258,8 @@ static const DWORD tfFlags[] = {0, 0, 0, TIME_NOSECONDS}; void Win32DateFormat::formatTime(const SYSTEMTIME *st, UnicodeString &appendTo) const { int result; - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; + wchar_t stackBuffer[STACK_BUFFER_SIZE]; + wchar_t *buffer = stackBuffer; result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE); @@ -265,12 +267,12 @@ void Win32DateFormat::formatTime(const SYSTEMTIME *st, UnicodeString &appendTo) if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0); - buffer = NEW_ARRAY(UChar, newLength); + buffer = NEW_ARRAY(wchar_t, newLength); GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, newLength); } } - appendTo.append(buffer, (int32_t) wcslen(buffer)); + appendTo.append((const UChar *)buffer, (int32_t) wcslen(buffer)); if (buffer != stackBuffer) { DELETE_ARRAY(buffer); diff --git a/deps/icu-small/source/i18n/windtfmt.h b/deps/icu-small/source/i18n/windtfmt.h index a286ced2e3ddad..a8221943706ef0 100644 --- a/deps/icu-small/source/i18n/windtfmt.h +++ b/deps/icu-small/source/i18n/windtfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/winnmfmt.cpp b/deps/icu-small/source/i18n/winnmfmt.cpp index 23610732a2e94a..d7e98723bb271d 100644 --- a/deps/icu-small/source/i18n/winnmfmt.cpp +++ b/deps/icu-small/source/i18n/winnmfmt.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2016, International Business Machines @@ -86,10 +88,10 @@ static void getNumberFormat(NUMBERFMTW *fmt, int32_t lcid) GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10); fmt->Grouping = getGrouping(buf); - fmt->lpDecimalSep = NEW_ARRAY(UChar, 6); + fmt->lpDecimalSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoW(lcid, LOCALE_SDECIMAL, fmt->lpDecimalSep, 6); - fmt->lpThousandSep = NEW_ARRAY(UChar, 6); + fmt->lpThousandSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6); GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); @@ -113,16 +115,16 @@ static void getCurrencyFormat(CURRENCYFMTW *fmt, int32_t lcid) GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf)); fmt->Grouping = getGrouping(buf); - fmt->lpDecimalSep = NEW_ARRAY(UChar, 6); + fmt->lpDecimalSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP, fmt->lpDecimalSep, 6); - fmt->lpThousandSep = NEW_ARRAY(UChar, 6); + fmt->lpThousandSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6); GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT)); - fmt->lpCurrencySymbol = NEW_ARRAY(UChar, 8); + fmt->lpCurrencySymbol = NEW_ARRAY(wchar_t, 8); GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8); } @@ -290,8 +292,8 @@ UnicodeString &Win32NumberFormat::format(int32_t numDigits, UnicodeString &appen } } - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; + wchar_t stackBuffer[STACK_BUFFER_SIZE]; + wchar_t *buffer = stackBuffer; FormatInfo formatInfo; formatInfo = *fFormatInfo; @@ -314,7 +316,7 @@ UnicodeString &Win32NumberFormat::format(int32_t numDigits, UnicodeString &appen if (lastError == ERROR_INSUFFICIENT_BUFFER) { int newLength = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, NULL, 0); - buffer = NEW_ARRAY(UChar, newLength); + buffer = NEW_ARRAY(wchar_t, newLength); buffer[0] = 0x0000; GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, newLength); } @@ -334,14 +336,14 @@ UnicodeString &Win32NumberFormat::format(int32_t numDigits, UnicodeString &appen if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { int newLength = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, NULL, 0); - buffer = NEW_ARRAY(UChar, newLength); + buffer = NEW_ARRAY(wchar_t, newLength); buffer[0] = 0x0000; GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, newLength); } } } - appendTo.append(buffer, (int32_t) wcslen(buffer)); + appendTo.append((UChar *)buffer, (int32_t) wcslen(buffer)); if (buffer != stackBuffer) { DELETE_ARRAY(buffer); diff --git a/deps/icu-small/source/i18n/winnmfmt.h b/deps/icu-small/source/i18n/winnmfmt.h index a0b34dfc9fe8d2..3b0df915e1439b 100644 --- a/deps/icu-small/source/i18n/winnmfmt.h +++ b/deps/icu-small/source/i18n/winnmfmt.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2005-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/wintzimpl.cpp b/deps/icu-small/source/i18n/wintzimpl.cpp index 921ecf78d2323b..4c042d54213d05 100644 --- a/deps/icu-small/source/i18n/wintzimpl.cpp +++ b/deps/icu-small/source/i18n/wintzimpl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2009-2013, International Business Machines diff --git a/deps/icu-small/source/i18n/wintzimpl.h b/deps/icu-small/source/i18n/wintzimpl.h index 3ba4174a06f37c..8149fc14173814 100644 --- a/deps/icu-small/source/i18n/wintzimpl.h +++ b/deps/icu-small/source/i18n/wintzimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 2008-2011, International Business Machines diff --git a/deps/icu-small/source/i18n/zonemeta.cpp b/deps/icu-small/source/i18n/zonemeta.cpp index e2c75e5577b503..fdf333c3712aef 100644 --- a/deps/icu-small/source/i18n/zonemeta.cpp +++ b/deps/icu-small/source/i18n/zonemeta.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/zonemeta.h b/deps/icu-small/source/i18n/zonemeta.h index ac65e82acbc69c..84be5553ea797e 100644 --- a/deps/icu-small/source/i18n/zonemeta.h +++ b/deps/icu-small/source/i18n/zonemeta.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2007-2013, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/zrule.cpp b/deps/icu-small/source/i18n/zrule.cpp index a7573e5fb5b61d..ad64ab6e161ed5 100644 --- a/deps/icu-small/source/i18n/zrule.cpp +++ b/deps/icu-small/source/i18n/zrule.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2011, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/zrule.h b/deps/icu-small/source/i18n/zrule.h index cfc2b71542cdae..b9827bf5201a66 100644 --- a/deps/icu-small/source/i18n/zrule.h +++ b/deps/icu-small/source/i18n/zrule.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/i18n/ztrans.cpp b/deps/icu-small/source/i18n/ztrans.cpp index e33e8511bceddc..956b563a2a0310 100644 --- a/deps/icu-small/source/i18n/ztrans.cpp +++ b/deps/icu-small/source/i18n/ztrans.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2010, International Business Machines Corporation and * diff --git a/deps/icu-small/source/i18n/ztrans.h b/deps/icu-small/source/i18n/ztrans.h index 6697dcd5eb1c2f..0101dc06e36bae 100644 --- a/deps/icu-small/source/i18n/ztrans.h +++ b/deps/icu-small/source/i18n/ztrans.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2016, International Business Machines Corporation and diff --git a/deps/icu-small/source/io/io.rc b/deps/icu-small/source/io/io.rc index daa8da94b9cc6e..94db3ebd0f4a62 100644 --- a/deps/icu-small/source/io/io.rc +++ b/deps/icu-small/source/io/io.rc @@ -1,6 +1,8 @@ // Do not edit with Microsoft Developer Studio Resource Editor. // It will permanently substitute version numbers that are intended to be // picked up by the pre-processor during each build. +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html // Copyright (c) 2001-2010 International Business Machines // Corporation and others. All Rights Reserved. // diff --git a/deps/icu-small/source/io/locbund.cpp b/deps/icu-small/source/io/locbund.cpp index e032d00c8a3bf4..4dc50d50df1e4c 100644 --- a/deps/icu-small/source/io/locbund.cpp +++ b/deps/icu-small/source/io/locbund.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/io/locbund.h b/deps/icu-small/source/io/locbund.h index 1eac6227b1d5eb..b9e19484b654d2 100644 --- a/deps/icu-small/source/io/locbund.h +++ b/deps/icu-small/source/io/locbund.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/io/sprintf.c b/deps/icu-small/source/io/sprintf.c index 251faca5c3cb41..17cdb2dcdd3f5e 100644 --- a/deps/icu-small/source/io/sprintf.c +++ b/deps/icu-small/source/io/sprintf.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -179,7 +181,7 @@ u_vsnprintf(UChar *buffer, int32_t size = (int32_t)strlen(patternSpecification) + 1; /* convert from the default codepage to Unicode */ - if (size >= MAX_UCHAR_BUFFER_SIZE(patBuffer)) { + if (size >= (int32_t)MAX_UCHAR_BUFFER_SIZE(patBuffer)) { pattern = (UChar *)uprv_malloc(size * sizeof(UChar)); if(pattern == 0) { return 0; diff --git a/deps/icu-small/source/io/sscanf.c b/deps/icu-small/source/io/sscanf.c index c9579e8b5627de..2e14cdbcb65968 100644 --- a/deps/icu-small/source/io/sscanf.c +++ b/deps/icu-small/source/io/sscanf.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -71,7 +73,7 @@ u_vsscanf(const UChar *buffer, int32_t size = (int32_t)uprv_strlen(patternSpecification) + 1; /* convert from the default codepage to Unicode */ - if (size >= MAX_UCHAR_BUFFER_SIZE(patBuffer)) { + if (size >= (int32_t)MAX_UCHAR_BUFFER_SIZE(patBuffer)) { pattern = (UChar *)uprv_malloc(size * sizeof(UChar)); if(pattern == 0) { return 0; diff --git a/deps/icu-small/source/io/ucln_io.cpp b/deps/icu-small/source/io/ucln_io.cpp index 9469f5d58bb959..5822d22be15981 100644 --- a/deps/icu-small/source/io/ucln_io.cpp +++ b/deps/icu-small/source/io/ucln_io.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * @@ -33,7 +35,7 @@ static const char copyright[] = U_COPYRIGHT_STRING; static cleanupFunc *gCleanupFunctions[UCLN_IO_COUNT]; -static UBool io_cleanup(void) +static UBool U_CALLCONV io_cleanup(void) { int32_t libType = UCLN_IO_START; diff --git a/deps/icu-small/source/io/ucln_io.h b/deps/icu-small/source/io/ucln_io.h index 105eca8b136701..97d06a12ffd18c 100644 --- a/deps/icu-small/source/io/ucln_io.h +++ b/deps/icu-small/source/io/ucln_io.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * diff --git a/deps/icu-small/source/io/ufile.c b/deps/icu-small/source/io/ufile.c index d20f8079b1e314..71d27a5e2596dd 100644 --- a/deps/icu-small/source/io/ufile.c +++ b/deps/icu-small/source/io/ufile.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/ufile.h b/deps/icu-small/source/io/ufile.h index e0c343d6aa5fa7..b2562747e6e1ac 100644 --- a/deps/icu-small/source/io/ufile.h +++ b/deps/icu-small/source/io/ufile.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/io/ufmt_cmn.c b/deps/icu-small/source/io/ufmt_cmn.c index a9f533ce735fbb..e896bc560d44bc 100644 --- a/deps/icu-small/source/io/ufmt_cmn.c +++ b/deps/icu-small/source/io/ufmt_cmn.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/ufmt_cmn.h b/deps/icu-small/source/io/ufmt_cmn.h index b0852de5f8a62c..7daeee881363b2 100644 --- a/deps/icu-small/source/io/ufmt_cmn.h +++ b/deps/icu-small/source/io/ufmt_cmn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/unicode/ustdio.h b/deps/icu-small/source/io/unicode/ustdio.h index ec2a35fef4fc4a..5e11bb67666c45 100644 --- a/deps/icu-small/source/io/unicode/ustdio.h +++ b/deps/icu-small/source/io/unicode/ustdio.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/unicode/ustream.h b/deps/icu-small/source/io/unicode/ustream.h index 41ccf5ae036c67..ab52f6a28a0728 100644 --- a/deps/icu-small/source/io/unicode/ustream.h +++ b/deps/icu-small/source/io/unicode/ustream.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2014 International Business Machines diff --git a/deps/icu-small/source/io/uprintf.cpp b/deps/icu-small/source/io/uprintf.cpp index 4453d3a2da96f0..e6062ade297862 100644 --- a/deps/icu-small/source/io/uprintf.cpp +++ b/deps/icu-small/source/io/uprintf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/uprintf.h b/deps/icu-small/source/io/uprintf.h index 4b538451023274..0a07e6b7d6a0c3 100644 --- a/deps/icu-small/source/io/uprintf.h +++ b/deps/icu-small/source/io/uprintf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/uprntf_p.c b/deps/icu-small/source/io/uprntf_p.c index a51b67108f73b4..81f52696581960 100644 --- a/deps/icu-small/source/io/uprntf_p.c +++ b/deps/icu-small/source/io/uprntf_p.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/uscanf.c b/deps/icu-small/source/io/uscanf.c index 2919305f9e570a..9866963201ea53 100644 --- a/deps/icu-small/source/io/uscanf.c +++ b/deps/icu-small/source/io/uscanf.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/uscanf.h b/deps/icu-small/source/io/uscanf.h index 96b5c4da44e0eb..bbe84d9e2bbf2a 100644 --- a/deps/icu-small/source/io/uscanf.h +++ b/deps/icu-small/source/io/uscanf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/io/uscanf_p.c b/deps/icu-small/source/io/uscanf_p.c index 4e874f24f1f4ad..f17502038ae45b 100644 --- a/deps/icu-small/source/io/uscanf_p.c +++ b/deps/icu-small/source/io/uscanf_p.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/io/ustdio.c b/deps/icu-small/source/io/ustdio.c index 20eaf35dcd25c9..4b156595bb18f5 100644 --- a/deps/icu-small/source/io/ustdio.c +++ b/deps/icu-small/source/io/ustdio.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * @@ -428,7 +430,7 @@ ufile_fill_uchar_buffer(UFILE *f) /* shift the buffer if it isn't empty */ if(dataSize != 0) { - uprv_memmove(f->fUCBuffer, str->fPos, dataSize * sizeof(UChar)); /* not accessing beyond memory */ + u_memmove(f->fUCBuffer, str->fPos, dataSize); /* not accessing beyond memory */ } diff --git a/deps/icu-small/source/io/ustream.cpp b/deps/icu-small/source/io/ustream.cpp index 25c54eb55532f9..8e0087edbe6b21 100644 --- a/deps/icu-small/source/io/ustream.cpp +++ b/deps/icu-small/source/io/ustream.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2001-2016, International Business Machines diff --git a/deps/icu-small/source/stubdata/stubdata.c b/deps/icu-small/source/stubdata/stubdata.c index 2f1d41191ff091..a1a16545605de1 100644 --- a/deps/icu-small/source/stubdata/stubdata.c +++ b/deps/icu-small/source/stubdata/stubdata.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * * Copyright (C) 2001, International Business Machines diff --git a/deps/icu-small/source/tools/genccode/genccode.c b/deps/icu-small/source/tools/genccode/genccode.c index 58f5c2e8e0a713..2534820bac33b6 100644 --- a/deps/icu-small/source/tools/genccode/genccode.c +++ b/deps/icu-small/source/tools/genccode/genccode.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 1999-2016, International Business Machines diff --git a/deps/icu-small/source/tools/gencmn/gencmn.c b/deps/icu-small/source/tools/gencmn/gencmn.c index a6498ce6a977e0..d328a305215159 100644 --- a/deps/icu-small/source/tools/gencmn/gencmn.c +++ b/deps/icu-small/source/tools/gencmn/gencmn.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/derb.cpp b/deps/icu-small/source/tools/genrb/derb.cpp index 3d2507bc14e23f..22e275ef353700 100644 --- a/deps/icu-small/source/tools/genrb/derb.cpp +++ b/deps/icu-small/source/tools/genrb/derb.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/errmsg.c b/deps/icu-small/source/tools/genrb/errmsg.c index 420c12399e607b..7340f01af2a7d8 100644 --- a/deps/icu-small/source/tools/genrb/errmsg.c +++ b/deps/icu-small/source/tools/genrb/errmsg.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/errmsg.h b/deps/icu-small/source/tools/genrb/errmsg.h index 19dfee8d858792..5026ecf7be54bb 100644 --- a/deps/icu-small/source/tools/genrb/errmsg.h +++ b/deps/icu-small/source/tools/genrb/errmsg.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/genrb.cpp b/deps/icu-small/source/tools/genrb/genrb.cpp index 50e9bfd02e97eb..685fb5884e405c 100644 --- a/deps/icu-small/source/tools/genrb/genrb.cpp +++ b/deps/icu-small/source/tools/genrb/genrb.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/genrb.h b/deps/icu-small/source/tools/genrb/genrb.h index 9a190f28d37f92..99c604f7809454 100644 --- a/deps/icu-small/source/tools/genrb/genrb.h +++ b/deps/icu-small/source/tools/genrb/genrb.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/parse.cpp b/deps/icu-small/source/tools/genrb/parse.cpp index 879db96b024340..f448daab6cc460 100644 --- a/deps/icu-small/source/tools/genrb/parse.cpp +++ b/deps/icu-small/source/tools/genrb/parse.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/parse.h b/deps/icu-small/source/tools/genrb/parse.h index c9ac5521e1bf90..d7341be6dd9fc4 100644 --- a/deps/icu-small/source/tools/genrb/parse.h +++ b/deps/icu-small/source/tools/genrb/parse.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/prscmnts.cpp b/deps/icu-small/source/tools/genrb/prscmnts.cpp index d9c690ff525096..edae16c5c5f99b 100644 --- a/deps/icu-small/source/tools/genrb/prscmnts.cpp +++ b/deps/icu-small/source/tools/genrb/prscmnts.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2014, International Business Machines diff --git a/deps/icu-small/source/tools/genrb/prscmnts.h b/deps/icu-small/source/tools/genrb/prscmnts.h index da085965aa1b4a..c9958cd0713119 100644 --- a/deps/icu-small/source/tools/genrb/prscmnts.h +++ b/deps/icu-small/source/tools/genrb/prscmnts.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/rbutil.c b/deps/icu-small/source/tools/genrb/rbutil.c index bbe8624909b94e..174b4d7b44c4c6 100644 --- a/deps/icu-small/source/tools/genrb/rbutil.c +++ b/deps/icu-small/source/tools/genrb/rbutil.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/rbutil.h b/deps/icu-small/source/tools/genrb/rbutil.h index 3f055a848c89e0..d2a303516ab820 100644 --- a/deps/icu-small/source/tools/genrb/rbutil.h +++ b/deps/icu-small/source/tools/genrb/rbutil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/read.c b/deps/icu-small/source/tools/genrb/read.c index b652fee9bfead5..313fb61677f01f 100644 --- a/deps/icu-small/source/tools/genrb/read.c +++ b/deps/icu-small/source/tools/genrb/read.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/read.h b/deps/icu-small/source/tools/genrb/read.h index f79b145f25aa36..74b8c823a2e970 100644 --- a/deps/icu-small/source/tools/genrb/read.h +++ b/deps/icu-small/source/tools/genrb/read.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/reslist.cpp b/deps/icu-small/source/tools/genrb/reslist.cpp index 9f8365d7f6a405..9420184a9df806 100644 --- a/deps/icu-small/source/tools/genrb/reslist.cpp +++ b/deps/icu-small/source/tools/genrb/reslist.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/reslist.h b/deps/icu-small/source/tools/genrb/reslist.h index 5d09ecd8db572d..614be2d10f9c56 100644 --- a/deps/icu-small/source/tools/genrb/reslist.h +++ b/deps/icu-small/source/tools/genrb/reslist.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/rle.c b/deps/icu-small/source/tools/genrb/rle.c index fb14d1afc236a7..4a69cd52985ad7 100644 --- a/deps/icu-small/source/tools/genrb/rle.c +++ b/deps/icu-small/source/tools/genrb/rle.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/rle.h b/deps/icu-small/source/tools/genrb/rle.h index 0810914c52aab4..93d51a3750e8b2 100644 --- a/deps/icu-small/source/tools/genrb/rle.h +++ b/deps/icu-small/source/tools/genrb/rle.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/ustr.c b/deps/icu-small/source/tools/genrb/ustr.c index b73ce9bd2a2e07..1631a205ff9fe0 100644 --- a/deps/icu-small/source/tools/genrb/ustr.c +++ b/deps/icu-small/source/tools/genrb/ustr.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -92,7 +94,7 @@ ustr_cpy(struct UString *dst, if(src->fChars == NULL || dst->fChars == NULL){ return; } - uprv_memcpy(dst->fChars, src->fChars, sizeof(UChar) * src->fLength); + u_memcpy(dst->fChars, src->fChars, src->fLength); dst->fLength = src->fLength; dst->fChars[dst->fLength] = 0x0000; } diff --git a/deps/icu-small/source/tools/genrb/ustr.h b/deps/icu-small/source/tools/genrb/ustr.h index 05a446ea0e58ad..c27a78104fbdb1 100644 --- a/deps/icu-small/source/tools/genrb/ustr.h +++ b/deps/icu-small/source/tools/genrb/ustr.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/wrtjava.cpp b/deps/icu-small/source/tools/genrb/wrtjava.cpp index 6bfa7bb150b3f7..329753717b1f64 100644 --- a/deps/icu-small/source/tools/genrb/wrtjava.cpp +++ b/deps/icu-small/source/tools/genrb/wrtjava.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/genrb/wrtxml.cpp b/deps/icu-small/source/tools/genrb/wrtxml.cpp index c250fc29b41e58..62fdd2427cd249 100644 --- a/deps/icu-small/source/tools/genrb/wrtxml.cpp +++ b/deps/icu-small/source/tools/genrb/wrtxml.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/icupkg/icupkg.cpp b/deps/icu-small/source/tools/icupkg/icupkg.cpp index 056fc46faca5e7..20239304410e7a 100644 --- a/deps/icu-small/source/tools/icupkg/icupkg.cpp +++ b/deps/icu-small/source/tools/icupkg/icupkg.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp index 5dc075101be25c..bf933186025baf 100644 --- a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp +++ b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2000-2016, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/pkgdata/pkgtypes.c b/deps/icu-small/source/tools/pkgdata/pkgtypes.c index c8e08c2e828369..eadf634db385e8 100644 --- a/deps/icu-small/source/tools/pkgdata/pkgtypes.c +++ b/deps/icu-small/source/tools/pkgdata/pkgtypes.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************** * * Copyright (C) 2000-2016, International Business Machines diff --git a/deps/icu-small/source/tools/pkgdata/pkgtypes.h b/deps/icu-small/source/tools/pkgdata/pkgtypes.h index 0bba60c517b625..c7eeba42cb218e 100644 --- a/deps/icu-small/source/tools/pkgdata/pkgtypes.h +++ b/deps/icu-small/source/tools/pkgdata/pkgtypes.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************** * * Copyright (C) 2000-2012, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/collationinfo.cpp b/deps/icu-small/source/tools/toolutil/collationinfo.cpp index fef1cdf1051cc9..bbb1839ef1a5a4 100644 --- a/deps/icu-small/source/tools/toolutil/collationinfo.cpp +++ b/deps/icu-small/source/tools/toolutil/collationinfo.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/collationinfo.h b/deps/icu-small/source/tools/toolutil/collationinfo.h index dac12d2d48149f..48cd5561844cb8 100644 --- a/deps/icu-small/source/tools/toolutil/collationinfo.h +++ b/deps/icu-small/source/tools/toolutil/collationinfo.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2013-2015, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/dbgutil.cpp b/deps/icu-small/source/tools/toolutil/dbgutil.cpp index 668a2269e20a7f..345715163baacd 100644 --- a/deps/icu-small/source/tools/toolutil/dbgutil.cpp +++ b/deps/icu-small/source/tools/toolutil/dbgutil.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2007-2012, International Business Machines Corporation and diff --git a/deps/icu-small/source/tools/toolutil/dbgutil.h b/deps/icu-small/source/tools/toolutil/dbgutil.h index 49d52eae51f8ca..704090cc21d6c1 100644 --- a/deps/icu-small/source/tools/toolutil/dbgutil.h +++ b/deps/icu-small/source/tools/toolutil/dbgutil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************ diff --git a/deps/icu-small/source/tools/toolutil/denseranges.cpp b/deps/icu-small/source/tools/toolutil/denseranges.cpp index 7d81f2e9442f01..3b83715f28cfce 100644 --- a/deps/icu-small/source/tools/toolutil/denseranges.cpp +++ b/deps/icu-small/source/tools/toolutil/denseranges.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/denseranges.h b/deps/icu-small/source/tools/toolutil/denseranges.h index f9af56173872bd..7b072f4654ce59 100644 --- a/deps/icu-small/source/tools/toolutil/denseranges.h +++ b/deps/icu-small/source/tools/toolutil/denseranges.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2010, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/filestrm.c b/deps/icu-small/source/tools/toolutil/filestrm.c index c7b4eee54a31e0..446125de6b1a83 100644 --- a/deps/icu-small/source/tools/toolutil/filestrm.c +++ b/deps/icu-small/source/tools/toolutil/filestrm.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/tools/toolutil/filestrm.h b/deps/icu-small/source/tools/toolutil/filestrm.h index 0eeba98b661fd6..b42345140681c6 100644 --- a/deps/icu-small/source/tools/toolutil/filestrm.h +++ b/deps/icu-small/source/tools/toolutil/filestrm.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * diff --git a/deps/icu-small/source/tools/toolutil/filetools.cpp b/deps/icu-small/source/tools/toolutil/filetools.cpp index 238ef7ba155004..b0d4ed81a560dd 100644 --- a/deps/icu-small/source/tools/toolutil/filetools.cpp +++ b/deps/icu-small/source/tools/toolutil/filetools.cpp @@ -1,9 +1,12 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2009-2013, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* */ +#include "unicode/platform.h" #if U_PLATFORM == U_PF_MINGW // *cough* - for struct stat #ifdef __STRICT_ANSI__ @@ -13,6 +16,7 @@ #include "filetools.h" #include "filestrm.h" +#include "charstr.h" #include "cstring.h" #include "unicode/putil.h" #include "putilimp.h" @@ -27,8 +31,6 @@ #include typedef struct dirent DIRENT; -#define MAX_PATH_SIZE 4096 /* Set the limit for the size of the path. */ - #define SKIP1 "." #define SKIP2 ".." #endif @@ -56,20 +58,24 @@ isFileModTimeLater(const char *filePath, const char *checkAgainst, UBool isDir) while ((dirEntry = readdir(pDir)) != NULL) { if (uprv_strcmp(dirEntry->d_name, SKIP1) != 0 && uprv_strcmp(dirEntry->d_name, SKIP2) != 0) { - char newpath[MAX_PATH_SIZE] = ""; - uprv_strcpy(newpath, checkAgainst); - uprv_strcat(newpath, U_FILE_SEP_STRING); - uprv_strcat(newpath, dirEntry->d_name); - - if ((subDirp = opendir(newpath)) != NULL) { + UErrorCode status = U_ZERO_ERROR; + icu::CharString newpath(checkAgainst, -1, status); + newpath.append(U_FILE_SEP_STRING, -1, status); + newpath.append(dirEntry->d_name, -1, status); + if (U_FAILURE(status)) { + fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, u_errorName(status)); + return FALSE; + }; + + if ((subDirp = opendir(newpath.data())) != NULL) { /* If this new path is a directory, make a recursive call with the newpath. */ closedir(subDirp); - isLatest = isFileModTimeLater(filePath, newpath, isDir); + isLatest = isFileModTimeLater(filePath, newpath.data(), isDir); if (!isLatest) { break; } } else { - int32_t latest = whichFileModTimeIsLater(filePath, newpath); + int32_t latest = whichFileModTimeIsLater(filePath, newpath.data()); if (latest < 0 || latest == 2) { isLatest = FALSE; break; diff --git a/deps/icu-small/source/tools/toolutil/filetools.h b/deps/icu-small/source/tools/toolutil/filetools.h index 7d4e13905575ca..5ede02761ac46a 100644 --- a/deps/icu-small/source/tools/toolutil/filetools.h +++ b/deps/icu-small/source/tools/toolutil/filetools.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/flagparser.c b/deps/icu-small/source/tools/toolutil/flagparser.c index 252267b7ae8e07..c87beb147cf44b 100644 --- a/deps/icu-small/source/tools/toolutil/flagparser.c +++ b/deps/icu-small/source/tools/toolutil/flagparser.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2009-2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -61,7 +63,7 @@ parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, continue; } - if (uprv_strlen(buffer) == (currentBufferSize - 1) && buffer[currentBufferSize-2] != '\n') { + if ((int32_t)uprv_strlen(buffer) == (currentBufferSize - 1) && buffer[currentBufferSize-2] != '\n') { /* Allocate more space for buffer if it didnot read the entrire line */ allocateMoreSpace = TRUE; T_FileStream_rewind(f); diff --git a/deps/icu-small/source/tools/toolutil/flagparser.h b/deps/icu-small/source/tools/toolutil/flagparser.h index 32a51e3d2acbd8..4aa03c8a5fdca4 100644 --- a/deps/icu-small/source/tools/toolutil/flagparser.h +++ b/deps/icu-small/source/tools/toolutil/flagparser.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/package.cpp b/deps/icu-small/source/tools/toolutil/package.cpp index 8992f30eee691a..d069147708ed3d 100644 --- a/deps/icu-small/source/tools/toolutil/package.cpp +++ b/deps/icu-small/source/tools/toolutil/package.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -1292,7 +1294,7 @@ void Package::setItemCapacity(int32_t max) exit(U_MEMORY_ALLOCATION_ERROR); } if(items && itemCount>0) { - uprv_memcpy(newItems, items, itemCount*sizeof(items[0])); + uprv_memcpy(newItems, items, (size_t)itemCount*sizeof(items[0])); } itemMax = max; items = newItems; diff --git a/deps/icu-small/source/tools/toolutil/package.h b/deps/icu-small/source/tools/toolutil/package.h index 194722f4f4e59a..4d60202999243b 100644 --- a/deps/icu-small/source/tools/toolutil/package.h +++ b/deps/icu-small/source/tools/toolutil/package.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/pkg_genc.c b/deps/icu-small/source/tools/toolutil/pkg_genc.c index f486ec4a107c6c..c85a12322b9381 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_genc.c +++ b/deps/icu-small/source/tools/toolutil/pkg_genc.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2009-2016, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_genc.h b/deps/icu-small/source/tools/toolutil/pkg_genc.h index 9bd312b96f74ac..12ffc927285b27 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_genc.h +++ b/deps/icu-small/source/tools/toolutil/pkg_genc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008-2011, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_gencmn.c b/deps/icu-small/source/tools/toolutil/pkg_gencmn.c index 25f36088a0f8f4..38cc820a176d3b 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_gencmn.c +++ b/deps/icu-small/source/tools/toolutil/pkg_gencmn.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008-2012, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_gencmn.h b/deps/icu-small/source/tools/toolutil/pkg_gencmn.h index 0ba953be74ab96..62f8327cdfdf91 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_gencmn.h +++ b/deps/icu-small/source/tools/toolutil/pkg_gencmn.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_icu.cpp b/deps/icu-small/source/tools/toolutil/pkg_icu.cpp index 471b1d45ec1220..e679c23be84f99 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_icu.cpp +++ b/deps/icu-small/source/tools/toolutil/pkg_icu.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008-2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_icu.h b/deps/icu-small/source/tools/toolutil/pkg_icu.h index 50f3f51c96dfce..3d620f78dfb6cc 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_icu.h +++ b/deps/icu-small/source/tools/toolutil/pkg_icu.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008-2016, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/tools/toolutil/pkg_imp.h b/deps/icu-small/source/tools/toolutil/pkg_imp.h index 45ddc4c0912844..c9fe81bd73a20a 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_imp.h +++ b/deps/icu-small/source/tools/toolutil/pkg_imp.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/pkgitems.cpp b/deps/icu-small/source/tools/toolutil/pkgitems.cpp index 7c8c744a442347..91c85201101c01 100644 --- a/deps/icu-small/source/tools/toolutil/pkgitems.cpp +++ b/deps/icu-small/source/tools/toolutil/pkgitems.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/ppucd.cpp b/deps/icu-small/source/tools/toolutil/ppucd.cpp index ed5229be786a60..18d317e3e330f2 100644 --- a/deps/icu-small/source/tools/toolutil/ppucd.cpp +++ b/deps/icu-small/source/tools/toolutil/ppucd.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2014, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/ppucd.h b/deps/icu-small/source/tools/toolutil/ppucd.h index d4726fec1091f4..593bd247996c23 100644 --- a/deps/icu-small/source/tools/toolutil/ppucd.h +++ b/deps/icu-small/source/tools/toolutil/ppucd.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2013, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/swapimpl.cpp b/deps/icu-small/source/tools/toolutil/swapimpl.cpp index dbeff2d7b8ac6c..6cc21623016849 100644 --- a/deps/icu-small/source/tools/toolutil/swapimpl.cpp +++ b/deps/icu-small/source/tools/toolutil/swapimpl.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -230,7 +232,7 @@ uprops_swap(const UDataSwapper *ds, /* copy everything for inaccessible data (padding) */ if(inData32!=outData32) { - uprv_memcpy(outData32, inData32, 4*dataTop); + uprv_memcpy(outData32, inData32, 4*(size_t)dataTop); } /* swap the indexes[16] */ diff --git a/deps/icu-small/source/tools/toolutil/swapimpl.h b/deps/icu-small/source/tools/toolutil/swapimpl.h index b36ec2609dabf5..0e4d41734433d2 100644 --- a/deps/icu-small/source/tools/toolutil/swapimpl.h +++ b/deps/icu-small/source/tools/toolutil/swapimpl.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/toolutil.cpp b/deps/icu-small/source/tools/toolutil/toolutil.cpp index 259df9873d21ae..bb393a2e7d0302 100644 --- a/deps/icu-small/source/tools/toolutil/toolutil.cpp +++ b/deps/icu-small/source/tools/toolutil/toolutil.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -312,7 +314,7 @@ utm_hasCapacity(UToolMemory *mem, int32_t capacity) { if(mem->array==mem->staticArray) { mem->array=uprv_malloc(newCapacity*mem->size); if(mem->array!=NULL) { - uprv_memcpy(mem->array, mem->staticArray, mem->idx*mem->size); + uprv_memcpy(mem->array, mem->staticArray, (size_t)mem->idx*mem->size); } } else { mem->array=uprv_realloc(mem->array, newCapacity*mem->size); diff --git a/deps/icu-small/source/tools/toolutil/toolutil.h b/deps/icu-small/source/tools/toolutil/toolutil.h index 68c9e834a65cfd..026e75aeb2ef47 100644 --- a/deps/icu-small/source/tools/toolutil/toolutil.h +++ b/deps/icu-small/source/tools/toolutil/toolutil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.cpp b/deps/icu-small/source/tools/toolutil/ucbuf.cpp index d83acff276c089..b6b0150afc1b48 100644 --- a/deps/icu-small/source/tools/toolutil/ucbuf.cpp +++ b/deps/icu-small/source/tools/toolutil/ucbuf.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.h b/deps/icu-small/source/tools/toolutil/ucbuf.h index 739eb9fbe2607c..cb9509b427a718 100644 --- a/deps/icu-small/source/tools/toolutil/ucbuf.h +++ b/deps/icu-small/source/tools/toolutil/ucbuf.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/ucln_tu.cpp b/deps/icu-small/source/tools/toolutil/ucln_tu.cpp index 0a88ba584bc5bb..2f67641768e27e 100644 --- a/deps/icu-small/source/tools/toolutil/ucln_tu.cpp +++ b/deps/icu-small/source/tools/toolutil/ucln_tu.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2007-2014, International Business Machines Corporation and diff --git a/deps/icu-small/source/tools/toolutil/ucm.c b/deps/icu-small/source/tools/toolutil/ucm.c index adb3ebd2d0a9e8..8d4cdfc40f1e45 100644 --- a/deps/icu-small/source/tools/toolutil/ucm.c +++ b/deps/icu-small/source/tools/toolutil/ucm.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -967,7 +969,7 @@ ucm_addMapping(UCMTable *table, exit(U_MEMORY_ALLOCATION_ERROR); } - uprv_memcpy(table->codePoints+idx, codePoints, m->uLen*4); + uprv_memcpy(table->codePoints+idx, codePoints, (size_t)m->uLen*4); m->u=idx; } @@ -1124,7 +1126,7 @@ ucm_addMappingAuto(UCMFile *ucm, UBool forBase, UCMStates *baseStates, U_CAPI UBool U_EXPORT2 ucm_addMappingFromLine(UCMFile *ucm, const char *line, UBool forBase, UCMStates *baseStates) { - UCMapping m={ 0 }; + UCMapping m={ 0, {0}, 0, 0, 0, 0 }; UChar32 codePoints[UCNV_EXT_MAX_UCHARS]; uint8_t bytes[UCNV_EXT_MAX_BYTES]; diff --git a/deps/icu-small/source/tools/toolutil/ucm.h b/deps/icu-small/source/tools/toolutil/ucm.h index 5de1bdc5e38d14..0058adab5da1d1 100644 --- a/deps/icu-small/source/tools/toolutil/ucm.h +++ b/deps/icu-small/source/tools/toolutil/ucm.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2003-2013, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/ucmstate.c b/deps/icu-small/source/tools/toolutil/ucmstate.c index 6152ca94636759..7c8559090b2a9b 100644 --- a/deps/icu-small/source/tools/toolutil/ucmstate.c +++ b/deps/icu-small/source/tools/toolutil/ucmstate.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/udbgutil.cpp b/deps/icu-small/source/tools/toolutil/udbgutil.cpp index 819cbd91150a12..bbb814ba901c41 100644 --- a/deps/icu-small/source/tools/toolutil/udbgutil.cpp +++ b/deps/icu-small/source/tools/toolutil/udbgutil.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 2007-2016, International Business Machines Corporation and @@ -13,6 +15,7 @@ #include "unicode/ulocdata.h" #include "unicode/ucnv.h" #include "unicode/unistr.h" +#include "cstr.h" /* To add a new enum type @@ -689,8 +692,9 @@ void KnownIssues::add(const char *ticket, const char *where, const UChar *msg, U } if(msg==NULL || !*msg) return; - std::string str; - fTable[ticket][where].insert(icu::UnicodeString(msg).toUTF8String(str)); + const icu::UnicodeString ustr(msg); + + fTable[ticket][where].insert(std::string(icu::CStr(ustr)())); } void KnownIssues::add(const char *ticket, const char *where, const char *msg, UBool *firstForTicket, UBool *firstForWhere) diff --git a/deps/icu-small/source/tools/toolutil/udbgutil.h b/deps/icu-small/source/tools/toolutil/udbgutil.h index 3f6ecb0c85ed5b..4bfb4cf86720a9 100644 --- a/deps/icu-small/source/tools/toolutil/udbgutil.h +++ b/deps/icu-small/source/tools/toolutil/udbgutil.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************ * Copyright (c) 2008-2015, International Business Machines diff --git a/deps/icu-small/source/tools/toolutil/unewdata.c b/deps/icu-small/source/tools/toolutil/unewdata.c index 94af7859517748..f3b152c0796ce0 100644 --- a/deps/icu-small/source/tools/toolutil/unewdata.c +++ b/deps/icu-small/source/tools/toolutil/unewdata.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -39,7 +41,7 @@ udata_create(const char *dir, const char *type, const char *name, uint16_t headerSize, commentLength; char filename[512]; uint8_t bytes[16]; - int length; + int32_t length; if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) { return NULL; @@ -74,7 +76,7 @@ udata_create(const char *dir, const char *type, const char *name, /* LDH buffer Length error check */ - if(length > (sizeof(filename) - 1)) + if(length > ((int32_t)sizeof(filename) - 1)) { *pErrorCode = U_BUFFER_OVERFLOW_ERROR; uprv_free(pData); diff --git a/deps/icu-small/source/tools/toolutil/unewdata.h b/deps/icu-small/source/tools/toolutil/unewdata.h index d25b8e9f749847..9cc39942258700 100644 --- a/deps/icu-small/source/tools/toolutil/unewdata.h +++ b/deps/icu-small/source/tools/toolutil/unewdata.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/uoptions.c b/deps/icu-small/source/tools/toolutil/uoptions.c index 291e2fce4e7fb8..e5ce64a3728e99 100644 --- a/deps/icu-small/source/tools/toolutil/uoptions.c +++ b/deps/icu-small/source/tools/toolutil/uoptions.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/uoptions.h b/deps/icu-small/source/tools/toolutil/uoptions.h index 59804793646886..72652feadba560 100644 --- a/deps/icu-small/source/tools/toolutil/uoptions.h +++ b/deps/icu-small/source/tools/toolutil/uoptions.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/uparse.c b/deps/icu-small/source/tools/toolutil/uparse.c index 71c7602cc007b4..a7142c3cba6cde 100644 --- a/deps/icu-small/source/tools/toolutil/uparse.c +++ b/deps/icu-small/source/tools/toolutil/uparse.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/uparse.h b/deps/icu-small/source/tools/toolutil/uparse.h index b379cf83548fdc..5ad766cf104c85 100644 --- a/deps/icu-small/source/tools/toolutil/uparse.h +++ b/deps/icu-small/source/tools/toolutil/uparse.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/writesrc.c b/deps/icu-small/source/tools/toolutil/writesrc.c index 6fd9f75dba743d..e3f14f2c46e377 100644 --- a/deps/icu-small/source/tools/toolutil/writesrc.c +++ b/deps/icu-small/source/tools/toolutil/writesrc.c @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * @@ -48,18 +50,16 @@ usrc_createWithHeader(const char *path, const char *filename, f=fopen(p, "w"); if(f!=NULL) { - char year[8]; const struct tm *lt; time_t t; time(&t); lt=localtime(&t); - strftime(year, sizeof(year), "%Y", lt); if(generator==NULL) { strftime(buffer, sizeof(buffer), "%Y-%m-%d", lt); - fprintf(f, header, year, filename, buffer); + fprintf(f, header, filename, buffer); } else { - fprintf(f, header, year, filename, generator); + fprintf(f, header, filename, generator); } } else { fprintf( @@ -72,28 +72,34 @@ usrc_createWithHeader(const char *path, const char *filename, U_CAPI FILE * U_EXPORT2 usrc_create(const char *path, const char *filename, const char *generator) { + // TODO: Add parameter for the first year this file was generated, not before 2016. static const char *header= - "/*\n" - " * Copyright (C) 1999-%s, International Business Machines\n" - " * Corporation and others. All Rights Reserved.\n" - " *\n" - " * file name: %s\n" - " *\n" - " * machine-generated by: %s\n" - " */\n\n"; + "// Copyright (C) 2016 and later: Unicode, Inc. and others.\n" + "// License & terms of use: http://www.unicode.org/copyright.html\n" + "//\n" + "// Copyright (C) 1999-2016, International Business Machines\n" + "// Corporation and others. All Rights Reserved.\n" + "//\n" + "// file name: %s\n" + "//\n" + "// machine-generated by: %s\n" + "\n\n"; return usrc_createWithHeader(path, filename, generator, header); } U_CAPI FILE * U_EXPORT2 usrc_createTextData(const char *path, const char *filename, const char *generator) { + // TODO: Add parameter for the first year this file was generated, not before 2016. static const char *header= - "# Copyright (C) 1999-%s, International Business Machines\n" + "# Copyright (C) 2016 and later: Unicode, Inc. and others.\n" + "# License & terms of use: http://www.unicode.org/copyright.html\n" + "# Copyright (C) 1999-2016, International Business Machines\n" "# Corporation and others. All Rights Reserved.\n" "#\n" "# file name: %s\n" "#\n" "# machine-generated by: %s\n" - "#\n\n"; + "\n\n"; return usrc_createWithHeader(path, filename, generator, header); } diff --git a/deps/icu-small/source/tools/toolutil/writesrc.h b/deps/icu-small/source/tools/toolutil/writesrc.h index f4ca08103bbfc0..c82bf3c3345edd 100644 --- a/deps/icu-small/source/tools/toolutil/writesrc.h +++ b/deps/icu-small/source/tools/toolutil/writesrc.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.cpp b/deps/icu-small/source/tools/toolutil/xmlparser.cpp index 8d467bac6a53f4..2fc6e1f78c21b1 100644 --- a/deps/icu-small/source/tools/toolutil/xmlparser.cpp +++ b/deps/icu-small/source/tools/toolutil/xmlparser.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.h b/deps/icu-small/source/tools/toolutil/xmlparser.h index 30bd746beffdb3..5c08903f86ac1a 100644 --- a/deps/icu-small/source/tools/toolutil/xmlparser.h +++ b/deps/icu-small/source/tools/toolutil/xmlparser.h @@ -1,3 +1,5 @@ +// Copyright (C) 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* *

6Z< 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