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 @@ - - -
- -- 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+ * 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(insertionPoint
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 UChar
s.
+ * @param newSize A new source capacity in UChar
s.
+ * @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(destIndexSee 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.
#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: + *
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,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,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,UBiDi
engine; it implies character mirroring, Arabic
+ * shaping, and - if the input/output base directions mismatch - string
+ * reverse operations.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:
+ *
ubidi_setReorderingMode
as needed (when the
+ * reordering mode is other than normal),ubidi_setInverse
as needed (when text should be
+ * transformed from a visual to a logical form),ubidi_setPara
,ubidi_writeReordered
,u_shapeArabic
.
+ * There are 36 possible combinations of ordering schemes,
+ * which are partially supported by UBiDi
already. Examples of the
+ * currently supported combinations:
+ *
ubidi_setPara
with paraLevel == UBIDI_LTR
,ubidi_setPara
with paraLevel == UBIDI_RTL
,ubidi_setPara
with
+ * paraLevel == UBIDI_DEFAULT_LTR
,ubidi_setPara
with
+ * paraLevel == UBIDI_DEFAULT_RTL
,ubidi_setInverse(UBiDi*, TRUE)
and then
+ * ubidi_setPara
with paraLevel == UBIDI_LTR
,ubidi_setInverse(UBiDi*, TRUE)
and then
+ * ubidi_setPara
with paraLevel == UBIDI_RTL
.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.
Note: the text must be (at least)
+ * srcLength
long.
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.
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 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
- *
- *
- * 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